-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathformat.go
More file actions
53 lines (45 loc) · 1.18 KB
/
format.go
File metadata and controls
53 lines (45 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package tok
import (
"fmt"
"strings"
)
// formatNumber adds comma separators to integers for display.
// Used by both rate limiting summaries and optimizer output.
func formatNumber(n int) string {
if n < 0 {
return "-" + formatNumber(-n)
}
s := fmt.Sprintf("%d", n)
if len(s) <= 3 {
return s
}
var result strings.Builder
remainder := len(s) % 3
if remainder > 0 {
result.WriteString(s[:remainder])
}
for i := remainder; i < len(s); i += 3 {
if result.Len() > 0 {
result.WriteByte(',')
}
result.WriteString(s[i : i+3])
}
return result.String()
}
// FormatStats returns a human-readable summary of compression statistics.
// If a model is specified, includes dollar-based cost savings.
func FormatStats(stats Stats) string {
var b strings.Builder
b.WriteString(fmt.Sprintf("Tokens: %s → %s (%.1f%% reduction)\n",
formatNumber(stats.OriginalTokens),
formatNumber(stats.FinalTokens),
stats.ReductionPercent))
b.WriteString(fmt.Sprintf("Saved: %s tokens", formatNumber(stats.TokensSaved)))
if stats.Model != "" {
costStr := FormatCostSavings(stats, stats.Model)
if costStr != "" {
b.WriteString(fmt.Sprintf(" | %s", costStr))
}
}
return b.String()
}