From 28e237f646bf3f5eed94a3cf608bbb8451d213dc Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 7 Oct 2026 16:47:13 +0000 Subject: [PATCH] Carry cache tokens on message_end events (N3 WP6 follow-up) Why: hosts accumulating per message_end could not see cache hits; the fields now ride the same event as the per-request totals. Evidence: GOWORK=off go test green. Impact: additive event fields. Refs: Agent-Native#35 --- runtime/loop.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/loop.go b/runtime/loop.go index b6c8d6c..5155cab 100644 --- a/runtime/loop.go +++ b/runtime/loop.go @@ -352,7 +352,7 @@ func Run(ctx context.Context, cfg Config, user llm.Message) (Result, error) { return Result{}, err } messages = append(messages, last) - emit(cfg, Event{Type: "message_end", Message: last, PromptTokens: end.Usage.PromptTokens, CompletionTokens: end.Usage.CompletionTokens, TotalTokens: end.Usage.TotalTokens}) + emit(cfg, Event{Type: "message_end", Message: last, PromptTokens: end.Usage.PromptTokens, CompletionTokens: end.Usage.CompletionTokens, TotalTokens: end.Usage.TotalTokens, CacheReadTokens: end.Usage.CacheReadTokens, CacheWriteTokens: end.Usage.CacheWriteTokens}) if last.StopReason == llm.StopToolCalls && len(last.ToolCalls) > 0 { if reason := budgetExceeded(cfg.Budget, usage, toolCalls, time.Now()); reason != "" { -- 2.54.0