Das --max-budget-usd-Flag und die ganze Pricing-Infrastruktur zeigen, dass Kostenkontrolle ein erklärtes Ziel ist — bisher aber nur pro Run. Es gibt keine Möglichkeit, über alle Sessions hinweg zu sehen, was smith insgesamt verbraucht hat. Dabei liegen alle Rohdaten bereits persistiert vor: jede Session trägt usage (src/smith/session.cr:73) sowie provider und model, und der Index (index.json) listet alle Sessions, ohne sie einzeln laden zu müssen.
Spezifikation
- Ein Befehl
smith stats, der über alle gespeicherten Sessions aggregiert — gebaut rein aus index.json plus den einzelnen Session-Dateien, falls nötig.
- Ausgabe: Gesamtkosten, Gesamt-Tokens (prompt/completion/cached), Anzahl Sessions, häufigste Provider/Modelle.
- Pro Modell wird über die bestehende
Pricing-Kette gerechnet; ein unbekanntes Modell trägt zur Token-Summe bei, aber nicht zu einer geratenen Dollar-Zahl (n/a wie beim Live-Zähler).
Akzeptanzkriterien
Das
--max-budget-usd-Flag und die ganzePricing-Infrastruktur zeigen, dass Kostenkontrolle ein erklärtes Ziel ist — bisher aber nur pro Run. Es gibt keine Möglichkeit, über alle Sessions hinweg zu sehen, was smith insgesamt verbraucht hat. Dabei liegen alle Rohdaten bereits persistiert vor: jede Session trägtusage(src/smith/session.cr:73) sowieproviderundmodel, und der Index (index.json) listet alle Sessions, ohne sie einzeln laden zu müssen.Spezifikation
smith stats, der über alle gespeicherten Sessions aggregiert — gebaut rein ausindex.jsonplus den einzelnen Session-Dateien, falls nötig.Pricing-Kette gerechnet; ein unbekanntes Modell trägt zur Token-Summe bei, aber nicht zu einer geratenen Dollar-Zahl (n/awie beim Live-Zähler).Akzeptanzkriterien
smith statsgibt Gesamt-Kosten, Tokens und eine Aufschlüsselung nach Provider/Modell ausn/a, nie als Zahl