From 94331b45201542505a8e77eea89855ef7abbc2ff Mon Sep 17 00:00:00 2001 From: Donnie Adams Date: Mon, 21 Apr 2025 16:46:44 -0400 Subject: [PATCH] enhance: add run usage method Signed-off-by: Donnie Adams --- run.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/run.go b/run.go index 558b388..983dccc 100644 --- a/run.go +++ b/run.go @@ -118,6 +118,21 @@ func (r *Run) ParentCallFrame() (CallFrame, bool) { return r.calls.ParentCallFrame(), true } +// Usage returns all the usage for this run. +func (r *Run) Usage() Usage { + var u Usage + r.callsLock.RLock() + defer r.callsLock.RUnlock() + + for _, c := range r.calls { + u.CompletionTokens += c.Usage.CompletionTokens + u.PromptTokens += c.Usage.PromptTokens + u.TotalTokens += c.Usage.TotalTokens + } + + return u +} + // ErrorOutput returns the stderr output of the gptscript. // Should only be called after Bytes or Text has returned an error. func (r *Run) ErrorOutput() string {