* Record a single LLM call's token usage.
(promptTokens, completionTokens, metadata = {})
| 17 | * Record a single LLM call's token usage. |
| 18 | */ |
| 19 | recordCall(promptTokens, completionTokens, metadata = {}) { |
| 20 | this.totalPrompt += promptTokens || 0; |
| 21 | this.totalCompletion += completionTokens || 0; |
| 22 | this.totalCalls++; |
| 23 | |
| 24 | if (!this.turns.length || metadata.newTurn || this._nextCallIsNewTurn) { |
| 25 | this.turns.push({ calls: 0, promptTokens: 0, completionTokens: 0, toolCalls: 0 }); |
| 26 | this._nextCallIsNewTurn = false; |
| 27 | } |
| 28 | const turn = this.turns[this.turns.length - 1]; |
| 29 | turn.calls++; |
| 30 | turn.promptTokens += promptTokens || 0; |
| 31 | turn.completionTokens += completionTokens || 0; |
| 32 | if (metadata.isToolCall) turn.toolCalls++; |
| 33 | } |
| 34 | |
| 35 | recordCompaction() { this.compactions++; } |
| 36 | recordEviction() { this.evictions++; } |
no outgoing calls
no test coverage detected