From f054bce99ee22d7bbed58e94e5aa755029872a08 Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 7 Oct 2026 17:08:58 +0000 Subject: [PATCH] Thread last-request and cache usage fields through the exec event bridge (N3 WP6) Why: squad consumes exec.ProcessEvent, which lacked the split usage fields, so the WP6 accounting could not reach squad runs. Evidence: GOWORK=off go vet green; additive fields on ProcessEvent. Impact: additive only. Refs: Agent-Native#35 #37, N3 plan WP6 --- adapters/native/backend.go | 16 ++++++++++------ exec/backend.go | 5 +++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/adapters/native/backend.go b/adapters/native/backend.go index 415a549..aa28882 100644 --- a/adapters/native/backend.go +++ b/adapters/native/backend.go @@ -403,12 +403,16 @@ func (b *Backend) run(ctx context.Context, model string, budget *runtime.Budget, logs.WriteByte('\n') if onProcess != nil { onProcess(exec.ProcessEvent{ - Type: ev.Type, - Text: ev.Text, - Tool: ev.Tool, - Detail: ev.Detail, - PromptTokens: ev.PromptTokens, - CompletionTokens: ev.CompletionTokens, + Type: ev.Type, + Text: ev.Text, + Tool: ev.Tool, + Detail: ev.Detail, + PromptTokens: ev.PromptTokens, + CompletionTokens: ev.CompletionTokens, + LastPromptTokens: ev.LastPromptTokens, + LastCompletionTokens: ev.LastCompletionTokens, + CacheReadTokens: ev.CacheReadTokens, + CacheWriteTokens: ev.CacheWriteTokens, }) } }, diff --git a/exec/backend.go b/exec/backend.go index c7144d1..2f65efa 100644 --- a/exec/backend.go +++ b/exec/backend.go @@ -57,6 +57,11 @@ type ProcessEvent struct { // PromptTokens / CompletionTokens 在 Type=usage 时填写。 PromptTokens int CompletionTokens int + // 以下在 Type=usage 或 message_end 时填写(N3 WP6:上一请求与缓存命中拆分)。 + LastPromptTokens int + LastCompletionTokens int + CacheReadTokens int + CacheWriteTokens int } const (