Thread last-request and cache usage fields through the exec event bridge (N3 WP6)
ci / vet-and-test (pull_request) Successful in 50s
ci / docker-checkout-hostgateway (pull_request) Successful in 0s

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
This commit is contained in:
2026-10-07 17:08:58 +00:00
parent 28e237f646
commit f054bce99e
2 changed files with 15 additions and 6 deletions
+10 -6
View File
@@ -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,
})
}
},
+5
View File
@@ -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 (