Why: acceptance clause 1 requires the anthropic preset to complete a tool-call round against recorded HTTP fixtures; audit N4's root cause was an offline body builder the real client never used, with no tool_use/thinking support on the wire. Evidence: GOWORK=off go vet + go test -count=1 ./... green; TestAnthropicPresetToolRound drives the preset through tools request → tool_use → tool_result → final text with thinking-signature round-trip against byte-recorded SSE fixtures; TestAnthropicBodyShape pins block forms and cache_control; legacy OpenAI path untouched (Client.Protocol zero value). Impact: the anthropic preset now means the native Messages API (the compat shim remains reachable via models.json custom providers); audit N4 closes. BuildBody shares anthropicBody with the live client. Refs: Agent-System-Documents#42 (N2 plan WP2), audit N4
30 lines
1.2 KiB
Plaintext
30 lines
1.2 KiB
Plaintext
event: message_start
|
|
data: {"type":"message_start","message":{"id":"msg_02","type":"message","role":"assistant","model":"claude-fixture","usage":{"input_tokens":142,"cache_read_input_tokens":60,"cache_creation_input_tokens":0}}}
|
|
|
|
event: content_block_start
|
|
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":""}}
|
|
|
|
event: content_block_delta
|
|
data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"用户问 main.go,工具已返回。"}}
|
|
|
|
event: content_block_delta
|
|
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EqoBCkgIARABGAIiQA"}}
|
|
|
|
event: content_block_stop
|
|
data: {"type":"content_block_stop","index":0}
|
|
|
|
event: content_block_start
|
|
data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}
|
|
|
|
event: content_block_delta
|
|
data: {"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"查到了,main.go 一共 42 行。"}}
|
|
|
|
event: content_block_stop
|
|
data: {"type":"content_block_stop","index":1}
|
|
|
|
event: message_delta
|
|
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":57}}
|
|
|
|
event: message_stop
|
|
data: {"type":"message_stop"}
|