summaryrefslogtreecommitdiff
path: root/internal/usage/observer.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/usage/observer.go')
-rw-r--r--internal/usage/observer.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/usage/observer.go b/internal/usage/observer.go
index cc8b52f..808781f 100644
--- a/internal/usage/observer.go
+++ b/internal/usage/observer.go
@@ -44,6 +44,17 @@ func (o *Observer) Usage() domain.Usage {
return o.usage
}
+// Reported distinguishes a real zero-token usage object from a response that
+// omitted usage entirely. Billing must never infer this from token totals.
+func (o *Observer) Reported() bool {
+ if !o.stream {
+ o.parseJSON(o.buffer)
+ } else if len(o.line) > 0 {
+ o.parseSSELine(o.line)
+ }
+ return o.found
+}
+
func (o *Observer) captureTail(p []byte) {
if len(p) >= maxCaptureBytes {
o.buffer = append(o.buffer[:0], p[len(p)-maxCaptureBytes:]...)