summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/agent/agent.ts
blob: 4bfa7eb16a7667da15a3ddb1ed268e0d34d77b8e (plain)
ofshex dumpascii
0000 69 6d 70 6f 72 74 20 7b 20 64 69 72 6e 61 6d 65 20 7d 20 66 72 6f 6d 20 22 6e 6f 64 65 3a 70 61 import.{.dirname.}.from."node:pa
0020 74 68 22 3b 0a 69 6d 70 6f 72 74 20 74 79 70 65 20 7b 20 50 72 6f 76 69 64 65 72 4f 70 74 69 6f th";.import.type.{.ProviderOptio
0040 6e 73 20 7d 20 66 72 6f 6d 20 22 40 61 69 2d 73 64 6b 2f 70 72 6f 76 69 64 65 72 2d 75 74 69 6c ns.}.from."@ai-sdk/provider-util
0060 73 22 3b 0a 69 6d 70 6f 72 74 20 74 79 70 65 20 7b 20 4c 61 6e 67 75 61 67 65 4d 6f 64 65 6c 55 s";.import.type.{.LanguageModelU
0080 73 61 67 65 2c 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 2c 20 53 79 73 74 65 6d 4d 6f 64 65 6c 4d sage,.ModelMessage,.SystemModelM
00a0 65 73 73 61 67 65 20 7d 20 66 72 6f 6d 20 22 61 69 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 73 74 72 essage.}.from."ai";.import.{.str
00c0 65 61 6d 54 65 78 74 20 7d 20 66 72 6f 6d 20 22 61 69 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 67 65 eamText.}.from."ai";.import.{.ge
00e0 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 61 67 65 6e 74 73 tAgentDirPaths.}.from."../agents
0100 2f 6c 6f 61 64 65 72 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 70 70 65 6e 64 45 76 65 6e /loader.js";.import.{.appendEven
0120 74 54 6f 43 68 75 6e 6b 73 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 63 68 75 6e 6b 73 2f 61 70 70 65 tToChunks.}.from."../chunks/appe
0140 6e 64 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 nd.js";.import.{.buildBillingHea
0160 64 65 72 56 61 6c 75 65 2c 20 53 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 59 20 7d 20 66 72 6f 6d derValue,.SYSTEM_IDENTITY.}.from
0180 20 22 2e 2e 2f 63 72 65 64 65 6e 74 69 61 6c 73 2f 63 6c 61 75 64 65 2e 6a 73 22 3b 0a 69 6d 70 ."../credentials/claude.js";.imp
01a0 6f 72 74 20 7b 0a 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 2c 0a 09 6c 6f 67 53 74 65 70 4c 69 66 ort.{..logAgentLoop,..logStepLif
01c0 65 63 79 63 6c 65 2c 0a 09 6c 6f 67 53 74 72 65 61 6d 45 76 65 6e 74 2c 0a 09 6e 65 78 74 44 65 ecycle,..logStreamEvent,..nextDe
01e0 62 75 67 53 65 71 2c 0a 7d 20 66 72 6f 6d 20 22 2e 2e 2f 6c 6c 6d 2f 64 65 62 75 67 2d 6c 6f 67 bugSeq,.}.from."../llm/debug-log
0200 67 65 72 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 63 72 65 61 74 65 50 72 6f 76 69 64 65 72 ger.js";.import.{.createProvider
0220 2c 20 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 2c 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 ,.prefixToolName,.unprefixToolNa
0240 6d 65 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 6c 6c 6d 2f 70 72 6f 76 69 64 65 72 2e 6a 73 22 3b 0a me.}.from."../llm/provider.js";.
0260 69 6d 70 6f 72 74 20 7b 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 20 7d 20 66 72 6f 6d 20 22 2e 2e import.{.canonicalize.}.from."..
0280 2f 74 6f 6f 6c 73 2f 70 61 74 68 2d 75 74 69 6c 73 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 /tools/path-utils.js";.import.{.
02a0 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f createToolRegistry.}.from."../to
02c0 6f 6c 73 2f 72 65 67 69 73 74 72 79 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 6e 61 6c 79 ols/registry.js";.import.{.analy
02e0 7a 65 43 6f 6d 6d 61 6e 64 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f 6f 6c 73 2f 73 68 65 6c 6c zeCommand.}.from."../tools/shell
0300 2d 61 6e 61 6c 79 7a 65 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 70 70 6c 79 54 72 75 6e -analyze.js";.import.{.applyTrun
0320 63 61 74 69 6f 6e 2c 20 53 50 49 4c 4c 5f 52 4f 4f 54 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f cation,.SPILL_ROOT.}.from."../to
0340 6f 6c 73 2f 74 72 75 6e 63 61 74 65 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 74 79 70 65 20 7b 0a ols/truncate.js";.import.type.{.
0360 09 41 67 65 6e 74 43 6f 6e 66 69 67 2c 0a 09 41 67 65 6e 74 45 76 65 6e 74 2c 0a 09 41 67 65 6e .AgentConfig,..AgentEvent,..Agen
0380 74 53 74 61 74 75 73 2c 0a 09 43 68 61 74 4d 65 73 73 61 67 65 2c 0a 09 43 68 75 6e 6b 2c 0a 09 tStatus,..ChatMessage,..Chunk,..
03a0 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 52 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 QueueCallbacks,..ReasoningEffort
03c0 2c 0a 09 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 54 6f 6f 6c 52 65 73 75 6c 74 2c 0a 7d 20 66 72 6f 6d ,..ToolCall,..ToolResult,.}.from
03e0 20 22 2e 2e 2f 74 79 70 65 73 2f 69 6e 64 65 78 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 44 ."../types/index.js";.import.{.D
0400 45 46 41 55 4c 54 5f 52 45 41 53 4f 4e 49 4e 47 5f 45 46 46 4f 52 54 20 7d 20 66 72 6f 6d 20 22 EFAULT_REASONING_EFFORT.}.from."
0420 2e 2e 2f 74 79 70 65 73 2f 69 6e 64 65 78 2e 6a 73 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 62 75 ../types/index.js";../**..*.Rebu
0440 69 6c 64 20 41 49 20 53 44 4b 20 60 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 60 20 66 72 6f 6d ild.AI.SDK.`ModelMessage[]`.from
0460 20 6f 75 72 20 69 6e 74 65 72 6e 61 6c 20 60 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 60 2e 0a 20 .our.internal.`ChatMessage[]`...
0480 2a 0a 20 2a 20 53 74 72 69 70 20 72 75 6c 65 73 20 28 73 65 65 20 70 6c 61 6e 2d 63 68 75 6e 6b *..*.Strip.rules.(see.plan-chunk
04a0 2d 72 65 66 61 63 74 6f 72 2e 6d 64 29 3a 0a 20 2a 20 20 2d 20 60 72 6f 6c 65 3a 20 22 73 79 73 -refactor.md):..*..-.`role:."sys
04c0 74 65 6d 22 60 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 77 68 6f 6c 65 tem"`.messages.are.skipped.whole
04e0 73 61 6c 65 20 28 74 68 65 79 27 72 65 20 64 69 73 70 6c 61 79 2d 6f 6e 6c 79 0a 20 2a 20 20 20 sale.(they're.display-only..*...
0500 20 73 74 61 6e 64 61 6c 6f 6e 65 2d 73 79 73 74 65 6d 20 62 75 62 62 6c 65 73 20 74 68 61 74 20 .standalone-system.bubbles.that.
0520 65 78 69 73 74 20 6f 75 74 73 69 64 65 20 61 6e 79 20 6d 6f 64 65 6c 20 74 75 72 6e 29 2e 0a 20 exist.outside.any.model.turn)...
0540 2a 20 20 2d 20 60 65 72 72 6f 72 60 20 63 68 75 6e 6b 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 *..-.`error`.chunks.are.skipped.
0560 e2 80 94 20 74 68 65 20 74 75 72 6e 20 65 6e 64 65 64 3b 20 74 68 65 20 4c 4c 4d 20 64 6f 65 73 ....the.turn.ended;.the.LLM.does
0580 6e 27 74 20 6e 65 65 64 20 74 68 65 6d 2e 0a 20 2a 20 20 2d 20 60 73 79 73 74 65 6d 60 20 63 68 n't.need.them...*..-.`system`.ch
05a0 75 6e 6b 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 e2 80 94 20 64 69 73 70 6c 61 79 2d 6f 6e 6c unks.are.skipped.....display-onl
05c0 79 20 6e 6f 74 69 63 65 73 2e 0a 20 2a 20 20 2d 20 60 74 65 78 74 60 20 63 68 75 6e 6b 73 20 e2 y.notices...*..-.`text`.chunks..
05e0 86 92 20 60 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 20 7d 60 20 70 61 72 74 ...`{.type:."text",.text.}`.part
0600 73 2e 0a 20 2a 20 20 2d 20 60 74 68 69 6e 6b 69 6e 67 60 20 63 68 75 6e 6b 73 20 e2 86 92 20 60 s...*..-.`thinking`.chunks.....`
0620 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 20 74 65 78 74 2c 20 70 72 6f 76 69 {.type:."reasoning",.text,.provi
0640 64 65 72 4f 70 74 69 6f 6e 73 3f 20 7d 60 20 70 61 72 74 73 2e 0a 20 2a 20 20 20 20 54 68 65 20 derOptions?.}`.parts...*....The.
0660 60 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 60 20 63 61 72 72 69 65 73 20 74 68 65 20 41 6e `providerOptions`.carries.the.An
0680 74 68 72 6f 70 69 63 20 73 69 67 6e 61 74 75 72 65 20 62 6c 6f 62 20 28 69 66 20 70 72 65 73 65 thropic.signature.blob.(if.prese
06a0 6e 74 29 20 73 6f 0a 20 2a 20 20 20 20 41 6e 74 68 72 6f 70 69 63 20 63 61 6e 20 76 61 6c 69 64 nt).so..*....Anthropic.can.valid
06c0 61 74 65 20 65 78 74 65 6e 64 65 64 2d 74 68 69 6e 6b 69 6e 67 20 72 6f 75 6e 64 2d 74 72 69 70 ate.extended-thinking.round-trip
06e0 73 2e 20 4e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 0a 20 2a 20 20 20 20 72 65 61 73 6f 6e 69 6e 67 s..Non-Anthropic..*....reasoning
0700 20 68 61 73 20 6e 6f 20 6d 65 74 61 64 61 74 61 20 61 6e 64 20 69 73 20 73 65 6e 74 20 77 69 74 .has.no.metadata.and.is.sent.wit
0720 68 6f 75 74 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 61 63 63 65 70 74 65 64 0a 20 hout.providerOptions.(accepted..
0740 2a 20 20 20 20 62 79 20 41 6e 74 68 72 6f 70 69 63 20 e2 80 94 20 69 74 20 6a 75 73 74 20 77 6f *....by.Anthropic.....it.just.wo
0760 6e 27 74 20 76 65 72 69 66 79 20 61 20 6d 69 73 73 69 6e 67 20 73 69 67 6e 61 74 75 72 65 29 2e n't.verify.a.missing.signature).
0780 0a 20 2a 20 20 2d 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 20 e2 86 92 20 6f ..*..-.`tool-batch`.chunks.....o
07a0 6e 65 20 60 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7d 60 20 70 61 72 74 20 ne.`{.type:."tool-call".}`.part.
07c0 70 65 72 20 65 6e 74 72 79 0a 20 2a 20 20 20 20 69 6e 73 69 64 65 20 74 68 65 20 63 75 72 72 65 per.entry..*....inside.the.curre
07e0 6e 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 nt.assistant.message,.followed.b
0800 79 20 61 20 53 49 4e 47 4c 45 0a 20 2a 20 20 20 20 60 7b 20 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 y.a.SINGLE..*....`{.role:."tool"
0820 2c 20 63 6f 6e 74 65 6e 74 3a 20 5b 2e 2e 2e 61 6c 6c 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 ,.content:.[...all.tool-result.p
0840 61 72 74 73 5d 20 7d 60 20 6d 65 73 73 61 67 65 20 68 6f 6c 64 69 6e 67 0a 20 2a 20 20 20 20 65 arts].}`.message.holding..*....e
0860 76 65 72 79 20 65 6e 74 72 79 20 74 68 61 74 20 68 61 73 20 61 20 72 65 73 75 6c 74 2e 20 47 72 very.entry.that.has.a.result..Gr
0880 6f 75 70 69 6e 67 20 28 72 61 74 68 65 72 20 74 68 61 6e 20 6f 6e 65 20 6d 65 73 73 61 67 65 20 ouping.(rather.than.one.message.
08a0 70 65 72 0a 20 2a 20 20 20 20 72 65 73 75 6c 74 29 20 6b 65 65 70 73 20 41 6e 74 68 72 6f 70 69 per..*....result).keeps.Anthropi
08c0 63 20 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 6c 61 6e c.prompt-caching.breakpoints.lan
08e0 64 69 6e 67 20 6f 6e 20 74 68 65 0a 20 2a 20 20 20 20 61 73 73 69 73 74 61 6e 74 2f 74 6f 6f 6c ding.on.the..*....assistant/tool
0900 20 74 75 72 6e 20 62 6f 75 6e 64 61 72 79 3b 20 74 68 65 20 77 69 72 65 20 66 6f 72 6d 61 74 20 .turn.boundary;.the.wire.format.
0920 69 73 20 69 64 65 6e 74 69 63 61 6c 20 66 6f 72 20 62 6f 74 68 20 74 68 65 0a 20 2a 20 20 20 20 is.identical.for.both.the..*....
0940 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 Anthropic.and.OpenAI-compatible.
0960 62 61 63 6b 65 6e 64 73 2e 0a 20 2a 0a 20 2a 20 4d 69 78 65 64 2d 72 65 73 6f 6c 75 74 69 6f 6e backends...*..*.Mixed-resolution
0980 20 74 6f 6f 6c 20 62 61 74 63 68 65 73 20 28 73 6f 6d 65 20 65 6e 74 72 69 65 73 20 77 69 74 68 .tool.batches.(some.entries.with
09a0 20 60 72 65 73 75 6c 74 60 2c 20 73 6f 6d 65 20 77 69 74 68 6f 75 74 29 3a 0a 20 2a 20 77 65 20 .`result`,.some.without):..*.we.
09c0 65 6d 69 74 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 6f 6e 6c 79 20 66 6f 72 20 74 68 65 20 65 emit.tool-results.only.for.the.e
09e0 6e 74 72 69 65 73 20 74 68 61 74 20 68 61 76 65 20 74 68 65 6d 2e 20 49 6e 20 70 72 61 63 74 69 ntries.that.have.them..In.practi
0a00 63 65 0a 20 2a 20 74 68 65 20 61 67 65 6e 74 20 72 65 73 6f 6c 76 65 73 20 65 76 65 72 79 20 74 ce..*.the.agent.resolves.every.t
0a20 6f 6f 6c 20 63 61 6c 6c 20 69 6e 20 61 20 73 74 65 70 20 62 65 66 6f 72 65 20 6c 6f 6f 70 69 6e ool.call.in.a.step.before.loopin
0a40 67 20 62 61 63 6b 20 74 6f 20 74 68 65 0a 20 2a 20 4c 4c 4d 2c 20 73 6f 20 74 68 69 73 20 63 61 g.back.to.the..*.LLM,.so.this.ca
0a60 73 65 20 6f 6e 6c 79 20 61 72 69 73 65 73 20 6d 69 64 2d 73 74 65 70 20 28 77 68 65 72 65 20 74 se.only.arises.mid-step.(where.t
0a80 68 65 20 6d 65 73 73 61 67 65 20 68 61 73 6e 27 74 20 62 65 65 6e 0a 20 2a 20 72 6f 75 6e 64 2d he.message.hasn't.been..*.round-
0aa0 74 72 69 70 70 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 20 79 65 74 29 20 61 6e 64 20 69 73 20 62 tripped.to.the.LLM.yet).and.is.b
0ac0 65 6e 69 67 6e 2e 0a 20 2a 2f 0a 2f 2a 2a 0a 20 2a 20 4d 61 72 6b 65 72 20 75 73 65 64 20 74 6f enign...*/./**..*.Marker.used.to
0ae0 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 60 5b 55 53 45 52 20 .identify.the.start.of.a.`[USER.
0b00 49 4e 54 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 65 6d 62 65 64 64 65 64 0a 20 2a 20 69 6e INTERRUPT]`.block.embedded..*.in
0b20 20 61 20 74 6f 6f 6c 20 72 65 73 75 6c 74 2e 20 42 6f 74 68 20 74 68 65 20 61 67 65 6e 74 2d 6c .a.tool.result..Both.the.agent-l
0b40 65 76 65 6c 20 69 6e 6a 65 63 74 69 6f 6e 0a 20 2a 20 28 60 70 61 63 6b 61 67 65 73 2f 63 6f 72 evel.injection..*.(`packages/cor
0b60 65 2f 73 72 63 2f 61 67 65 6e 74 2f 61 67 65 6e 74 2e 74 73 60 29 20 61 6e 64 20 74 68 65 20 74 e/src/agent/agent.ts`).and.the.t
0b80 6f 6f 6c 2d 6c 65 76 65 6c 20 69 6e 6a 65 63 74 69 6f 6e 73 20 69 6e 0a 20 2a 20 60 72 75 6e 2d ool-level.injections.in..*.`run-
0ba0 73 68 65 6c 6c 60 2c 20 60 79 6f 75 74 75 62 65 2d 74 72 61 6e 73 63 72 69 62 65 60 2c 20 61 6e shell`,.`youtube-transcribe`,.an
0bc0 64 20 60 72 65 74 72 69 65 76 65 60 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 73 65 70 61 72 61 d.`retrieve`.use.the.same.separa
0be0 74 6f 72 0a 20 2a 20 28 60 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 29 20 tor..*.(`\n\n[USER.INTERRUPT]`).
0c00 62 65 66 6f 72 65 20 74 68 65 20 62 6f 69 6c 65 72 70 6c 61 74 65 2c 20 73 6f 20 61 20 73 69 6e before.the.boilerplate,.so.a.sin
0c20 67 6c 65 20 73 75 62 73 74 72 69 6e 67 0a 20 2a 20 73 65 61 72 63 68 20 73 75 66 66 69 63 65 73 gle.substring..*.search.suffices
0c40 20 66 6f 72 20 73 74 72 69 70 70 69 6e 67 2e 0a 20 2a 2f 0a 63 6f 6e 73 74 20 55 53 45 52 5f 49 .for.stripping...*/.const.USER_I
0c60 4e 54 45 52 52 55 50 54 5f 4d 41 52 4b 45 52 20 3d 20 22 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 NTERRUPT_MARKER.=."\n\n[USER.INT
0c80 45 52 52 55 50 54 5d 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 60 5b 55 ERRUPT]";../**..*.Remove.the.`[U
0ca0 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 28 61 6e 64 20 65 76 65 72 79 SER.INTERRUPT]`.block.(and.every
0cc0 74 68 69 6e 67 20 61 66 74 65 72 20 69 74 29 20 66 72 6f 6d 20 61 20 74 6f 6f 6c 0a 20 2a 20 72 thing.after.it).from.a.tool..*.r
0ce0 65 73 75 6c 74 20 73 74 72 69 6e 67 2e 20 55 73 65 64 20 77 68 65 6e 20 61 20 68 69 73 74 6f 72 esult.string..Used.when.a.histor
0d00 69 63 61 6c 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 73 20 62 65 69 6e 67 20 72 65 2d 73 65 72 ical.tool-result.is.being.re-ser
0d20 69 61 6c 69 7a 65 64 0a 20 2a 20 66 6f 72 20 74 68 65 20 4c 4c 4d 20 61 6e 64 20 74 68 65 20 6d ialized..*.for.the.LLM.and.the.m
0d40 6f 64 65 6c 20 68 61 73 20 61 6c 72 65 61 64 79 20 68 61 64 20 61 20 63 68 61 6e 63 65 20 74 6f odel.has.already.had.a.chance.to
0d60 20 61 64 64 72 65 73 73 20 74 68 61 74 0a 20 2a 20 69 6e 74 65 72 72 75 70 74 20 e2 80 94 20 6c .address.that..*.interrupt.....l
0d80 65 61 76 69 6e 67 20 74 68 65 20 69 6d 70 65 72 61 74 69 76 65 20 22 59 6f 75 20 4d 55 53 54 20 eaving.the.imperative."You.MUST.
0da0 61 64 64 72 65 73 73 20 74 68 65 73 65 22 20 74 65 78 74 20 69 6e 0a 20 2a 20 70 6c 61 63 65 20 address.these".text.in..*.place.
0dc0 63 61 75 73 65 73 20 74 68 65 20 6d 6f 64 65 6c 20 74 6f 20 72 65 2d 61 63 6b 6e 6f 77 6c 65 64 causes.the.model.to.re-acknowled
0de0 67 65 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 72 72 75 70 74 20 6f 6e 20 65 76 65 72 79 0a 20 ge.the.same.interrupt.on.every..
0e00 2a 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 69 6e 74 *.subsequent.step...*..*.The.int
0e20 65 72 72 75 70 74 20 62 6c 6f 63 6b 20 69 73 20 61 6c 77 61 79 73 20 61 70 70 65 6e 64 65 64 20 errupt.block.is.always.appended.
0e40 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 2c 20 73 to.the.end.of.the.tool.result,.s
0e60 6f 0a 20 2a 20 77 65 20 73 74 72 69 70 20 66 72 6f 6d 20 74 68 65 20 6d 61 72 6b 65 72 20 74 6f o..*.we.strip.from.the.marker.to
0e80 20 65 6e 64 2d 6f 66 2d 73 74 72 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 73 74 72 .end-of-string...*/.function.str
0ea0 69 70 55 73 65 72 49 6e 74 65 72 72 75 70 74 42 6c 6f 63 6b 28 72 65 73 75 6c 74 3a 20 73 74 72 ipUserInterruptBlock(result:.str
0ec0 69 6e 67 29 3a 20 73 74 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 74 20 69 64 78 20 3d 20 72 65 73 75 ing):.string.{..const.idx.=.resu
0ee0 6c 74 2e 69 6e 64 65 78 4f 66 28 55 53 45 52 5f 49 4e 54 45 52 52 55 50 54 5f 4d 41 52 4b 45 52 lt.indexOf(USER_INTERRUPT_MARKER
0f00 29 3b 0a 09 69 66 20 28 69 64 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 72 65 73 75 6c );..if.(idx.===.-1).return.resul
0f20 74 3b 0a 09 72 65 74 75 72 6e 20 72 65 73 75 6c 74 2e 73 6c 69 63 65 28 30 2c 20 69 64 78 29 3b t;..return.result.slice(0,.idx);
0f40 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 53 74 61 62 6c 65 20 6b 65 79 20 66 6f 72 20 63 6f 6c 6c 61 70 .}../**..*.Stable.key.for.collap
0f60 73 69 6e 67 20 62 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 69 sing.byte-identical.tool.calls.i
0f80 6e 73 69 64 65 20 61 20 73 69 6e 67 6c 65 20 62 61 74 63 68 2e 0a 20 2a 0a 20 2a 20 43 6c 61 75 nside.a.single.batch...*..*.Clau
0fa0 64 65 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 64 65 67 65 6e 65 72 61 74 65 73 20 69 6e 74 6f de.occasionally.degenerates.into
0fc0 20 61 20 67 65 6e 65 72 61 74 69 6f 6e 20 6c 6f 6f 70 20 61 6e 64 20 65 6d 69 74 73 20 74 68 65 .a.generation.loop.and.emits.the
0fe0 20 73 61 6d 65 0a 20 2a 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 73 61 6d 65 20 6e 61 6d 65 20 2b 20 .same..*.tool.call.(same.name.+.
1000 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 29 20 64 6f 7a 65 6e 73 20 e2 80 94 20 65 76 65 6e 20 same.arguments).dozens.....even.
1020 31 35 30 2b 20 e2 80 94 20 74 69 6d 65 73 20 69 6e 20 6f 6e 65 0a 20 2a 20 70 61 72 61 6c 6c 65 150+.....times.in.one..*.paralle
1040 6c 20 62 61 74 63 68 20 28 73 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 63 61 l.batch.(see.tool-runner-duplica
1060 74 69 6f 6e 2d 69 6e 63 69 64 65 6e 74 2e 6d 64 29 2e 20 45 61 63 68 20 63 6f 70 79 20 63 61 72 tion-incident.md)..Each.copy.car
1080 72 69 65 73 0a 20 2a 20 69 74 73 20 6f 77 6e 20 75 6e 69 71 75 65 20 60 74 6f 6f 6c 43 61 6c 6c ries..*.its.own.unique.`toolCall
10a0 49 64 60 2c 20 73 6f 20 41 6e 74 68 72 6f 70 69 63 20 73 74 69 6c 6c 20 72 65 71 75 69 72 65 73 Id`,.so.Anthropic.still.requires
10c0 20 61 20 60 74 6f 6f 6c 5f 72 65 73 75 6c 74 60 20 66 6f 72 0a 20 2a 20 65 76 65 72 79 20 6f 6e .a.`tool_result`.for..*.every.on
10e0 65 2c 20 62 75 74 20 72 65 2d 65 78 65 63 75 74 69 6e 67 20 69 64 65 6e 74 69 63 61 6c 20 69 64 e,.but.re-executing.identical.id
1100 65 6d 70 6f 74 65 6e 74 20 72 65 61 64 73 20 77 61 73 74 65 73 20 72 65 61 6c 20 77 61 6c 6c 2d empotent.reads.wastes.real.wall-
1120 63 6c 6f 63 6b 0a 20 2a 20 74 69 6d 65 20 61 6e 64 20 6d 6f 6e 65 79 20 61 6e 64 20 66 6c 6f 6f clock..*.time.and.money.and.floo
1140 64 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 64 75 6e 64 61 6e 74 20 6f 75 ds.the.context.with.redundant.ou
1160 74 70 75 74 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 69 6e 67 20 61 20 6e 6f 6e 2d 6e 75 6c 6c tput...*..*.Returning.a.non-null
1180 20 6b 65 79 20 68 65 72 65 20 6c 65 74 73 20 74 68 65 20 65 78 65 63 75 74 6f 72 20 72 75 6e 20 .key.here.lets.the.executor.run.
11a0 74 68 65 20 46 49 52 53 54 20 6f 63 63 75 72 72 65 6e 63 65 20 61 6e 64 0a 20 2a 20 72 65 75 73 the.FIRST.occurrence.and..*.reus
11c0 65 20 69 74 73 20 72 65 73 75 6c 74 20 66 6f 72 20 65 76 65 72 79 20 73 75 62 73 65 71 75 65 6e e.its.result.for.every.subsequen
11e0 74 20 69 64 65 6e 74 69 63 61 6c 20 63 61 6c 6c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 62 61 74 t.identical.call.in.the.same.bat
1200 63 68 2e 20 54 68 65 0a 20 2a 20 6b 65 79 20 72 65 6c 69 65 73 20 6f 6e 20 60 4a 53 4f 4e 2e 73 ch..The..*.key.relies.on.`JSON.s
1220 74 72 69 6e 67 69 66 79 60 20 70 72 65 73 65 72 76 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 6f 72 tringify`.preserving.argument.or
1240 64 65 72 20 e2 80 94 20 74 77 6f 20 69 64 65 6e 74 69 63 61 6c 0a 20 2a 20 67 65 6e 65 72 61 74 der.....two.identical..*.generat
1260 69 6f 6e 73 20 73 65 72 69 61 6c 69 7a 65 20 69 64 65 6e 74 69 63 61 6c 6c 79 20 e2 80 94 20 77 ions.serialize.identically.....w
1280 68 69 63 68 20 63 6f 76 65 72 73 20 74 68 65 20 6f 62 73 65 72 76 65 64 20 66 61 69 6c 75 72 65 hich.covers.the.observed.failure
12a0 20 6d 6f 64 65 2e 0a 20 2a 20 49 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 63 61 6e 27 74 .mode...*.If.the.arguments.can't
12c0 20 62 65 20 73 65 72 69 61 6c 69 7a 65 64 20 77 65 20 72 65 74 75 72 6e 20 60 6e 75 6c 6c 60 2c .be.serialized.we.return.`null`,
12e0 20 77 68 69 63 68 20 64 69 73 61 62 6c 65 73 20 64 65 64 75 70 0a 20 2a 20 66 6f 72 20 74 68 61 .which.disables.dedup..*.for.tha
1300 74 20 63 61 6c 6c 20 28 69 74 20 61 6c 77 61 79 73 20 65 78 65 63 75 74 65 73 29 2e 0a 20 2a 2f t.call.(it.always.executes)...*/
1320 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 6f 6c 44 65 64 75 70 4b 65 79 28 6e 61 6d 65 3a 20 73 74 72 .function.toolDedupKey(name:.str
1340 69 6e 67 2c 20 61 72 67 73 3a 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 ing,.args:.Record<string,.unknow
1360 6e 3e 29 3a 20 73 74 72 69 6e 67 20 7c 20 6e 75 6c 6c 20 7b 0a 09 74 72 79 20 7b 0a 09 09 72 65 n>):.string.|.null.{..try.{...re
1380 74 75 72 6e 20 60 24 7b 6e 61 6d 65 7d 00 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 61 turn.`${name}.${JSON.stringify(a
13a0 72 67 73 20 3f 3f 20 7b 7d 29 7d 60 3b 0a 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 72 65 74 75 72 rgs.??.{})}`;..}.catch.{...retur
13c0 6e 20 6e 75 6c 6c 3b 0a 09 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 4d 6f 64 65 6c 4d 65 n.null;..}.}..function.toModelMe
13e0 73 73 61 67 65 73 28 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 2c 20 ssages(messages:.ChatMessage[],.
1400 75 73 65 54 6f 6f 6c 50 72 65 66 69 78 3f 3a 20 62 6f 6f 6c 65 61 6e 29 3a 20 4d 6f 64 65 6c 4d useToolPrefix?:.boolean):.ModelM
1420 65 73 73 61 67 65 5b 5d 20 7b 0a 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 3a 20 4d 6f 64 65 6c 4d essage[].{..const.result:.ModelM
1440 65 73 73 61 67 65 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 2f 2f 20 41 20 60 5b 55 53 45 52 20 49 4e 54 essage[].=.[];...//.A.`[USER.INT
1460 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 69 6e 20 61 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 ERRUPT]`.block.in.a.tool-result.
1480 69 73 20 22 66 72 65 73 68 22 20 e2 80 94 20 69 2e 65 2e 2c 20 74 68 65 0a 09 2f 2f 20 6d 6f 64 is."fresh".....i.e.,.the..//.mod
14a0 65 6c 20 68 61 73 20 6e 6f 74 20 79 65 74 20 73 65 65 6e 20 61 6e 64 20 72 65 73 70 6f 6e 64 65 el.has.not.yet.seen.and.responde
14c0 64 20 74 6f 20 69 74 20 e2 80 94 20 6f 6e 6c 79 20 77 68 65 6e 20 41 4c 4c 20 6f 66 20 74 68 65 d.to.it.....only.when.ALL.of.the
14e0 73 65 0a 09 2f 2f 20 68 6f 6c 64 3a 0a 09 2f 2f 20 20 20 31 2e 20 54 68 65 20 74 6f 6f 6c 2d 62 se..//.hold:..//...1..The.tool-b
1500 61 74 63 68 20 69 73 20 69 6e 20 74 68 65 20 76 65 72 79 20 6c 61 73 74 20 6d 65 73 73 61 67 65 atch.is.in.the.very.last.message
1520 20 6f 66 20 74 68 65 20 68 69 73 74 6f 72 79 2e 0a 09 2f 2f 20 20 20 32 2e 20 54 68 61 74 20 6d .of.the.history...//...2..That.m
1540 65 73 73 61 67 65 20 69 73 20 61 6e 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 28 essage.is.an.assistant.message.(
1560 61 20 66 6f 6c 6c 6f 77 2d 75 70 20 75 73 65 72 20 6d 65 73 73 61 67 65 0a 09 2f 2f 20 20 20 20 a.follow-up.user.message..//....
1580 20 20 6d 65 61 6e 73 20 74 68 65 20 75 73 65 72 20 6d 6f 76 65 64 20 6f 6e 3b 20 74 68 65 20 69 ..means.the.user.moved.on;.the.i
15a0 6e 74 65 72 72 75 70 74 20 77 61 73 20 61 64 64 72 65 73 73 65 64 29 2e 0a 09 2f 2f 20 20 20 33 nterrupt.was.addressed)...//...3
15c0 2e 20 54 68 65 20 74 6f 6f 6c 2d 62 61 74 63 68 20 69 73 20 74 68 65 20 4c 41 53 54 20 63 68 75 ..The.tool-batch.is.the.LAST.chu
15e0 6e 6b 20 69 6e 20 74 68 61 74 20 6d 65 73 73 61 67 65 20 28 61 6e 79 20 6c 61 74 65 72 0a 09 2f nk.in.that.message.(any.later../
1600 2f 20 20 20 20 20 20 74 65 78 74 2f 74 68 69 6e 6b 69 6e 67 2f 74 6f 6f 6c 2d 62 61 74 63 68 20 /......text/thinking/tool-batch.
1620 69 6e 20 74 68 65 20 73 61 6d 65 20 6d 65 73 73 61 67 65 20 72 65 70 72 65 73 65 6e 74 73 20 74 in.the.same.message.represents.t
1640 68 65 0a 09 2f 2f 20 20 20 20 20 20 6d 6f 64 65 6c 27 73 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 he..//......model's.response.to.
1660 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 29 2e 0a 09 2f 2f 0a 09 2f 2f 20 41 6c 6c 20 6f the.tool.results)...//..//.All.o
1680 74 68 65 72 20 69 6e 74 65 72 72 75 70 74 73 20 67 65 74 20 73 74 72 69 70 70 65 64 20 66 72 6f ther.interrupts.get.stripped.fro
16a0 6d 20 68 69 73 74 6f 72 79 20 62 65 63 61 75 73 65 20 74 68 65 20 69 6d 70 65 72 61 74 69 76 65 m.history.because.the.imperative
16c0 0a 09 2f 2f 20 22 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 74 68 65 73 65 22 20 6f 74 ..//."You.MUST.address.these".ot
16e0 68 65 72 77 69 73 65 20 67 65 74 73 20 72 65 2d 65 76 61 6c 75 61 74 65 64 20 61 73 20 61 20 66 herwise.gets.re-evaluated.as.a.f
1700 72 65 73 68 0a 09 2f 2f 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6f 6e 20 65 76 65 72 79 20 73 75 resh..//.instruction.on.every.su
1720 62 73 65 71 75 65 6e 74 20 4c 4c 4d 20 73 74 65 70 2e 0a 09 6c 65 74 20 66 72 65 73 68 65 73 74 bsequent.LLM.step...let.freshest
1740 54 6f 6f 6c 42 61 74 63 68 4d 73 67 49 64 78 20 3d 20 2d 31 3b 0a 09 6c 65 74 20 66 72 65 73 68 ToolBatchMsgIdx.=.-1;..let.fresh
1760 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 20 3d 20 2d 31 3b 0a 09 63 6f 6e 73 estToolBatchChunkIdx.=.-1;..cons
1780 74 20 6c 61 73 74 4d 73 67 49 64 78 20 3d 20 6d 65 73 73 61 67 65 73 2e 6c 65 6e 67 74 68 20 2d t.lastMsgIdx.=.messages.length.-
17a0 20 31 3b 0a 09 63 6f 6e 73 74 20 6c 61 73 74 4d 73 67 20 3d 20 6d 65 73 73 61 67 65 73 5b 6c 61 .1;..const.lastMsg.=.messages[la
17c0 73 74 4d 73 67 49 64 78 5d 3b 0a 09 69 66 20 28 6c 61 73 74 4d 73 67 20 26 26 20 6c 61 73 74 4d stMsgIdx];..if.(lastMsg.&&.lastM
17e0 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 26 26 20 6c 61 73 74 4d sg.role.===."assistant".&&.lastM
1800 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 63 6f 6e 73 74 20 sg.chunks.length.>.0).{...const.
1820 6c 61 73 74 43 68 75 6e 6b 49 64 78 20 3d 20 6c 61 73 74 4d 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 lastChunkIdx.=.lastMsg.chunks.le
1840 6e 67 74 68 20 2d 20 31 3b 0a 09 09 63 6f 6e 73 74 20 6c 61 73 74 43 68 75 6e 6b 20 3d 20 6c 61 ngth.-.1;...const.lastChunk.=.la
1860 73 74 4d 73 67 2e 63 68 75 6e 6b 73 5b 6c 61 73 74 43 68 75 6e 6b 49 64 78 5d 3b 0a 09 09 69 66 stMsg.chunks[lastChunkIdx];...if
1880 20 28 6c 61 73 74 43 68 75 6e 6b 20 26 26 20 6c 61 73 74 43 68 75 6e 6b 2e 74 79 70 65 20 3d 3d .(lastChunk.&&.lastChunk.type.==
18a0 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 29 20 7b 0a 09 09 09 66 72 65 73 68 65 73 74 54 6f 6f =."tool-batch").{....freshestToo
18c0 6c 42 61 74 63 68 4d 73 67 49 64 78 20 3d 20 6c 61 73 74 4d 73 67 49 64 78 3b 0a 09 09 09 66 72 lBatchMsgIdx.=.lastMsgIdx;....fr
18e0 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 20 3d 20 6c 61 73 74 43 68 eshestToolBatchChunkIdx.=.lastCh
1900 75 6e 6b 49 64 78 3b 0a 09 09 7d 0a 09 7d 0a 0a 09 66 6f 72 20 28 6c 65 74 20 6d 73 67 49 64 78 unkIdx;...}..}...for.(let.msgIdx
1920 20 3d 20 30 3b 20 6d 73 67 49 64 78 20 3c 20 6d 65 73 73 61 67 65 73 2e 6c 65 6e 67 74 68 3b 20 .=.0;.msgIdx.<.messages.length;.
1940 6d 73 67 49 64 78 2b 2b 29 20 7b 0a 09 09 63 6f 6e 73 74 20 6d 73 67 20 3d 20 6d 65 73 73 61 67 msgIdx++).{...const.msg.=.messag
1960 65 73 5b 6d 73 67 49 64 78 5d 3b 0a 09 09 69 66 20 28 21 6d 73 67 20 7c 7c 20 6d 73 67 2e 72 6f es[msgIdx];...if.(!msg.||.msg.ro
1980 6c 65 20 3d 3d 3d 20 22 73 79 73 74 65 6d 22 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 09 69 66 le.===."system").continue;....if
19a0 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 75 73 65 72 22 29 20 7b 0a 09 09 09 2f 2f 20 55 .(msg.role.===."user").{....//.U
19c0 73 65 72 20 6d 65 73 73 61 67 65 73 20 69 6e 20 6f 75 72 20 6d 6f 64 65 6c 20 63 61 6e 20 69 6e ser.messages.in.our.model.can.in
19e0 20 74 68 65 6f 72 79 20 63 6f 6e 74 61 69 6e 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b 73 2c .theory.contain.non-text.chunks,
1a00 0a 09 09 09 2f 2f 20 62 75 74 20 69 6e 20 70 72 61 63 74 69 63 65 20 74 68 65 20 55 49 20 6f 6e ....//.but.in.practice.the.UI.on
1a20 6c 79 20 70 72 6f 64 75 63 65 73 20 74 65 78 74 2e 20 43 6f 6e 63 61 74 65 6e 61 74 65 20 61 6e ly.produces.text..Concatenate.an
1a40 79 20 74 65 78 74 0a 09 09 09 2f 2f 20 63 68 75 6e 6b 73 3b 20 69 67 6e 6f 72 65 20 61 6e 79 74 y.text....//.chunks;.ignore.anyt
1a60 68 69 6e 67 20 65 6c 73 65 2e 0a 09 09 09 63 6f 6e 73 74 20 74 65 78 74 20 3d 20 6d 73 67 2e 63 hing.else.....const.text.=.msg.c
1a80 68 75 6e 6b 73 0a 09 09 09 09 2e 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 78 74 72 hunks......filter((c):.c.is.Extr
1aa0 61 63 74 3c 43 68 75 6e 6b 2c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 3d 3e 20 act<Chunk,.{.type:."text".}>.=>.
1ac0 63 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 29 0a 09 09 09 09 2e 6d 61 70 28 28 63 29 20 c.type.===."text")......map((c).
1ae0 3d 3e 20 63 2e 74 65 78 74 29 0a 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 09 72 65 73 =>.c.text)......join("");....res
1b00 75 6c 74 2e 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 6f 6e 74 65 6e 74 ult.push({.role:."user",.content
1b20 3a 20 74 65 78 74 20 7d 29 3b 0a 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 7d 0a 0a 09 09 2f :.text.});....continue;...}..../
1b40 2f 20 72 6f 6c 65 20 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 0a 09 09 2f 2f 0a 09 09 2f 2f /.role.===."assistant"...//...//
1b60 20 53 65 67 6d 65 6e 74 20 74 68 65 20 74 75 72 6e 27 73 20 63 68 75 6e 6b 73 20 69 6e 74 6f 20 .Segment.the.turn's.chunks.into.
1b80 70 65 72 2d 4c 4c 4d 2d 73 74 65 70 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c 5d 60 per-LLM-step.`[assistant,.tool]`
1ba0 0a 09 09 2f 2f 20 6d 65 73 73 61 67 65 20 70 61 69 72 73 2c 20 73 70 6c 69 74 74 69 6e 67 20 61 ...//.message.pairs,.splitting.a
1bc0 74 20 65 61 63 68 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 62 6f 75 6e 64 61 72 79 2e 20 45 76 t.each.`tool-batch`.boundary..Ev
1be0 65 72 79 0a 09 09 2f 2f 20 72 6f 75 6e 64 2d 74 72 69 70 20 65 6d 69 74 73 20 74 65 78 74 2f 74 ery...//.round-trip.emits.text/t
1c00 68 69 6e 6b 69 6e 67 20 74 68 65 6e 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 6f 6e 65 20 74 6f hinking.then.(optionally).one.to
1c20 6f 6c 2d 62 61 74 63 68 2c 20 73 6f 0a 09 09 2f 2f 20 61 20 74 6f 6f 6c 2d 62 61 74 63 68 20 69 ol-batch,.so...//.a.tool-batch.i
1c40 73 20 65 78 61 63 74 6c 79 20 61 20 73 74 65 70 20 62 6f 75 6e 64 61 72 79 2e 0a 09 09 2f 2f 0a s.exactly.a.step.boundary....//.
1c60 09 09 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 63 68 65 20 66 69 78 3a 20 65 61 63 68 ..//.This.is.the.cache.fix:.each
1c80 20 70 72 69 6f 72 20 73 74 65 70 27 73 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 62 75 69 6c 74 .prior.step's.messages.are.built
1ca0 20 66 72 6f 6d 0a 09 09 2f 2f 20 69 6d 6d 75 74 61 62 6c 65 20 63 68 75 6e 6b 73 20 61 74 20 66 .from...//.immutable.chunks.at.f
1cc0 69 78 65 64 20 70 6f 73 69 74 69 6f 6e 73 2c 20 73 6f 20 74 68 65 79 20 73 65 72 69 61 6c 69 7a ixed.positions,.so.they.serializ
1ce0 65 0a 09 09 2f 2f 20 62 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 6c 79 20 6f 6e 20 65 76 65 72 79 e...//.byte-identically.on.every
1d00 20 6c 61 74 65 72 20 72 65 71 75 65 73 74 20 e2 86 92 20 73 74 61 62 6c 65 20 41 6e 74 68 72 6f .later.request.....stable.Anthro
1d20 70 69 63 20 70 72 6f 6d 70 74 0a 09 09 2f 2f 20 70 72 65 66 69 78 2e 20 43 6f 6c 6c 61 70 73 69 pic.prompt...//.prefix..Collapsi
1d40 6e 67 20 61 6c 6c 20 73 74 65 70 73 20 69 6e 74 6f 20 4f 4e 45 20 61 73 73 69 73 74 61 6e 74 20 ng.all.steps.into.ONE.assistant.
1d60 2b 20 4f 4e 45 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 0a 09 09 2f 2f 20 28 61 6e 64 20 74 68 65 +.ONE.tool.message...//.(and.the
1d80 6e 20 6c 65 74 74 69 6e 67 20 74 68 65 20 73 74 72 75 63 74 75 72 61 6c 2d 6e 6f 72 6d 61 6c 69 n.letting.the.structural-normali
1da0 73 61 74 69 6f 6e 20 70 61 73 73 20 72 65 2d 62 75 63 6b 65 74 20 74 68 65 0a 09 09 2f 2f 20 74 sation.pass.re-bucket.the...//.t
1dc0 6f 6f 6c 5f 75 73 65 2f 74 6f 6f 6c 5f 72 65 73 75 6c 74 20 62 6c 6f 63 6b 73 29 20 72 65 73 68 ool_use/tool_result.blocks).resh
1de0 75 66 66 6c 65 64 20 65 61 72 6c 69 65 72 20 73 74 65 70 73 27 20 70 6f 73 69 74 69 6f 6e 73 20 uffled.earlier.steps'.positions.
1e00 6f 6e 0a 09 09 2f 2f 20 65 76 65 72 79 20 73 74 65 70 20 61 6e 64 20 73 68 61 74 74 65 72 65 64 on...//.every.step.and.shattered
1e20 20 74 68 65 20 63 61 63 68 65 20 28 73 65 65 20 63 61 63 68 65 2d 6d 69 73 73 2d 72 65 70 6f 72 .the.cache.(see.cache-miss-repor
1e40 74 2e 6d 64 29 2e 0a 09 09 74 79 70 65 20 41 73 73 69 73 74 61 6e 74 50 61 72 74 20 3d 0a 09 09 t.md)....type.AssistantPart.=...
1e60 09 7c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 3b 20 74 65 78 74 3a 20 73 74 72 69 6e 67 20 .|.{.type:."text";.text:.string.
1e80 7d 0a 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 3b 20 74 65 78 74 }....|.{.type:."reasoning";.text
1ea0 3a 20 73 74 72 69 6e 67 3b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3f 3a 20 50 72 6f 76 :.string;.providerOptions?:.Prov
1ec0 69 64 65 72 4f 70 74 69 6f 6e 73 20 7d 0a 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c iderOptions.}....|.{.type:."tool
1ee0 2d 63 61 6c 6c 22 3b 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 20 74 6f 6f 6c -call";.toolCallId:.string;.tool
1f00 4e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 69 6e 70 75 74 3a 20 75 6e 6b 6e 6f 77 6e 20 7d 3b 0a Name:.string;.input:.unknown.};.
1f20 09 09 74 79 70 65 20 53 74 65 70 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 74 6f 6f 6c 43 61 6c ..type.StepResult.=.{....toolCal
1f40 6c 49 64 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 73 74 72 69 6e 67 lId:.string;....toolName:.string
1f60 3b 0a 09 09 09 72 65 73 75 6c 74 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 69 73 45 72 72 6f 72 3f ;....result:.string;....isError?
1f80 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 09 09 7d 3b 0a 0a 09 09 6c 65 74 20 70 61 72 74 73 3a 20 41 73 :.boolean;...};....let.parts:.As
1fa0 73 69 73 74 61 6e 74 50 61 72 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 6c 65 74 20 73 74 65 70 52 65 sistantPart[].=.[];...let.stepRe
1fc0 73 75 6c 74 73 3a 20 53 74 65 70 52 65 73 75 6c 74 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 63 6f 6e sults:.StepResult[].=.[];....con
1fe0 73 74 20 66 6c 75 73 68 53 74 65 70 20 3d 20 28 29 3a 20 76 6f 69 64 20 3d 3e 20 7b 0a 09 09 09 st.flushStep.=.():.void.=>.{....
2000 69 66 20 28 70 61 72 74 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 72 65 73 75 if.(parts.length.>.0).{.....resu
2020 6c 74 2e 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 61 73 73 69 73 74 61 6e 74 22 2c 20 63 6f 6e lt.push({.role:."assistant",.con
2040 74 65 6e 74 3a 20 70 61 72 74 73 20 7d 29 3b 0a 09 09 09 7d 0a 09 09 09 2f 2f 20 4f 6e 65 20 67 tent:.parts.});....}....//.One.g
2060 72 6f 75 70 65 64 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 20 70 65 rouped.`role:."tool"`.message.pe
2080 72 20 73 74 65 70 20 68 6f 6c 64 73 20 74 68 61 74 20 73 74 65 70 27 73 0a 09 09 09 2f 2f 20 72 r.step.holds.that.step's....//.r
20a0 65 73 75 6c 74 73 20 e2 80 94 20 60 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e esults.....`applyAnthropicCachin
20c0 67 60 20 74 68 65 6e 20 6d 61 72 6b 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 0a 09 09 09 2f 2f g`.then.marks.the.last.two....//
20e0 20 6e 6f 6e 2d 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 20 61 73 20 60 5b 61 73 73 69 73 74 .non-system.messages.as.`[assist
2100 61 6e 74 28 73 74 65 70 29 2c 20 74 6f 6f 6c 28 73 74 65 70 29 5d 60 2c 20 74 68 65 0a 09 09 09 ant(step),.tool(step)]`,.the....
2120 2f 2f 20 63 6f 72 72 65 63 74 20 72 6f 6c 6c 69 6e 67 2d 62 72 65 61 6b 70 6f 69 6e 74 20 70 6c //.correct.rolling-breakpoint.pl
2140 61 63 65 6d 65 6e 74 2e 0a 09 09 09 69 66 20 28 73 74 65 70 52 65 73 75 6c 74 73 2e 6c 65 6e 67 acement.....if.(stepResults.leng
2160 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 2e 70 75 73 68 28 7b 0a 09 09 09 09 th.>.0).{.....result.push({.....
2180 09 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 2c 0a 09 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 73 74 65 .role:."tool",......content:.ste
21a0 70 52 65 73 75 6c 74 73 2e 6d 61 70 28 28 74 72 29 20 3d 3e 20 28 7b 0a 09 09 09 09 09 09 74 79 pResults.map((tr).=>.({.......ty
21c0 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 20 61 73 20 63 6f 6e 73 74 2c 0a 09 09 09 09 pe:."tool-result".as.const,.....
21e0 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 72 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 ..toolCallId:.tr.toolCallId,....
2200 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 72 2e 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 ...toolName:.tr.toolName,.......
2220 2f 2f 20 76 36 3a 20 60 6f 75 74 70 75 74 60 20 28 54 6f 6f 6c 52 65 73 75 6c 74 4f 75 74 70 75 //.v6:.`output`.(ToolResultOutpu
2240 74 29 20 72 65 70 6c 61 63 65 73 20 76 34 27 73 20 72 61 77 20 60 72 65 73 75 6c 74 60 0a 09 09 t).replaces.v4's.raw.`result`...
2260 09 09 09 09 6f 75 74 70 75 74 3a 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 61 73 20 63 6f ....output:.{.type:."text".as.co
2280 6e 73 74 2c 20 76 61 6c 75 65 3a 20 74 72 2e 72 65 73 75 6c 74 20 7d 2c 0a 09 09 09 09 09 09 2e nst,.value:.tr.result.},........
22a0 2e 2e 28 74 72 2e 69 73 45 72 72 6f 72 20 3f 20 7b 20 69 73 45 72 72 6f 72 3a 20 74 72 75 65 20 ..(tr.isError.?.{.isError:.true.
22c0 7d 20 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 29 2c 0a 09 09 09 09 7d 29 3b 0a 09 09 09 7d 0a }.:.{}),......})),.....});....}.
22e0 09 09 09 70 61 72 74 73 20 3d 20 5b 5d 3b 0a 09 09 09 73 74 65 70 52 65 73 75 6c 74 73 20 3d 20 ...parts.=.[];....stepResults.=.
2300 5b 5d 3b 0a 09 09 7d 3b 0a 0a 09 09 66 6f 72 20 28 6c 65 74 20 63 68 75 6e 6b 49 64 78 20 3d 20 [];...};....for.(let.chunkIdx.=.
2320 30 3b 20 63 68 75 6e 6b 49 64 78 20 3c 20 6d 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 6e 67 74 68 3b 0;.chunkIdx.<.msg.chunks.length;
2340 20 63 68 75 6e 6b 49 64 78 2b 2b 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 68 75 6e 6b 20 3d 20 .chunkIdx++).{....const.chunk.=.
2360 6d 73 67 2e 63 68 75 6e 6b 73 5b 63 68 75 6e 6b 49 64 78 5d 3b 0a 09 09 09 69 66 20 28 21 63 68 msg.chunks[chunkIdx];....if.(!ch
2380 75 6e 6b 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 73 77 69 74 63 68 20 28 63 68 75 6e 6b 2e unk).continue;....switch.(chunk.
23a0 74 79 70 65 29 20 7b 0a 09 09 09 09 63 61 73 65 20 22 74 65 78 74 22 3a 0a 09 09 09 09 09 70 61 type).{.....case."text":......pa
23c0 72 74 73 2e 70 75 73 68 28 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 63 rts.push({.type:."text",.text:.c
23e0 68 75 6e 6b 2e 74 65 78 74 20 7d 29 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 63 61 hunk.text.});......break;.....ca
2400 73 65 20 22 74 68 69 6e 6b 69 6e 67 22 3a 0a 09 09 09 09 09 2f 2f 20 76 36 3a 20 63 61 72 72 79 se."thinking":......//.v6:.carry
2420 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 41 6e 74 68 72 6f 70 69 63 20 73 69 67 6e .providerOptions.(Anthropic.sign
2440 61 74 75 72 65 20 62 6c 6f 62 29 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 2f 2f 20 ature.blob).if.present.......//.
2460 4e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 20 72 65 61 73 6f 6e 69 6e 67 20 68 61 73 20 6e 6f 20 6d Non-Anthropic.reasoning.has.no.m
2480 65 74 61 64 61 74 61 20 e2 86 92 20 73 65 6e 64 20 77 69 74 68 6f 75 74 20 70 72 6f 76 69 64 65 etadata.....send.without.provide
24a0 72 4f 70 74 69 6f 6e 73 0a 09 09 09 09 09 2f 2f 20 28 41 6e 74 68 72 6f 70 69 63 20 61 63 63 65 rOptions......//.(Anthropic.acce
24c0 70 74 73 20 69 74 3b 20 74 68 65 20 72 6f 75 6e 64 2d 74 72 69 70 20 6a 75 73 74 20 77 6f 6e 27 pts.it;.the.round-trip.just.won'
24e0 74 20 63 61 72 72 79 20 61 20 73 69 67 6e 61 74 75 72 65 29 2e 0a 09 09 09 09 09 70 61 72 74 73 t.carry.a.signature).......parts
2500 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c .push({.......type:."reasoning",
2520 0a 09 09 09 09 09 09 74 65 78 74 3a 20 63 68 75 6e 6b 2e 74 65 78 74 2c 0a 09 09 09 09 09 09 2e .......text:.chunk.text,........
2540 2e 2e 28 63 68 75 6e 6b 2e 6d 65 74 61 64 61 74 61 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 0a ..(chunk.metadata.!==.undefined.
2560 09 09 09 09 09 09 09 3f 20 7b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 63 68 75 6e .......?.{.providerOptions:.chun
2580 6b 2e 6d 65 74 61 64 61 74 61 20 61 73 20 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 7d 0a k.metadata.as.ProviderOptions.}.
25a0 09 09 09 09 09 09 09 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 62 72 65 61 .......:.{}),......});......brea
25c0 6b 3b 0a 09 09 09 09 63 61 73 65 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 3a 20 7b 0a 09 09 09 09 k;.....case."tool-batch":.{.....
25e0 09 2f 2f 20 53 74 72 69 70 20 73 74 61 6c 65 20 60 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 .//.Strip.stale.`[USER.INTERRUPT
2600 5d 60 20 62 6c 6f 63 6b 73 20 66 72 6f 6d 20 65 76 65 72 79 0a 09 09 09 09 09 2f 2f 20 74 6f 6f ]`.blocks.from.every......//.too
2620 6c 2d 62 61 74 63 68 20 65 78 63 65 70 74 20 74 68 65 20 66 72 65 73 68 65 73 74 20 6f 6e 65 20 l-batch.except.the.freshest.one.
2640 28 6d 6f 73 74 20 72 65 63 65 6e 74 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 62 61 74 63 68 20 (most.recent......//.tool-batch.
2660 69 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 in.the.most.recent.assistant.mes
2680 73 61 67 65 29 2e 0a 09 09 09 09 09 2f 2f 20 57 69 74 68 6f 75 74 20 74 68 69 73 2c 20 74 68 65 sage).......//.Without.this,.the
26a0 20 69 6d 70 65 72 61 74 69 76 65 20 22 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 74 68 .imperative."You.MUST.address.th
26c0 65 73 65 22 0a 09 09 09 09 09 2f 2f 20 74 65 78 74 20 70 65 72 73 69 73 74 73 20 69 6e 20 68 69 ese"......//.text.persists.in.hi
26e0 73 74 6f 72 79 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 72 65 2d 61 63 6b 6e 6f 77 6c 65 64 story.and.the.model.re-acknowled
2700 67 65 73 0a 09 09 09 09 09 2f 2f 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 72 72 75 70 74 20 76 ges......//.the.same.interrupt.v
2720 65 72 62 61 74 69 6d 20 6f 6e 20 65 76 65 72 79 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 erbatim.on.every.subsequent.step
2740 2e 0a 09 09 09 09 09 63 6f 6e 73 74 20 69 73 46 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 .......const.isFreshestToolBatch
2760 20 3d 0a 09 09 09 09 09 09 6d 73 67 49 64 78 20 3d 3d 3d 20 66 72 65 73 68 65 73 74 54 6f 6f 6c .=.......msgIdx.===.freshestTool
2780 42 61 74 63 68 4d 73 67 49 64 78 20 26 26 20 63 68 75 6e 6b 49 64 78 20 3d 3d 3d 20 66 72 65 73 BatchMsgIdx.&&.chunkIdx.===.fres
27a0 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 3b 0a 09 09 09 09 09 66 6f 72 20 hestToolBatchChunkIdx;......for.
27c0 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 63 68 75 6e 6b 2e 63 61 6c 6c 73 29 20 7b 0a 09 (const.entry.of.chunk.calls).{..
27e0 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 75 73 65 54 6f 6f 6c 50 72 65 .....const.toolName.=.useToolPre
2800 66 69 78 20 3f 20 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 65 6e 74 72 79 2e 6e 61 6d 65 29 fix.?.prefixToolName(entry.name)
2820 20 3a 20 65 6e 74 72 79 2e 6e 61 6d 65 3b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 60 69 6e 70 .:.entry.name;.......//.v6:.`inp
2840 75 74 60 20 72 65 70 6c 61 63 65 73 20 76 34 27 73 20 60 61 72 67 73 60 0a 09 09 09 09 09 09 70 ut`.replaces.v4's.`args`.......p
2860 61 72 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 arts.push({........type:."tool-c
2880 61 6c 6c 22 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 65 6e 74 72 79 2e 69 all",........toolCallId:.entry.i
28a0 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 69 6e 70 75 74 d,........toolName,........input
28c0 3a 20 65 6e 74 72 79 2e 61 72 67 75 6d 65 6e 74 73 2c 0a 09 09 09 09 09 09 7d 29 3b 0a 09 09 09 :.entry.arguments,.......});....
28e0 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 ...if.(entry.result.!==.undefine
2900 64 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 54 65 78 74 20 3d 20 69 d).{........const.resultText.=.i
2920 73 46 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 0a 09 09 09 09 09 09 09 09 3f 20 65 6e 74 sFreshestToolBatch.........?.ent
2940 72 79 2e 72 65 73 75 6c 74 0a 09 09 09 09 09 09 09 09 3a 20 73 74 72 69 70 55 73 65 72 49 6e 74 ry.result.........:.stripUserInt
2960 65 72 72 75 70 74 42 6c 6f 63 6b 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 29 3b 0a 09 09 09 09 09 erruptBlock(entry.result);......
2980 09 09 73 74 65 70 52 65 73 75 6c 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 09 74 6f 6f ..stepResults.push({.........too
29a0 6c 43 61 6c 6c 49 64 3a 20 65 6e 74 72 79 2e 69 64 2c 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 4e lCallId:.entry.id,.........toolN
29c0 61 6d 65 2c 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 72 65 73 75 6c 74 54 65 78 74 2c ame,.........result:.resultText,
29e0 0a 09 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 65 6e 74 72 79 2e 69 73 45 72 72 6f 72 2c .........isError:.entry.isError,
2a00 0a 09 09 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 7d 0a 09 09 09 09 09 ........});.......}......}......
2a20 2f 2f 20 45 6e 64 20 6f 66 20 74 68 69 73 20 4c 4c 4d 20 73 74 65 70 20 e2 86 92 20 65 6d 69 74 //.End.of.this.LLM.step.....emit
2a40 20 69 74 73 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c 5d 60 20 70 61 69 72 20 61 6e .its.`[assistant,.tool]`.pair.an
2a60 64 0a 09 09 09 09 09 2f 2f 20 73 74 61 72 74 20 61 20 66 72 65 73 68 20 70 61 69 72 20 66 6f 72 d......//.start.a.fresh.pair.for
2a80 20 74 68 65 20 6e 65 78 74 20 73 74 65 70 2e 0a 09 09 09 09 09 66 6c 75 73 68 53 74 65 70 28 29 .the.next.step.......flushStep()
2aa0 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 7d 0a 09 09 09 09 63 61 73 65 20 22 65 72 ;......break;.....}.....case."er
2ac0 72 6f 72 22 3a 0a 09 09 09 09 63 61 73 65 20 22 73 79 73 74 65 6d 22 3a 0a 09 09 09 09 09 2f 2f ror":.....case."system":......//
2ae0 20 53 74 72 69 70 20 e2 80 94 20 6e 6f 74 20 73 65 6e 74 20 62 61 63 6b 20 74 6f 20 74 68 65 20 .Strip.....not.sent.back.to.the.
2b00 4c 4c 4d 2e 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 2f 2f 20 LLM.......break;....}...}....//.
2b20 46 69 6e 61 6c 20 73 74 65 70 3a 20 74 72 61 69 6c 69 6e 67 20 74 65 78 74 2f 74 68 69 6e 6b 69 Final.step:.trailing.text/thinki
2b40 6e 67 20 77 69 74 68 20 6e 6f 20 74 6f 6f 6c 2d 62 61 74 63 68 2e 20 60 66 6c 75 73 68 53 74 65 ng.with.no.tool-batch..`flushSte
2b60 70 60 0a 09 09 2f 2f 20 73 6b 69 70 73 20 65 6d 70 74 69 65 73 2c 20 73 6f 20 61 20 74 75 72 6e p`...//.skips.empties,.so.a.turn
2b80 20 6f 66 20 6f 6e 6c 79 20 73 79 73 74 65 6d 2f 65 72 72 6f 72 20 63 68 75 6e 6b 73 20 65 6d 69 .of.only.system/error.chunks.emi
2ba0 74 73 20 6e 6f 74 68 69 6e 67 2e 0a 09 09 66 6c 75 73 68 53 74 65 70 28 29 3b 0a 09 7d 0a 09 72 ts.nothing....flushStep();..}..r
2bc0 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 4f 70 eturn.result;.}../**..*.Apply.Op
2be0 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 72 65 61 73 6f 6e 69 6e 67 20 6e 6f 72 6d 61 6c enAI-compatible.reasoning.normal
2c00 69 73 61 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 65 6e isation...*..*.Cribbed.from.open
2c20 63 6f 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 32 31 37 2d code.`provider/transform.ts:217-
2c40 32 34 39 60 2e 20 53 6f 6c 76 65 73 20 44 65 65 70 53 65 65 6b 27 73 0a 20 2a 20 22 54 68 65 20 249`..Solves.DeepSeek's..*."The.
2c60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 20 69 6e 20 74 68 65 20 74 68 69 6e 6b 69 6e reasoning_content.in.the.thinkin
2c80 67 20 6d 6f 64 65 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 62 61 63 6b 20 74 6f 20 74 68 g.mode.must.be.passed.back.to.th
2ca0 65 0a 20 2a 20 41 50 49 22 20 65 72 72 6f 72 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 76 36 20 60 40 e..*.API".error...*..*.The.v6.`@
2cc0 61 69 2d 73 64 6b 2f 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 40 32 2e 78 60 20 70 72 ai-sdk/[email protected]`.pr
2ce0 6f 76 69 64 65 72 20 65 78 74 72 61 63 74 73 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 ovider.extracts.`reasoning_conte
2d00 6e 74 60 0a 20 2a 20 66 72 6f 6d 20 61 73 73 69 73 74 61 6e 74 20 60 7b 20 74 79 70 65 3a 20 22 nt`..*.from.assistant.`{.type:."
2d20 72 65 61 73 6f 6e 69 6e 67 22 2c 20 74 65 78 74 20 7d 60 20 70 61 72 74 73 20 6e 61 74 69 76 65 reasoning",.text.}`.parts.native
2d40 6c 79 0a 20 2a 20 28 73 65 65 20 60 6e 6f 64 65 5f 6d 6f 64 75 6c 65 73 2f 40 61 69 2d 73 64 6b ly..*.(see.`node_modules/@ai-sdk
2d60 2f 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 2f 64 69 73 74 2f 69 6e 64 65 78 2e 6d 6a /openai-compatible/dist/index.mj
2d80 73 3a 32 31 35 2d 32 31 36 60 20 61 6e 64 20 3a 32 34 35 29 2e 0a 20 2a 20 42 75 74 20 74 68 61 s:215-216`.and.:245)...*.But.tha
2da0 74 20 6e 61 74 69 76 65 20 70 61 74 68 20 53 4b 49 50 53 20 65 6d 69 73 73 69 6f 6e 20 77 68 65 t.native.path.SKIPS.emission.whe
2dc0 6e 20 60 72 65 61 73 6f 6e 69 6e 67 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 60 20 e2 80 94 0a 20 n.`reasoning.length.===.0`......
2de0 2a 20 22 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 22 20 69 73 20 6f 6d 69 74 74 65 64 *."reasoning_content".is.omitted
2e00 20 66 72 6f 6d 20 74 68 65 20 77 69 72 65 2e 20 44 65 65 70 53 65 65 6b 20 28 61 6e 64 20 73 69 .from.the.wire..DeepSeek.(and.si
2e20 6d 69 6c 61 72 0a 20 2a 20 22 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 22 20 70 72 6f 76 69 64 65 milar..*."thinking.mode".provide
2e40 72 73 29 20 72 65 71 75 69 72 65 20 74 68 65 20 66 69 65 6c 64 20 74 6f 20 62 65 20 70 72 65 73 rs).require.the.field.to.be.pres
2e60 65 6e 74 20 69 6e 20 65 76 65 72 79 0a 20 2a 20 66 6f 6c 6c 6f 77 2d 75 70 20 74 75 72 6e 20 6f ent.in.every..*.follow-up.turn.o
2e80 6e 63 65 20 69 74 20 77 61 73 20 65 6d 69 74 74 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65 nce.it.was.emitted.at.least.once
2ea0 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 0a 20 2a 20 74 68 65 20 65 6d ,.even.if.the.value.is..*.the.em
2ec0 70 74 79 20 73 74 72 69 6e 67 2e 0a 20 2a 0a 20 2a 20 53 74 72 61 74 65 67 79 3a 20 66 6f 72 20 pty.string...*..*.Strategy:.for.
2ee0 65 76 65 72 79 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 74 68 61 74 20 68 61 73 every.assistant.message.that.has
2f00 20 61 6e 79 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 2c 0a 20 2a 20 63 6f 6e 63 61 .any.`reasoning`.parts,..*.conca
2f20 74 65 6e 61 74 65 20 74 68 65 69 72 20 74 65 78 74 20 69 6e 74 6f 20 60 70 72 6f 76 69 64 65 72 tenate.their.text.into.`provider
2f40 4f 70 74 69 6f 6e 73 2e 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 2e 72 65 61 73 6f 6e 69 Options.openaiCompatible.reasoni
2f60 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 20 2a 20 28 70 72 65 73 65 72 76 69 6e 67 20 65 6d 70 74 79 ng_content`..*.(preserving.empty
2f80 20 73 74 72 69 6e 67 73 29 20 41 4e 44 20 73 74 72 69 70 20 74 68 6f 73 65 20 70 61 72 74 73 20 .strings).AND.strip.those.parts.
2fa0 66 72 6f 6d 20 63 6f 6e 74 65 6e 74 2e 20 54 68 65 0a 20 2a 20 72 65 73 75 6c 74 69 6e 67 20 70 from.content..The..*.resulting.p
2fc0 61 79 6c 6f 61 64 20 68 61 73 20 61 20 73 69 6e 67 6c 65 20 73 6f 75 72 63 65 20 6f 66 20 74 72 ayload.has.a.single.source.of.tr
2fe0 75 74 68 20 66 6f 72 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 20 2a 20 63 uth.for.`reasoning_content`..*.c
3000 6f 6d 69 6e 67 20 76 69 61 20 74 68 65 20 6d 65 73 73 61 67 65 2d 6c 65 76 65 6c 20 60 70 72 6f oming.via.the.message-level.`pro
3020 76 69 64 65 72 4f 70 74 69 6f 6e 73 60 20 73 70 72 65 61 64 20 61 74 20 6c 69 6e 65 20 32 34 37 viderOptions`.spread.at.line.247
3040 20 6f 66 20 74 68 65 0a 20 2a 20 53 44 4b 20 70 72 6f 76 69 64 65 72 2c 20 77 68 69 63 68 20 66 .of.the..*.SDK.provider,.which.f
3060 69 72 65 73 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 65 6d 70 74 79 2d 76 73 2d 6e 6f 6e 2d ires.regardless.of.empty-vs-non-
3080 65 6d 70 74 79 20 74 65 78 74 2e 0a 20 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 empty.text...*..*.Only.applied.f
30a0 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 28 6e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 29 20 6f or.the.default.(non-Anthropic).o
30c0 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 70 61 74 68 2e 0a 20 2a 2f 0a 66 75 6e 63 74 penai-compatible.path...*/.funct
30e0 69 6f 6e 20 61 70 70 6c 79 4f 70 65 6e 41 49 43 6f 6d 70 61 74 69 62 6c 65 52 65 61 73 6f 6e 69 ion.applyOpenAICompatibleReasoni
3100 6e 67 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 ngNormalisation(msgs:.ModelMessa
3120 67 65 5b 5d 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 72 65 74 75 72 6e 20 ge[]):.ModelMessage[].{..return.
3140 6d 73 67 73 2e 6d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f msgs.map((msg).=>.{...if.(msg.ro
3160 6c 65 20 21 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 73 41 le.!==."assistant".||.!Array.isA
3180 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 6d 73 67 3b 0a 0a rray(msg.content)).return.msg;..
31a0 09 09 2f 2f 20 46 69 6e 64 20 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 49 66 20 74 68 ..//.Find.reasoning.parts..If.th
31c0 65 72 65 20 61 72 65 20 6e 6f 6e 65 2c 20 74 68 69 73 20 6d 65 73 73 61 67 65 20 6e 65 76 65 72 ere.are.none,.this.message.never
31e0 20 68 61 64 0a 09 09 2f 2f 20 61 20 74 68 69 6e 6b 69 6e 67 20 74 75 72 6e 20 e2 80 94 20 44 65 .had...//.a.thinking.turn.....De
3200 65 70 53 65 65 6b 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 65 20 60 72 65 61 73 6f 6e 69 6e epSeek.doesn't.require.`reasonin
3220 67 5f 63 6f 6e 74 65 6e 74 60 0a 09 09 2f 2f 20 69 6e 20 74 68 61 74 20 63 61 73 65 2c 20 73 6f g_content`...//.in.that.case,.so
3240 20 77 65 20 70 61 73 73 20 74 68 72 6f 75 67 68 20 75 6e 63 68 61 6e 67 65 64 2e 0a 09 09 63 6f .we.pass.through.unchanged....co
3260 6e 73 74 20 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 nst.reasoningParts.=.msg.content
3280 2e 66 69 6c 74 65 72 28 0a 09 09 09 28 70 29 3a 20 70 20 69 73 20 45 78 74 72 61 63 74 3c 74 79 .filter(....(p):.p.is.Extract<ty
32a0 70 65 6f 66 20 70 2c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 7d 3e 20 3d peof.p,.{.type:."reasoning".}>.=
32c0 3e 20 70 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 0a 09 09 29 3b 0a 09 >.p.type.===."reasoning",...);..
32e0 09 69 66 20 28 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 .if.(reasoningParts.length.===.0
3300 29 20 72 65 74 75 72 6e 20 6d 73 67 3b 0a 0a 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 69 6e 67 ).return.msg;....const.reasoning
3320 54 65 78 74 20 3d 20 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6d 61 70 28 28 70 29 20 3d 3e Text.=.reasoningParts.map((p).=>
3340 20 70 2e 74 65 78 74 29 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 63 6f 6e 73 74 20 66 69 6c 74 65 .p.text).join("");...const.filte
3360 72 65 64 43 6f 6e 74 65 6e 74 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 66 69 6c 74 65 72 28 redContent.=.msg.content.filter(
3380 28 70 29 20 3d 3e 20 70 2e 74 79 70 65 20 21 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 3b 0a (p).=>.p.type.!==."reasoning");.
33a0 0a 09 09 63 6f 6e 73 74 20 65 78 69 73 74 69 6e 67 4f 70 74 73 20 3d 20 6d 73 67 2e 70 72 6f 76 ...const.existingOpts.=.msg.prov
33c0 69 64 65 72 4f 70 74 69 6f 6e 73 20 3f 3f 20 7b 7d 3b 0a 09 09 63 6f 6e 73 74 20 65 78 69 73 74 iderOptions.??.{};...const.exist
33e0 69 6e 67 43 6f 6d 70 61 74 20 3d 20 28 65 78 69 73 74 69 6e 67 4f 70 74 73 2e 6f 70 65 6e 61 69 ingCompat.=.(existingOpts.openai
3400 43 6f 6d 70 61 74 69 62 6c 65 20 3f 3f 20 7b 7d 29 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 Compatible.??.{}).as.Record<stri
3420 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 0a 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 2e 2e 2e ng,.unknown>;....return.{.......
3440 6d 73 67 2c 0a 09 09 09 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 43 6f 6e 74 65 6e 74 msg,....content:.filteredContent
3460 2c 0a 09 09 09 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 7b 0a 09 09 09 09 2e 2e 2e 65 ,....providerOptions:.{........e
3480 78 69 73 74 69 6e 67 4f 70 74 73 2c 0a 09 09 09 09 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c xistingOpts,.....openaiCompatibl
34a0 65 3a 20 7b 0a 09 09 09 09 09 2e 2e 2e 65 78 69 73 74 69 6e 67 43 6f 6d 70 61 74 2c 0a 09 09 09 e:.{.........existingCompat,....
34c0 09 09 2f 2f 20 41 6c 77 61 79 73 20 73 65 74 2c 20 65 76 65 6e 20 77 68 65 6e 20 65 6d 70 74 79 ..//.Always.set,.even.when.empty
34e0 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 6b 65 79 20 66 69 78 20 e2 80 94 0a 09 09 09 09 09 2f ..This.is.the.key.fix........../
3500 2f 20 74 68 65 20 53 44 4b 27 73 20 63 6f 6e 74 65 6e 74 2d 73 69 64 65 20 65 78 74 72 61 63 74 /.the.SDK's.content-side.extract
3520 69 6f 6e 20 73 6b 69 70 73 20 65 6d 70 74 79 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e 69 6e ion.skips.empty......//.reasonin
3540 67 2c 20 62 75 74 20 44 65 65 70 53 65 65 6b 20 72 65 71 75 69 72 65 73 20 74 68 65 20 66 69 65 g,.but.DeepSeek.requires.the.fie
3560 6c 64 20 70 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 ld.present.......reasoning_conte
3580 6e 74 3a 20 72 65 61 73 6f 6e 69 6e 67 54 65 78 74 2c 0a 09 09 09 09 7d 2c 0a 09 09 09 7d 2c 0a nt:.reasoningText,.....},....},.
35a0 09 09 7d 20 61 73 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3b 0a 09 7d 29 3b 0a 7d 0a 0a 2f 2a 2a ..}.as.ModelMessage;..});.}../**
35c0 0a 20 2a 20 41 70 70 6c 79 20 41 6e 74 68 72 6f 70 69 63 20 73 74 72 75 63 74 75 72 61 6c 20 6e ..*.Apply.Anthropic.structural.n
35e0 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 20 74 6f 20 61 20 60 4d 6f 64 65 6c 4d 65 73 73 61 67 65 ormalisations.to.a.`ModelMessage
3600 5b 5d 60 2e 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 65 6e 63 6f 64 65 []`...*..*.Cribbed.from.opencode
3620 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 35 33 2d 31 34 38 60 2e .`provider/transform.ts:53-148`.
3640 20 54 77 6f 20 70 61 73 73 65 73 3a 0a 20 2a 0a 20 2a 20 31 2e 20 2a 2a 45 6d 70 74 79 2d 74 65 .Two.passes:..*..*.1..**Empty-te
3660 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 66 69 6c 74 65 72 2a 2a 3a 20 44 72 6f 70 20 60 74 65 78 xt/reasoning.filter**:.Drop.`tex
3680 74 60 20 2f 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 0a 20 2a 20 20 20 20 77 68 6f t`./.`reasoning`.parts..*....who
36a0 73 65 20 60 74 65 78 74 20 3d 3d 3d 20 22 22 60 2e 20 44 72 6f 70 20 6d 65 73 73 61 67 65 73 20 se.`text.===.""`..Drop.messages.
36c0 77 68 6f 73 65 20 63 6f 6e 74 65 6e 74 20 61 72 72 61 79 20 62 65 63 6f 6d 65 73 0a 20 2a 20 20 whose.content.array.becomes..*..
36e0 20 20 65 6d 70 74 79 2e 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 73 73 69 73 ..empty..Anthropic.rejects.assis
3700 74 61 6e 74 20 74 75 72 6e 73 20 77 69 74 68 20 65 6d 70 74 79 20 63 6f 6e 74 65 6e 74 2e 0a 20 tant.turns.with.empty.content...
3720 2a 0a 20 2a 20 32 2e 20 2a 2a 60 74 6f 6f 6c 43 61 6c 6c 49 64 60 20 73 63 72 75 62 62 69 6e 67 *..*.2..**`toolCallId`.scrubbing
3740 2a 2a 3a 20 41 6e 74 68 72 6f 70 69 63 20 6f 6e 6c 79 20 61 63 63 65 70 74 73 20 74 6f 6f 6c 20 **:.Anthropic.only.accepts.tool.
3760 63 61 6c 6c 20 49 44 73 0a 20 2a 20 20 20 20 74 68 61 74 20 6d 61 74 63 68 20 60 5b 61 2d 7a 41 call.IDs..*....that.match.`[a-zA
3780 2d 5a 30 2d 39 5f 2d 5d 60 2e 20 4f 75 72 20 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e 72 61 -Z0-9_-]`..Our.IDs.are.crypto.ra
37a0 6e 64 6f 6d 55 55 49 44 28 29 20 76 61 6c 75 65 73 0a 20 2a 20 20 20 20 77 68 69 63 68 20 61 72 ndomUUID().values..*....which.ar
37c0 65 20 61 6c 72 65 61 64 79 20 73 61 66 65 2c 20 62 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 e.already.safe,.but.tool-call.ID
37e0 73 20 61 73 73 69 67 6e 65 64 20 62 79 20 75 70 73 74 72 65 61 6d 0a 20 2a 20 20 20 20 73 6f 75 s.assigned.by.upstream..*....sou
3800 72 63 65 73 20 28 70 72 6f 76 69 64 65 72 2d 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 2c 20 73 rces.(provider-executed.tools,.s
3820 75 62 61 67 65 6e 74 20 72 65 74 72 69 65 76 61 6c 2c 20 65 74 63 2e 29 20 6d 61 79 0a 20 2a 20 ubagent.retrieval,.etc.).may..*.
3840 20 20 20 6e 6f 74 20 62 65 2e 20 44 65 66 65 6e 73 69 76 65 6c 79 20 73 63 72 75 62 2e 20 4d 69 ...not.be..Defensively.scrub..Mi
3860 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f rrors.opencode.`provider/transfo
3880 72 6d 2e 74 73 3a 39 36 2d 31 32 32 60 2e 0a 20 2a 0a 20 2a 20 33 2e 20 2a 2a 60 5b 74 6f 6f 6c rm.ts:96-122`...*..*.3..**`[tool
38a0 2d 63 61 6c 6c 2c 20 74 65 78 74 5d 60 20 73 70 6c 69 74 2a 2a 3a 20 41 6e 74 68 72 6f 70 69 63 -call,.text]`.split**:.Anthropic
38c0 20 72 65 6a 65 63 74 73 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 73 0a 20 2a 20 20 20 20 77 .rejects.assistant.turns..*....w
38e0 68 65 72 65 20 60 74 6f 6f 6c 5f 75 73 65 60 20 62 6c 6f 63 6b 73 20 61 72 65 20 66 6f 6c 6c 6f here.`tool_use`.blocks.are.follo
3900 77 65 64 20 62 79 20 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 0a 20 2a 20 wed.by.non-tool-call.content..*.
3920 20 20 20 28 22 60 74 6f 6f 6c 5f 75 73 65 60 20 69 64 73 20 77 65 72 65 20 66 6f 75 6e 64 20 77 ...("`tool_use`.ids.were.found.w
3940 69 74 68 6f 75 74 20 60 74 6f 6f 6c 5f 72 65 73 75 6c 74 60 20 62 6c 6f 63 6b 73 20 69 6d 6d 65 ithout.`tool_result`.blocks.imme
3960 64 69 61 74 65 6c 79 0a 20 2a 20 20 20 20 61 66 74 65 72 22 29 2e 20 49 66 20 61 6e 20 61 73 73 diately..*....after")..If.an.ass
3980 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 68 61 73 20 6d 69 78 65 64 20 6f 72 64 65 72 69 6e istant.message.has.mixed.orderin
39a0 67 2c 20 73 70 6c 69 74 20 69 74 20 69 6e 74 6f 0a 20 2a 20 20 20 20 60 5b 6e 6f 6e 2d 74 6f 6f g,.split.it.into..*....`[non-too
39c0 6c 20 70 61 72 74 73 5d 20 2b 20 5b 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 5d 60 2e 0a 20 l.parts].+.[tool-call.parts]`...
39e0 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 63 2d *..*.Only.applied.for.Anthropic-
3a00 62 61 63 6b 65 64 20 70 72 6f 76 69 64 65 72 73 20 28 43 6c 61 75 64 65 20 4f 41 75 74 68 20 6f backed.providers.(Claude.OAuth.o
3a20 72 0a 20 2a 20 6f 70 65 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 29 2e 20 53 6b 69 70 20 66 r..*.opencode-anthropic)..Skip.f
3a40 6f 72 20 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 2f 20 4f 70 65 6e 43 6f 64 65 20 or.openai-compatible./.OpenCode.
3a60 5a 65 6e 2e 0a 20 2a 2f 0a 63 6f 6e 73 74 20 53 43 52 55 42 5f 54 4f 4f 4c 5f 43 41 4c 4c 5f 49 Zen...*/.const.SCRUB_TOOL_CALL_I
3a80 44 20 3d 20 28 69 64 3a 20 73 74 72 69 6e 67 29 3a 20 73 74 72 69 6e 67 20 3d 3e 20 69 64 2e 72 D.=.(id:.string):.string.=>.id.r
3aa0 65 70 6c 61 63 65 28 2f 5b 5e 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2f 67 2c 20 22 5f 22 29 3b 0a eplace(/[^a-zA-Z0-9_-]/g,."_");.
3ac0 0a 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 74 75 72 .function.applyAnthropicStructur
3ae0 61 6c 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 73 73 alNormalisations(msgs:.ModelMess
3b00 61 67 65 5b 5d 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 2f 2f 20 50 61 73 age[]):.ModelMessage[].{..//.Pas
3b20 73 20 31 3a 20 46 69 6c 74 65 72 20 65 6d 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 s.1:.Filter.empty.text/reasoning
3b40 20 70 61 72 74 73 3b 20 64 72 6f 70 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 62 65 63 6f 6d .parts;.drop.messages.that.becom
3b60 65 20 65 6d 70 74 79 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 0a 09 09 2e 6d 61 70 28 28 6d 73 e.empty...msgs.=.msgs....map((ms
3b80 67 29 20 3d 3e 20 7b 0a 09 09 09 69 66 20 28 74 79 70 65 6f 66 20 6d 73 67 2e 63 6f 6e 74 65 6e g).=>.{....if.(typeof.msg.conten
3ba0 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 29 20 7b 0a 09 09 09 09 69 66 20 28 6d 73 67 2e 63 6f t.===."string").{.....if.(msg.co
3bc0 6e 74 65 6e 74 20 3d 3d 3d 20 22 22 29 20 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 3b 0a ntent.===."").return.undefined;.
3be0 09 09 09 09 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 09 09 7d 0a 09 09 09 69 66 20 28 21 41 72 72 ....return.msg;....}....if.(!Arr
3c00 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 ay.isArray(msg.content)).return.
3c20 6d 73 67 3b 0a 09 09 09 63 6f 6e 73 74 20 66 69 6c 74 65 72 65 64 20 3d 20 6d 73 67 2e 63 6f 6e msg;....const.filtered.=.msg.con
3c40 74 65 6e 74 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 69 66 20 28 tent.filter((part).=>.{.....if.(
3c60 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 20 7c 7c 20 70 61 72 74 2e 74 79 70 part.type.===."text".||.part.typ
3c80 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 20 7b 0a 09 09 09 09 09 2f 2f 20 44 72 6f e.===."reasoning").{......//.Dro
3ca0 70 20 65 6d 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 41 6e p.empty.text/reasoning.parts..An
3cc0 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 20 65 6d 70 74 79 0a 09 09 09 09 09 2f 2f thropic.rejects.an.empty......//
3ce0 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 20 28 22 74 68 69 6e 6b 69 6e 67 20 62 6c 6f .`reasoning`.part.("thinking.blo
3d00 63 6b 20 6d 75 73 74 20 68 61 76 65 20 63 6f 6e 74 65 6e 74 22 29 20 65 76 65 6e 0a 09 09 09 09 ck.must.have.content").even.....
3d20 09 2f 2f 20 77 68 65 6e 20 69 74 20 63 61 72 72 69 65 73 20 61 20 73 69 67 6e 61 74 75 72 65 2c .//.when.it.carries.a.signature,
3d40 20 73 6f 20 77 65 20 73 74 72 69 70 20 69 74 20 6f 6e 20 74 68 65 20 77 61 79 20 6f 75 74 0a 09 .so.we.strip.it.on.the.way.out..
3d60 09 09 09 09 2f 2f 20 77 68 69 6c 65 20 73 74 69 6c 6c 20 70 65 72 73 69 73 74 69 6e 67 20 74 68 ....//.while.still.persisting.th
3d80 65 20 73 69 67 6e 65 64 20 62 6c 6f 63 6b 20 66 6f 72 20 72 6f 75 6e 64 2d 74 72 69 70 0a 09 09 e.signed.block.for.round-trip...
3da0 09 09 09 2f 2f 20 66 69 64 65 6c 69 74 79 20 28 73 65 65 20 74 68 65 20 65 6d 70 74 79 2d 72 65 ...//.fidelity.(see.the.empty-re
3dc0 61 73 6f 6e 69 6e 67 2d 70 61 72 74 20 74 65 73 74 29 2e 0a 09 09 09 09 09 72 65 74 75 72 6e 20 asoning-part.test).......return.
3de0 28 70 61 72 74 20 61 73 20 7b 20 74 65 78 74 3a 20 73 74 72 69 6e 67 20 7d 29 2e 74 65 78 74 20 (part.as.{.text:.string.}).text.
3e00 21 3d 3d 20 22 22 3b 0a 09 09 09 09 7d 0a 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 09 !==."";.....}.....return.true;..
3e20 09 09 7d 29 3b 0a 09 09 09 69 66 20 28 66 69 6c 74 65 72 65 64 2e 6c 65 6e 67 74 68 20 3d 3d 3d ..});....if.(filtered.length.===
3e40 20 30 29 20 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 72 65 74 75 72 6e 20 .0).return.undefined;....return.
3e60 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 20 7d 3b 0a 09 {....msg,.content:.filtered.};..
3e80 09 7d 29 0a 09 09 2e 66 69 6c 74 65 72 28 28 6d 73 67 29 3a 20 6d 73 67 20 69 73 20 4d 6f 64 65 .})....filter((msg):.msg.is.Mode
3ea0 6c 4d 65 73 73 61 67 65 20 3d 3e 20 6d 73 67 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 26 26 lMessage.=>.msg.!==.undefined.&&
3ec0 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 20 21 3d 3d 20 22 22 29 3b 0a 0a 09 2f 2f 20 50 61 73 73 20 .msg.content.!==."");...//.Pass.
3ee0 32 3a 20 53 63 72 75 62 20 74 6f 6f 6c 43 61 6c 6c 49 64 20 63 68 61 72 73 20 6f 6e 20 62 6f 74 2:.Scrub.toolCallId.chars.on.bot
3f00 68 20 61 73 73 69 73 74 61 6e 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 20 61 6e 64 0a h.assistant.tool-call.parts.and.
3f20 09 2f 2f 20 74 6f 6f 6c 2d 72 6f 6c 65 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 72 74 73 2e .//.tool-role.tool-result.parts.
3f40 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 79 74 68 69 6e 67 20 6f 75 74 73 .Anthropic.rejects.anything.outs
3f60 69 64 65 0a 09 2f 2f 20 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2e 20 4f 75 72 20 69 6e 74 65 72 ide..//.[a-zA-Z0-9_-]..Our.inter
3f80 6e 61 6c 20 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e 72 61 6e 64 6f 6d 55 55 49 44 28 29 20 nal.IDs.are.crypto.randomUUID().
3fa0 61 6e 64 20 73 61 66 65 2c 20 62 75 74 0a 09 2f 2f 20 75 70 73 74 72 65 61 6d 20 70 72 6f 76 69 and.safe,.but..//.upstream.provi
3fc0 64 65 72 2d 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 20 6f 72 20 65 78 74 65 72 6e 61 6c 20 73 der-executed.tools.or.external.s
3fe0 6f 75 72 63 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 2e ources.may.not.be...msgs.=.msgs.
4000 6d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d map((msg).=>.{...if.(msg.role.==
4020 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d =."assistant".&&.Array.isArray(m
4040 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 2e sg.content)).{....return.{......
4060 2e 2e 6d 73 67 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e ..msg,.....content:.msg.content.
4080 6d 61 70 28 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e 74 79 map((part).=>.{......if.(part.ty
40a0 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7c 7c 20 70 61 72 74 2e 74 79 70 65 20 pe.===."tool-call".||.part.type.
40c0 3d 3d 3d 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 ===."tool-result").{.......retur
40e0 6e 20 7b 20 2e 2e 2e 70 61 72 74 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 53 43 52 55 42 5f 54 n.{....part,.toolCallId:.SCRUB_T
4100 4f 4f 4c 5f 43 41 4c 4c 5f 49 44 28 70 61 72 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 29 20 7d 3b 0a OOL_CALL_ID(part.toolCallId).};.
4120 09 09 09 09 09 7d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 70 61 72 74 3b 0a 09 09 09 09 7d 29 2c .....}......return.part;.....}),
4140 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 74 ....};...}...if.(msg.role.===."t
4160 6f 6f 6c 22 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e ool".&&.Array.isArray(msg.conten
4180 74 29 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 2e 2e 2e 6d 73 67 2c 0a 09 09 t)).{....return.{........msg,...
41a0 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 6d 61 70 28 28 70 61 72 74 ..content:.msg.content.map((part
41c0 29 20 3d 3e 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 ).=>.{......if.(part.type.===."t
41e0 6f 6f 6c 2d 72 65 73 75 6c 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 20 2e 2e ool-result").{.......return.{...
4200 2e 70 61 72 74 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 53 43 52 55 42 5f 54 4f 4f 4c 5f 43 41 .part,.toolCallId:.SCRUB_TOOL_CA
4220 4c 4c 5f 49 44 28 70 61 72 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 29 20 7d 3b 0a 09 09 09 09 09 7d LL_ID(part.toolCallId).};......}
4240 0a 09 09 09 09 09 72 65 74 75 72 6e 20 70 61 72 74 3b 0a 09 09 09 09 7d 29 2c 0a 09 09 09 7d 3b ......return.part;.....}),....};
4260 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 7d 29 3b 0a 0a 09 2f 2f 20 50 61 73 ...}...return.msg;..});...//.Pas
4280 73 20 33 3a 20 53 70 6c 69 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 73 20 77 68 s.3:.Split.assistant.messages.wh
42a0 65 72 65 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 6e ere.tool-calls.are.followed.by.n
42c0 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 2e 0a 09 2f 2f 20 5b 74 65 78 74 2c 20 74 on-tool-call.parts...//.[text,.t
42e0 6f 6f 6c 2d 63 61 6c 6c 2c 20 74 65 78 74 5d 20 e2 86 92 20 5b 74 65 78 74 2c 20 74 65 78 74 5d ool-call,.text].....[text,.text]
4300 20 2b 20 5b 74 6f 6f 6c 2d 63 61 6c 6c 5d 20 28 74 65 78 74 2d 6f 6e 6c 79 20 66 69 72 73 74 2c .+.[tool-call].(text-only.first,
4320 20 74 6f 6f 6c 73 2d 6f 6e 6c 79 20 73 65 63 6f 6e 64 29 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 .tools-only.second)..msgs.=.msgs
4340 2e 66 6c 61 74 4d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f .flatMap((msg).=>.{...if.(msg.ro
4360 6c 65 20 21 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 73 41 le.!==."assistant".||.!Array.isA
4380 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b rray(msg.content)).return.[msg];
43a0 0a 09 09 63 6f 6e 73 74 20 70 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 3b 0a 09 09 ...const.parts.=.msg.content;...
43c0 63 6f 6e 73 74 20 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 20 3d 20 70 61 72 74 73 2e 66 const.firstToolCallIdx.=.parts.f
43e0 69 6e 64 49 6e 64 65 78 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d indIndex((part).=>.part.type.===
4400 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 69 66 20 28 66 69 72 73 74 54 6f 6f 6c 43 61 ."tool-call");...if.(firstToolCa
4420 6c 6c 49 64 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 20 2f 2f 20 6e llIdx.===.-1).return.[msg];.//.n
4440 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 e2 86 92 20 70 61 73 73 20 74 68 72 6f 75 67 68 0a 09 09 o.tool.calls.....pass.through...
4460 2f 2f 20 49 66 20 65 76 65 72 79 74 68 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 66 69 72 73 74 20 //.If.everything.from.the.first.
4480 74 6f 6f 6c 2d 63 61 6c 6c 20 6f 6e 77 61 72 64 20 69 73 20 61 6c 73 6f 20 61 20 74 6f 6f 6c 2d tool-call.onward.is.also.a.tool-
44a0 63 61 6c 6c 2c 20 69 74 27 73 20 61 6c 72 65 61 64 79 20 76 61 6c 69 64 0a 09 09 69 66 20 28 21 call,.it's.already.valid...if.(!
44c0 70 61 72 74 73 2e 73 6c 69 63 65 28 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 29 2e 73 6f parts.slice(firstToolCallIdx).so
44e0 6d 65 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c me((part).=>.part.type.!==."tool
4500 2d 63 61 6c 6c 22 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 0a 09 09 2f 2f 20 48 61 73 20 -call")).return.[msg];...//.Has.
4520 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 20 41 46 54 45 52 20 61 20 74 6f non-tool-call.content.AFTER.a.to
4540 6f 6c 2d 63 61 6c 6c 20 e2 86 92 20 73 70 6c 69 74 0a 09 09 63 6f 6e 73 74 20 6e 6f 6e 54 6f 6f ol-call.....split...const.nonToo
4560 6c 50 61 72 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d 3e 20 lParts.=.parts.filter((part).=>.
4580 70 61 72 74 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 63 6f part.type.!==."tool-call");...co
45a0 6e 73 74 20 74 6f 6f 6c 50 61 72 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 70 61 nst.toolParts.=.parts.filter((pa
45c0 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 rt).=>.part.type.===."tool-call"
45e0 29 3b 0a 09 09 72 65 74 75 72 6e 20 5b 0a 09 09 09 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e 74 65 );...return.[....{....msg,.conte
4600 6e 74 3a 20 6e 6f 6e 54 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 09 7b 20 2e 2e 2e 6d 73 67 2c nt:.nonToolParts.},....{....msg,
4620 20 63 6f 6e 74 65 6e 74 3a 20 74 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 5d 3b 0a 09 7d 29 3b .content:.toolParts.},...];..});
4640 0a 0a 09 72 65 74 75 72 6e 20 6d 73 67 73 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 ...return.msgs;.}../**..*.Apply.
4660 41 6e 74 68 72 6f 70 69 63 20 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b 70 6f Anthropic.prompt-caching.breakpo
4680 69 6e 74 73 20 74 6f 20 61 20 6d 65 73 73 61 67 65 20 6c 69 73 74 2e 0a 20 2a 0a 20 2a 20 41 6e ints.to.a.message.list...*..*.An
46a0 74 68 72 6f 70 69 63 20 63 61 63 68 65 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 65 71 75 65 73 thropic.caches.the.entire.reques
46c0 74 20 70 72 65 66 69 78 20 75 70 20 74 6f 20 28 61 6e 64 20 69 6e 63 6c 75 64 69 6e 67 29 20 61 t.prefix.up.to.(and.including).a
46e0 6e 79 20 62 6c 6f 63 6b 0a 20 2a 20 6d 61 72 6b 65 64 20 77 69 74 68 20 60 63 61 63 68 65 5f 63 ny.block..*.marked.with.`cache_c
4700 6f 6e 74 72 6f 6c 60 2e 20 55 70 20 74 6f 20 34 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 70 65 72 ontrol`..Up.to.4.breakpoints.per
4720 20 72 65 71 75 65 73 74 3b 20 77 65 20 75 73 65 20 74 68 72 65 65 0a 20 2a 20 28 66 69 72 73 74 .request;.we.use.three..*.(first
4740 20 73 79 73 74 65 6d 20 2b 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 74 65 6d 29 2e 0a 20 2a .system.+.last.2.non-system)...*
4760 0a 20 2a 20 53 74 72 61 74 65 67 79 20 28 6d 69 72 72 6f 72 73 20 4f 70 65 6e 43 6f 64 65 27 73 ..*.Strategy.(mirrors.OpenCode's
4780 20 60 61 70 70 6c 79 43 61 63 68 69 6e 67 60 20 69 6e 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 29 .`applyCaching`.in.transform.ts)
47a0 3a 0a 20 2a 20 20 2d 20 4d 61 72 6b 20 74 68 65 20 66 69 72 73 74 20 73 79 73 74 65 6d 20 6d 65 :..*..-.Mark.the.first.system.me
47c0 73 73 61 67 65 20 e2 86 92 20 63 61 63 68 65 73 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 28 ssage.....caches.system.prompt.(
47e0 61 6e 64 20 74 6f 6f 6c 73 2c 20 77 68 69 63 68 0a 20 2a 20 20 20 20 73 69 74 20 62 65 66 6f 72 and.tools,.which..*....sit.befor
4800 65 20 6d 65 73 73 61 67 65 73 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 62 6f 64 79 29 2e e.messages.in.the.request.body).
4820 0a 20 2a 20 20 2d 20 4d 61 72 6b 20 74 68 65 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 74 65 ..*..-.Mark.the.last.2.non-syste
4840 6d 20 6d 65 73 73 61 67 65 73 20 e2 86 92 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 74 68 61 m.messages.....rolling.cache.tha
4860 74 20 65 78 74 65 6e 64 73 20 74 68 72 6f 75 67 68 0a 20 2a 20 20 20 20 74 68 65 20 63 6f 6e 76 t.extends.through..*....the.conv
4880 65 72 73 61 74 69 6f 6e 20 65 61 63 68 20 74 75 72 6e 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 72 ersation.each.turn...*..*.This.r
48a0 65 6c 69 65 73 20 6f 6e 20 60 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 60 20 67 72 6f 75 70 elies.on.`toModelMessages`.group
48c0 69 6e 67 20 61 20 74 75 72 6e 27 73 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 74 6f 20 6f ing.a.turn's.tool.results.into.o
48e0 6e 65 0a 20 2a 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 3a 20 74 68 ne..*.`role:."tool"`.message:.th
4900 61 74 20 6d 61 6b 65 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 6e 6f 6e 2d 73 79 73 74 65 6d at.makes.the.last.two.non-system
4920 20 6d 65 73 73 61 67 65 73 0a 20 2a 20 60 5b 61 73 73 69 73 74 61 6e 74 28 74 6f 6f 6c 2d 63 61 .messages..*.`[assistant(tool-ca
4940 6c 6c 73 29 2c 20 74 6f 6f 6c 28 72 65 73 75 6c 74 73 29 5d 60 20 6d 69 64 2d 74 75 72 6e 2c 20 lls),.tool(results)]`.mid-turn,.
4960 73 6f 20 74 68 65 20 74 77 6f 20 72 6f 6c 6c 69 6e 67 0a 20 2a 20 62 72 65 61 6b 70 6f 69 6e 74 so.the.two.rolling..*.breakpoint
4980 73 20 73 74 72 61 64 64 6c 65 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 2f 74 6f 6f 6c 20 62 6f s.straddle.the.assistant/tool.bo
49a0 75 6e 64 61 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 63 6f 6c 6c 61 70 73 69 6e 67 20 6f 6e 74 undary.instead.of.collapsing.ont
49c0 6f 0a 20 2a 20 74 77 6f 20 61 64 6a 61 63 65 6e 74 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 6d 65 o..*.two.adjacent.tool-result.me
49e0 73 73 61 67 65 73 20 28 77 68 69 63 68 20 77 61 73 74 65 73 20 61 20 62 72 65 61 6b 70 6f 69 6e ssages.(which.wastes.a.breakpoin
4a00 74 20 e2 80 94 20 73 65 65 0a 20 2a 20 63 6c 61 75 64 65 2d 72 65 70 6f 72 74 2e 6d 64 2c 20 52 t.....see..*.claude-report.md,.R
4a20 6f 6f 74 20 43 61 75 73 65 20 32 29 2e 20 41 6e 74 68 72 6f 70 69 63 20 63 61 63 68 65 73 20 74 oot.Cause.2)..Anthropic.caches.t
4a40 68 65 20 77 68 6f 6c 65 20 70 72 65 66 69 78 20 75 70 20 74 6f 20 61 6e 64 0a 20 2a 20 69 6e 63 he.whole.prefix.up.to.and..*.inc
4a60 6c 75 64 69 6e 67 20 61 20 6d 61 72 6b 65 64 20 62 6c 6f 63 6b 2c 20 73 6f 20 6d 61 72 6b 69 6e luding.a.marked.block,.so.markin
4a80 67 20 74 68 65 20 67 72 6f 75 70 65 64 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 20 65 78 74 65 6e g.the.grouped.tool.message.exten
4aa0 64 73 20 74 68 65 0a 20 2a 20 63 61 63 68 65 64 20 70 72 65 66 69 78 20 61 63 72 6f 73 73 20 65 ds.the..*.cached.prefix.across.e
4ac0 76 65 72 79 20 72 65 73 75 6c 74 20 74 68 65 20 74 75 72 6e 20 70 72 6f 64 75 63 65 64 2e 0a 20 very.result.the.turn.produced...
4ae0 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 74 68 65 20 41 6e 74 68 72 6f *..*.Only.applied.for.the.Anthro
4b00 70 69 63 20 70 72 6f 76 69 64 65 72 2e 20 4f 70 65 6e 43 6f 64 65 20 5a 65 6e 27 73 20 4f 70 65 pic.provider..OpenCode.Zen's.Ope
4b20 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 0a 20 2a 20 65 6e 64 70 6f 69 6e 74 20 28 60 2f 7a 65 nAI-compatible..*.endpoint.(`/ze
4b40 6e 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 60 29 20 62 61 63 6b 73 20 6d 6f n/v1/chat/completions`).backs.mo
4b60 64 65 6c 73 20 6c 69 6b 65 20 4d 69 6e 69 4d 61 78 2c 20 47 4c 4d 2c 20 4b 69 6d 69 2c 0a 20 2a dels.like.MiniMax,.GLM,.Kimi,..*
4b80 20 47 72 6f 6b 2c 20 65 74 63 2e 20 e2 80 94 20 74 68 6f 73 65 20 75 70 73 74 72 65 61 6d 73 20 .Grok,.etc......those.upstreams.
4ba0 64 6f 20 61 75 74 6f 6d 61 74 69 63 20 70 72 65 66 69 78 20 63 61 63 68 69 6e 67 20 73 65 72 76 do.automatic.prefix.caching.serv
4bc0 65 72 2d 73 69 64 65 20 61 6e 64 0a 20 2a 20 64 6f 6e 27 74 20 61 63 63 65 70 74 20 60 63 61 63 er-side.and..*.don't.accept.`cac
4be0 68 65 5f 63 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 4f 70 65 6e 43 6f 64 65 27 73 20 he_control`.markers..OpenCode's.
4c00 6f 77 6e 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 20 67 61 74 65 73 0a 20 2a 20 60 61 70 70 6c 79 own.transform.ts.gates..*.`apply
4c20 43 61 63 68 69 6e 67 60 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2d 66 61 6d 69 6c 79 20 64 65 74 Caching`.on.Anthropic-family.det
4c40 65 63 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 72 65 61 73 6f 6e 2e 20 4d 6f 64 65 ection.for.the.same.reason..Mode
4c60 6c 73 0a 20 2a 20 73 65 72 76 65 64 20 76 69 61 20 60 40 61 69 2d 73 64 6b 2f 6f 70 65 6e 61 69 ls..*.served.via.`@ai-sdk/openai
4c80 60 20 28 47 50 54 29 20 61 6e 64 20 60 40 61 69 2d 73 64 6b 2f 67 6f 6f 67 6c 65 60 20 28 47 65 `.(GPT).and.`@ai-sdk/google`.(Ge
4ca0 6d 69 6e 69 29 20 6c 69 6b 65 77 69 73 65 0a 20 2a 20 75 73 65 20 73 65 72 76 65 72 2d 73 69 64 mini).likewise..*.use.server-sid
4cc0 65 20 61 75 74 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f e.automatic.caching...*/.functio
4ce0 6e 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 6d 73 67 73 3a 20 4d 6f n.applyAnthropicCaching(msgs:.Mo
4d00 64 65 6c 4d 65 73 73 61 67 65 5b 5d 29 3a 20 76 6f 69 64 20 7b 0a 09 63 6f 6e 73 74 20 74 61 72 delMessage[]):.void.{..const.tar
4d20 67 65 74 73 20 3d 20 6e 65 77 20 53 65 74 3c 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3e 28 29 3b 0a gets.=.new.Set<ModelMessage>();.
4d40 0a 09 63 6f 6e 73 74 20 73 79 73 74 65 6d 4d 73 67 73 20 3d 20 6d 73 67 73 2e 66 69 6c 74 65 72 ..const.systemMsgs.=.msgs.filter
4d60 28 28 6d 29 20 3d 3e 20 6d 2e 72 6f 6c 65 20 3d 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 6c 69 ((m).=>.m.role.===."system").sli
4d80 63 65 28 30 2c 20 32 29 3b 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 20 6f 66 20 73 79 73 74 65 ce(0,.2);..for.(const.m.of.syste
4da0 6d 4d 73 67 73 29 20 74 61 72 67 65 74 73 2e 61 64 64 28 6d 29 3b 0a 0a 09 63 6f 6e 73 74 20 6e mMsgs).targets.add(m);...const.n
4dc0 6f 6e 53 79 73 74 65 6d 20 3d 20 6d 73 67 73 2e 66 69 6c 74 65 72 28 28 6d 29 20 3d 3e 20 6d 2e onSystem.=.msgs.filter((m).=>.m.
4de0 72 6f 6c 65 20 21 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 6c 69 63 65 28 2d 32 29 3b 0a 09 66 role.!==."system").slice(-2);..f
4e00 6f 72 20 28 63 6f 6e 73 74 20 6d 20 6f 66 20 6e 6f 6e 53 79 73 74 65 6d 29 20 74 61 72 67 65 74 or.(const.m.of.nonSystem).target
4e20 73 2e 61 64 64 28 6d 29 3b 0a 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 73 67 20 6f 66 20 74 61 s.add(m);...for.(const.msg.of.ta
4e40 72 67 65 74 73 29 20 7b 0a 09 09 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 3d rgets).{...msg.providerOptions.=
4e60 20 7b 0a 09 09 09 2e 2e 2e 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2c 0a 09 09 .{.......msg.providerOptions,...
4e80 09 61 6e 74 68 72 6f 70 69 63 3a 20 7b 0a 09 09 09 09 2e 2e 2e 28 6d 73 67 2e 70 72 6f 76 69 64 .anthropic:.{........(msg.provid
4ea0 65 72 4f 70 74 69 6f 6e 73 3f 2e 61 6e 74 68 72 6f 70 69 63 20 3f 3f 20 7b 7d 29 2c 0a 09 09 09 erOptions?.anthropic.??.{}),....
4ec0 09 63 61 63 68 65 43 6f 6e 74 72 6f 6c 3a 20 7b 20 74 79 70 65 3a 20 22 65 70 68 65 6d 65 72 61 .cacheControl:.{.type:."ephemera
4ee0 6c 22 20 7d 2c 0a 09 09 09 7d 2c 0a 09 09 7d 3b 0a 09 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 l".},....},...};..}.}..function.
4f00 66 6f 72 6d 61 74 45 72 72 6f 72 28 65 72 72 3a 20 75 6e 6b 6e 6f 77 6e 2c 20 63 6f 6e 66 69 67 formatError(err:.unknown,.config
4f20 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 29 3a 20 73 74 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 74 20 :.AgentConfig):.string.{..const.
4f40 63 6f 6e 74 65 78 74 20 3d 20 60 5b 6d 6f 64 65 6c 3d 24 7b 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c context.=.`[model=${config.model
4f60 7d 2c 20 62 61 73 65 55 52 4c 3d 24 7b 63 6f 6e 66 69 67 2e 62 61 73 65 55 52 4c 7d 5d 60 3b 0a },.baseURL=${config.baseURL}]`;.
4f80 0a 09 69 66 20 28 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 29 20 7b 0a 09 09 ..if.(err.instanceof.Error).{...
4fa0 63 6f 6e 73 74 20 63 61 75 73 65 20 3d 20 65 72 72 2e 63 61 75 73 65 20 3f 20 60 20 7c 20 63 61 const.cause.=.err.cause.?.`.|.ca
4fc0 75 73 65 3a 20 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 2e 63 61 75 73 65 29 use:.${JSON.stringify(err.cause)
4fe0 7d 60 20 3a 20 22 22 3b 0a 09 09 2f 2f 20 41 49 20 53 44 4b 20 65 72 72 6f 72 73 20 6f 66 74 65 }`.:."";...//.AI.SDK.errors.ofte
5000 6e 20 68 61 76 65 20 73 74 61 74 75 73 43 6f 64 65 2c 20 72 65 73 70 6f 6e 73 65 42 6f 64 79 2c n.have.statusCode,.responseBody,
5020 20 6f 72 20 75 72 6c 20 70 72 6f 70 65 72 74 69 65 73 0a 09 09 63 6f 6e 73 74 20 65 78 74 72 61 .or.url.properties...const.extra
5040 73 3a 20 73 74 72 69 6e 67 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 s:.string[].=.[];...const.errRec
5060 6f 72 64 20 3d 20 65 72 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 3c 73 ord.=.err.as.unknown.as.Record<s
5080 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 69 66 20 28 22 73 74 61 74 75 73 43 6f tring,.unknown>;...if.("statusCo
50a0 64 65 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 72 61 73 2e 70 75 73 68 28 60 73 de".in.errRecord).extras.push(`s
50c0 74 61 74 75 73 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 7d 60 29 3b tatus=${errRecord.statusCode}`);
50e0 0a 09 09 69 66 20 28 22 75 72 6c 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 72 61 ...if.("url".in.errRecord).extra
5100 73 2e 70 75 73 68 28 60 75 72 6c 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 75 72 6c 7d 60 29 3b 0a s.push(`url=${errRecord.url}`);.
5120 09 09 69 66 20 28 22 72 65 73 70 6f 6e 73 65 42 6f 64 79 22 20 69 6e 20 65 72 72 52 65 63 6f 72 ..if.("responseBody".in.errRecor
5140 64 29 20 65 78 74 72 61 73 2e 70 75 73 68 28 60 62 6f 64 79 3d 24 7b 4a 53 4f 4e 2e 73 74 72 69 d).extras.push(`body=${JSON.stri
5160 6e 67 69 66 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 70 6f 6e 73 65 42 6f 64 79 29 7d 60 29 ngify(errRecord.responseBody)}`)
5180 3b 0a 09 09 69 66 20 28 22 72 65 73 70 6f 6e 73 65 48 65 61 64 65 72 73 22 20 69 6e 20 65 72 72 ;...if.("responseHeaders".in.err
51a0 52 65 63 6f 72 64 29 0a 09 09 09 65 78 74 72 61 73 2e 70 75 73 68 28 60 68 65 61 64 65 72 73 3d Record)....extras.push(`headers=
51c0 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 70 6f ${JSON.stringify(errRecord.respo
51e0 6e 73 65 48 65 61 64 65 72 73 29 7d 60 29 3b 0a 0a 09 09 63 6f 6e 73 74 20 64 65 74 61 69 6c 20 nseHeaders)}`);....const.detail.
5200 3d 20 65 78 74 72 61 73 2e 6c 65 6e 67 74 68 20 3e 20 30 20 3f 20 60 20 28 24 7b 65 78 74 72 61 =.extras.length.>.0.?.`.(${extra
5220 73 2e 6a 6f 69 6e 28 22 2c 20 22 29 7d 29 60 20 3a 20 22 22 3b 0a 09 09 72 65 74 75 72 6e 20 60 s.join(",.")})`.:."";...return.`
5240 24 7b 65 72 72 2e 6d 65 73 73 61 67 65 7d 24 7b 64 65 74 61 69 6c 7d 24 7b 63 61 75 73 65 7d 20 ${err.message}${detail}${cause}.
5260 24 7b 63 6f 6e 74 65 78 74 7d 60 3b 0a 09 7d 0a 0a 09 72 65 74 75 72 6e 20 60 24 7b 53 74 72 69 ${context}`;..}...return.`${Stri
5280 6e 67 28 65 72 72 29 7d 20 24 7b 63 6f 6e 74 65 78 74 7d 60 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 ng(err)}.${context}`;.}../**..*.
52a0 42 75 69 6c 64 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 60 70 72 6f 76 69 64 65 72 4f 70 74 Build.the.Anthropic.`providerOpt
52c0 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 60 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 67 20 ions.anthropic`.thinking.config.
52e0 66 6f 72 20 61 20 67 69 76 65 6e 0a 20 2a 20 6d 6f 64 65 6c 20 2b 20 72 65 61 73 6f 6e 69 6e 67 for.a.given..*.model.+.reasoning
5300 20 65 66 66 6f 72 74 2e 20 44 65 74 65 63 74 69 6f 6e 20 6d 69 72 72 6f 72 73 20 6f 70 65 6e 63 .effort..Detection.mirrors.openc
5320 6f 64 65 27 73 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 60 0a 20 2a ode's.`provider/transform.ts`..*
5340 20 28 60 61 6e 74 68 72 6f 70 69 63 4f 70 75 73 34 37 4f 72 4c 61 74 65 72 60 20 2b 20 60 61 6e .(`anthropicOpus47OrLater`.+.`an
5360 74 68 72 6f 70 69 63 41 64 61 70 74 69 76 65 45 66 66 6f 72 74 73 60 29 3a 0a 20 2a 0a 20 2a 20 thropicAdaptiveEfforts`):..*..*.
5380 20 2d 20 41 44 41 50 54 49 56 45 20 6d 6f 64 65 6c 73 20 65 6d 69 74 20 60 7b 20 74 68 69 6e 6b .-.ADAPTIVE.models.emit.`{.think
53a0 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 61 64 61 70 74 69 76 65 22 20 7d 2c 20 65 66 66 6f 72 ing:.{.type:."adaptive".},.effor
53c0 74 20 7d 60 20 61 6e 64 20 70 69 63 6b 0a 20 2a 20 20 20 20 74 68 65 69 72 20 6f 77 6e 20 74 68 t.}`.and.pick..*....their.own.th
53e0 69 6e 6b 69 6e 67 20 62 75 64 67 65 74 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 75 74 54 inking.budget.within.`maxOutputT
5400 6f 6b 65 6e 73 60 2e 20 41 20 6d 6f 64 65 6c 20 69 73 20 61 64 61 70 74 69 76 65 20 77 68 65 6e okens`..A.model.is.adaptive.when
5420 0a 20 2a 20 20 20 20 69 74 20 69 73 20 4f 70 75 73 20 34 2e 37 2b 20 28 70 61 72 73 65 64 20 66 ..*....it.is.Opus.4.7+.(parsed.f
5440 72 6f 6d 20 74 68 65 20 69 64 29 20 4f 52 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 20 28 rom.the.id).OR.Opus/Sonnet.4.6.(
5460 6d 61 74 63 68 65 64 20 62 79 20 69 64 0a 20 2a 20 20 20 20 73 75 62 73 74 72 69 6e 67 20 e2 80 matched.by.id..*....substring...
5480 94 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65 77 65 72 20 53 6f 6e 6e 65 74 20 74 6f 20 67 65 ..there.is.no.newer.Sonnet.to.ge
54a0 6e 65 72 61 6c 69 73 65 20 79 65 74 29 2e 0a 20 2a 20 20 20 20 20 20 2d 20 60 64 69 73 70 6c 61 neralise.yet)...*......-.`displa
54c0 79 3a 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 69 73 20 61 64 64 65 64 20 4f 4e 4c 59 20 66 y:."summarized"`.is.added.ONLY.f
54e0 6f 72 20 4f 70 75 73 20 34 2e 37 2b 2e 20 54 68 6f 73 65 20 6d 6f 64 65 6c 73 0a 20 2a 20 20 20 or.Opus.4.7+..Those.models..*...
5500 20 20 20 20 20 64 65 66 61 75 6c 74 20 74 6f 20 60 64 69 73 70 6c 61 79 3a 20 22 6f 6d 69 74 74 .....default.to.`display:."omitt
5520 65 64 22 60 20 28 4e 4f 20 74 68 69 6e 6b 69 6e 67 20 73 74 72 65 61 6d 65 64 20 74 6f 20 75 73 ed"`.(NO.thinking.streamed.to.us
5540 29 2c 20 73 6f 20 74 68 65 0a 20 2a 20 20 20 20 20 20 20 20 66 6c 61 67 20 6d 75 73 74 20 62 65 ),.so.the..*........flag.must.be
5560 20 66 6f 72 63 65 64 20 74 6f 20 73 75 72 66 61 63 65 20 74 68 69 6e 6b 69 6e 67 20 69 6e 20 74 .forced.to.surface.thinking.in.t
5580 68 65 20 55 49 2e 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 0a 20 2a 20 20 20 20 20 20 20 he.UI..Opus/Sonnet.4.6..*.......
55a0 20 73 74 72 65 61 6d 20 74 68 69 6e 6b 69 6e 67 20 77 69 74 68 6f 75 74 20 69 74 20 28 6f 70 65 .stream.thinking.without.it.(ope
55c0 6e 63 6f 64 65 20 6f 6d 69 74 73 20 60 64 69 73 70 6c 61 79 60 20 74 68 65 72 65 20 74 6f 6f 29 ncode.omits.`display`.there.too)
55e0 2e 0a 20 2a 20 20 20 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 69 62 6c 69 6e 67 20 6f 66 ...*......-.`effort`.(sibling.of
5600 20 60 74 68 69 6e 6b 69 6e 67 60 29 20 74 65 6c 6c 73 20 61 64 61 70 74 69 76 65 20 68 6f 77 20 .`thinking`).tells.adaptive.how.
5620 68 61 72 64 20 74 6f 20 74 68 69 6e 6b 2e 0a 20 2a 20 20 2d 20 41 6c 6c 20 4f 54 48 45 52 20 43 hard.to.think...*..-.All.OTHER.C
5640 6c 61 75 64 65 20 6d 6f 64 65 6c 73 20 75 73 65 20 63 6c 61 73 73 69 63 20 60 7b 20 74 68 69 6e laude.models.use.classic.`{.thin
5660 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 2c 0a 20 2a 20 20 20 20 62 king:.{.type:."enabled",..*....b
5680 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 60 2e 20 54 68 65 20 62 75 64 67 65 74 20 69 73 20 udgetTokens.}.}`..The.budget.is.
56a0 61 20 63 65 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 20 e2 80 94 a.ceiling,.not.a.requirement....
56c0 20 74 68 65 20 6d 6f 64 65 6c 0a 20 2a 20 20 20 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 20 .the.model..*....self-regulates.
56e0 74 68 69 6e 6b 69 6e 67 20 76 73 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 60 6d 61 78 thinking.vs.response.within.`max
5700 4f 75 74 70 75 74 54 6f 6b 65 6e 73 60 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 65 64 20 61 73 OutputTokens`...*..*.Returned.as
5720 20 63 6f 6e 63 72 65 74 65 20 6f 62 6a 65 63 74 20 73 68 61 70 65 73 20 28 6e 6f 20 6f 70 74 69 .concrete.object.shapes.(no.opti
5740 6f 6e 61 6c 2f 60 75 6e 64 65 66 69 6e 65 64 60 20 70 72 6f 70 65 72 74 69 65 73 29 20 73 6f 20 onal/`undefined`.properties).so.
5760 74 68 65 0a 20 2a 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6c 65 61 6e 20 60 52 65 63 6f 72 64 the..*.result.is.a.clean.`Record
5780 3c 73 74 72 69 6e 67 2c 20 4a 53 4f 4e 56 61 6c 75 65 3e 60 20 66 6f 72 20 60 70 72 6f 76 69 64 <string,.JSONValue>`.for.`provid
57a0 65 72 4f 70 74 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 60 2e 0a 20 2a 20 43 61 6c 6c 65 72 73 erOptions.anthropic`...*.Callers
57c0 20 6f 6e 6c 79 20 69 6e 76 6f 6b 65 20 74 68 69 73 20 77 68 65 6e 20 60 65 66 66 6f 72 74 20 21 .only.invoke.this.when.`effort.!
57e0 3d 3d 20 22 6e 6f 6e 65 22 60 2e 0a 20 2a 2f 0a 65 78 70 6f 72 74 20 66 75 6e 63 74 69 6f 6e 20 ==."none"`...*/.export.function.
5800 61 6e 74 68 72 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 anthropicThinkingProviderOptions
5820 28 6d 6f 64 65 6c 3a 20 73 74 72 69 6e 67 2c 20 65 66 66 6f 72 74 3a 20 52 65 61 73 6f 6e 69 6e (model:.string,.effort:.Reasonin
5840 67 45 66 66 6f 72 74 29 20 7b 0a 09 63 6f 6e 73 74 20 6f 70 75 73 56 65 72 73 69 6f 6e 20 3d 20 gEffort).{..const.opusVersion.=.
5860 2f 6f 70 75 73 2d 28 5c 64 2b 29 5b 2e 2d 5d 28 5c 64 2b 29 28 3f 3a 5b 2e 40 2d 5d 7c 24 29 2f /opus-(\d+)[.-](\d+)(?:[.@-]|$)/
5880 69 2e 65 78 65 63 28 6d 6f 64 65 6c 29 3b 0a 09 63 6f 6e 73 74 20 69 73 4f 70 75 73 34 37 4f 72 i.exec(model);..const.isOpus47Or
58a0 4c 61 74 65 72 20 3d 20 6f 70 75 73 56 65 72 73 69 6f 6e 0a 09 09 3f 20 4e 75 6d 62 65 72 28 6f Later.=.opusVersion...?.Number(o
58c0 70 75 73 56 65 72 73 69 6f 6e 5b 31 5d 29 20 3e 20 34 20 7c 7c 20 28 4e 75 6d 62 65 72 28 6f 70 pusVersion[1]).>.4.||.(Number(op
58e0 75 73 56 65 72 73 69 6f 6e 5b 31 5d 29 20 3d 3d 3d 20 34 20 26 26 20 4e 75 6d 62 65 72 28 6f 70 usVersion[1]).===.4.&&.Number(op
5900 75 73 56 65 72 73 69 6f 6e 5b 32 5d 29 20 3e 3d 20 37 29 0a 09 09 3a 20 66 61 6c 73 65 3b 0a 09 usVersion[2]).>=.7)...:.false;..
5920 63 6f 6e 73 74 20 69 73 41 64 61 70 74 69 76 65 20 3d 0a 09 09 69 73 4f 70 75 73 34 37 4f 72 4c const.isAdaptive.=...isOpus47OrL
5940 61 74 65 72 20 7c 7c 0a 09 09 5b 22 6f 70 75 73 2d 34 2d 36 22 2c 20 22 6f 70 75 73 2d 34 2e 36 ater.||...["opus-4-6",."opus-4.6
5960 22 2c 20 22 73 6f 6e 6e 65 74 2d 34 2d 36 22 2c 20 22 73 6f 6e 6e 65 74 2d 34 2e 36 22 5d 2e 73 ",."sonnet-4-6",."sonnet-4.6"].s
5980 6f 6d 65 28 28 73 29 20 3d 3e 20 6d 6f 64 65 6c 2e 69 6e 63 6c 75 64 65 73 28 73 29 29 3b 0a 0a ome((s).=>.model.includes(s));..
59a0 09 69 66 20 28 69 73 41 64 61 70 74 69 76 65 29 20 7b 0a 09 09 72 65 74 75 72 6e 20 69 73 4f 70 .if.(isAdaptive).{...return.isOp
59c0 75 73 34 37 4f 72 4c 61 74 65 72 0a 09 09 09 3f 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 us47OrLater....?.{.thinking:.{.t
59e0 79 70 65 3a 20 22 61 64 61 70 74 69 76 65 22 20 61 73 20 63 6f 6e 73 74 2c 20 64 69 73 70 6c 61 ype:."adaptive".as.const,.displa
5a00 79 3a 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 66 6f y:."summarized".as.const.},.effo
5a20 72 74 20 7d 0a 09 09 09 3a 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 61 rt.}....:.{.thinking:.{.type:."a
5a40 64 61 70 74 69 76 65 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 66 6f 72 74 20 7d 3b 0a 09 daptive".as.const.},.effort.};..
5a60 7d 0a 0a 09 63 6f 6e 73 74 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 3d 0a 09 09 65 66 66 6f 72 }...const.budgetTokens.=...effor
5a80 74 20 3d 3d 3d 20 22 6d 61 78 22 0a 09 09 09 3f 20 33 31 39 39 39 0a 09 09 09 3a 20 65 66 66 6f t.===."max"....?.31999....:.effo
5aa0 72 74 20 3d 3d 3d 20 22 78 68 69 67 68 22 0a 09 09 09 09 3f 20 32 34 30 30 30 0a 09 09 09 09 3a rt.===."xhigh".....?.24000.....:
5ac0 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 68 69 67 68 22 0a 09 09 09 09 09 3f 20 31 36 30 30 30 0a .effort.===."high"......?.16000.
5ae0 09 09 09 09 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6d 65 64 69 75 6d 22 0a 09 09 09 09 09 .....:.effort.===."medium"......
5b00 09 3f 20 35 30 30 30 0a 09 09 09 09 09 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6c 6f 77 22 .?.5000.......:.effort.===."low"
5b20 0a 09 09 09 09 09 09 09 3f 20 32 30 30 30 0a 09 09 09 09 09 09 09 3a 20 30 3b 0a 09 72 65 74 75 ........?.2000........:.0;..retu
5b40 72 6e 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 rn.{.thinking:.{.type:."enabled"
5b60 20 61 73 20 63 6f 6e 73 74 2c 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 3b 0a 7d 0a 0a .as.const,.budgetTokens.}.};.}..
5b80 63 6f 6e 73 74 20 4d 41 58 5f 53 54 45 50 53 20 3d 20 35 30 3b 0a 0a 65 78 70 6f 72 74 20 63 6c const.MAX_STEPS.=.50;..export.cl
5ba0 61 73 73 20 41 67 65 6e 74 20 7b 0a 09 73 74 61 74 75 73 3a 20 41 67 65 6e 74 53 74 61 74 75 73 ass.Agent.{..status:.AgentStatus
5bc0 20 3d 20 22 69 64 6c 65 22 3b 0a 09 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 .=."idle";..messages:.ChatMessag
5be0 65 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 70 72 69 76 61 74 65 20 63 6f 6e 66 69 67 3a 20 41 67 65 6e e[].=.[];...private.config:.Agen
5c00 74 43 6f 6e 66 69 67 3b 0a 09 70 72 69 76 61 74 65 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 tConfig;..private.queueCallbacks
5c20 3f 3a 20 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 0a 09 63 6f 6e 73 74 72 75 63 74 6f 72 ?:.QueueCallbacks;...constructor
5c40 28 63 6f 6e 66 69 67 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 2c 20 71 75 65 75 65 43 61 6c 6c 62 (config:.AgentConfig,.queueCallb
5c60 61 63 6b 73 3f 3a 20 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 09 09 74 68 69 73 2e acks?:.QueueCallbacks).{...this.
5c80 63 6f 6e 66 69 67 20 3d 20 63 6f 6e 66 69 67 3b 0a 09 09 74 68 69 73 2e 71 75 65 75 65 43 61 6c config.=.config;...this.queueCal
5ca0 6c 62 61 63 6b 73 20 3d 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 09 7d 0a 0a 09 70 72 lbacks.=.queueCallbacks;..}...pr
5cc0 69 76 61 74 65 20 61 73 79 6e 63 20 65 78 65 63 75 74 65 54 6f 6f 6c 57 69 74 68 53 74 72 65 61 ivate.async.executeToolWithStrea
5ce0 6d 69 6e 67 28 0a 09 09 74 63 3a 20 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 09 73 68 65 6c 6c 4f 75 74 ming(...tc:.ToolCall,...shellOut
5d00 70 75 74 51 75 65 75 65 3a 20 41 72 72 61 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 putQueue:.Array<{.data:.string;.
5d20 73 74 72 65 61 6d 3a 20 22 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 2c 0a stream:."stdout".|."stderr".}>,.
5d40 09 29 3a 20 50 72 6f 6d 69 73 65 3c 54 6f 6f 6c 52 65 73 75 6c 74 3e 20 7b 0a 09 09 63 6f 6e 73 .):.Promise<ToolResult>.{...cons
5d60 74 20 72 65 67 69 73 74 72 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 28 t.registry.=.createToolRegistry(
5d80 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c this.config.tools);...const.tool
5da0 20 3d 20 72 65 67 69 73 74 72 79 2e 67 65 74 54 6f 6f 6c 28 74 63 2e 6e 61 6d 65 29 3b 0a 09 09 .=.registry.getTool(tc.name);...
5dc0 69 66 20 28 21 74 6f 6f 6c 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f if.(!tool).{....return.{.....too
5de0 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 lCallId:.tc.id,.....toolName:.tc
5e00 2e 6e 61 6d 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 60 55 6e 6b 6e 6f 77 6e 20 74 6f 6f 6c .name,.....result:.`Unknown.tool
5e20 3a 20 24 7b 74 63 2e 6e 61 6d 65 7d 60 2c 0a 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 :.${tc.name}`,.....isError:.true
5e40 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 ,....};...}....//.Permission.che
5e60 63 6b 20 66 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 e2 80 94 20 6f 6e 6c 79 20 70 ck.for.shell.commands.....only.p
5e80 72 6f 6d 70 74 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 rompt.for.external.directory.acc
5ea0 65 73 73 2e 0a 09 09 2f 2f 20 43 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 73 74 61 79 20 77 69 74 ess....//.Commands.that.stay.wit
5ec0 68 69 6e 20 74 68 65 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 61 72 65 20 61 75 hin.the.working.directory.are.au
5ee0 74 6f 2d 61 6c 6c 6f 77 65 64 2e 0a 09 09 69 66 20 28 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 to-allowed....if.(tc.name.===."r
5f00 75 6e 5f 73 68 65 6c 6c 22 20 26 26 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 un_shell".&&.this.config.permiss
5f20 69 6f 6e 43 68 65 63 6b 65 72 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 6f 6d 6d 61 6e 64 20 3d ionChecker).{....const.command.=
5f40 20 74 79 70 65 6f 66 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3d 3d 3d .typeof.tc.arguments.command.===
5f60 20 22 73 74 72 69 6e 67 22 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 ."string".?.tc.arguments.command
5f80 20 3a 20 22 22 3b 0a 09 09 09 63 6f 6e 73 74 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 .:."";....const.workingDirectory
5fa0 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 3b .=.this.config.workingDirectory;
5fc0 0a 09 09 09 63 6f 6e 73 74 20 61 6e 61 6c 79 73 69 73 20 3d 20 61 77 61 69 74 20 61 6e 61 6c 79 ....const.analysis.=.await.analy
5fe0 7a 65 43 6f 6d 6d 61 6e 64 28 63 6f 6d 6d 61 6e 64 2c 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 zeCommand(command,.workingDirect
6000 6f 72 79 29 3b 0a 09 09 09 63 6f 6e 73 74 20 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f ory);....const.ruleset.=.this.co
6020 6e 66 69 67 2e 72 75 6c 65 73 65 74 20 3f 3f 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 43 68 65 63 6b nfig.ruleset.??.[];.....//.Check
6040 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 20 66 .for.external.directory.access.f
6060 72 6f 6d 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 0a 09 09 09 69 66 20 28 61 6e 61 6c 79 73 69 rom.shell.command....if.(analysi
6080 73 2e 64 69 72 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 64 s.dirs.length.>.0).{.....const.d
60a0 69 72 52 65 71 75 65 73 74 20 3d 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 irRequest.=.{......permission:."
60c0 65 78 74 65 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 external_directory",......patter
60e0 6e 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 60 24 7b ns:.analysis.dirs.map((d).=>.`${
6100 64 7d 2f 2a 60 29 2c 0a 09 09 09 09 09 61 6c 77 61 79 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 d}/*`),......always:.analysis.di
6120 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a 60 29 2c 0a 09 09 09 09 09 64 65 rs.map((d).=>.`${d}/*`),......de
6140 73 63 72 69 70 74 69 6f 6e 3a 20 60 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 61 63 63 65 73 73 scription:.`Shell.command.access
6160 65 73 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 3a 20 24 7b 61 6e 61 6c 79 73 69 es.external.directory:.${analysi
6180 73 2e 64 69 72 73 2e 6a 6f 69 6e 28 22 2c 20 22 29 7d 60 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 s.dirs.join(",.")}`,......metada
61a0 74 61 3a 20 7b 20 63 6f 6d 6d 61 6e 64 2c 20 64 69 72 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 ta:.{.command,.dirs:.analysis.di
61c0 72 73 20 7d 2c 0a 09 09 09 09 7d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 rs.},.....};.....try.{......cons
61e0 74 20 64 69 72 52 65 70 6c 79 20 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 t.dirReply.=.await.this.config.p
6200 65 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 2e 61 73 6b 28 64 69 72 52 65 71 75 65 73 74 2c ermissionChecker.ask(dirRequest,
6220 20 5b 72 75 6c 65 73 65 74 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 64 69 72 52 65 70 6c 79 20 3d .[ruleset]);......if.(dirReply.=
6240 3d 3d 20 22 72 65 6a 65 63 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 ==."reject").{.......return.{...
6260 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 .....toolCallId:.tc.id,........t
6280 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a oolName:.tc.name,........result:
62a0 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 61 63 63 65 73 73 20 74 6f 20 65 .`Permission.denied:.access.to.e
62c0 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 69 65 73 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 xternal.directories.rejected`,..
62e0 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 ......isError:.true,.......};...
6300 09 09 09 7d 0a 09 09 09 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 7b ...}.....}.catch.{......return.{
6320 0a 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 .......toolCallId:.tc.id,.......
6340 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 73 75 6c 74 3a toolName:.tc.name,.......result:
6360 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 65 78 74 65 72 6e 61 6c 20 64 69 .`Permission.denied:.external.di
6380 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 rectory.access.not.allowed`,....
63a0 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a ...isError:.true,......};.....}.
63c0 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 ...}...}....//.Permission.check.
63e0 66 6f 72 20 66 69 6c 65 20 74 6f 6f 6c 73 20 61 63 63 65 73 73 69 6e 67 20 70 61 74 68 73 20 6f for.file.tools.accessing.paths.o
6400 75 74 73 69 64 65 20 77 6f 72 6b 73 70 61 63 65 0a 09 09 69 66 20 28 0a 09 09 09 74 68 69 73 2e utside.workspace...if.(....this.
6420 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 20 26 26 0a 09 09 09 28 config.permissionChecker.&&....(
6440 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 tc.name.===."read_file".||.....t
6460 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 0a c.name.===."read_file_slice".||.
6480 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 7c 7c 0a ....tc.name.===."write_file".||.
64a0 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 29 0a 09 09 ....tc.name.===."list_files")...
64c0 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 70 61 74 68 41 72 67 20 3d 20 74 79 70 65 6f 66 20 74 63 ).{....const.pathArg.=.typeof.tc
64e0 2e 61 72 67 75 6d 65 6e 74 73 2e 70 61 74 68 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 74 .arguments.path.===."string".?.t
6500 63 2e 61 72 67 75 6d 65 6e 74 73 2e 70 61 74 68 20 3a 20 22 2e 22 3b 0a 0a 09 09 09 2f 2f 20 43 c.arguments.path.:.".";.....//.C
6520 61 6e 6f 6e 69 63 61 6c 69 7a 65 20 61 6c 6c 20 74 68 72 65 65 20 73 6f 20 73 79 6d 6c 69 6e 6b anonicalize.all.three.so.symlink
6540 2d 69 6e 2d 77 6f 72 6b 64 69 72 20 65 73 63 61 70 65 73 20 61 72 65 20 64 65 74 65 63 74 65 64 -in-workdir.escapes.are.detected
6560 0a 09 09 09 2f 2f 20 61 74 20 74 68 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 67 61 74 65 20 28 6e ....//.at.the.permission.gate.(n
6580 6f 74 20 6a 75 73 74 20 72 65 6c 61 74 69 76 65 20 60 2e 2e 2f 60 20 74 72 61 76 65 72 73 61 6c ot.just.relative.`../`.traversal
65a0 29 2e 20 54 68 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 77 61 6c 6b 73 20 75 70 20 74 6f 20 )..The....//.helper.walks.up.to.
65c0 74 68 65 20 6e 65 61 72 65 73 74 20 65 78 69 73 74 69 6e 67 20 61 6e 63 65 73 74 6f 72 20 77 68 the.nearest.existing.ancestor.wh
65e0 65 6e 20 74 68 65 20 6c 65 61 66 0a 09 09 09 2f 2f 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 en.the.leaf....//.doesn't.exist.
6600 28 77 72 69 74 65 5f 66 69 6c 65 20 63 72 65 61 74 69 6e 67 20 6e 65 77 20 66 69 6c 65 73 29 2c (write_file.creating.new.files),
6620 20 73 6f 20 61 20 70 61 72 65 6e 74 0a 09 09 09 2f 2f 20 73 79 6d 6c 69 6e 6b 20 70 6f 69 6e 74 .so.a.parent....//.symlink.point
6640 69 6e 67 20 6f 75 74 73 69 64 65 20 74 68 65 20 77 6f 72 6b 64 69 72 20 69 73 20 73 74 69 6c 6c ing.outside.the.workdir.is.still
6660 20 63 61 75 67 68 74 2e 20 54 68 65 20 73 61 6d 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 69 .caught..The.same....//.helper.i
6680 73 20 75 73 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 74 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 s.used.inside.the.tool.implement
66a0 61 74 69 6f 6e 73 20 e2 80 94 20 6b 65 65 70 69 6e 67 20 74 68 65 0a 09 09 09 2f 2f 20 74 77 6f ations.....keeping.the....//.two
66c0 20 6c 61 79 65 72 73 20 63 6f 6e 73 69 73 74 65 6e 74 20 73 6f 20 61 20 70 61 74 68 20 74 68 61 .layers.consistent.so.a.path.tha
66e0 74 20 6c 6f 6f 6b 73 20 65 78 74 65 72 6e 61 6c 20 68 65 72 65 20 61 6c 73 6f 0a 09 09 09 2f 2f t.looks.external.here.also....//
6700 20 6c 6f 6f 6b 73 20 65 78 74 65 72 6e 61 6c 20 69 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 61 6e 64 .looks.external.in.the.tool,.and
6720 20 76 69 63 65 20 76 65 72 73 61 2e 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 50 61 .vice.versa.....const.resolvedPa
6740 74 68 20 3d 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e th.=.await.canonicalize(this.con
6760 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 2c 20 70 61 74 68 41 72 67 29 3b 0a fig.workingDirectory,.pathArg);.
6780 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 20 3d 20 61 77 61 69 74 ...const.resolvedWorkDir.=.await
67a0 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e .canonicalize(this.config.workin
67c0 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 53 70 gDirectory);....const.resolvedSp
67e0 69 6c 6c 52 6f 6f 74 20 3d 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 53 50 49 illRoot.=.await.canonicalize(SPI
6800 4c 4c 5f 52 4f 4f 54 29 3b 0a 0a 09 09 09 63 6f 6e 73 74 20 69 73 55 6e 64 65 72 57 6f 72 6b 64 LL_ROOT);.....const.isUnderWorkd
6820 69 72 20 3d 0a 09 09 09 09 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 72 65 73 6f 6c 76 ir.=.....resolvedPath.===.resolv
6840 65 64 57 6f 72 6b 44 69 72 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 edWorkDir.||.resolvedPath.starts
6860 57 69 74 68 28 60 24 7b 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 7d 2f 60 29 3b 0a 09 09 09 With(`${resolvedWorkDir}/`);....
6880 2f 2f 20 44 69 73 70 61 74 63 68 27 73 20 6f 77 6e 20 74 6f 6f 6c 2d 6f 75 74 70 75 74 20 73 70 //.Dispatch's.own.tool-output.sp
68a0 69 6c 6c 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 6c 6c 6f ill.directory.is.implicitly.allo
68c0 77 65 64 20 e2 80 94 0a 09 09 09 2f 2f 20 74 68 65 20 41 49 20 72 65 63 65 69 76 65 73 20 61 20 wed........//.the.AI.receives.a.
68e0 74 72 75 6e 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 69 6e 67 20 68 65 72 65 20 truncation.notice.pointing.here.
6900 61 6e 64 20 69 73 20 65 78 70 65 63 74 65 64 0a 09 09 09 2f 2f 20 74 6f 20 72 65 61 64 20 69 74 and.is.expected....//.to.read.it
6920 20 77 69 74 68 6f 75 74 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 2e 20 42 79 70 .without.prompting.the.user..Byp
6940 61 73 73 69 6e 67 20 74 68 65 20 65 78 74 65 72 6e 61 6c 2d 0a 09 09 09 2f 2f 20 64 69 72 65 63 assing.the.external-....//.direc
6960 74 6f 72 79 20 63 68 65 63 6b 20 68 65 72 65 20 6b 65 65 70 73 20 74 68 65 20 69 6e 73 70 65 63 tory.check.here.keeps.the.inspec
6980 74 69 6f 6e 20 66 6c 6f 77 20 66 72 69 63 74 69 6f 6e 6c 65 73 73 2e 0a 09 09 09 63 6f 6e 73 74 tion.flow.frictionless.....const
69a0 20 69 73 53 70 69 6c 6c 50 61 74 68 20 3d 0a 09 09 09 09 72 65 73 6f 6c 76 65 64 50 61 74 68 20 .isSpillPath.=.....resolvedPath.
69c0 3d 3d 3d 20 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 7c 7c 20 72 65 73 6f 6c 76 65 ===.resolvedSpillRoot.||.resolve
69e0 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 28 60 24 7b 72 65 73 6f 6c 76 65 64 53 70 69 6c dPath.startsWith(`${resolvedSpil
6a00 6c 52 6f 6f 74 7d 2f 60 29 3b 0a 0a 09 09 09 2f 2f 20 41 67 65 6e 74 20 64 65 66 69 6e 69 74 69 lRoot}/`);.....//.Agent.definiti
6a20 6f 6e 73 20 6c 69 76 65 20 69 6e 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 64 69 72 65 63 74 6f 72 69 ons.live.in.well-known.directori
6a40 65 73 0a 09 09 09 2f 2f 20 28 60 7e 2f 2e 63 6f 6e 66 69 67 2f 64 69 73 70 61 74 63 68 2f 61 67 es....//.(`~/.config/dispatch/ag
6a60 65 6e 74 73 2f 60 20 61 6e 64 0a 09 09 09 2f 2f 20 60 3c 77 6f 72 6b 64 69 72 3e 2f 2e 64 69 73 ents/`.and....//.`<workdir>/.dis
6a80 70 61 74 63 68 2f 61 67 65 6e 74 73 2f 60 29 2e 20 52 65 61 64 69 6e 67 20 74 68 6f 73 65 20 69 patch/agents/`)..Reading.those.i
6aa0 73 20 61 0a 09 09 09 2f 2f 20 70 72 65 72 65 71 75 69 73 69 74 65 20 66 6f 72 20 74 68 65 20 73 s.a....//.prerequisite.for.the.s
6ac0 75 6d 6d 6f 6e 20 74 6f 6f 6c 27 73 20 22 73 70 65 63 69 66 79 20 77 68 69 63 68 20 73 75 62 61 ummon.tool's."specify.which.suba
6ae0 67 65 6e 74 22 0a 09 09 09 2f 2f 20 66 6c 6f 77 20 e2 80 94 20 74 68 65 20 4c 4c 4d 20 6e 65 65 gent"....//.flow.....the.LLM.nee
6b00 64 73 20 74 6f 20 69 6e 73 70 65 63 74 20 74 68 65 20 54 4f 4d 4c 20 74 6f 20 6b 6e 6f 77 20 77 ds.to.inspect.the.TOML.to.know.w
6b20 68 61 74 20 65 61 63 68 0a 09 09 09 2f 2f 20 61 67 65 6e 74 20 64 6f 65 73 2e 20 57 65 20 61 75 hat.each....//.agent.does..We.au
6b40 74 6f 2d 61 6c 6c 6f 77 20 52 45 41 44 2d 4f 4e 4c 59 20 74 6f 6f 6c 73 20 75 6e 64 65 72 20 74 to-allow.READ-ONLY.tools.under.t
6b60 68 6f 73 65 20 70 61 74 68 73 0a 09 09 09 2f 2f 20 77 69 74 68 6f 75 74 20 70 72 6f 6d 70 74 69 hose.paths....//.without.prompti
6b80 6e 67 20 74 68 65 20 75 73 65 72 2e 20 57 72 69 74 65 73 20 28 60 77 72 69 74 65 5f 66 69 6c 65 ng.the.user..Writes.(`write_file
6ba0 60 29 20 73 74 69 6c 6c 20 67 6f 0a 09 09 09 2f 2f 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 6f `).still.go....//.through.the.no
6bc0 72 6d 61 6c 20 65 78 74 65 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 20 67 61 74 65 20 73 6f 20 rmal.external_directory.gate.so.
6be0 61 6e 20 61 67 65 6e 74 20 63 61 6e 27 74 0a 09 09 09 2f 2f 20 71 75 69 65 74 6c 79 20 6f 76 65 an.agent.can't....//.quietly.ove
6c00 72 77 72 69 74 65 20 61 6e 6f 74 68 65 72 20 61 67 65 6e 74 27 73 20 64 65 66 69 6e 69 74 69 6f rwrite.another.agent's.definitio
6c20 6e 2e 0a 09 09 09 63 6f 6e 73 74 20 69 73 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 20 3d 0a 09 09 09 n.....const.isReadOnlyTool.=....
6c40 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 20 74 63 2e 6e .tc.name.===."read_file".||.tc.n
6c60 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 20 74 63 2e ame.===."read_file_slice".||.tc.
6c80 6e 61 6d 65 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 3b 0a 09 09 09 6c 65 74 20 69 73 name.===."list_files";....let.is
6ca0 41 67 65 6e 74 73 44 69 72 52 65 61 64 4f 6e 6c 79 20 3d 20 66 61 6c 73 65 3b 0a 09 09 09 69 66 AgentsDirReadOnly.=.false;....if
6cc0 20 28 69 73 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 61 67 .(isReadOnlyTool).{.....const.ag
6ce0 65 6e 74 44 69 72 73 20 3d 20 67 65 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 28 74 68 69 73 2e entDirs.=.getAgentDirPaths(this.
6d00 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 09 63 6f config.workingDirectory);.....co
6d20 6e 73 74 20 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 20 3d 20 61 77 61 69 74 20 50 nst.canonicalAgentDirs.=.await.P
6d40 72 6f 6d 69 73 65 2e 61 6c 6c 28 61 67 65 6e 74 44 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 romise.all(agentDirs.map((d).=>.
6d60 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 64 29 29 29 3b 0a 09 09 09 09 69 73 41 67 65 6e 74 73 44 canonicalize(d)));.....isAgentsD
6d80 69 72 52 65 61 64 4f 6e 6c 79 20 3d 20 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 2e irReadOnly.=.canonicalAgentDirs.
6da0 73 6f 6d 65 28 0a 09 09 09 09 09 28 64 29 20 3d 3e 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d some(......(d).=>.resolvedPath.=
6dc0 3d 3d 20 64 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 28 ==.d.||.resolvedPath.startsWith(
6de0 60 24 7b 64 7d 2f 60 29 2c 0a 09 09 09 09 29 3b 0a 09 09 09 7d 0a 0a 09 09 09 69 66 20 28 21 69 `${d}/`),.....);....}.....if.(!i
6e00 73 55 6e 64 65 72 57 6f 72 6b 64 69 72 20 26 26 20 21 69 73 53 70 69 6c 6c 50 61 74 68 20 26 26 sUnderWorkdir.&&.!isSpillPath.&&
6e20 20 21 69 73 41 67 65 6e 74 73 44 69 72 52 65 61 64 4f 6e 6c 79 29 20 7b 0a 09 09 09 09 63 6f 6e .!isAgentsDirReadOnly).{.....con
6e40 73 74 20 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 20 3d 0a 09 09 09 09 09 74 63 2e 6e 61 6d 65 st.permissionType.=......tc.name
6e60 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 3f 20 22 72 65 61 64 22 20 3a 20 74 63 2e 6e .===."read_file".?."read".:.tc.n
6e80 61 6d 65 20 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 3f 20 22 65 64 69 74 22 20 3a 20 ame.===."write_file".?."edit".:.
6ea0 22 6c 69 73 74 22 3b 0a 0a 09 09 09 09 63 6f 6e 73 74 20 70 61 72 65 6e 74 44 69 72 20 3d 20 64 "list";......const.parentDir.=.d
6ec0 69 72 6e 61 6d 65 28 72 65 73 6f 6c 76 65 64 50 61 74 68 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 irname(resolvedPath);.....const.
6ee0 72 65 71 75 65 73 74 20 3d 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 request.=.{......permission:."ex
6f00 74 65 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 ternal_directory",......patterns
6f20 3a 20 5b 60 24 7b 70 61 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 61 6c 77 61 79 :.[`${parentDir}/*`],......alway
6f40 73 3a 20 5b 60 24 7b 70 61 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 64 65 73 63 s:.[`${parentDir}/*`],......desc
6f60 72 69 70 74 69 6f 6e 3a 20 60 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 66 69 6c 65 ription:.`${permissionType}.file
6f80 20 6f 75 74 73 69 64 65 20 77 6f 72 6b 73 70 61 63 65 3a 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 .outside.workspace:.${resolvedPa
6fa0 74 68 7d 60 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 66 69 6c 65 70 61 74 68 3a th}`,......metadata:.{.filepath:
6fc0 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2c 20 70 61 72 65 6e 74 44 69 72 2c 20 6f 70 65 72 61 74 .resolvedPath,.parentDir,.operat
6fe0 69 6f 6e 3a 20 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 20 7d 2c 0a 09 09 09 09 7d 3b 0a 0a 09 ion:.permissionType.},.....};...
7000 09 09 09 63 6f 6e 73 74 20 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 72 ...const.ruleset.=.this.config.r
7020 75 6c 65 73 65 74 20 3f 3f 20 5b 5d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e uleset.??.[];.....try.{......con
7040 73 74 20 72 65 70 6c 79 20 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 st.reply.=.await.this.config.per
7060 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 2e 61 73 6b 28 72 65 71 75 65 73 74 2c 20 5b 72 75 6c missionChecker.ask(request,.[rul
7080 65 73 65 74 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 72 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 eset]);......if.(reply.===."reje
70a0 63 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f ct").{.......return.{........too
70c0 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a lCallId:.tc.id,........toolName:
70e0 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 .tc.name,........result:.`Permis
7100 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 61 sion.denied:.${permissionType}.a
7120 63 63 65 73 73 20 74 6f 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 20 72 65 6a 65 63 74 65 ccess.to.${resolvedPath}.rejecte
7140 64 60 2c 0a 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 d`,........isError:.true,.......
7160 7d 3b 0a 09 09 09 09 09 7d 0a 09 09 09 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 };......}.....}.catch.{......ret
7180 75 72 6e 20 7b 0a 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 urn.{.......toolCallId:.tc.id,..
71a0 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 .....toolName:.tc.name,.......re
71c0 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 24 7b 70 65 72 6d sult:.`Permission.denied:.${perm
71e0 69 73 73 69 6f 6e 54 79 70 65 7d 20 61 63 63 65 73 73 20 74 6f 20 24 7b 72 65 73 6f 6c 76 65 64 issionType}.access.to.${resolved
7200 50 61 74 68 7d 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 73 45 72 72 6f Path}.not.allowed`,.......isErro
7220 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09 7d 0a r:.true,......};.....}....}...}.
7240 0a 09 09 74 72 79 20 7b 0a 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 ...try.{....const.execPromise.=.
7260 74 6f 6f 6c 2e 65 78 65 63 75 74 65 28 74 63 2e 61 72 67 75 6d 65 6e 74 73 2c 20 7b 0a 09 09 09 tool.execute(tc.arguments,.{....
7280 09 6f 6e 4f 75 74 70 75 74 3a 20 28 64 61 74 61 3a 20 73 74 72 69 6e 67 2c 20 73 74 72 65 61 6d .onOutput:.(data:.string,.stream
72a0 3a 20 22 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 29 20 3d 3e 20 7b 0a 09 09 09 09 :."stdout".|."stderr").=>.{.....
72c0 09 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 70 75 73 68 28 7b 20 64 61 74 61 2c 20 73 .shellOutputQueue.push({.data,.s
72e0 74 72 65 61 6d 20 7d 29 3b 0a 09 09 09 09 7d 2c 0a 09 09 09 09 71 75 65 75 65 43 61 6c 6c 62 61 tream.});.....},.....queueCallba
7300 63 6b 73 3a 20 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 09 09 7d 29 3b cks:.this.queueCallbacks,....});
7320 0a 0a 09 09 09 63 6f 6e 73 74 20 72 61 77 52 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 65 78 65 .....const.rawResult.=.await.exe
7340 63 50 72 6f 6d 69 73 65 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 53 74 72 20 3d 20 74 cPromise;....const.resultStr.=.t
7360 79 70 65 6f 66 20 72 61 77 52 65 73 75 6c 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 72 ypeof.rawResult.===."string".?.r
7380 61 77 52 65 73 75 6c 74 20 3a 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 72 61 77 52 65 73 awResult.:.JSON.stringify(rawRes
73a0 75 6c 74 29 3b 0a 0a 09 09 09 2f 2f 20 43 6f 6d 70 75 74 65 20 69 73 45 72 72 6f 72 20 6f 6e 20 ult);.....//.Compute.isError.on.
73c0 74 68 65 20 72 61 77 20 28 75 6e 74 72 75 6e 63 61 74 65 64 29 20 73 74 72 69 6e 67 20 73 6f 20 the.raw.(untruncated).string.so.
73e0 61 6e 20 60 45 72 72 6f 72 3a 60 20 70 72 65 66 69 78 0a 09 09 09 2f 2f 20 74 68 61 74 20 6c 69 an.`Error:`.prefix....//.that.li
7400 76 65 73 20 61 6e 79 77 68 65 72 65 20 e2 80 94 20 69 6e 63 6c 75 64 69 6e 67 20 62 65 79 6f 6e ves.anywhere.....including.beyon
7420 64 20 74 68 65 20 68 65 61 64 20 65 78 63 65 72 70 74 20 e2 80 94 20 69 73 20 73 74 69 6c 6c 0a d.the.head.excerpt.....is.still.
7440 09 09 09 2f 2f 20 64 65 74 65 63 74 65 64 2e 20 54 68 65 20 64 69 73 70 6c 61 79 20 72 65 73 75 ...//.detected..The.display.resu
7460 6c 74 20 67 6f 65 73 20 74 68 72 6f 75 67 68 20 75 6e 69 76 65 72 73 61 6c 20 74 72 75 6e 63 61 lt.goes.through.universal.trunca
7480 74 69 6f 6e 20 73 6f 0a 09 09 09 2f 2f 20 6f 76 65 72 73 69 7a 65 64 20 6f 75 74 70 75 74 73 20 tion.so....//.oversized.outputs.
74a0 64 6f 6e 27 74 20 62 6c 6f 77 20 63 6f 6e 74 65 78 74 2e 20 54 68 65 20 66 75 6c 6c 20 63 6f 6e don't.blow.context..The.full.con
74c0 74 65 6e 74 20 6c 69 76 65 73 20 69 6e 20 74 68 65 0a 09 09 09 2f 2f 20 73 70 69 6c 6c 20 66 69 tent.lives.in.the....//.spill.fi
74e0 6c 65 20 74 68 65 20 74 72 75 6e 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 73 20 le.the.truncation.notice.points.
7500 74 6f 2e 0a 09 09 09 63 6f 6e 73 74 20 69 73 45 72 72 6f 72 20 3d 20 72 65 73 75 6c 74 53 74 72 to.....const.isError.=.resultStr
7520 2e 73 74 61 72 74 73 57 69 74 68 28 22 45 72 72 6f 72 3a 22 29 3b 0a 09 09 09 63 6f 6e 73 74 20 .startsWith("Error:");....const.
7540 7b 20 64 69 73 70 6c 61 79 52 65 73 75 6c 74 20 7d 20 3d 20 61 70 70 6c 79 54 72 75 6e 63 61 74 {.displayResult.}.=.applyTruncat
7560 69 6f 6e 28 72 65 73 75 6c 74 53 74 72 2c 20 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 ion(resultStr,.{.....tabId:.this
7580 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 20 3f 3f 20 22 64 65 66 61 75 6c 74 22 2c 0a 09 09 09 09 .config.tabId.??."default",.....
75a0 63 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e callId:.tc.id,.....toolName:.tc.
75c0 6e 61 6d 65 2c 0a 09 09 09 7d 29 3b 0a 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f name,....});.....return.{.....to
75e0 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 olCallId:.tc.id,.....toolName:.t
7600 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 64 69 73 70 6c 61 79 52 65 73 75 6c c.name,.....result:.displayResul
7620 74 2c 0a 09 09 09 09 69 73 45 72 72 6f 72 2c 0a 09 09 09 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 t,.....isError,....};...}.catch.
7640 28 65 72 72 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c (err).{....return.{.....toolCall
7660 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 Id:.tc.id,.....toolName:.tc.name
7680 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 ,.....result:.err.instanceof.Err
76a0 6f 72 20 3f 20 65 72 72 2e 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 72 72 29 2c 0a or.?.err.message.:.String(err),.
76c0 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 7d 0a ....isError:.true,....};...}..}.
76e0 0a 09 2f 2a 2a 0a 09 20 2a 20 42 75 69 6c 64 20 73 79 6e 74 68 65 74 69 63 20 60 74 6f 6f 6c 2d ../**...*.Build.synthetic.`tool-
7700 72 65 73 75 6c 74 60 20 65 72 72 6f 72 20 65 76 65 6e 74 73 20 66 6f 72 20 65 76 65 72 79 20 74 result`.error.events.for.every.t
7720 6f 6f 6c 20 63 61 6c 6c 20 69 6e 0a 09 20 2a 20 60 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 60 20 ool.call.in...*.`stepToolCalls`.
7740 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20 68 61 76 65 20 61 20 72 65 63 6f 72 64 65 that.does.not.yet.have.a.recorde
7760 64 20 72 65 73 75 6c 74 20 69 6e 20 60 63 68 75 6e 6b 73 60 2e 0a 09 20 2a 0a 09 20 2a 20 57 68 d.result.in.`chunks`....*...*.Wh
7780 65 6e 20 61 20 74 6f 6f 6c 20 62 61 74 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 72 65 73 en.a.tool.batch.is.partially.res
77a0 6f 6c 76 65 64 20 e2 80 94 20 65 2e 67 2e 20 6f 6e 65 20 74 6f 6f 6c 20 65 6d 69 74 74 65 64 20 olved.....e.g..one.tool.emitted.
77c0 61 0a 09 20 2a 20 60 74 6f 6f 6c 2d 65 72 72 6f 72 60 20 77 68 69 6c 65 20 69 74 73 20 73 69 62 a...*.`tool-error`.while.its.sib
77e0 6c 69 6e 67 73 20 77 65 72 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2c 20 6f 72 20 74 68 lings.were.never.executed,.or.th
7800 65 20 73 74 72 65 61 6d 0a 09 20 2a 20 61 62 6f 72 74 65 64 20 6d 69 64 2d 62 61 74 63 68 20 e2 e.stream...*.aborted.mid-batch..
7820 80 94 20 74 68 65 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 ...the.unresolved.tool-call.IDs.
7840 61 72 65 20 72 65 67 69 73 74 65 72 65 64 20 69 6e 20 74 68 65 0a 09 20 2a 20 68 69 73 74 6f 72 are.registered.in.the...*.histor
7860 79 20 28 69 6e 73 69 64 65 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 29 20 62 y.(inside.`tool-batch`.chunks).b
7880 75 74 20 68 61 76 65 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 2e 20 4f 6e 20 74 ut.have.no.matching.result..On.t
78a0 68 65 0a 09 20 2a 20 6e 65 78 74 20 4c 4c 4d 20 72 6f 75 6e 64 2d 74 72 69 70 20 74 68 65 20 41 he...*.next.LLM.round-trip.the.A
78c0 49 20 53 44 4b 20 74 68 72 6f 77 73 20 60 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 I.SDK.throws.`MissingToolResults
78e0 45 72 72 6f 72 60 2e 20 46 69 6c 6c 69 6e 67 0a 09 20 2a 20 69 6e 20 60 69 73 45 72 72 6f 72 3a Error`..Filling...*.in.`isError:
7900 20 74 72 75 65 60 20 72 65 73 75 6c 74 73 20 66 6f 72 20 74 68 6f 73 65 20 6f 72 70 68 61 6e 65 .true`.results.for.those.orphane
7920 64 20 49 44 73 20 6b 65 65 70 73 20 74 68 65 20 6f 6e 2d 74 68 65 2d 77 69 72 65 0a 09 20 2a 20 d.IDs.keeps.the.on-the-wire...*.
7940 74 6f 6f 6c 2d 63 61 6c 6c 2f 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 69 72 69 6e 67 20 63 6f tool-call/tool-result.pairing.co
7960 6d 70 6c 65 74 65 2e 0a 09 20 2a 0a 09 20 2a 20 43 61 6c 6c 65 72 20 69 73 20 72 65 73 70 6f 6e mplete....*...*.Caller.is.respon
7980 73 69 62 6c 65 20 66 6f 72 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 sible.for.`appendEventToChunks(c
79a0 68 75 6e 6b 73 2c 20 65 76 74 29 60 20 2b 20 60 79 69 65 6c 64 60 69 6e 67 0a 09 20 2a 20 65 61 hunks,.evt)`.+.`yield`ing...*.ea
79c0 63 68 20 72 65 74 75 72 6e 65 64 20 65 76 65 6e 74 2e 0a 09 20 2a 2f 0a 09 70 72 69 76 61 74 65 ch.returned.event....*/..private
79e0 20 73 79 6e 74 68 65 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a .synthesizeResidualToolResults(.
7a00 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c 43 61 6c 6c 5b 5d 2c 0a 09 09 63 ..stepToolCalls:.ToolCall[],...c
7a20 68 75 6e 6b 73 3a 20 43 68 75 6e 6b 5b 5d 2c 0a 09 09 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 hunks:.Chunk[],...defaultMessage
7a40 3a 20 73 74 72 69 6e 67 2c 0a 09 29 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 7b 0a 09 09 63 :.string,..):.AgentEvent[].{...c
7a60 6f 6e 73 74 20 72 65 73 75 6c 74 73 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 3d 20 5b 5d 3b onst.results:.AgentEvent[].=.[];
7a80 0a 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 ...const.resolved.=.new.Set<stri
7aa0 6e 67 3e 28 29 3b 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 ng>();...for.(const.c.of.chunks)
7ac0 20 7b 0a 09 09 09 69 66 20 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 .{....if.(c.type.!==."tool-batch
7ae0 22 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 ").continue;....for.(const.entry
7b00 20 6f 66 20 63 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 .of.c.calls).{.....if.(entry.res
7b20 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 72 65 73 6f 6c 76 65 64 2e 61 64 64 28 ult.!==.undefined).resolved.add(
7b40 65 6e 74 72 79 2e 69 64 29 3b 0a 09 09 09 7d 0a 09 09 7d 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 entry.id);....}...}...for.(const
7b60 20 74 63 20 6f 66 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 29 20 7b 0a 09 09 09 69 66 20 28 72 .tc.of.stepToolCalls).{....if.(r
7b80 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 esolved.has(tc.id)).continue;...
7ba0 09 63 6f 6e 73 74 20 74 72 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 74 6f .const.tr:.ToolResult.=.{.....to
7bc0 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 olCallId:.tc.id,.....toolName:.t
7be0 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 64 65 66 61 75 6c 74 4d 65 73 73 61 c.name,.....result:.defaultMessa
7c00 67 65 2c 0a 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 09 ge,.....isError:.true,....};....
7c20 63 6f 6e 73 74 20 65 76 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 const.evt:.AgentEvent.=.{.type:.
7c40 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 74 72 20 7d 3b "tool-result",.toolResult:.tr.};
7c60 0a 09 09 09 72 65 73 75 6c 74 73 2e 70 75 73 68 28 65 76 74 29 3b 0a 09 09 7d 0a 09 09 72 65 74 ....results.push(evt);...}...ret
7c80 75 72 6e 20 72 65 73 75 6c 74 73 3b 0a 09 7d 0a 0a 09 61 73 79 6e 63 20 2a 72 75 6e 28 0a 09 09 urn.results;..}...async.*run(...
7ca0 75 73 65 72 4d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 2c 0a 09 09 6f 70 74 69 6f 6e 73 3f 3a userMessage:.string,...options?:
7cc0 20 7b 0a 09 09 09 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 3f 3a 20 52 65 61 73 6f 6e 69 6e .{....reasoningEffort?:.Reasonin
7ce0 67 45 66 66 6f 72 74 3b 0a 09 09 09 61 62 6f 72 74 53 69 67 6e 61 6c 3f 3a 20 41 62 6f 72 74 53 gEffort;....abortSignal?:.AbortS
7d00 69 67 6e 61 6c 3b 0a 09 09 7d 2c 0a 09 29 3a 20 41 73 79 6e 63 47 65 6e 65 72 61 74 6f 72 3c 41 ignal;...},..):.AsyncGenerator<A
7d20 67 65 6e 74 45 76 65 6e 74 3e 20 7b 0a 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 72 75 gentEvent>.{...this.status.=."ru
7d40 6e 6e 69 6e 67 22 3b 0a 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 nning";...yield.{.type:."status"
7d60 2c 20 73 74 61 74 75 73 3a 20 22 72 75 6e 6e 69 6e 67 22 20 7d 3b 0a 0a 09 09 74 68 69 73 2e 6d ,.status:."running".};....this.m
7d80 65 73 73 61 67 65 73 2e 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 68 75 essages.push({.role:."user",.chu
7da0 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 75 73 65 72 nks:.[{.type:."text",.text:.user
7dc0 4d 65 73 73 61 67 65 20 7d 5d 20 7d 29 3b 0a 0a 09 09 63 6f 6e 73 74 20 72 65 67 69 73 74 72 79 Message.}].});....const.registry
7de0 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 28 74 68 69 73 2e 63 6f 6e 66 69 .=.createToolRegistry(this.confi
7e00 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 2f 2f 20 60 69 73 43 6c 61 75 64 65 4f 41 75 74 68 60 20 67 g.tools);...//.`isClaudeOAuth`.g
7e20 61 74 65 73 20 43 6c 61 75 64 65 2d 43 6f 64 65 2d 43 4c 49 2d 73 70 65 63 69 66 69 63 20 62 65 ates.Claude-Code-CLI-specific.be
7e40 68 61 76 69 6f 72 3a 20 62 69 6c 6c 69 6e 67 2d 68 65 61 64 65 72 0a 09 09 2f 2f 20 69 6e 6a 65 havior:.billing-header...//.inje
7e60 63 74 69 6f 6e 2c 20 69 64 65 6e 74 69 74 79 20 70 72 65 61 6d 62 6c 65 2c 20 60 6d 63 70 5f 2a ction,.identity.preamble,.`mcp_*
7e80 60 20 74 6f 6f 6c 20 6e 61 6d 65 20 70 72 65 66 69 78 2c 20 61 6e 64 20 65 78 74 65 6e 64 65 64 `.tool.name.prefix,.and.extended
7ea0 0a 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 67 2e 20 4f 6e 6c 79 20 74 68 65 20 ...//.thinking.config..Only.the.
7ec0 4f 41 75 74 68 20 66 6c 6f 77 20 28 70 72 6f 76 69 64 65 72 3d 22 61 6e 74 68 72 6f 70 69 63 22 OAuth.flow.(provider="anthropic"
7ee0 29 20 6e 65 65 64 73 20 74 68 65 73 65 2e 0a 09 09 2f 2f 20 60 75 73 65 73 41 6e 74 68 72 6f 70 ).needs.these....//.`usesAnthrop
7f00 69 63 53 44 4b 60 20 69 73 20 74 68 65 20 62 72 6f 61 64 65 72 20 63 61 74 65 67 6f 72 79 20 e2 icSDK`.is.the.broader.category..
7f20 80 94 20 61 6e 79 20 70 72 6f 76 69 64 65 72 20 77 68 6f 73 65 0a 09 09 2f 2f 20 72 65 71 75 65 ...any.provider.whose...//.reque
7f40 73 74 73 20 61 72 65 20 73 65 72 69 61 6c 69 7a 65 64 20 62 79 20 60 40 61 69 2d 73 64 6b 2f 61 sts.are.serialized.by.`@ai-sdk/a
7f60 6e 74 68 72 6f 70 69 63 60 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 65 78 70 65 63 74 0a 09 nthropic`.and.therefore.expect..
7f80 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 2d 73 74 79 6c 65 20 60 63 61 63 68 65 5f 63 6f 6e 74 72 .//.Anthropic-style.`cache_contr
7fa0 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 54 6f 64 61 79 20 74 68 61 74 27 73 20 43 6c 61 75 64 65 ol`.markers..Today.that's.Claude
7fc0 20 4f 41 75 74 68 0a 09 09 2f 2f 20 70 6c 75 73 20 4f 70 65 6e 43 6f 64 65 20 47 6f 27 73 20 4d .OAuth...//.plus.OpenCode.Go's.M
7fe0 69 6e 69 4d 61 78 2f 51 77 65 6e 20 72 6f 75 74 65 73 2e 0a 09 09 63 6f 6e 73 74 20 69 73 43 6c iniMax/Qwen.routes....const.isCl
8000 61 75 64 65 4f 41 75 74 68 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 audeOAuth.=.this.config.provider
8020 20 3d 3d 3d 20 22 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 09 63 6f 6e 73 74 20 75 73 65 73 41 6e .===."anthropic";...const.usesAn
8040 74 68 72 6f 70 69 63 53 44 4b 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 7c 7c 20 74 68 thropicSDK.=.isClaudeOAuth.||.th
8060 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 22 6f 70 65 6e 63 6f 64 65 is.config.provider.===."opencode
8080 2d 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 09 63 6f 6e 73 74 20 70 72 6f 76 69 64 65 72 46 61 63 -anthropic";...const.providerFac
80a0 74 6f 72 79 20 3d 20 63 72 65 61 74 65 50 72 6f 76 69 64 65 72 28 7b 0a 09 09 09 61 70 69 4b 65 tory.=.createProvider({....apiKe
80c0 79 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 61 70 69 4b 65 79 2c 0a 09 09 09 62 61 73 65 55 52 y:.this.config.apiKey,....baseUR
80e0 4c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 62 61 73 65 55 52 4c 2c 0a 09 09 09 70 72 6f 76 69 L:.this.config.baseURL,....provi
8100 64 65 72 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 2c 0a 09 09 09 63 6c der:.this.config.provider,....cl
8120 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 63 6c 61 audeCredentials:.this.config.cla
8140 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 2c 0a 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 udeCredentials,....tabId:.this.c
8160 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 7d 29 3b 0a 0a 09 09 2f 2f 20 4f 6e 6c 79 20 74 68 onfig.tabId,...});....//.Only.th
8180 65 20 43 6c 61 75 64 65 20 4f 41 75 74 68 20 66 6c 6f 77 20 65 78 70 65 63 74 73 20 60 6d 63 70 e.Claude.OAuth.flow.expects.`mcp
81a0 5f 2a 60 20 70 72 65 66 69 78 65 64 20 74 6f 6f 6c 20 6e 61 6d 65 73 2e 20 54 68 65 0a 09 09 2f _*`.prefixed.tool.names..The.../
81c0 2f 20 4f 70 65 6e 43 6f 64 65 20 47 6f 20 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 20 65 /.OpenCode.Go.anthropic-format.e
81e0 6e 64 70 6f 69 6e 74 20 70 61 73 73 65 73 20 74 6f 6f 6c 73 20 74 68 72 6f 75 67 68 20 74 6f 20 ndpoint.passes.tools.through.to.
8200 4d 69 6e 69 4d 61 78 0a 09 09 2f 2f 20 6f 72 20 51 77 65 6e 2c 20 77 68 69 63 68 20 65 78 70 65 MiniMax...//.or.Qwen,.which.expe
8220 63 74 20 72 61 77 20 6e 61 6d 65 73 2e 0a 09 09 63 6f 6e 73 74 20 61 69 54 6f 6f 6c 73 20 3d 20 ct.raw.names....const.aiTools.=.
8240 72 65 67 69 73 74 72 79 2e 67 65 74 41 49 53 44 4b 54 6f 6f 6c 73 28 29 3b 0a 09 09 63 6f 6e 73 registry.getAISDKTools();...cons
8260 74 20 74 6f 6f 6c 73 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 0a 09 09 09 3f 20 4f 62 6a t.tools.=.isClaudeOAuth....?.Obj
8280 65 63 74 2e 66 72 6f 6d 45 6e 74 72 69 65 73 28 0a 09 09 09 09 09 4f 62 6a 65 63 74 2e 65 6e 74 ect.fromEntries(......Object.ent
82a0 72 69 65 73 28 61 69 54 6f 6f 6c 73 29 2e 6d 61 70 28 28 5b 6e 61 6d 65 2c 20 74 6f 6f 6c 5d 29 ries(aiTools).map(([name,.tool])
82c0 20 3d 3e 20 5b 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 6e 61 6d 65 29 2c 20 74 6f 6f 6c 5d .=>.[prefixToolName(name),.tool]
82e0 29 2c 0a 09 09 09 09 29 0a 09 09 09 3a 20 61 69 54 6f 6f 6c 73 3b 0a 0a 09 09 2f 2f 20 42 75 69 ),.....)....:.aiTools;....//.Bui
8300 6c 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 e2 80 94 20 43 6c 61 75 64 65 20 4f 41 75 74 ld.system.prompt.....Claude.OAut
8320 68 20 72 65 71 75 65 73 74 73 20 65 6d 62 65 64 20 61 20 62 69 6c 6c 69 6e 67 20 68 65 61 64 65 h.requests.embed.a.billing.heade
8340 72 0a 09 09 2f 2f 20 61 6e 64 20 74 68 65 20 43 6c 61 75 64 65 20 43 6f 64 65 20 69 64 65 6e 74 r...//.and.the.Claude.Code.ident
8360 69 74 79 20 70 72 65 61 6d 62 6c 65 20 73 6f 20 41 6e 74 68 72 6f 70 69 63 20 72 65 63 6f 67 6e ity.preamble.so.Anthropic.recogn
8380 69 7a 65 73 20 74 68 65 0a 09 09 2f 2f 20 72 65 71 75 65 73 74 20 61 73 20 63 6f 6d 69 6e 67 20 izes.the...//.request.as.coming.
83a0 66 72 6f 6d 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 43 4c 49 2e 0a 09 09 6c 65 74 20 73 79 73 from.the.official.CLI....let.sys
83c0 74 65 6d 50 72 6f 6d 70 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 73 79 73 74 65 6d 50 72 temPrompt.=.this.config.systemPr
83e0 6f 6d 70 74 3b 0a 09 09 69 66 20 28 69 73 43 6c 61 75 64 65 4f 41 75 74 68 29 20 7b 0a 09 09 09 ompt;...if.(isClaudeOAuth).{....
8400 2f 2f 20 60 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 64 65 72 56 61 6c 75 65 60 20 68 69 73 //.`buildBillingHeaderValue`.his
8420 74 6f 72 69 63 61 6c 6c 79 20 74 6f 6f 6b 20 60 7b 20 72 6f 6c 65 2c 20 63 6f 6e 74 65 6e 74 3a torically.took.`{.role,.content:
8440 20 73 74 72 69 6e 67 20 7d 5b 5d 60 2e 0a 09 09 09 2f 2f 20 50 72 6f 6a 65 63 74 20 74 68 65 20 .string.}[]`.....//.Project.the.
8460 6e 65 77 20 63 68 75 6e 6b 2d 62 61 73 65 64 20 43 68 61 74 4d 65 73 73 61 67 65 20 73 68 61 70 new.chunk-based.ChatMessage.shap
8480 65 20 6f 6e 74 6f 20 74 68 61 74 20 6c 65 67 61 63 79 20 73 68 61 70 65 0a 09 09 09 2f 2f 20 62 e.onto.that.legacy.shape....//.b
84a0 79 20 73 74 72 69 6e 67 69 66 79 69 6e 67 20 74 65 78 74 20 63 68 75 6e 6b 73 2e 20 4f 6e 6c 79 y.stringifying.text.chunks..Only
84c0 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 6d 65 73 73 61 67 65 27 73 20 74 65 78 74 20 69 .the.first.user.message's.text.i
84e0 73 0a 09 09 09 2f 2f 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 28 73 65 65 20 65 78 74 72 61 s....//.actually.used.(see.extra
8500 63 74 46 69 72 73 74 55 73 65 72 4d 65 73 73 61 67 65 54 65 78 74 29 20 e2 80 94 20 6e 6f 6e 2d ctFirstUserMessageText).....non-
8520 74 65 78 74 20 63 68 75 6e 6b 73 0a 09 09 09 2f 2f 20 73 61 66 65 6c 79 20 63 6f 6e 74 72 69 62 text.chunks....//.safely.contrib
8540 75 74 65 20 6e 6f 74 68 69 6e 67 2e 0a 09 09 09 63 6f 6e 73 74 20 6c 65 67 61 63 79 53 68 61 70 ute.nothing.....const.legacyShap
8560 65 20 3d 20 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 28 7b 0a e.=.this.messages.map((m).=>.({.
8580 09 09 09 09 72 6f 6c 65 3a 20 6d 2e 72 6f 6c 65 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d ....role:.m.role,.....content:.m
85a0 2e 63 68 75 6e 6b 73 0a 09 09 09 09 09 2e 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 .chunks.......filter((c):.c.is.E
85c0 78 74 72 61 63 74 3c 43 68 75 6e 6b 2c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 xtract<Chunk,.{.type:."text".}>.
85e0 3d 3e 20 63 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 29 0a 09 09 09 09 09 2e 6d 61 70 28 =>.c.type.===."text").......map(
8600 28 63 29 20 3d 3e 20 63 2e 74 65 78 74 29 0a 09 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 2c 0a 09 (c).=>.c.text).......join(""),..
8620 09 09 7d 29 29 3b 0a 09 09 09 63 6f 6e 73 74 20 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 20 3d 20 ..}));....const.billingHeader.=.
8640 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 64 65 72 56 61 6c 75 65 28 6c 65 67 61 63 79 53 68 buildBillingHeaderValue(legacySh
8660 61 70 65 29 3b 0a 09 09 09 73 79 73 74 65 6d 50 72 6f 6d 70 74 20 3d 20 60 24 7b 62 69 6c 6c 69 ape);....systemPrompt.=.`${billi
8680 6e 67 48 65 61 64 65 72 7d 5c 6e 24 7b 53 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 59 7d 5c 6e 5c ngHeader}\n${SYSTEM_IDENTITY}\n\
86a0 6e 24 7b 73 79 73 74 65 6d 50 72 6f 6d 70 74 7d 60 3b 0a 09 09 7d 0a 0a 09 09 74 72 79 20 7b 0a n${systemPrompt}`;...}....try.{.
86c0 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 28 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 ...logAgentLoop({.....tabId:.thi
86e0 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 65 76 65 6e 74 3a 20 22 72 75 6e 2d s.config.tabId,.....event:."run-
8700 73 74 61 72 74 22 2c 0a 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 6d 6f 64 65 6c 3a 20 74 68 69 start",.....detail:.{.model:.thi
8720 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 2c 20 70 72 6f 76 69 64 65 72 3a 20 74 68 69 73 2e 63 s.config.model,.provider:.this.c
8740 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 7d 2c 0a 09 09 09 7d 29 3b 0a 09 09 09 2f 2f 20 53 onfig.provider.},....});....//.S
8760 69 6e 67 6c 65 20 63 68 75 6e 6b 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 74 68 65 20 ingle.chunk.accumulator.for.the.
8780 65 6e 74 69 72 65 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 20 28 61 6c 6c 20 73 74 65 70 73 entire.assistant.turn.(all.steps
87a0 29 2e 0a 09 09 09 2f 2f 20 41 6c 6c 20 65 76 65 6e 74 2d 64 72 69 76 65 6e 20 6d 75 74 61 74 69 ).....//.All.event-driven.mutati
87c0 6f 6e 73 20 67 6f 20 74 68 72 6f 75 67 68 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 ons.go.through.`appendEventToChu
87e0 6e 6b 73 60 2e 0a 09 09 09 63 6f 6e 73 74 20 63 68 75 6e 6b 73 3a 20 43 68 75 6e 6b 5b 5d 20 3d nks`.....const.chunks:.Chunk[].=
8800 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 57 65 20 62 75 69 6c 64 20 75 70 20 61 20 6c 6f 63 61 6c 20 .[];.....//.We.build.up.a.local.
8820 6d 65 73 73 61 67 65 20 6c 69 73 74 20 66 6f 72 20 6d 75 6c 74 69 2d 74 75 72 6e 20 77 69 74 68 message.list.for.multi-turn.with
8840 69 6e 20 6f 6e 65 20 72 75 6e 28 29 20 63 61 6c 6c 0a 09 09 09 2f 2f 20 74 68 61 74 20 69 6e 63 in.one.run().call....//.that.inc
8860 6c 75 64 65 73 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 ludes.tool.results.fed.back.to.t
8880 68 65 20 4c 4c 4d 2e 20 45 61 63 68 20 73 74 65 70 20 61 70 70 65 6e 64 73 0a 09 09 09 2f 2f 20 he.LLM..Each.step.appends....//.
88a0 74 68 65 20 61 73 73 69 73 74 61 6e 74 27 73 20 65 76 6f 6c 76 69 6e 67 20 63 68 75 6e 6b 20 6c the.assistant's.evolving.chunk.l
88c0 69 73 74 20 61 73 20 6f 6e 65 20 43 68 61 74 4d 65 73 73 61 67 65 3b 20 73 75 62 73 65 71 75 65 ist.as.one.ChatMessage;.subseque
88e0 6e 74 0a 09 09 09 2f 2f 20 73 74 65 70 73 20 73 65 65 20 70 72 69 6f 72 20 74 6f 6f 6c 20 63 61 nt....//.steps.see.prior.tool.ca
8900 6c 6c 73 20 61 6e 64 20 74 68 65 69 72 20 72 65 73 75 6c 74 73 20 76 69 61 20 74 68 65 20 63 68 lls.and.their.results.via.the.ch
8920 75 6e 6b 73 2e 0a 09 09 09 63 6f 6e 73 74 20 73 74 65 70 4d 65 73 73 61 67 65 73 3a 20 43 68 61 unks.....const.stepMessages:.Cha
8940 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 2e 2e 2e 74 68 69 73 2e 6d 65 73 73 61 67 65 73 5d 3b tMessage[].=.[...this.messages];
8960 0a 09 09 09 2f 2f 20 54 68 65 20 61 73 73 69 73 74 61 6e 74 20 43 68 61 74 4d 65 73 73 61 67 65 ....//.The.assistant.ChatMessage
8980 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 75 72 6e 2c 20 73 68 61 72 65 64 20 61 63 .for.the.current.turn,.shared.ac
89a0 72 6f 73 73 20 73 74 65 70 73 0a 09 09 09 2f 2f 20 73 6f 20 69 74 73 20 60 63 68 75 6e 6b 73 60 ross.steps....//.so.its.`chunks`
89c0 20 72 65 66 65 72 65 6e 63 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 .reference.matches.the.accumulat
89e0 6f 72 20 61 62 6f 76 65 2e 20 57 65 20 70 75 73 68 0a 09 09 09 2f 2f 20 69 74 20 6f 6e 63 65 20 or.above..We.push....//.it.once.
8a00 77 68 65 6e 20 74 68 65 20 66 69 72 73 74 20 73 74 65 70 20 68 61 73 20 61 63 74 75 61 6c 20 6f when.the.first.step.has.actual.o
8a20 75 74 70 75 74 20 74 6f 20 72 65 63 6f 72 64 2e 0a 09 09 09 6c 65 74 20 61 73 73 69 73 74 61 6e utput.to.record.....let.assistan
8a40 74 54 75 72 6e 4d 65 73 73 61 67 65 3a 20 43 68 61 74 4d 65 73 73 61 67 65 20 7c 20 6e 75 6c 6c tTurnMessage:.ChatMessage.|.null
8a60 20 3d 20 6e 75 6c 6c 3b 0a 0a 09 09 09 66 6f 72 20 28 6c 65 74 20 73 74 65 70 20 3d 20 30 3b 20 .=.null;.....for.(let.step.=.0;.
8a80 73 74 65 70 20 3c 20 4d 41 58 5f 53 54 45 50 53 3b 20 73 74 65 70 2b 2b 29 20 7b 0a 09 09 09 09 step.<.MAX_STEPS;.step++).{.....
8aa0 63 6f 6e 73 74 20 65 66 66 6f 72 74 20 3d 0a 09 09 09 09 09 6f 70 74 69 6f 6e 73 3f 2e 72 65 61 const.effort.=......options?.rea
8ac0 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 72 65 61 73 soningEffort.??.this.config.reas
8ae0 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 44 45 46 41 55 4c 54 5f 52 45 41 53 4f 4e 49 4e 47 oningEffort.??.DEFAULT_REASONING
8b00 5f 45 46 46 4f 52 54 3b 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 62 75 67 52 65 71 49 64 20 3d 20 _EFFORT;.....const.debugReqId.=.
8b20 6e 65 78 74 44 65 62 75 67 53 65 71 28 29 3b 0a 09 09 09 09 6c 6f 67 53 74 65 70 4c 69 66 65 63 nextDebugSeq();.....logStepLifec
8b40 79 63 6c 65 28 7b 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 ycle({......tabId:.this.config.t
8b60 61 62 49 64 2c 0a 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 76 65 6e 74 3a 20 22 73 74 abId,......step,......event:."st
8b80 65 70 2d 73 74 61 72 74 22 2c 0a 09 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 65 66 66 6f 72 74 ep-start",......detail:.{.effort
8ba0 2c 20 68 69 73 74 6f 72 79 4d 65 73 73 61 67 65 73 3a 20 73 74 65 70 4d 65 73 73 61 67 65 73 2e ,.historyMessages:.stepMessages.
8bc0 6c 65 6e 67 74 68 20 7d 2c 0a 09 09 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 75 69 6c 64 20 length.},.....});......//.Build.
8be0 73 74 72 65 61 6d 20 74 65 78 74 20 6f 70 74 69 6f 6e 73 0a 09 09 09 09 63 6f 6e 73 74 20 6d 6f stream.text.options.....const.mo
8c00 64 65 6c 20 3d 20 70 72 6f 76 69 64 65 72 46 61 63 74 6f 72 79 28 74 68 69 73 2e 63 6f 6e 66 69 del.=.providerFactory(this.confi
8c20 67 2e 6d 6f 64 65 6c 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 75 69 6c 64 20 74 68 65 20 6d 65 73 73 g.model);......//.Build.the.mess
8c40 61 67 65 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 age.list.with.the.system.prompt.
8c60 70 72 65 70 65 6e 64 65 64 20 61 73 20 61 20 73 79 73 74 65 6d 0a 09 09 09 09 2f 2f 20 72 6f 6c prepended.as.a.system.....//.rol
8c80 65 20 6d 65 73 73 61 67 65 2e 20 54 68 69 73 20 69 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 e.message..This.is.required.for.
8ca0 41 6e 74 68 72 6f 70 69 63 20 70 72 6f 6d 70 74 20 63 61 63 68 69 6e 67 3a 20 74 68 65 0a 09 09 Anthropic.prompt.caching:.the...
8cc0 09 09 2f 2f 20 60 73 79 73 74 65 6d 60 20 73 68 6f 72 74 63 75 74 20 70 61 72 61 6d 65 74 65 72 ..//.`system`.shortcut.parameter
8ce0 20 74 61 6b 65 73 20 61 20 70 6c 61 69 6e 20 73 74 72 69 6e 67 20 77 69 74 68 20 6e 6f 77 68 65 .takes.a.plain.string.with.nowhe
8d00 72 65 20 74 6f 0a 09 09 09 09 2f 2f 20 61 74 74 61 63 68 20 60 70 72 6f 76 69 64 65 72 4f 70 74 re.to.....//.attach.`providerOpt
8d20 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 2e 63 61 63 68 65 43 6f 6e 74 72 6f 6c 60 2e 20 4d 6f ions.anthropic.cacheControl`..Mo
8d40 76 69 6e 67 20 69 74 20 69 6e 6c 69 6e 65 0a 09 09 09 09 2f 2f 20 61 6c 73 6f 20 6c 65 74 73 20 ving.it.inline.....//.also.lets.
8d60 75 73 20 61 70 70 6c 79 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 62 72 65 61 6b 70 6f 69 6e us.apply.rolling.cache.breakpoin
8d80 74 73 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6d 65 73 73 61 67 65 73 2e 0a 09 09 09 09 63 6f 6e ts.to.the.last.messages......con
8da0 73 74 20 73 79 73 74 65 6d 4d 65 73 73 61 67 65 3a 20 53 79 73 74 65 6d 4d 6f 64 65 6c 4d 65 73 st.systemMessage:.SystemModelMes
8dc0 73 61 67 65 20 3d 20 7b 0a 09 09 09 09 09 72 6f 6c 65 3a 20 22 73 79 73 74 65 6d 22 2c 0a 09 09 sage.=.{......role:."system",...
8de0 09 09 09 63 6f 6e 74 65 6e 74 3a 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 2c 0a 09 09 09 09 7d 3b ...content:.systemPrompt,.....};
8e00 0a 0a 09 09 09 09 6c 65 74 20 63 6f 72 65 4d 65 73 73 61 67 65 73 3a 20 4d 6f 64 65 6c 4d 65 73 ......let.coreMessages:.ModelMes
8e20 73 61 67 65 5b 5d 20 3d 20 5b 0a 09 09 09 09 09 73 79 73 74 65 6d 4d 65 73 73 61 67 65 2c 0a 09 sage[].=.[......systemMessage,..
8e40 09 09 09 09 2e 2e 2e 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 28 73 74 65 70 4d 65 73 73 61 .......toModelMessages(stepMessa
8e60 67 65 73 2c 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 29 2c 0a 09 09 09 09 5d 3b 0a 0a 09 09 09 ges,.isClaudeOAuth),.....];.....
8e80 09 2f 2f 20 41 70 70 6c 79 20 70 72 6f 76 69 64 65 72 2d 73 70 65 63 69 66 69 63 20 73 74 72 75 .//.Apply.provider-specific.stru
8ea0 63 74 75 72 61 6c 20 6e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 20 62 65 66 6f 72 65 0a 09 09 09 ctural.normalisations.before....
8ec0 09 2f 2f 20 73 65 6e 64 69 6e 67 2e 20 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 6f 70 65 6e 61 .//.sending..Anthropic.and.opena
8ee0 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 70 61 74 68 73 20 65 61 63 68 20 68 61 76 65 0a 09 09 09 i-compatible.paths.each.have....
8f00 09 2f 2f 20 74 68 65 69 72 20 6f 77 6e 20 6d 65 73 73 61 67 65 2d 73 68 61 70 65 20 72 65 71 75 .//.their.own.message-shape.requ
8f20 69 72 65 6d 65 6e 74 73 3b 20 74 68 65 20 74 77 6f 20 70 61 73 73 65 73 20 61 72 65 0a 09 09 09 irements;.the.two.passes.are....
8f40 09 2f 2f 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 2e 0a 09 09 09 09 69 66 20 28 .//.mutually.exclusive......if.(
8f60 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 29 20 7b 0a 09 09 09 09 09 63 6f 72 65 4d 65 73 usesAnthropicSDK).{......coreMes
8f80 73 61 67 65 73 20 3d 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 74 75 72 61 6c sages.=.applyAnthropicStructural
8fa0 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 28 63 6f 72 65 4d 65 73 73 61 67 65 73 29 3b 0a 09 09 Normalisations(coreMessages);...
8fc0 09 09 09 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 63 6f 72 65 4d 65 73 ...applyAnthropicCaching(coreMes
8fe0 73 61 67 65 73 29 3b 0a 09 09 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 09 09 09 63 6f 72 65 4d 65 sages);.....}.else.{......coreMe
9000 73 73 61 67 65 73 20 3d 20 61 70 70 6c 79 4f 70 65 6e 41 49 43 6f 6d 70 61 74 69 62 6c 65 52 65 ssages.=.applyOpenAICompatibleRe
9020 61 73 6f 6e 69 6e 67 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 28 63 6f 72 65 4d 65 73 73 61 67 65 asoningNormalisation(coreMessage
9040 73 29 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 63 6f 6e 73 74 20 73 74 72 65 61 6d 4f 70 74 69 6f s);.....}......const.streamOptio
9060 6e 73 3a 20 50 61 72 61 6d 65 74 65 72 73 3c 74 79 70 65 6f 66 20 73 74 72 65 61 6d 54 65 78 74 ns:.Parameters<typeof.streamText
9080 3e 5b 30 5d 20 3d 20 7b 0a 09 09 09 09 09 6d 6f 64 65 6c 2c 0a 09 09 09 09 09 6d 65 73 73 61 67 >[0].=.{......model,......messag
90a0 65 73 3a 20 63 6f 72 65 4d 65 73 73 61 67 65 73 2c 0a 09 09 09 09 09 74 6f 6f 6c 73 2c 0a 09 09 es:.coreMessages,......tools,...
90c0 09 09 09 61 62 6f 72 74 53 69 67 6e 61 6c 3a 20 6f 70 74 69 6f 6e 73 3f 2e 61 62 6f 72 74 53 69 ...abortSignal:.options?.abortSi
90e0 67 6e 61 6c 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 63 6f 75 72 61 67 65 20 74 gnal,.....};......//.Encourage.t
9100 6f 6f 6c 20 75 73 65 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2e 20 57 69 74 68 6f 75 74 20 61 6e ool.use.on.Anthropic..Without.an
9120 20 65 78 70 6c 69 63 69 74 0a 09 09 09 09 2f 2f 20 60 74 6f 6f 6c 43 68 6f 69 63 65 60 2c 20 43 .explicit.....//.`toolChoice`,.C
9140 6c 61 75 64 65 20 28 65 73 70 65 63 69 61 6c 6c 79 20 4f 70 75 73 20 34 2e 37 20 77 69 74 68 20 laude.(especially.Opus.4.7.with.
9160 61 64 61 70 74 69 76 65 0a 09 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 29 20 63 61 6e 20 64 65 adaptive.....//.thinking).can.de
9180 63 69 64 65 20 74 6f 20 22 74 68 69 6e 6b 20 66 6f 72 65 76 65 72 22 20 69 6e 73 74 65 61 64 20 cide.to."think.forever".instead.
91a0 6f 66 20 63 61 6c 6c 69 6e 67 0a 09 09 09 09 2f 2f 20 74 68 65 20 74 6f 6f 6c 73 20 69 74 20 68 of.calling.....//.the.tools.it.h
91c0 61 73 20 62 65 65 6e 20 67 69 76 65 6e 2e 20 60 22 61 75 74 6f 22 60 20 6b 65 65 70 73 20 43 6c as.been.given..`"auto"`.keeps.Cl
91e0 61 75 64 65 20 66 72 65 65 20 74 6f 0a 09 09 09 09 2f 2f 20 61 6e 73 77 65 72 20 77 69 74 68 20 aude.free.to.....//.answer.with.
9200 74 65 78 74 20 77 68 65 6e 20 6e 6f 20 74 6f 6f 6c 20 69 73 20 6e 65 65 64 65 64 2c 20 77 68 69 text.when.no.tool.is.needed,.whi
9220 6c 65 20 6d 61 6b 69 6e 67 20 74 68 65 0a 09 09 09 09 2f 2f 20 61 76 61 69 6c 61 62 69 6c 69 74 le.making.the.....//.availabilit
9240 79 20 6f 66 20 74 6f 6f 6c 73 20 61 6e 20 65 78 70 6c 69 63 69 74 20 73 69 67 6e 61 6c 20 69 6e y.of.tools.an.explicit.signal.in
9260 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 09 09 09 09 69 66 20 28 69 73 43 6c 61 75 64 65 4f 41 .the.request......if.(isClaudeOA
9280 75 74 68 29 20 7b 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 74 6f 6f 6c 43 68 uth).{......streamOptions.toolCh
92a0 6f 69 63 65 20 3d 20 22 61 75 74 6f 22 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 69 66 20 28 69 73 oice.=."auto";.....}......if.(is
92c0 43 6c 61 75 64 65 4f 41 75 74 68 20 26 26 20 65 66 66 6f 72 74 20 21 3d 3d 20 22 6e 6f 6e 65 22 ClaudeOAuth.&&.effort.!==."none"
92e0 29 20 7b 0a 09 09 09 09 09 2f 2f 20 76 36 20 6e 61 74 69 76 65 20 73 75 70 70 6f 72 74 20 66 6f ).{......//.v6.native.support.fo
9300 72 20 41 6e 74 68 72 6f 70 69 63 20 61 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 20 76 69 r.Anthropic.adaptive.thinking.vi
9320 61 0a 09 09 09 09 09 2f 2f 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2e 20 4e 6f 20 6d 6f a......//.providerOptions..No.mo
9340 72 65 20 72 65 77 72 69 74 65 42 6f 64 79 46 6f 72 4f 70 75 73 34 37 20 62 6f 64 79 2d 0a 09 09 re.rewriteBodyForOpus47.body-...
9360 09 09 09 2f 2f 20 69 6e 6a 65 63 74 69 6f 6e 20 68 61 63 6b 20 6e 65 65 64 65 64 2e 0a 09 09 09 ...//.injection.hack.needed.....
9380 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 42 75 64 67 65 74 73 20 6d 69 72 72 6f 72 20 6f 70 65 6e ..//......//.Budgets.mirror.open
93a0 63 6f 64 65 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 6d code.transform.ts:......//...-.m
93c0 61 78 20 20 62 75 64 67 65 74 20 3d 20 33 31 39 39 39 20 28 41 6e 74 68 72 6f 70 69 63 27 73 20 ax..budget.=.31999.(Anthropic's.
93e0 64 6f 63 75 6d 65 6e 74 65 64 20 63 65 69 6c 69 6e 67 3b 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 documented.ceiling;......//.....
9400 60 4d 61 74 68 2e 6d 69 6e 28 33 31 5f 39 39 39 2c 20 6d 6f 64 65 6c 2e 6c 69 6d 69 74 2e 6f 75 `Math.min(31_999,.model.limit.ou
9420 74 70 75 74 20 2d 20 31 29 60 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6f 70 65 6e 63 6f tput.-.1)`.in......//.....openco
9440 64 65 20 6c 69 6e 65 20 36 36 38 29 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 68 69 67 68 20 62 75 de.line.668)......//...-.high.bu
9460 64 67 65 74 20 3d 20 31 36 30 30 30 20 28 6f 70 65 6e 63 6f 64 65 20 6c 69 6e 65 20 36 36 32 3a dget.=.16000.(opencode.line.662:
9480 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 60 4d 61 74 68 2e 6d 69 6e 28 31 36 5f 30 30 30 2c 20 4d ......//.....`Math.min(16_000,.M
94a0 61 74 68 2e 66 6c 6f 6f 72 28 6d 6f 64 65 6c 2e 6c 69 6d 69 74 2e 6f 75 74 70 75 74 2f 32 2d 31 ath.floor(model.limit.output/2-1
94c0 29 29 60 29 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 6d 65 64 69 75 6d 2f 6c 6f 77 3a 20 6e 6f 20 ))`)......//...-.medium/low:.no.
94e0 6f 70 65 6e 63 6f 64 65 20 65 71 75 69 76 61 6c 65 6e 74 20 e2 80 94 20 73 65 6e 73 69 62 6c 65 opencode.equivalent.....sensible
9500 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 64 65 66 61 75 6c ......//.....intermediate.defaul
9520 74 73 2e 0a 09 09 09 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 60 6d 61 78 4f 75 74 70 75 74 54 6f ts.......//......//.`maxOutputTo
9540 6b 65 6e 73 60 20 69 73 20 74 68 65 20 54 4f 54 41 4c 20 6f 75 74 70 75 74 20 63 61 70 20 28 74 kens`.is.the.TOTAL.output.cap.(t
9560 68 69 6e 6b 69 6e 67 20 2b 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 63 6f 6d 62 69 hinking.+......//.response.combi
9580 6e 65 64 29 2e 20 41 6e 74 68 72 6f 70 69 63 27 73 20 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 ned)..Anthropic's.standard.outpu
95a0 74 20 6d 61 78 20 69 73 0a 09 09 09 09 09 2f 2f 20 33 32 4b 20 66 6f 72 20 43 6c 61 75 64 65 20 t.max.is......//.32K.for.Claude.
95c0 34 2e 78 3b 20 6d 61 74 63 68 69 6e 67 20 6f 70 65 6e 63 6f 64 65 27 73 20 4f 55 54 50 55 54 5f 4.x;.matching.opencode's.OUTPUT_
95e0 54 4f 4b 45 4e 5f 4d 41 58 0a 09 09 09 09 09 2f 2f 20 63 6f 6e 73 74 61 6e 74 2e 20 54 68 65 20 TOKEN_MAX......//.constant..The.
9600 60 62 75 64 67 65 74 5f 74 6f 6b 65 6e 73 60 20 66 69 65 6c 64 20 69 73 20 61 20 74 68 69 6e 6b `budget_tokens`.field.is.a.think
9620 69 6e 67 0a 09 09 09 09 09 2f 2f 20 63 65 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 72 65 71 75 69 ing......//.ceiling,.not.a.requi
9640 72 65 6d 65 6e 74 2c 20 73 6f 20 74 68 65 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 65 67 75 6c 61 rement,.so.the.model.self-regula
9660 74 65 73 0a 09 09 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 20 76 73 20 72 65 73 70 6f 6e 73 65 tes......//.thinking.vs.response
9680 20 77 69 74 68 69 6e 20 74 68 69 73 20 74 6f 74 61 6c 20 62 75 64 67 65 74 2e 0a 09 09 09 09 09 .within.this.total.budget.......
96a0 2f 2f 0a 09 09 09 09 09 2f 2f 20 41 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 20 73 70 65 //......//.Adaptive.thinking.spe
96c0 63 69 66 69 63 73 20 28 4f 70 75 73 20 34 2e 37 2b 2c 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 cifics.(Opus.4.7+,.Opus/Sonnet.4
96e0 2e 36 3b 20 6d 69 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 0a 09 09 09 09 09 2f 2f 20 74 72 61 .6;.mirrors.opencode......//.tra
9700 6e 73 66 6f 72 6d 2e 74 73 3a 36 34 32 2d 36 35 35 29 3a 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 nsform.ts:642-655):......//...-.
9720 60 74 68 69 6e 6b 69 6e 67 2e 74 79 70 65 20 3d 20 22 61 64 61 70 74 69 76 65 22 60 20 e2 80 94 `thinking.type.=."adaptive"`....
9740 20 74 68 65 20 6d 6f 64 65 6c 20 64 65 63 69 64 65 73 20 68 6f 77 0a 09 09 09 09 09 2f 2f 20 20 .the.model.decides.how......//..
9760 20 20 20 6d 75 63 68 20 74 6f 20 74 68 69 6e 6b 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 ...much.to.think.within.`maxOutp
9780 75 74 54 6f 6b 65 6e 73 60 2e 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 74 68 69 6e 6b 69 6e 67 utTokens`.......//...-.`thinking
97a0 2e 64 69 73 70 6c 61 79 20 3d 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 e2 80 94 20 61 64 61 .display.=."summarized"`.....ada
97c0 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 66 6f 72 20 4f ptive.thinking......//.....for.O
97e0 70 75 73 20 34 2e 37 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 64 69 73 70 6c 61 79 3a 20 22 6f pus.4.7.defaults.to.`display:."o
9800 6d 69 74 74 65 64 22 60 2c 20 77 68 69 63 68 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6d 65 61 6e mitted"`,.which......//.....mean
9820 73 20 4e 4f 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 74 65 6e 74 20 69 73 20 73 74 72 65 61 6d 65 s.NO.thinking.content.is.streame
9840 64 20 74 6f 20 75 73 2e 20 53 65 74 74 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 60 73 75 d.to.us..Setting......//.....`su
9860 6d 6d 61 72 69 7a 65 64 60 20 69 73 20 77 68 61 74 20 6d 61 6b 65 73 20 74 68 65 20 74 68 69 6e mmarized`.is.what.makes.the.thin
9880 6b 69 6e 67 20 76 69 73 69 62 6c 65 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 74 68 65 20 king.visible.in......//.....the.
98a0 55 49 2e 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 69 62 6c 69 6e UI.......//...-.`effort`.(siblin
98c0 67 20 6f 66 20 60 74 68 69 6e 6b 69 6e 67 60 29 20 e2 80 94 20 61 64 61 70 74 69 76 65 20 6e 65 g.of.`thinking`).....adaptive.ne
98e0 65 64 73 20 61 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 65 78 70 6c 69 63 69 74 20 65 66 66 6f eds.an......//.....explicit.effo
9900 72 74 20 6c 65 76 65 6c 2e 20 57 69 74 68 6f 75 74 20 69 74 2c 20 41 6e 74 68 72 6f 70 69 63 20 rt.level..Without.it,.Anthropic.
9920 75 73 65 73 20 61 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 63 6f 6e 73 65 72 76 61 74 69 76 65 20 uses.a......//.....conservative.
9940 64 65 66 61 75 6c 74 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 62 61 72 65 6c 79 20 74 68 69 default.and.the.model.barely.thi
9960 6e 6b 73 2e 0a 09 09 09 09 09 2f 2f 20 43 61 70 20 61 74 20 41 6e 74 68 72 6f 70 69 63 27 73 20 nks.......//.Cap.at.Anthropic's.
9980 73 74 61 6e 64 61 72 64 20 33 32 4b 20 6f 75 74 70 75 74 20 28 6d 61 74 63 68 65 73 20 6f 70 65 standard.32K.output.(matches.ope
99a0 6e 63 6f 64 65 27 73 0a 09 09 09 09 09 2f 2f 20 4f 55 54 50 55 54 5f 54 4f 4b 45 4e 5f 4d 41 58 ncode's......//.OUTPUT_TOKEN_MAX
99c0 29 3b 20 74 68 65 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 20 74 68 69 6e );.the.model.self-regulates.thin
99e0 6b 69 6e 67 20 76 73 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 king.vs......//.response.within.
9a00 74 68 69 73 20 74 6f 74 61 6c 20 62 75 64 67 65 74 2e 20 54 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 this.total.budget..Thinking.conf
9a20 69 67 20 28 61 64 61 70 74 69 76 65 0a 09 09 09 09 09 2f 2f 20 76 73 20 65 6e 61 62 6c 65 64 2c ig.(adaptive......//.vs.enabled,
9a40 20 70 6c 75 73 20 64 69 73 70 6c 61 79 3a 22 73 75 6d 6d 61 72 69 7a 65 64 22 20 66 6f 72 20 4f .plus.display:"summarized".for.O
9a60 70 75 73 20 34 2e 37 2b 29 20 69 73 0a 09 09 09 09 09 2f 2f 20 64 65 72 69 76 65 64 20 66 72 6f pus.4.7+).is......//.derived.fro
9a80 6d 20 74 68 65 20 6d 6f 64 65 6c 20 69 64 20 28 73 65 65 20 61 6e 74 68 72 6f 70 69 63 54 68 69 m.the.model.id.(see.anthropicThi
9aa0 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 29 2e 0a 09 09 09 09 09 73 74 72 65 nkingProviderOptions).......stre
9ac0 61 6d 4f 70 74 69 6f 6e 73 2e 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 20 3d 20 33 32 30 30 amOptions.maxOutputTokens.=.3200
9ae0 30 3b 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 64 65 72 4f 70 0;......streamOptions.providerOp
9b00 74 69 6f 6e 73 20 3d 20 7b 0a 09 09 09 09 09 09 61 6e 74 68 72 6f 70 69 63 3a 20 61 6e 74 68 72 tions.=.{.......anthropic:.anthr
9b20 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 28 74 68 69 73 opicThinkingProviderOptions(this
9b40 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 2c 20 65 66 66 6f 72 74 29 2c 0a 09 09 09 09 09 7d 3b 0a .config.model,.effort),......};.
9b60 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 21 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b ....}.else.if.(!usesAnthropicSDK
9b80 20 26 26 20 65 66 66 6f 72 74 20 21 3d 3d 20 22 6e 6f 6e 65 22 29 20 7b 0a 09 09 09 09 09 2f 2f .&&.effort.!==."none").{......//
9ba0 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 6d 6f 64 65 6c 73 20 28 4f 70 65 6e 43 .OpenAI-compatible.models.(OpenC
9bc0 6f 64 65 20 5a 65 6e 3a 20 44 65 65 70 53 65 65 6b 2c 20 47 4c 4d 2c 0a 09 09 09 09 09 2f 2f 20 ode.Zen:.DeepSeek,.GLM,......//.
9be0 4b 69 6d 69 2c 20 65 74 63 2e 29 2e 20 54 68 65 20 60 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 Kimi,.etc.)..The.`reasoningEffor
9c00 74 60 20 66 69 65 6c 64 20 69 73 20 66 6f 72 77 61 72 64 65 64 0a 09 09 09 09 09 2f 2f 20 76 65 t`.field.is.forwarded......//.ve
9c20 72 62 61 74 69 6d 20 74 6f 20 70 72 6f 76 69 64 65 72 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 rbatim.to.providers.that.support
9c40 20 69 74 2e 20 60 22 6d 61 78 22 60 20 69 73 20 74 68 65 0a 09 09 09 09 09 2f 2f 20 73 74 72 6f .it..`"max"`.is.the......//.stro
9c60 6e 67 65 73 74 20 6c 65 76 65 6c 20 77 65 20 65 78 70 6f 73 65 3b 20 74 68 65 20 70 72 6f 76 69 ngest.level.we.expose;.the.provi
9c80 64 65 72 20 6d 61 79 20 6d 61 70 20 69 74 0a 09 09 09 09 09 2f 2f 20 69 6e 74 65 72 6e 61 6c 6c der.may.map.it......//.internall
9ca0 79 20 28 65 2e 67 2e 20 44 65 65 70 53 65 65 6b 20 69 6e 74 65 72 70 72 65 74 73 20 69 74 20 61 y.(e.g..DeepSeek.interprets.it.a
9cc0 73 20 64 65 65 70 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e 69 6e 67 29 2e 0a 09 09 09 09 09 s.deep......//.reasoning).......
9ce0 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 3d 20 streamOptions.providerOptions.=.
9d00 7b 20 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 3a 20 7b 20 72 65 61 73 6f 6e 69 6e 67 45 {.openaiCompatible:.{.reasoningE
9d20 66 66 6f 72 74 3a 20 65 66 66 6f 72 74 20 7d 20 7d 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 63 6f ffort:.effort.}.};.....}......co
9d40 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 73 74 72 65 61 6d 54 65 78 74 28 73 74 72 65 61 6d 4f 70 nst.result.=.streamText(streamOp
9d60 74 69 6f 6e 73 29 3b 0a 0a 09 09 09 09 2f 2f 20 50 65 72 2d 73 74 65 70 20 74 6f 6f 6c 2d 63 61 tions);......//.Per-step.tool-ca
9d80 6c 6c 20 74 72 61 63 6b 69 6e 67 20 e2 80 94 20 6e 65 65 64 65 64 20 62 65 63 61 75 73 65 20 77 ll.tracking.....needed.because.w
9da0 65 20 6f 6e 6c 79 20 6c 6f 6f 70 20 62 61 63 6b 0a 09 09 09 09 2f 2f 20 74 6f 20 74 68 65 20 4c e.only.loop.back.....//.to.the.L
9dc0 4c 4d 20 69 66 20 74 68 69 73 20 73 74 65 70 20 70 72 6f 64 75 63 65 64 20 74 6f 6f 6c 20 63 61 LM.if.this.step.produced.tool.ca
9de0 6c 6c 73 2e 20 54 68 65 20 61 63 74 75 61 6c 20 63 68 75 6e 6b 0a 09 09 09 09 2f 2f 20 73 74 61 lls..The.actual.chunk.....//.sta
9e00 74 65 20 66 6f 72 20 74 68 65 20 74 75 72 6e 20 6c 69 76 65 73 20 69 6e 20 60 63 68 75 6e 6b 73 te.for.the.turn.lives.in.`chunks
9e20 60 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c `......const.stepToolCalls:.Tool
9e40 43 61 6c 6c 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 73 75 72 65 20 77 65 20 68 Call[].=.[];......//.Ensure.we.h
9e60 61 76 65 20 61 6e 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 69 6e 20 73 74 65 70 ave.an.assistant.message.in.step
9e80 4d 65 73 73 61 67 65 73 20 77 68 6f 73 65 0a 09 09 09 09 2f 2f 20 60 63 68 75 6e 6b 73 60 20 72 Messages.whose.....//.`chunks`.r
9ea0 65 66 65 72 65 6e 63 65 20 69 73 20 73 68 61 72 65 64 20 77 69 74 68 20 6f 75 72 20 61 63 63 75 eference.is.shared.with.our.accu
9ec0 6d 75 6c 61 74 6f 72 2e 20 4f 6e 6c 79 20 70 75 73 68 0a 09 09 09 09 2f 2f 20 6f 6e 63 65 3b 20 mulator..Only.push.....//.once;.
9ee0 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 73 20 6d 75 74 61 74 65 20 74 68 65 20 73 61 6d 65 subsequent.steps.mutate.the.same
9f00 20 63 68 75 6e 6b 73 20 61 72 72 61 79 2e 0a 09 09 09 09 69 66 20 28 61 73 73 69 73 74 61 6e 74 .chunks.array......if.(assistant
9f20 54 75 72 6e 4d 65 73 73 61 67 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 09 09 09 09 09 61 73 73 TurnMessage.===.null).{......ass
9f40 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 20 3d 20 7b 20 72 6f 6c 65 3a 20 22 61 73 73 istantTurnMessage.=.{.role:."ass
9f60 69 73 74 61 6e 74 22 2c 20 63 68 75 6e 6b 73 20 7d 3b 0a 09 09 09 09 09 73 74 65 70 4d 65 73 73 istant",.chunks.};......stepMess
9f80 61 67 65 73 2e 70 75 73 68 28 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 29 3b ages.push(assistantTurnMessage);
9fa0 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 55 6e 65 78 70 65 63 74 65 64 20 73 74 72 65 61 6d .....}......//.Unexpected.stream
9fc0 20 65 72 72 6f 72 73 20 70 72 6f 70 61 67 61 74 65 20 75 70 20 74 6f 20 74 68 65 20 6f 75 74 65 .errors.propagate.up.to.the.oute
9fe0 72 20 74 72 79 2f 63 61 74 63 68 0a 09 09 09 09 2f 2f 20 69 6e 20 60 72 75 6e 28 29 60 2c 20 77 r.try/catch.....//.in.`run()`,.w
a000 68 69 63 68 20 66 6f 72 6d 61 74 73 20 74 68 65 6d 20 61 6e 64 20 74 72 61 6e 73 69 74 69 6f 6e hich.formats.them.and.transition
a020 73 20 74 68 65 20 61 67 65 6e 74 20 74 6f 0a 09 09 09 09 2f 2f 20 74 68 65 20 22 65 72 72 6f 72 s.the.agent.to.....//.the."error
a040 22 20 73 74 61 74 75 73 2e 20 54 68 65 20 41 49 20 53 44 4b 20 76 36 20 73 75 72 66 61 63 65 73 ".status..The.AI.SDK.v6.surfaces
a060 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 6f 6f 6c 0a 09 09 09 09 2f 2f 20 63 61 6c 6c 73 20 61 .unavailable-tool.....//.calls.a
a080 73 20 6e 61 74 69 76 65 20 60 74 6f 6f 6c 2d 65 72 72 6f 72 60 20 73 74 72 65 61 6d 20 65 76 65 s.native.`tool-error`.stream.eve
a0a0 6e 74 73 20 28 68 61 6e 64 6c 65 64 20 62 65 6c 6f 77 29 2c 0a 09 09 09 09 2f 2f 20 73 6f 20 74 nts.(handled.below),.....//.so.t
a0c0 68 65 72 65 27 73 20 6e 6f 20 4e 6f 53 75 63 68 54 6f 6f 6c 45 72 72 6f 72 20 74 6f 20 63 61 74 here's.no.NoSuchToolError.to.cat
a0e0 63 68 20 68 65 72 65 2e 0a 09 09 09 09 66 6f 72 20 61 77 61 69 74 20 28 63 6f 6e 73 74 20 65 76 ch.here......for.await.(const.ev
a100 65 6e 74 20 6f 66 20 72 65 73 75 6c 74 2e 66 75 6c 6c 53 74 72 65 61 6d 29 20 7b 0a 09 09 09 09 ent.of.result.fullStream).{.....
a120 09 6c 6f 67 53 74 72 65 61 6d 45 76 65 6e 74 28 7b 0a 09 09 09 09 09 09 72 65 71 75 65 73 74 49 .logStreamEvent({.......requestI
a140 64 3a 20 64 65 62 75 67 52 65 71 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 d:.debugReqId,.......step,......
a160 09 65 76 65 6e 74 54 79 70 65 3a 20 65 76 65 6e 74 2e 74 79 70 65 2c 0a 09 09 09 09 09 09 74 61 .eventType:.event.type,.......ta
a180 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 7d 29 3b bId:.this.config.tabId,......});
a1a0 0a 09 09 09 09 09 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 2d 64 ......if.(event.type.===."text-d
a1c0 65 6c 74 61 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 65 78 74 2d 64 65 6c 74 61 elta").{.......//.v6:.text-delta
a1e0 20 63 61 72 72 69 65 73 20 60 74 65 78 74 60 20 28 6e 6f 74 20 60 74 65 78 74 44 65 6c 74 61 60 .carries.`text`.(not.`textDelta`
a200 29 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 ).......const.internalEvent:.Age
a220 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 65 78 74 2d 64 ntEvent.=.{........type:."text-d
a240 65 6c 74 61 22 2c 0a 09 09 09 09 09 09 09 64 65 6c 74 61 3a 20 65 76 65 6e 74 2e 74 65 78 74 2c elta",........delta:.event.text,
a260 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 .......};.......appendEventToChu
a280 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 nks(chunks,.internalEvent);.....
a2a0 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c ..yield.internalEvent;......}.el
a2c0 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 se.if.(event.type.===."reasoning
a2e0 2d 64 65 6c 74 61 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 20 6e 65 77 20 65 76 65 6e 74 -delta").{.......//.v6.new.event
a300 3a 20 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 20 63 61 72 72 69 65 73 20 60 74 65 78 74 60 :.reasoning-delta.carries.`text`
a320 20 28 6e 6f 74 20 60 74 65 78 74 44 65 6c 74 61 60 29 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 .(not.`textDelta`).......const.i
a340 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 nternalEvent:.AgentEvent.=.{....
a360 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 22 2c 0a 09 09 09 ....type:."reasoning-delta",....
a380 09 09 09 09 64 65 6c 74 61 3a 20 65 76 65 6e 74 2e 74 65 78 74 2c 0a 09 09 09 09 09 09 7d 3b 0a ....delta:.event.text,.......};.
a3a0 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 ......appendEventToChunks(chunks
a3c0 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e ,.internalEvent);.......yield.in
a3e0 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 ternalEvent;......}.else.if.(eve
a400 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 29 20 7b 0a 09 nt.type.===."reasoning-end").{..
a420 09 09 09 09 09 2f 2f 20 4f 6e 6c 79 20 65 6d 69 74 20 77 68 65 6e 20 70 72 6f 76 69 64 65 72 4d .....//.Only.emit.when.providerM
a440 65 74 61 64 61 74 61 20 69 73 20 70 72 65 73 65 6e 74 20 e2 80 94 20 6e 6f 6e 2d 41 6e 74 68 72 etadata.is.present.....non-Anthr
a460 6f 70 69 63 0a 09 09 09 09 09 09 2f 2f 20 6d 6f 64 65 6c 73 20 73 65 6e 64 20 72 65 61 73 6f 6e opic.......//.models.send.reason
a480 69 6e 67 2d 65 6e 64 20 77 69 74 68 6f 75 74 20 61 6e 79 20 6d 65 74 61 64 61 74 61 20 74 6f 20 ing-end.without.any.metadata.to.
a4a0 72 6f 75 6e 64 2d 74 72 69 70 2e 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 27 73 round-trip........//.Anthropic's
a4c0 20 73 69 67 6e 61 74 75 72 65 20 6c 69 76 65 73 20 69 6e 73 69 64 65 20 70 72 6f 76 69 64 65 72 .signature.lives.inside.provider
a4e0 4d 65 74 61 64 61 74 61 20 61 73 0a 09 09 09 09 09 09 2f 2f 20 7b 20 61 6e 74 68 72 6f 70 69 63 Metadata.as.......//.{.anthropic
a500 3a 20 7b 20 73 69 67 6e 61 74 75 72 65 3a 20 22 2e 2e 2e 22 20 7d 20 7d 2e 0a 09 09 09 09 09 09 :.{.signature:."...".}.}........
a520 69 66 20 28 65 76 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 21 3d 3d 20 75 if.(event.providerMetadata.!==.u
a540 6e 64 65 66 69 6e 65 64 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 ndefined).{........const.interna
a560 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 74 lEvent:.AgentEvent.=.{.........t
a580 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 2c 0a 09 09 09 09 09 09 09 09 6d 65 ype:."reasoning-end",.........me
a5a0 74 61 64 61 74 61 3a 20 65 76 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 61 tadata:.event.providerMetadata.a
a5c0 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 2c 0a 09 09 09 09 09 s.Record<string,.unknown>,......
a5e0 09 09 7d 3b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 ..};........appendEventToChunks(
a600 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 79 chunks,.internalEvent);........y
a620 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 ield.internalEvent;.......}.....
a640 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c .}.else.if.(event.type.===."tool
a660 2d 63 61 6c 6c 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 6f 6f 6c 20 63 61 6c 6c -call").{.......//.v6:.tool.call
a680 20 69 6e 70 75 74 20 69 73 20 69 6e 20 60 69 6e 70 75 74 60 20 28 6e 6f 74 20 60 61 72 67 73 60 .input.is.in.`input`.(not.`args`
a6a0 29 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 72 61 77 4e 61 6d 65 20 3d 20 65 76 65 6e 74 2e 74 6f ).......const.rawName.=.event.to
a6c0 6f 6c 4e 61 6d 65 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 69 olName;.......const.toolName.=.i
a6e0 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 sClaudeOAuth.?.unprefixToolName(
a700 72 61 77 4e 61 6d 65 29 20 3a 20 72 61 77 4e 61 6d 65 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 rawName).:.rawName;.......const.
a720 74 6f 6f 6c 43 61 6c 6c 3a 20 54 6f 6f 6c 43 61 6c 6c 20 3d 20 7b 0a 09 09 09 09 09 09 09 69 64 toolCall:.ToolCall.=.{........id
a740 3a 20 65 76 65 6e 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 09 6e 61 6d 65 3a :.event.toolCallId,........name:
a760 20 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 61 72 67 75 6d 65 6e 74 73 3a 20 65 76 65 .toolName,........arguments:.eve
a780 6e 74 2e 69 6e 70 75 74 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f nt.input.as.Record<string,.unkno
a7a0 77 6e 3e 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c wn>,.......};.......stepToolCall
a7c0 73 2e 70 75 73 68 28 74 6f 6f 6c 43 61 6c 6c 29 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e s.push(toolCall);.......const.in
a7e0 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 ternalEvent:.AgentEvent.=.{.type
a800 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 2c 20 74 6f 6f 6c 43 61 6c 6c 20 7d 3b 0a 09 09 09 09 09 :."tool-call",.toolCall.};......
a820 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 .appendEventToChunks(chunks,.int
a840 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 ernalEvent);.......yield.interna
a860 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 lEvent;......}.else.if.(event.ty
a880 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 65 72 72 6f 72 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 pe.===."tool-error").{.......//.
a8a0 54 68 65 20 6d 6f 64 65 6c 20 63 61 6c 6c 65 64 20 61 20 74 6f 6f 6c 20 74 68 61 74 20 64 6f 65 The.model.called.a.tool.that.doe
a8c0 73 6e 27 74 20 65 78 69 73 74 20 28 6f 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 70 72 6f 76 69 64 sn't.exist.(or.a.......//.provid
a8e0 65 72 2d 65 78 65 63 75 74 65 64 20 2f 20 73 65 72 76 65 72 20 74 6f 6f 6c 20 66 61 69 6c 65 64 er-executed./.server.tool.failed
a900 29 2e 20 54 68 65 20 41 49 20 53 44 4b 20 76 36 0a 09 09 09 09 09 09 2f 2f 20 65 6d 69 74 73 20 )..The.AI.SDK.v6.......//.emits.
a920 74 68 69 73 20 61 73 20 61 20 6e 61 74 69 76 65 20 73 74 72 65 61 6d 20 65 76 65 6e 74 20 63 61 this.as.a.native.stream.event.ca
a940 72 72 79 69 6e 67 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 6f 72 69 67 69 6e 61 6c 20 74 6f 6f rrying.the.......//.original.too
a960 6c 20 6e 61 6d 65 2e 20 46 6f 72 77 61 72 64 20 62 6f 74 68 20 61 20 73 79 6e 74 68 65 74 69 63 l.name..Forward.both.a.synthetic
a980 0a 09 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 73 6f 20 74 68 65 20 74 6f .......//.tool-result.(so.the.to
a9a0 6f 6c 2d 62 61 74 63 68 20 65 6e 74 72 79 20 74 68 65 20 6d 6f 64 65 6c 20 65 78 70 65 63 74 73 ol-batch.entry.the.model.expects
a9c0 0a 09 09 09 09 09 09 2f 2f 20 68 61 73 20 61 6e 20 60 69 73 45 72 72 6f 72 3a 20 74 72 75 65 60 .......//.has.an.`isError:.true`
a9e0 20 72 65 73 75 6c 74 29 20 61 6e 64 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b 20 66 6f 72 0a .result).and.an.error.chunk.for.
aa00 09 09 09 09 09 09 2f 2f 20 76 69 73 69 62 69 6c 69 74 79 20 e2 80 94 20 77 69 74 68 6f 75 74 20 ......//.visibility.....without.
aa20 74 68 65 20 72 65 73 75 6c 74 20 74 68 65 20 6d 6f 64 65 6c 20 77 6f 75 6c 64 0a 09 09 09 09 09 the.result.the.model.would......
aa40 09 2f 2f 20 73 69 6c 65 6e 74 6c 79 20 77 61 69 74 20 66 6f 72 20 6f 6e 65 20 74 68 61 74 20 6e .//.silently.wait.for.one.that.n
aa60 65 76 65 72 20 61 72 72 69 76 65 73 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 76 74 20 3d 20 ever.arrives........const.evt.=.
aa80 65 76 65 6e 74 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f event.as.unknown.as.{........too
aaa0 6c 43 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 lCallId:.string;........toolName
aac0 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 75 6e 6b 6e 6f 77 6e 3b :.string;........error:.unknown;
aae0 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d .......};.......const.toolName.=
ab00 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d .isClaudeOAuth.?.unprefixToolNam
ab20 65 28 65 76 74 2e 74 6f 6f 6c 4e 61 6d 65 29 20 3a 20 65 76 74 2e 74 6f 6f 6c 4e 61 6d 65 3b 0a e(evt.toolName).:.evt.toolName;.
ab40 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 4d 65 73 73 61 67 65 20 3d 20 65 76 74 2e 65 72 72 ......const.errMessage.=.evt.err
ab60 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f 20 65 76 74 2e 65 72 72 6f 72 2e or.instanceof.Error.?.evt.error.
ab80 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 76 74 2e 65 72 72 6f 72 29 3b 0a 0a 09 09 message.:.String(evt.error);....
aba0 09 09 09 09 63 6f 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 ....const.trEvent:.AgentEvent.=.
abc0 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 2c 0a 09 09 {........type:."tool-result",...
abe0 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 7b 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 43 .....toolResult:.{.........toolC
ac00 61 6c 6c 49 64 3a 20 65 76 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 09 09 74 allId:.evt.toolCallId,.........t
ac20 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 45 72 72 6f 72 3a oolName,.........result:.`Error:
ac40 20 24 7b 65 72 72 4d 65 73 73 61 67 65 7d 60 2c 0a 09 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 .${errMessage}`,.........isError
ac60 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 :.true,........},.......};......
ac80 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 74 72 45 .appendEventToChunks(chunks,.trE
aca0 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b 0a 0a 09 09 09 vent);.......yield.trEvent;.....
acc0 09 09 09 2f 2f 20 45 6d 69 74 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b 20 66 6f 72 20 76 69 ...//.Emit.an.error.chunk.for.vi
ace0 73 69 62 69 6c 69 74 79 2c 20 62 75 74 20 64 6f 20 4e 4f 54 20 73 65 74 20 74 68 65 0a 09 09 09 sibility,.but.do.NOT.set.the....
ad00 09 09 09 2f 2f 20 61 67 65 6e 74 20 73 74 61 74 75 73 20 74 6f 20 22 65 72 72 6f 72 22 20 e2 80 ...//.agent.status.to."error"...
ad20 94 20 74 68 65 20 73 74 65 70 20 63 6f 6e 74 69 6e 75 65 73 20 61 6e 64 20 6c 6f 6f 70 73 0a 09 ..the.step.continues.and.loops..
ad40 09 09 09 09 09 2f 2f 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 20 6e 6f 72 6d 61 6c 6c 79 .....//.back.to.the.LLM.normally
ad60 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 ........const.errorMsg.=.formatE
ad80 72 72 6f 72 28 65 76 74 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 rror(evt.error,.this.config);...
ada0 09 09 09 09 63 6f 6e 73 74 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 ....const.errChunkEvent:.AgentEv
adc0 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a 20 65 72 ent.=.{.type:."error",.error:.er
ade0 72 6f 72 4d 73 67 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 rorMsg.};.......appendEventToChu
ae00 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 29 3b 0a 09 09 09 09 nks(chunks,.errChunkEvent);.....
ae20 09 09 79 69 65 6c 64 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 62 72 65 ..yield.errChunkEvent;.......bre
ae40 61 6b 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d ak;......}.else.if.(event.type.=
ae60 3d 3d 20 22 61 62 6f 72 74 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 53 74 72 65 61 6d 20 61 62 ==."abort").{.......//.Stream.ab
ae80 6f 72 74 65 64 20 75 70 73 74 72 65 61 6d 2e 20 53 75 72 66 61 63 65 20 61 73 20 61 6e 20 65 72 orted.upstream..Surface.as.an.er
aea0 72 6f 72 20 73 6f 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 66 72 6f 6e 74 65 6e 64 20 74 61 62 ror.so.the.......//.frontend.tab
aec0 20 74 72 61 6e 73 69 74 69 6f 6e 73 20 6f 75 74 20 6f 66 20 60 72 75 6e 6e 69 6e 67 60 2e 20 57 .transitions.out.of.`running`..W
aee0 65 20 64 6f 6e 27 74 0a 09 09 09 09 09 09 2f 2f 20 63 75 72 72 65 6e 74 6c 79 20 63 61 6c 6c 20 e.don't.......//.currently.call.
af00 61 62 6f 72 74 43 6f 6e 74 72 6f 6c 6c 65 72 2e 61 62 6f 72 74 28 29 20 6f 75 72 73 65 6c 76 65 abortController.abort().ourselve
af20 73 2c 20 73 6f 0a 09 09 09 09 09 09 2f 2f 20 74 68 69 73 20 77 6f 75 6c 64 20 6f 6e 6c 79 20 66 s,.so.......//.this.would.only.f
af40 69 72 65 20 66 72 6f 6d 20 65 78 74 65 72 6e 61 6c 20 73 69 67 6e 61 6c 20 70 72 6f 70 61 67 61 ire.from.external.signal.propaga
af60 74 69 6f 6e 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 20 3d 0a 09 09 09 09 09 tion........const.reason.=......
af80 09 09 74 79 70 65 6f 66 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e 3f 3a 20 75 6e ..typeof.(event.as.{.reason?:.un
afa0 6b 6e 6f 77 6e 20 7d 29 2e 72 65 61 73 6f 6e 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 0a 09 09 09 known.}).reason.===."string"....
afc0 09 09 09 09 09 3f 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e 3a 20 73 74 72 69 6e .....?.(event.as.{.reason:.strin
afe0 67 20 7d 29 2e 72 65 61 73 6f 6e 0a 09 09 09 09 09 09 09 09 3a 20 22 73 74 72 65 61 6d 20 61 62 g.}).reason.........:."stream.ab
b000 6f 72 74 65 64 22 3b 0a 09 09 09 09 09 09 2f 2f 20 46 69 6c 6c 20 69 6e 20 65 72 72 6f 72 20 72 orted";.......//.Fill.in.error.r
b020 65 73 75 6c 74 73 20 66 6f 72 20 61 6e 79 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 20 63 esults.for.any.unresolved.tool.c
b040 61 6c 6c 73 20 73 6f 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 20 6f 72 70 68 61 6e 65 64 20 74 6f alls.so.......//.the.orphaned.to
b060 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 64 6f 6e 27 74 20 74 72 69 67 67 65 72 20 61 0a 09 09 09 09 ol-call.IDs.don't.trigger.a.....
b080 09 09 2f 2f 20 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 20 69 66 20 ..//.MissingToolResultsError.if.
b0a0 74 68 69 73 20 68 69 73 74 6f 72 79 20 69 73 20 65 76 65 72 20 72 65 70 6c 61 79 65 64 2e 0a 09 this.history.is.ever.replayed...
b0c0 09 09 09 09 09 63 6f 6e 73 74 20 61 62 6f 72 74 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e .....const.abortResidual.=.this.
b0e0 73 79 6e 74 68 65 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 synthesizeResidualToolResults(..
b100 09 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 09 63 68 75 6e ......stepToolCalls,........chun
b120 6b 73 2c 0a 09 09 09 09 09 09 09 60 45 72 72 6f 72 3a 20 53 74 72 65 61 6d 20 77 61 73 20 61 62 ks,........`Error:.Stream.was.ab
b140 6f 72 74 65 64 3a 20 24 7b 72 65 61 73 6f 6e 7d 60 2c 0a 09 09 09 09 09 09 29 3b 0a 09 09 09 09 orted:.${reason}`,.......);.....
b160 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 61 62 6f 72 74 52 65 73 69 64 75 61 6c 29 ..for.(const.r.of.abortResidual)
b180 20 7b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 .{........appendEventToChunks(ch
b1a0 75 6e 6b 73 2c 20 72 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 09 09 unks,.r);........yield.r;.......
b1c0 7d 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 }........const.errorMsg.=.format
b1e0 45 72 72 6f 72 28 6e 65 77 20 45 72 72 6f 72 28 72 65 61 73 6f 6e 29 2c 20 74 68 69 73 2e 63 6f Error(new.Error(reason),.this.co
b200 6e 66 69 67 29 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 nfig);.......const.internalEvent
b220 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 :.AgentEvent.=.{.type:."error",.
b240 65 72 72 6f 72 3a 20 65 72 72 6f 72 4d 73 67 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 error:.errorMsg.};.......appendE
b260 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 ventToChunks(chunks,.internalEve
b280 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a nt);.......yield.internalEvent;.
b2a0 09 09 09 09 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 ......this.status.=."error";....
b2c0 09 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 ...yield.{.type:."status",.statu
b2e0 73 3a 20 22 65 72 72 6f 72 22 20 7d 3b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 09 09 s:."error".};.......return;.....
b300 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 65 72 72 6f .}.else.if.(event.type.===."erro
b320 72 22 29 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 3d 20 65 76 r").{.......const.errRecord.=.ev
b340 65 6e 74 2e 65 72 72 6f 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 3c 73 ent.error.as.unknown.as.Record<s
b360 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 74 61 tring,.unknown>;.......const.sta
b380 74 75 73 43 6f 64 65 20 3d 0a 09 09 09 09 09 09 09 74 79 70 65 6f 66 20 65 72 72 52 65 63 6f 72 tusCode.=........typeof.errRecor
b3a0 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3d 3d 3d 20 22 6e 75 6d 62 65 72 22 20 3f 20 65 72 72 52 d.statusCode.===."number".?.errR
b3c0 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 ecord.statusCode.:.undefined;...
b3e0 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 72 72 6f 72 ....const.errorMsg.=.formatError
b400 28 65 76 65 6e 74 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 09 (event.error,.this.config);.....
b420 09 09 2f 2f 20 46 69 6c 6c 20 69 6e 20 65 72 72 6f 72 20 72 65 73 75 6c 74 73 20 66 6f 72 20 61 ..//.Fill.in.error.results.for.a
b440 6e 79 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 6f 0a 09 09 09 09 ny.unresolved.tool.calls.so.....
b460 09 09 2f 2f 20 74 68 65 20 6f 72 70 68 61 6e 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 ..//.the.orphaned.tool-call.IDs.
b480 64 6f 6e 27 74 20 74 72 69 67 67 65 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 4d 69 73 73 69 6e 67 don't.trigger.a.......//.Missing
b4a0 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 20 69 66 20 74 68 69 73 20 68 69 73 74 6f 72 79 ToolResultsError.if.this.history
b4c0 20 69 73 20 65 76 65 72 20 72 65 70 6c 61 79 65 64 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 .is.ever.replayed........const.s
b4e0 74 72 65 61 6d 45 72 72 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e 74 68 65 73 69 treamErrResidual.=.this.synthesi
b500 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 09 09 09 09 09 73 74 zeResidualToolResults(........st
b520 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 epToolCalls,........chunks,.....
b540 09 09 09 60 45 72 72 6f 72 3a 20 24 7b 65 72 72 6f 72 4d 73 67 7d 60 2c 0a 09 09 09 09 09 09 29 ...`Error:.${errorMsg}`,.......)
b560 3b 0a 09 09 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 73 74 72 65 61 6d 45 72 ;.......for.(const.r.of.streamEr
b580 72 52 65 73 69 64 75 61 6c 29 20 7b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 rResidual).{........appendEventT
b5a0 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 72 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 oChunks(chunks,.r);........yield
b5c0 20 72 3b 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 .r;.......}........const.interna
b5e0 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 lEvent:.AgentEvent.=.{........ty
b600 70 65 3a 20 22 65 72 72 6f 72 22 2c 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 65 72 72 6f 72 pe:."error",........error:.error
b620 4d 73 67 2c 0a 09 09 09 09 09 09 09 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 21 3d 3d 20 75 Msg,...........(statusCode.!==.u
b640 6e 64 65 66 69 6e 65 64 20 3f 20 7b 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a 20 7b 7d 29 2c ndefined.?.{.statusCode.}.:.{}),
b660 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 .......};.......appendEventToChu
b680 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 nks(chunks,.internalEvent);.....
b6a0 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 74 68 69 ..yield.internalEvent;.......thi
b6c0 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 s.status.=."error";.......yield.
b6e0 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 65 72 72 6f 72 {.type:."status",.status:."error
b700 22 20 7d 3b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 ".};.......return;......}.else.i
b720 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 66 69 6e 69 73 68 2d 73 74 65 70 22 29 f.(event.type.===."finish-step")
b740 20 7b 0a 09 09 09 09 09 09 2f 2f 20 4f 6e 65 20 60 66 69 6e 69 73 68 2d 73 74 65 70 60 20 70 65 .{.......//.One.`finish-step`.pe
b760 72 20 60 73 74 72 65 61 6d 54 65 78 74 60 20 73 74 65 70 2e 20 54 68 69 73 20 e2 80 94 20 4e 4f r.`streamText`.step..This.....NO
b780 54 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 74 65 72 6d 69 6e 61 6c 20 60 66 69 6e 69 73 68 60 T.the.......//.terminal.`finish`
b7a0 20 70 61 72 74 20 e2 80 94 20 69 73 20 77 68 65 72 65 20 74 68 65 20 41 49 20 53 44 4b 20 70 75 .part.....is.where.the.AI.SDK.pu
b7c0 74 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 70 65 72 2d 73 74 65 70 20 60 75 73 61 67 65 60 ts.the.......//.per-step.`usage`
b7e0 20 28 74 68 65 20 60 66 69 6e 69 73 68 60 20 70 61 72 74 20 6f 6e 6c 79 20 63 61 72 72 69 65 73 .(the.`finish`.part.only.carries
b800 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 61 67 67 72 65 67 61 74 65 20 60 74 6f 74 61 6c 55 73 .the.......//.aggregate.`totalUs
b820 61 67 65 60 29 2e 20 60 75 73 61 67 65 2e 69 6e 70 75 74 54 6f 6b 65 6e 44 65 74 61 69 6c 73 60 age`)..`usage.inputTokenDetails`
b840 20 68 6f 6c 64 73 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 27 73 20 70 72 6f 6d .holds.......//.Anthropic's.prom
b860 70 74 2d 63 61 63 68 65 20 72 65 61 64 2f 77 72 69 74 65 20 73 70 6c 69 74 2c 20 77 68 69 63 68 pt-cache.read/write.split,.which
b880 20 70 6f 77 65 72 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 43 61 63 68 65 20 52 61 74 65 20 .powers.the.......//.Cache.Rate.
b8a0 76 69 65 77 2e 20 60 69 6e 70 75 74 54 6f 6b 65 6e 73 60 20 69 73 20 74 68 65 20 54 4f 54 41 4c view..`inputTokens`.is.the.TOTAL
b8c0 20 70 72 6f 6d 70 74 20 28 63 61 63 68 65 64 20 2b 0a 09 09 09 09 09 09 2f 2f 20 66 72 65 73 68 .prompt.(cached.+.......//.fresh
b8e0 29 2e 20 53 6b 69 70 20 65 6d 69 73 73 69 6f 6e 20 77 68 65 6e 20 6e 6f 20 75 73 61 67 65 20 69 )..Skip.emission.when.no.usage.i
b900 73 20 61 74 74 61 63 68 65 64 20 28 65 2e 67 2e 20 74 65 73 74 0a 09 09 09 09 09 09 2f 2f 20 6d s.attached.(e.g..test.......//.m
b920 6f 63 6b 73 29 20 73 6f 20 77 65 20 6e 65 76 65 72 20 62 72 6f 61 64 63 61 73 74 20 61 6e 20 61 ocks).so.we.never.broadcast.an.a
b940 6c 6c 2d 7a 65 72 6f 20 75 73 61 67 65 20 65 76 65 6e 74 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 ll-zero.usage.event........const
b960 20 75 20 3d 20 28 65 76 65 6e 74 20 61 73 20 7b 20 75 73 61 67 65 3f 3a 20 4c 61 6e 67 75 61 67 .u.=.(event.as.{.usage?:.Languag
b980 65 4d 6f 64 65 6c 55 73 61 67 65 20 7d 29 2e 75 73 61 67 65 3b 0a 09 09 09 09 09 09 69 66 20 28 eModelUsage.}).usage;.......if.(
b9a0 75 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 64 65 74 61 69 6c 73 20 3d 20 75 2e 69 6e u).{........const.details.=.u.in
b9c0 70 75 74 54 6f 6b 65 6e 44 65 74 61 69 6c 73 3b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 75 73 putTokenDetails;........const.us
b9e0 61 67 65 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 ageEvent:.AgentEvent.=.{........
ba00 09 74 79 70 65 3a 20 22 75 73 61 67 65 22 2c 0a 09 09 09 09 09 09 09 09 75 73 61 67 65 3a 20 7b .type:."usage",.........usage:.{
ba20 0a 09 09 09 09 09 09 09 09 09 69 6e 70 75 74 54 6f 6b 65 6e 73 3a 20 75 2e 69 6e 70 75 74 54 6f ..........inputTokens:.u.inputTo
ba40 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 6f 75 74 70 75 74 54 6f 6b 65 6e 73 kens.??.0,..........outputTokens
ba60 3a 20 75 2e 6f 75 74 70 75 74 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 :.u.outputTokens.??.0,..........
ba80 63 61 63 68 65 52 65 61 64 54 6f 6b 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 61 63 68 65 52 cacheReadTokens:.details?.cacheR
baa0 65 61 64 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 63 61 63 68 65 57 72 eadTokens.??.0,..........cacheWr
bac0 69 74 65 54 6f 6b 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 61 63 68 65 57 72 69 74 65 54 6f iteTokens:.details?.cacheWriteTo
bae0 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 09 09 7d 3b 0a kens.??.0,.........},........};.
bb00 09 09 09 09 09 09 09 2f 2f 20 53 65 74 20 44 49 53 50 41 54 43 48 5f 44 45 42 55 47 5f 55 53 41 .......//.Set.DISPATCH_DEBUG_USA
bb20 47 45 3d 31 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 72 61 77 20 70 65 72 2d 73 74 65 70 0a 09 GE=1.to.print.the.raw.per-step..
bb40 09 09 09 09 09 09 2f 2f 20 75 73 61 67 65 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 20 6c 6f 67 ......//.usage.to.the.server.log
bb60 20 e2 80 94 20 6c 65 74 73 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 63 61 63 68 65 20 72 65 61 64 .....lets.you.confirm.cache.read
bb80 73 0a 09 09 09 09 09 09 09 2f 2f 20 61 72 65 20 6e 6f 6e 2d 7a 65 72 6f 20 77 69 74 68 6f 75 74 s........//.are.non-zero.without
bba0 20 74 68 65 20 55 49 2e 0a 09 09 09 09 09 09 09 69 66 20 28 70 72 6f 63 65 73 73 2e 65 6e 76 2e .the.UI.........if.(process.env.
bbc0 44 49 53 50 41 54 43 48 5f 44 45 42 55 47 5f 55 53 41 47 45 29 20 7b 0a 09 09 09 09 09 09 09 09 DISPATCH_DEBUG_USAGE).{.........
bbe0 63 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 22 5b 64 69 73 70 61 74 63 68 20 75 73 61 67 65 5d 22 console.error("[dispatch.usage]"
bc00 2c 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 75 73 61 67 65 45 76 65 6e 74 2e 75 73 61 67 ,.JSON.stringify(usageEvent.usag
bc20 65 29 29 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 2f 2f 20 4e 6f 74 20 61 70 70 65 e));........}........//.Not.appe
bc40 6e 64 65 64 20 74 6f 20 63 68 75 6e 6b 73 20 e2 80 94 20 75 73 61 67 65 20 69 73 20 74 65 6c 65 nded.to.chunks.....usage.is.tele
bc60 6d 65 74 72 79 2c 20 6e 6f 74 0a 09 09 09 09 09 09 09 2f 2f 20 6d 65 73 73 61 67 65 20 63 6f 6e metry,.not........//.message.con
bc80 74 65 6e 74 20 28 73 65 65 20 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 29 2e 0a tent.(see.appendEventToChunks)..
bca0 09 09 09 09 09 09 09 79 69 65 6c 64 20 75 73 61 67 65 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 7d .......yield.usageEvent;.......}
bcc0 0a 09 09 09 09 09 7d 0a 09 09 09 09 09 2f 2f 20 49 67 6e 6f 72 65 64 20 65 76 65 6e 74 73 20 28 ......}......//.Ignored.events.(
bce0 69 6e 74 65 6e 74 69 6f 6e 61 6c 29 3a 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 72 74 2c 20 74 intentional):......//...start,.t
bd00 65 78 74 2d 73 74 61 72 74 2c 20 74 65 78 74 2d 65 6e 64 2c 20 72 65 61 73 6f 6e 69 6e 67 2d 73 ext-start,.text-end,.reasoning-s
bd20 74 61 72 74 2c 0a 09 09 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 73 74 61 72 74 tart,......//...tool-input-start
bd40 2c 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 64 65 6c 74 61 2c 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 65 ,.tool-input-delta,.tool-input-e
bd60 6e 64 2c 0a 09 09 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 6f 6e 6c 79 20 nd,......//...tool-result.(only.
bd80 66 69 72 65 73 20 69 66 20 74 6f 6f 6c 20 68 61 73 20 65 78 65 63 75 74 65 3b 20 6f 75 72 73 20 fires.if.tool.has.execute;.ours.
bda0 64 6f 6e 27 74 29 2c 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 72 74 2d 73 74 65 70 2c 20 66 69 don't),......//...start-step,.fi
bdc0 6e 69 73 68 20 28 61 67 67 72 65 67 61 74 65 20 74 6f 74 61 6c 55 73 61 67 65 20 6f 6e 6c 79 29 nish.(aggregate.totalUsage.only)
bde0 2c 20 72 61 77 2c 0a 09 09 09 09 09 2f 2f 20 20 20 73 6f 75 72 63 65 2c 20 66 69 6c 65 2c 20 74 ,.raw,......//...source,.file,.t
be00 6f 6f 6c 2d 6f 75 74 70 75 74 2d 64 65 6e 69 65 64 2c 20 74 6f 6f 6c 2d 61 70 70 72 6f 76 61 6c ool-output-denied,.tool-approval
be20 2d 2a 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 4e 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6d -*.....}......//.No.tool.calls.m
be40 65 61 6e 73 20 74 68 65 20 61 67 65 6e 74 20 69 73 20 64 6f 6e 65 20 e2 80 94 20 74 68 65 20 61 eans.the.agent.is.done.....the.a
be60 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 0a 09 09 09 09 2f 2f 20 61 6c 72 65 61 64 79 20 ssistant.message.....//.already.
be80 65 78 69 73 74 73 20 69 6e 20 73 74 65 70 4d 65 73 73 61 67 65 73 20 77 69 74 68 20 75 70 2d 74 exists.in.stepMessages.with.up-t
bea0 6f 2d 64 61 74 65 20 63 68 75 6e 6b 73 2e 0a 09 09 09 09 69 66 20 28 73 74 65 70 54 6f 6f 6c 43 o-date.chunks......if.(stepToolC
bec0 61 6c 6c 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 29 20 7b 0a 09 09 09 09 09 6c 6f 67 53 74 65 alls.length.===.0).{......logSte
bee0 70 4c 69 66 65 63 79 63 6c 65 28 7b 0a 09 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 pLifecycle({.......tabId:.this.c
bf00 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 09 65 onfig.tabId,.......step,.......e
bf20 76 65 6e 74 3a 20 22 73 74 65 70 2d 65 6e 64 2d 6e 6f 2d 74 6f 6f 6c 73 22 2c 0a 09 09 09 09 09 vent:."step-end-no-tools",......
bf40 7d 29 3b 0a 09 09 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 28 7b 0a 09 09 09 09 09 09 74 61 });......logAgentLoop({.......ta
bf60 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 09 65 76 bId:.this.config.tabId,.......ev
bf80 65 6e 74 3a 20 22 72 75 6e 2d 65 6e 64 2d 63 6c 65 61 6e 22 2c 0a 09 09 09 09 09 09 64 65 74 61 ent:."run-end-clean",.......deta
bfa0 69 6c 3a 20 7b 20 73 74 65 70 73 3a 20 73 74 65 70 20 2b 20 31 20 7d 2c 0a 09 09 09 09 09 7d 29 il:.{.steps:.step.+.1.},......})
bfc0 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 7d 0a 09 09 09 09 6c 6f 67 53 74 65 70 4c ;......break;.....}.....logStepL
bfe0 69 66 65 63 79 63 6c 65 28 7b 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 ifecycle({......tabId:.this.conf
c000 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 76 65 6e 74 3a ig.tabId,......step,......event:
c020 20 22 73 74 65 70 2d 68 61 73 2d 74 6f 6f 6c 73 22 2c 0a 09 09 09 09 09 64 65 74 61 69 6c 3a 20 ."step-has-tools",......detail:.
c040 7b 0a 09 09 09 09 09 09 74 6f 6f 6c 43 6f 75 6e 74 3a 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 {.......toolCount:.stepToolCalls
c060 2e 6c 65 6e 67 74 68 2c 0a 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 73 3a 20 73 74 65 70 54 6f .length,.......toolNames:.stepTo
c080 6f 6c 43 61 6c 6c 73 2e 6d 61 70 28 28 74 29 20 3d 3e 20 74 2e 6e 61 6d 65 29 2c 0a 09 09 09 09 olCalls.map((t).=>.t.name),.....
c0a0 09 7d 2c 0a 09 09 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 45 78 65 63 75 74 65 20 74 6f 6f 6c .},.....});......//.Execute.tool
c0c0 20 63 61 6c 6c 73 20 6d 61 6e 75 61 6c 6c 79 2e 20 54 68 65 69 72 20 72 65 73 75 6c 74 73 20 6d .calls.manually..Their.results.m
c0e0 65 72 67 65 20 62 61 63 6b 20 69 6e 74 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 60 63 68 75 6e 6b erge.back.into.the.....//.`chunk
c100 73 60 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 76 69 61 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 s`.accumulator.via.`appendEventT
c120 6f 43 68 75 6e 6b 73 60 2c 20 77 68 69 63 68 20 72 6f 75 74 65 73 0a 09 09 09 09 2f 2f 20 65 61 oChunks`,.which.routes.....//.ea
c140 63 68 20 72 65 73 75 6c 74 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 65 6e 74 72 79 20 69 ch.result.to.the.correct.entry.i
c160 6e 73 69 64 65 20 69 74 73 20 74 6f 6f 6c 2d 62 61 74 63 68 20 63 68 75 6e 6b 2e 0a 09 09 09 09 nside.its.tool-batch.chunk......
c180 2f 2f 20 54 72 61 63 6b 20 77 68 69 63 68 20 63 61 6c 6c 73 20 61 6c 72 65 61 64 79 20 68 61 76 //.Track.which.calls.already.hav
c1a0 65 20 61 20 72 65 63 6f 72 64 65 64 20 72 65 73 75 6c 74 20 28 66 72 6f 6d 20 74 68 65 0a 09 09 e.a.recorded.result.(from.the...
c1c0 09 09 2f 2f 20 73 79 6e 74 68 65 74 69 63 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 6f 6f 6c 20 ..//.synthetic.unavailable-tool.
c1e0 65 72 72 6f 72 20 70 61 74 68 20 61 62 6f 76 65 29 20 73 6f 20 77 65 20 64 6f 6e 27 74 0a 09 09 error.path.above).so.we.don't...
c200 09 09 2f 2f 20 72 65 2d 65 78 65 63 75 74 65 20 74 68 65 6d 2e 0a 09 09 09 09 63 6f 6e 73 74 20 ..//.re-execute.them......const.
c220 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 6e 67 alreadyResolved.=.new.Set<string
c240 3e 28 29 3b 0a 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 >();.....for.(const.c.of.chunks)
c260 20 7b 0a 09 09 09 09 09 69 66 20 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 .{......if.(c.type.!==."tool-bat
c280 63 68 22 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 ch").continue;......for.(const.e
c2a0 6e 74 72 79 20 6f 66 20 63 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 09 09 69 66 20 28 65 6e 74 ntry.of.c.calls).{.......if.(ent
c2c0 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 61 6c 72 65 61 64 79 ry.result.!==.undefined).already
c2e0 52 65 73 6f 6c 76 65 64 2e 61 64 64 28 65 6e 74 72 79 2e 69 64 29 3b 0a 09 09 09 09 09 7d 0a 09 Resolved.add(entry.id);......}..
c300 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 49 64 65 6e 74 69 66 79 20 74 68 65 20 69 6e 64 65 78 20 ...}......//.Identify.the.index.
c320 6f 66 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 69 6e 20 74 68 69 73 20 62 61 74 63 68 20 74 of.the.last.tool.in.this.batch.t
c340 68 61 74 20 77 69 6c 6c 0a 09 09 09 09 2f 2f 20 61 63 74 75 61 6c 6c 79 20 65 78 65 63 75 74 65 hat.will.....//.actually.execute
c360 2e 20 51 75 65 75 65 64 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 62 75 66 66 65 ..Queued.user.messages.are.buffe
c380 72 65 64 20 61 63 72 6f 73 73 0a 09 09 09 09 2f 2f 20 74 68 69 73 20 62 61 74 63 68 20 61 6e 64 red.across.....//.this.batch.and
c3a0 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f 20 4f 4e 4c 59 20 74 68 61 74 20 74 6f 6f 6c 27 73 20 .injected.into.ONLY.that.tool's.
c3c0 72 65 73 75 6c 74 2c 20 73 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 69 6e 74 65 72 72 75 70 74 20 result,.so.the.....//.interrupt.
c3e0 61 70 70 65 61 72 73 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 20 70 65 72 20 73 74 65 70 20 72 61 appears.exactly.once.per.step.ra
c400 74 68 65 72 20 74 68 61 6e 20 66 72 61 67 6d 65 6e 74 65 64 0a 09 09 09 09 2f 2f 20 61 63 72 6f ther.than.fragmented.....//.acro
c420 73 73 20 77 68 69 63 68 65 76 65 72 20 74 6f 6f 6c 20 68 61 70 70 65 6e 65 64 20 74 6f 20 64 65 ss.whichever.tool.happened.to.de
c440 71 75 65 75 65 20 66 69 72 73 74 2e 20 54 6f 6f 6c 2d 6c 65 76 65 6c 0a 09 09 09 09 2f 2f 20 69 queue.first..Tool-level.....//.i
c460 6e 74 65 72 72 75 70 74 20 68 61 6e 64 6c 65 72 73 20 69 6e 20 72 75 6e 2d 73 68 65 6c 6c 2f 79 nterrupt.handlers.in.run-shell/y
c480 6f 75 74 75 62 65 2d 74 72 61 6e 73 63 72 69 62 65 2f 72 65 74 72 69 65 76 65 0a 09 09 09 09 2f outube-transcribe/retrieve...../
c4a0 2f 20 73 74 69 6c 6c 20 65 6d 62 65 64 20 74 68 65 69 72 20 6f 77 6e 20 69 6e 74 65 72 72 75 70 /.still.embed.their.own.interrup
c4c0 74 20 74 65 78 74 20 69 6e 20 74 68 65 69 72 20 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20 e2 80 t.text.in.their.return.values...
c4e0 94 0a 09 09 09 09 2f 2f 20 74 68 61 74 20 70 61 74 68 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e ......//.that.path.is.independen
c500 74 20 61 6e 64 20 72 65 6d 61 69 6e 73 20 63 6f 72 72 65 63 74 2e 0a 09 09 09 09 6c 65 74 20 6c t.and.remains.correct......let.l
c520 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 3d 20 2d 31 3b 0a 09 09 09 09 66 6f 72 20 28 astExecutableIdx.=.-1;.....for.(
c540 6c 65 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e let.i.=.0;.i.<.stepToolCalls.len
c560 67 74 68 3b 20 69 2b 2b 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 41 74 20 3d 20 73 74 gth;.i++).{......const.tcAt.=.st
c580 65 70 54 6f 6f 6c 43 61 6c 6c 73 5b 69 5d 3b 0a 09 09 09 09 09 69 66 20 28 74 63 41 74 20 26 26 epToolCalls[i];......if.(tcAt.&&
c5a0 20 21 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 41 74 2e 69 64 29 29 20 .!alreadyResolved.has(tcAt.id)).
c5c0 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 3d 20 69 3b 0a 09 09 09 09 7d 0a 0a 09 09 lastExecutableIdx.=.i;.....}....
c5e0 09 09 2f 2f 20 41 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 65 73 73 61 67 65 73 20 64 65 ..//.Accumulator.for.messages.de
c600 71 75 65 75 65 64 20 64 75 72 69 6e 67 20 74 68 69 73 20 62 61 74 63 68 2e 20 44 72 61 69 6e 65 queued.during.this.batch..Draine
c620 64 0a 09 09 09 09 2f 2f 20 6f 6e 6c 79 20 61 74 20 60 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 d.....//.only.at.`lastExecutable
c640 49 64 78 60 2e 20 44 65 73 74 72 75 63 74 69 76 65 20 64 65 71 75 65 75 65 20 61 74 20 74 68 65 Idx`..Destructive.dequeue.at.the
c660 20 71 75 65 75 65 0a 09 09 09 09 2f 2f 20 6c 65 76 65 6c 20 70 72 65 76 65 6e 74 73 20 74 68 65 .queue.....//.level.prevents.the
c680 20 73 61 6d 65 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 61 70 70 65 61 72 69 6e 67 20 69 6e 20 .same.message.from.appearing.in.
c6a0 73 75 62 73 65 71 75 65 6e 74 0a 09 09 09 09 2f 2f 20 62 61 74 63 68 65 73 2e 0a 09 09 09 09 63 subsequent.....//.batches......c
c6c0 6f 6e 73 74 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 3a 20 7b 20 69 64 onst.batchPendingInjection:.{.id
c6e0 3a 20 73 74 72 69 6e 67 3b 20 6d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 3b 20 74 69 6d 65 73 :.string;.message:.string;.times
c700 74 61 6d 70 3a 20 6e 75 6d 62 65 72 20 7d 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 2f 2f 20 52 tamp:.number.}[].=.[];......//.R
c720 65 73 75 6c 74 73 20 6f 66 20 61 6c 72 65 61 64 79 2d 65 78 65 63 75 74 65 64 20 63 61 6c 6c 73 esults.of.already-executed.calls
c740 20 69 6e 20 74 68 69 73 20 62 61 74 63 68 2c 20 6b 65 79 65 64 20 62 79 0a 09 09 09 09 2f 2f 20 .in.this.batch,.keyed.by.....//.
c760 60 74 6f 6f 6c 44 65 64 75 70 4b 65 79 60 2e 20 42 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 20 72 `toolDedupKey`..Byte-identical.r
c780 65 70 65 61 74 73 20 72 65 75 73 65 20 74 68 65 20 66 69 72 73 74 20 72 65 73 75 6c 74 0a 09 09 epeats.reuse.the.first.result...
c7a0 09 09 2f 2f 20 69 6e 73 74 65 61 64 20 6f 66 20 72 65 2d 72 75 6e 6e 69 6e 67 20 74 68 65 20 74 ..//.instead.of.re-running.the.t
c7c0 6f 6f 6c 20 28 73 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 63 61 74 69 6f 6e ool.(see.tool-runner-duplication
c7e0 2d 0a 09 09 09 09 2f 2f 20 69 6e 63 69 64 65 6e 74 2e 6d 64 29 2e 20 4f 6e 6c 79 20 74 68 65 20 -.....//.incident.md)..Only.the.
c800 72 61 77 2c 20 70 72 65 2d 69 6e 74 65 72 72 75 70 74 2d 69 6e 6a 65 63 74 69 6f 6e 20 72 65 73 raw,.pre-interrupt-injection.res
c820 75 6c 74 20 69 73 0a 09 09 09 09 2f 2f 20 63 61 63 68 65 64 20 73 6f 20 61 20 72 65 75 73 65 64 ult.is.....//.cached.so.a.reused
c840 20 63 6f 70 79 20 6e 65 76 65 72 20 63 61 72 72 69 65 73 20 61 6e 6f 74 68 65 72 20 63 61 6c 6c .copy.never.carries.another.call
c860 27 73 20 69 6e 74 65 72 72 75 70 74 2e 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 64 75 70 52 65 73 's.interrupt......const.dedupRes
c880 75 6c 74 73 20 3d 20 6e 65 77 20 4d 61 70 3c 73 74 72 69 6e 67 2c 20 54 6f 6f 6c 52 65 73 75 6c ults.=.new.Map<string,.ToolResul
c8a0 74 3e 28 29 3b 0a 0a 09 09 09 09 66 6f 72 20 28 6c 65 74 20 74 63 49 64 78 20 3d 20 30 3b 20 74 t>();......for.(let.tcIdx.=.0;.t
c8c0 63 49 64 78 20 3c 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 3b 20 74 63 49 cIdx.<.stepToolCalls.length;.tcI
c8e0 64 78 2b 2b 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 20 3d 20 73 74 65 70 54 6f 6f 6c dx++).{......const.tc.=.stepTool
c900 43 61 6c 6c 73 5b 74 63 49 64 78 5d 3b 0a 09 09 09 09 09 69 66 20 28 21 74 63 20 7c 7c 20 61 6c Calls[tcIdx];......if.(!tc.||.al
c920 72 65 61 64 79 52 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e readyResolved.has(tc.id)).contin
c940 75 65 3b 0a 0a 09 09 09 09 09 63 6f 6e 73 74 20 64 65 64 75 70 4b 65 79 20 3d 20 74 6f 6f 6c 44 ue;.......const.dedupKey.=.toolD
c960 65 64 75 70 4b 65 79 28 74 63 2e 6e 61 6d 65 2c 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 29 3b 0a edupKey(tc.name,.tc.arguments);.
c980 0a 09 09 09 09 09 6c 65 74 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 ......let.toolResult:.ToolResult
c9a0 20 7c 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 09 09 63 6f 6e 73 74 20 63 61 63 68 65 64 20 .|.undefined;......const.cached.
c9c0 3d 20 64 65 64 75 70 4b 65 79 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 64 65 64 75 70 52 65 73 75 6c =.dedupKey.!==.null.?.dedupResul
c9e0 74 73 2e 67 65 74 28 64 65 64 75 70 4b 65 79 29 20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 ts.get(dedupKey).:.undefined;...
ca00 09 09 09 69 66 20 28 63 61 63 68 65 64 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 49 64 65 6e 74 69 ...if.(cached).{.......//.Identi
ca20 63 61 6c 20 63 61 6c 6c 20 61 6c 72 65 61 64 79 20 72 61 6e 20 69 6e 20 74 68 69 73 20 62 61 74 cal.call.already.ran.in.this.bat
ca40 63 68 20 e2 80 94 20 72 65 75 73 65 20 69 74 73 0a 09 09 09 09 09 09 2f 2f 20 6f 75 74 70 75 74 ch.....reuse.its.......//.output
ca60 20 75 6e 64 65 72 20 74 68 69 73 20 63 61 6c 6c 27 73 20 6f 77 6e 20 69 64 20 28 6e 6f 20 65 78 .under.this.call's.own.id.(no.ex
ca80 65 63 75 74 69 6f 6e 2c 20 6e 6f 20 73 68 65 6c 6c 0a 09 09 09 09 09 09 2f 2f 20 6f 75 74 70 75 ecution,.no.shell.......//.outpu
caa0 74 20 74 6f 20 73 74 72 65 61 6d 29 2e 0a 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 20 3d t.to.stream)........toolResult.=
cac0 20 7b 20 2e 2e 2e 63 61 63 68 65 64 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c .{....cached,.toolCallId:.tc.id,
cae0 20 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 20 7d 3b 0a 09 09 09 09 09 7d 20 65 6c 73 .toolName:.tc.name.};......}.els
cb00 65 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 e.{.......const.shellOutputQueue
cb20 3a 20 41 72 72 61 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 73 74 72 65 61 6d 3a 20 :.Array<{.data:.string;.stream:.
cb40 22 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 20 3d 20 5b 5d 3b 0a 0a 09 09 "stdout".|."stderr".}>.=.[];....
cb60 09 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 68 69 73 2e 65 78 65 ....const.execPromise.=.this.exe
cb80 63 75 74 65 54 6f 6f 6c 57 69 74 68 53 74 72 65 61 6d 69 6e 67 28 74 63 2c 20 73 68 65 6c 6c 4f cuteToolWithStreaming(tc,.shellO
cba0 75 74 70 75 74 51 75 65 75 65 29 3b 0a 0a 09 09 09 09 09 09 2f 2f 20 50 6f 6c 6c 20 66 6f 72 20 utputQueue);........//.Poll.for.
cbc0 73 68 65 6c 6c 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 74 6f 6f 6c 20 69 73 20 72 shell.output.while.the.tool.is.r
cbe0 75 6e 6e 69 6e 67 2c 20 75 73 69 6e 67 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 0a 09 09 09 09 09 unning,.using.Promise.race......
cc00 09 2f 2f 20 73 6f 20 77 65 20 63 61 6e 20 79 69 65 6c 64 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 .//.so.we.can.yield.shell-output
cc20 20 65 76 65 6e 74 73 20 61 73 20 74 68 65 79 20 61 72 72 69 76 65 20 72 61 74 68 65 72 20 74 68 .events.as.they.arrive.rather.th
cc40 61 6e 20 62 75 66 66 65 72 69 6e 67 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 6d 20 61 6c 6c 20 75 an.buffering.......//.them.all.u
cc60 6e 74 69 6c 20 74 6f 6f 6c 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 09 09 09 09 09 09 77 68 69 6c ntil.tool.completion........whil
cc80 65 20 28 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 7b 0a 09 e.(toolResult.===.undefined).{..
cca0 09 09 09 09 09 09 69 66 20 28 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 6c 65 6e 67 74 ......if.(shellOutputQueue.lengt
ccc0 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 74 65 6d 20 3d 20 73 68 h.>.0).{.........const.item.=.sh
cce0 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 28 29 3b 0a 09 09 09 09 09 09 09 09 ellOutputQueue.shift();.........
cd00 69 66 20 28 69 74 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c if.(item).{..........const.shell
cd20 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 09 09 Event:.AgentEvent.=.{...........
cd40 74 79 70 65 3a 20 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 09 09 09 09 09 09 09 09 09 type:."shell-output",...........
cd60 64 61 74 61 3a 20 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 09 09 09 73 74 72 65 61 data:.item.data,...........strea
cd80 6d 3a 20 69 74 65 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 m:.item.stream,..........};.....
cda0 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c .....appendEventToChunks(chunks,
cdc0 20 73 68 65 6c 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 09 79 69 65 6c 64 20 73 68 65 .shellEvent);..........yield.she
cde0 6c 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 09 63 6f 6e 74 69 llEvent;.........}.........conti
ce00 6e 75 65 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 72 61 63 65 52 nue;........}........const.raceR
ce20 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 28 5b 0a 09 09 09 esult.=.await.Promise.race([....
ce40 09 09 09 09 09 65 78 65 63 50 72 6f 6d 69 73 65 2e 74 68 65 6e 28 28 72 29 20 3d 3e 20 28 7b 20 .....execPromise.then((r).=>.({.
ce60 64 6f 6e 65 3a 20 74 72 75 65 20 61 73 20 63 6f 6e 73 74 2c 20 76 61 6c 75 65 3a 20 72 20 7d 29 done:.true.as.const,.value:.r.})
ce80 29 2c 0a 09 09 09 09 09 09 09 09 6e 65 77 20 50 72 6f 6d 69 73 65 3c 7b 20 64 6f 6e 65 3a 20 66 ),.........new.Promise<{.done:.f
cea0 61 6c 73 65 20 7d 3e 28 28 72 65 73 6f 6c 76 65 29 20 3d 3e 0a 09 09 09 09 09 09 09 09 09 73 65 alse.}>((resolve).=>..........se
cec0 74 49 6d 6d 65 64 69 61 74 65 28 28 29 20 3d 3e 20 72 65 73 6f 6c 76 65 28 7b 20 64 6f 6e 65 3a tImmediate(().=>.resolve({.done:
cee0 20 66 61 6c 73 65 20 7d 29 29 2c 0a 09 09 09 09 09 09 09 09 29 2c 0a 09 09 09 09 09 09 09 5d 29 .false.})),.........),........])
cf00 3b 0a 09 09 09 09 09 09 09 69 66 20 28 72 61 63 65 52 65 73 75 6c 74 2e 64 6f 6e 65 29 20 7b 0a ;........if.(raceResult.done).{.
cf20 09 09 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 72 61 63 65 52 65 73 75 6c 74 2e ........toolResult.=.raceResult.
cf40 76 61 6c 75 65 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 2f value;........}.......}......../
cf60 2f 20 44 72 61 69 6e 20 61 6e 79 20 72 65 6d 61 69 6e 69 6e 67 20 73 68 65 6c 6c 20 6f 75 74 70 /.Drain.any.remaining.shell.outp
cf80 75 74 20 65 6d 69 74 74 65 64 20 62 65 66 6f 72 65 20 77 65 20 72 65 61 64 20 74 68 65 20 72 65 ut.emitted.before.we.read.the.re
cfa0 73 75 6c 74 0a 09 09 09 09 09 09 77 68 69 6c 65 20 28 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 sult.......while.(shellOutputQue
cfc0 75 65 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 74 ue.length.>.0).{........const.it
cfe0 65 6d 20 3d 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 28 29 3b 0a 09 em.=.shellOutputQueue.shift();..
d000 09 09 09 09 09 09 69 66 20 28 69 74 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 ......if.(item).{.........const.
d020 73 68 65 6c 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 shellEvent:.AgentEvent.=.{......
d040 09 09 09 09 74 79 70 65 3a 20 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 09 09 09 09 09 ....type:."shell-output",.......
d060 09 09 09 64 61 74 61 3a 20 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 09 09 73 74 72 ...data:.item.data,..........str
d080 65 61 6d 3a 20 69 74 65 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 eam:.item.stream,.........};....
d0a0 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c .....appendEventToChunks(chunks,
d0c0 20 73 68 65 6c 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 79 69 65 6c 64 20 73 68 65 6c .shellEvent);.........yield.shel
d0e0 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 lEvent;........}.......}........
d100 2f 2f 20 43 61 63 68 65 20 74 68 65 20 72 61 77 20 72 65 73 75 6c 74 20 73 6f 20 6c 61 74 65 72 //.Cache.the.raw.result.so.later
d120 20 69 64 65 6e 74 69 63 61 6c 20 63 61 6c 6c 73 20 69 6e 20 74 68 69 73 0a 09 09 09 09 09 09 2f .identical.calls.in.this......./
d140 2f 20 62 61 74 63 68 20 63 61 6e 20 72 65 75 73 65 20 69 74 2e 0a 09 09 09 09 09 09 69 66 20 28 /.batch.can.reuse.it........if.(
d160 64 65 64 75 70 4b 65 79 20 21 3d 3d 20 6e 75 6c 6c 29 20 64 65 64 75 70 52 65 73 75 6c 74 73 2e dedupKey.!==.null).dedupResults.
d180 73 65 74 28 64 65 64 75 70 4b 65 79 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 29 3b 0a 09 09 09 09 09 set(dedupKey,.toolResult);......
d1a0 7d 0a 0a 09 09 09 09 09 2f 2f 20 48 61 72 76 65 73 74 20 61 6e 79 20 71 75 65 75 65 64 20 75 73 }.......//.Harvest.any.queued.us
d1c0 65 72 20 6d 65 73 73 61 67 65 73 20 62 75 74 20 44 45 46 45 52 20 69 6e 6a 65 63 74 69 6f 6e 20 er.messages.but.DEFER.injection.
d1e0 75 6e 74 69 6c 0a 09 09 09 09 09 2f 2f 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 6f 66 20 74 until......//.the.last.tool.of.t
d200 68 65 20 62 61 74 63 68 2e 20 54 68 69 73 20 63 6f 6c 6c 61 70 73 65 73 20 6d 75 6c 74 69 70 6c he.batch..This.collapses.multipl
d220 65 0a 09 09 09 09 09 2f 2f 20 71 75 65 75 65 64 20 6d 65 73 73 61 67 65 73 20 69 6e 74 6f 20 61 e......//.queued.messages.into.a
d240 20 73 69 6e 67 6c 65 20 69 6e 74 65 72 72 75 70 74 20 62 6c 6f 63 6b 20 6f 6e 20 61 20 73 69 6e .single.interrupt.block.on.a.sin
d260 67 6c 65 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 6e 73 74 65 61 64 20 gle......//.tool-result.instead.
d280 6f 66 20 66 72 61 67 6d 65 6e 74 69 6e 67 20 61 63 72 6f 73 73 20 74 68 65 20 62 61 74 63 68 2e of.fragmenting.across.the.batch.
d2a0 0a 09 09 09 09 09 69 66 20 28 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b ......if.(this.queueCallbacks).{
d2c0 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 71 75 65 75 65 64 4d 73 67 73 20 3d 20 74 68 69 73 2e 71 .......const.queuedMsgs.=.this.q
d2e0 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2e 64 65 71 75 65 75 65 4d 65 73 73 61 67 65 73 28 29 3b ueueCallbacks.dequeueMessages();
d300 0a 09 09 09 09 09 09 69 66 20 28 71 75 65 75 65 64 4d 73 67 73 2e 6c 65 6e 67 74 68 20 3e 20 30 .......if.(queuedMsgs.length.>.0
d320 29 20 7b 0a 09 09 09 09 09 09 09 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e ).{........batchPendingInjection
d340 2e 70 75 73 68 28 2e 2e 2e 71 75 65 75 65 64 4d 73 67 73 29 3b 0a 09 09 09 09 09 09 7d 0a 09 09 .push(...queuedMsgs);.......}...
d360 09 09 09 7d 0a 0a 09 09 09 09 09 6c 65 74 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 3d ...}.......let.finalToolResult.=
d380 20 74 6f 6f 6c 52 65 73 75 6c 74 3b 0a 09 09 09 09 09 69 66 20 28 74 63 49 64 78 20 3d 3d 3d 20 .toolResult;......if.(tcIdx.===.
d3a0 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 26 26 20 62 61 74 63 68 50 65 6e 64 69 6e lastExecutableIdx.&&.batchPendin
d3c0 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 63 gInjection.length.>.0).{.......c
d3e0 6f 6e 73 74 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 6e 64 69 6e 67 onst.userMessages.=.batchPending
d400 49 6e 6a 65 63 74 69 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 61 67 65 29 2e Injection.map((m).=>.m.message).
d420 6a 6f 69 6e 28 22 5c 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 09 66 69 6e 61 6c 54 6f 6f 6c join("\n---\n");.......finalTool
d440 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 2e 2e 2e 74 6f 6f 6c 52 65 73 75 6c 74 2c Result.=.{...........toolResult,
d460 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 24 7b 74 6f 6f 6c 52 65 73 75 6c 74 2e 72 65 ........result:.`${toolResult.re
d480 73 75 6c 74 7d 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 5c 6e 54 68 65 20 75 sult}\n\n[USER.INTERRUPT]\nThe.u
d4a0 73 65 72 20 68 61 73 20 73 65 6e 74 20 79 6f 75 20 6d 65 73 73 61 67 65 28 73 29 20 77 68 69 6c ser.has.sent.you.message(s).whil
d4c0 65 20 79 6f 75 20 77 65 72 65 20 77 6f 72 6b 69 6e 67 2e 20 59 6f 75 20 4d 55 53 54 20 61 64 64 e.you.were.working..You.MUST.add
d4e0 72 65 73 73 20 74 68 65 73 65 20 62 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 69 6e 67 20 77 69 74 ress.these.before.continuing.wit
d500 68 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 74 61 73 6b 3a 5c 6e 5c 6e 24 7b 75 73 65 72 4d 65 h.your.current.task:\n\n${userMe
d520 73 73 61 67 65 73 7d 60 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 62 61 74 63 68 50 65 ssages}`,.......};.......batchPe
d540 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3d 20 30 3b 0a 09 09 09 09 09 ndingInjection.length.=.0;......
d560 7d 0a 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e }.......const.trEvent:.AgentEven
d580 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 2c 20 74 6f 6f 6c 52 t.=.{.type:."tool-result",.toolR
d5a0 65 73 75 6c 74 3a 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 7d 3b 0a 09 09 09 09 09 61 esult:.finalToolResult.};......a
d5c0 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 74 72 45 76 65 ppendEventToChunks(chunks,.trEve
d5e0 6e 74 29 3b 0a 09 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b 0a 09 09 09 09 7d 0a 0a nt);......yield.trEvent;.....}..
d600 09 09 09 09 2f 2f 20 53 61 66 65 74 79 20 6e 65 74 3a 20 69 66 20 60 6c 61 73 74 45 78 65 63 75 ....//.Safety.net:.if.`lastExecu
d620 74 61 62 6c 65 49 64 78 60 20 77 61 73 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 20 28 65 2e 67 tableIdx`.was.never.reached.(e.g
d640 2e 2c 0a 09 09 09 09 2f 2f 20 6e 6f 20 74 6f 6f 6c 73 20 65 78 65 63 75 74 65 64 20 62 65 63 61 .,.....//.no.tools.executed.beca
d660 75 73 65 20 61 6c 6c 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 72 65 73 6f 6c 76 65 64 29 20 62 use.all.were.already.resolved).b
d680 75 74 0a 09 09 09 09 2f 2f 20 6d 65 73 73 61 67 65 73 20 77 65 72 65 20 73 74 69 6c 6c 20 64 65 ut.....//.messages.were.still.de
d6a0 71 75 65 75 65 64 2c 20 73 75 72 66 61 63 65 20 74 68 65 6d 20 61 73 20 61 20 75 73 65 72 20 6d queued,.surface.them.as.a.user.m
d6c0 65 73 73 61 67 65 0a 09 09 09 09 2f 2f 20 73 6f 20 74 68 65 79 20 61 72 65 6e 27 74 20 64 72 6f essage.....//.so.they.aren't.dro
d6e0 70 70 65 64 2e 20 49 6e 20 70 72 61 63 74 69 63 65 20 74 68 69 73 20 69 73 20 72 61 72 65 20 e2 pped..In.practice.this.is.rare..
d700 80 94 20 69 74 20 6f 6e 6c 79 0a 09 09 09 09 2f 2f 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 74 ...it.only.....//.happens.when.t
d720 68 65 20 65 6e 74 69 72 65 20 62 61 74 63 68 20 69 73 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 he.entire.batch.is.unavailable-t
d740 6f 6f 6c 20 73 79 6e 74 68 65 73 69 7a 65 64 0a 09 09 09 09 2f 2f 20 65 72 72 6f 72 73 20 77 69 ool.synthesized.....//.errors.wi
d760 74 68 20 61 20 6d 65 73 73 61 67 65 20 61 72 72 69 76 69 6e 67 20 69 6e 20 74 68 61 74 20 6e 61 th.a.message.arriving.in.that.na
d780 72 72 6f 77 20 77 69 6e 64 6f 77 2e 0a 09 09 09 09 69 66 20 28 62 61 74 63 68 50 65 6e 64 69 6e rrow.window......if.(batchPendin
d7a0 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 63 6f gInjection.length.>.0).{......co
d7c0 6e 73 74 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 nst.userMessages.=.batchPendingI
d7e0 6e 6a 65 63 74 69 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 61 67 65 29 2e 6a njection.map((m).=>.m.message).j
d800 6f 69 6e 28 22 5c 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 74 68 69 73 2e 6d 65 73 73 61 67 oin("\n---\n");......this.messag
d820 65 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 0a 09 09 es.push({.......role:."user",...
d840 09 09 09 09 63 68 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 ....chunks:.[{.type:."text",.tex
d860 74 3a 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 7d 5d 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 t:.userMessages.}],......});....
d880 09 09 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3d ..batchPendingInjection.length.=
d8a0 20 30 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 46 69 6e 61 6c 20 73 61 66 65 74 79 20 6e .0;.....}......//.Final.safety.n
d8c0 65 74 3a 20 61 66 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 62 61 74 63 68 2c 20 67 et:.after.executing.the.batch,.g
d8e0 75 61 72 61 6e 74 65 65 20 65 76 65 72 79 0a 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 63 61 6c 6c 20 uarantee.every.....//.tool-call.
d900 72 65 63 6f 72 64 65 64 20 69 6e 20 74 68 69 73 20 73 74 65 70 20 68 61 73 20 61 20 6d 61 74 63 recorded.in.this.step.has.a.matc
d920 68 69 6e 67 20 72 65 73 75 6c 74 20 62 65 66 6f 72 65 20 77 65 0a 09 09 09 09 2f 2f 20 6c 6f 6f hing.result.before.we.....//.loo
d940 70 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 41 6e 79 20 74 6f 6f 6c 2d 63 61 6c 6c p.back.to.the.LLM..Any.tool-call
d960 20 49 44 20 74 68 61 74 20 73 6c 69 70 70 65 64 20 74 68 72 6f 75 67 68 0a 09 09 09 09 2f 2f 20 .ID.that.slipped.through.....//.
d980 77 69 74 68 6f 75 74 20 61 20 72 65 73 75 6c 74 20 28 61 20 70 61 74 68 20 77 65 20 64 69 64 6e without.a.result.(a.path.we.didn
d9a0 27 74 20 61 6e 74 69 63 69 70 61 74 65 29 20 77 6f 75 6c 64 20 6f 74 68 65 72 77 69 73 65 0a 09 't.anticipate).would.otherwise..
d9c0 09 09 09 2f 2f 20 6f 72 70 68 61 6e 20 61 6e 64 20 74 72 69 67 67 65 72 20 4d 69 73 73 69 6e 67 ...//.orphan.and.trigger.Missing
d9e0 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 6e 65 78 74 0a 09 09 09 ToolResultsError.on.the.next....
da00 09 2f 2f 20 72 6f 75 6e 64 2d 74 72 69 70 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 61 66 65 74 79 .//.round-trip......const.safety
da20 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e 74 68 65 73 69 7a 65 52 65 73 69 64 75 Residual.=.this.synthesizeResidu
da40 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c alToolResults(......stepToolCall
da60 73 2c 0a 09 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 09 22 45 72 72 6f 72 3a 20 49 6e 74 s,......chunks,......"Error:.Int
da80 65 72 6e 61 6c 20 65 72 72 6f 72 3a 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 77 61 73 20 6e 65 76 ernal.error:.tool.result.was.nev
daa0 65 72 20 70 72 6f 64 75 63 65 64 2e 22 2c 0a 09 09 09 09 29 3b 0a 09 09 09 09 66 6f 72 20 28 63 er.produced.",.....);.....for.(c
dac0 6f 6e 73 74 20 72 20 6f 66 20 73 61 66 65 74 79 52 65 73 69 64 75 61 6c 29 20 7b 0a 09 09 09 09 onst.r.of.safetyResidual).{.....
dae0 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 72 29 3b .appendEventToChunks(chunks,.r);
db00 0a 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 0a 09 09 09 2f 2f ......yield.r;.....}....}.....//
db20 20 42 75 69 6c 64 20 74 68 65 20 66 69 6e 61 6c 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 .Build.the.final.assistant.messa
db40 67 65 20 66 72 6f 6d 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 63 68 75 6e 6b 73 2e 0a ge.from.the.accumulated.chunks..
db60 09 09 09 2f 2f 20 49 66 20 6e 6f 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 20 6d 65 73 73 61 ...//.If.no.assistant.turn.messa
db80 67 65 20 77 61 73 20 65 76 65 72 20 63 72 65 61 74 65 64 20 28 65 2e 67 2e 2c 20 74 68 65 20 6d ge.was.ever.created.(e.g.,.the.m
dba0 6f 64 65 6c 0a 09 09 09 2f 2f 20 70 72 6f 64 75 63 65 64 20 6e 6f 74 68 69 6e 67 20 e2 80 94 20 odel....//.produced.nothing.....
dbc0 75 6e 75 73 75 61 6c 20 62 75 74 20 70 6f 73 73 69 62 6c 65 29 2c 20 73 79 6e 74 68 65 73 69 7a unusual.but.possible),.synthesiz
dbe0 65 20 61 6e 20 65 6d 70 74 79 20 6f 6e 65 2e 0a 09 09 09 63 6f 6e 73 74 20 61 73 73 69 73 74 61 e.an.empty.one.....const.assista
dc00 6e 74 4d 65 73 73 61 67 65 3a 20 43 68 61 74 4d 65 73 73 61 67 65 20 3d 20 61 73 73 69 73 74 61 ntMessage:.ChatMessage.=.assista
dc20 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 20 3f 3f 20 7b 0a 09 09 09 09 72 6f 6c 65 3a 20 22 61 73 ntTurnMessage.??.{.....role:."as
dc40 73 69 73 74 61 6e 74 22 2c 0a 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 7d 3b 0a 09 09 09 2f sistant",.....chunks,....};..../
dc60 2f 20 60 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 60 20 77 61 73 20 70 75 73 /.`assistantTurnMessage`.was.pus
dc80 68 65 64 20 69 6e 74 6f 20 60 73 74 65 70 4d 65 73 73 61 67 65 73 60 20 62 75 74 20 6e 6f 74 20 hed.into.`stepMessages`.but.not.
dca0 69 6e 74 6f 0a 09 09 09 2f 2f 20 60 74 68 69 73 2e 6d 65 73 73 61 67 65 73 60 20 e2 80 94 20 70 into....//.`this.messages`.....p
dcc0 75 73 68 20 69 74 20 6e 6f 77 20 73 6f 20 74 68 65 20 61 67 65 6e 74 27 73 20 6f 75 74 77 61 72 ush.it.now.so.the.agent's.outwar
dce0 64 2d 66 61 63 69 6e 67 0a 09 09 09 2f 2f 20 68 69 73 74 6f 72 79 20 72 65 66 6c 65 63 74 73 20 d-facing....//.history.reflects.
dd00 74 68 65 20 74 75 72 6e 2e 0a 09 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 70 75 73 68 28 the.turn.....this.messages.push(
dd20 61 73 73 69 73 74 61 6e 74 4d 65 73 73 61 67 65 29 3b 0a 0a 09 09 09 2f 2f 20 4e 4f 54 45 3a 20 assistantMessage);.....//.NOTE:.
dd40 71 75 65 75 65 64 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 72 72 69 76 65 20 41 46 54 45 queued.messages.that.arrive.AFTE
dd60 52 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 6f 72 20 77 69 74 68 0a 09 09 R.the.last.tool.call.(or.with...
dd80 09 2f 2f 20 6e 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 74 20 61 6c 6c 29 20 61 72 65 20 69 6e .//.no.tool.calls.at.all).are.in
dda0 74 65 6e 74 69 6f 6e 61 6c 6c 79 20 4e 4f 54 20 64 72 61 69 6e 65 64 20 68 65 72 65 2e 20 44 72 tentionally.NOT.drained.here..Dr
ddc0 61 69 6e 69 6e 67 0a 09 09 09 2f 2f 20 74 68 65 6d 20 69 6e 74 6f 20 60 74 68 69 73 2e 6d 65 73 aining....//.them.into.`this.mes
dde0 73 61 67 65 73 60 20 61 73 20 61 20 74 72 61 69 6c 69 6e 67 20 75 73 65 72 20 74 75 72 6e 20 e2 sages`.as.a.trailing.user.turn..
de00 80 94 20 74 68 65 20 6f 6c 64 0a 09 09 09 2f 2f 20 62 65 68 61 76 69 6f 75 72 20 e2 80 94 20 6c ...the.old....//.behaviour.....l
de20 65 66 74 20 74 68 65 6d 20 73 69 74 74 69 6e 67 20 69 6e 20 68 69 73 74 6f 72 79 20 77 69 74 68 eft.them.sitting.in.history.with
de40 20 6e 6f 20 6d 6f 64 65 6c 20 72 65 73 70 6f 6e 73 65 3a 0a 09 09 09 2f 2f 20 74 68 65 20 74 75 .no.model.response:....//.the.tu
de60 72 6e 20 65 6e 64 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 73 77 65 72 69 6e 67 20 74 68 rn.ended.instead.of.answering.th
de80 65 6d 20 28 74 68 65 20 22 71 75 65 75 65 20 6e 6f 74 20 63 6f 6e 73 75 6d 65 64 0a 09 09 09 2f em.(the."queue.not.consumed..../
dea0 2f 20 61 66 74 65 72 20 74 68 65 20 74 75 72 6e 20 65 6e 64 73 22 20 62 75 67 29 2e 20 54 68 65 /.after.the.turn.ends".bug)..The
dec0 79 20 6e 6f 77 20 73 74 61 79 20 6f 6e 20 74 68 65 20 71 75 65 75 65 20 73 6f 20 74 68 65 0a 09 y.now.stay.on.the.queue.so.the..
dee0 09 09 2f 2f 20 6f 72 63 68 65 73 74 72 61 74 6f 72 20 28 60 41 67 65 6e 74 4d 61 6e 61 67 65 72 ..//.orchestrator.(`AgentManager
df00 2e 70 72 6f 63 65 73 73 4d 65 73 73 61 67 65 60 29 20 63 61 6e 20 73 74 61 72 74 20 61 20 66 72 .processMessage`).can.start.a.fr
df20 65 73 68 20 74 75 72 6e 0a 09 09 09 2f 2f 20 66 6f 72 20 74 68 65 6d 20 6f 6e 63 65 20 74 68 69 esh.turn....//.for.them.once.thi
df40 73 20 6f 6e 65 20 73 65 74 74 6c 65 73 2e 20 4d 69 64 2d 74 75 72 6e 20 69 6e 74 65 72 72 75 70 s.one.settles..Mid-turn.interrup
df60 74 73 20 61 72 65 20 73 74 69 6c 6c 0a 09 09 09 2f 2f 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f ts.are.still....//.injected.into
df80 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 61 62 6f 76 65 20 e2 80 94 20 .the.last.tool.result.above.....
dfa0 74 68 61 74 20 70 61 74 68 20 69 73 20 75 6e 63 68 61 6e 67 65 64 2e 0a 0a 09 09 09 79 69 65 6c that.path.is.unchanged......yiel
dfc0 64 20 7b 20 74 79 70 65 3a 20 22 64 6f 6e 65 22 2c 20 6d 65 73 73 61 67 65 3a 20 61 73 73 69 73 d.{.type:."done",.message:.assis
dfe0 74 61 6e 74 4d 65 73 73 61 67 65 20 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 72 72 29 20 7b tantMessage.};...}.catch.(err).{
e000 0a 09 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 3d 20 65 72 72 20 61 73 20 75 6e 6b ....const.errRecord.=.err.as.unk
e020 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b nown.as.Record<string,.unknown>;
e040 0a 09 09 09 63 6f 6e 73 74 20 73 74 61 74 75 73 43 6f 64 65 20 3d 0a 09 09 09 09 74 79 70 65 6f ....const.statusCode.=.....typeo
e060 66 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3d 3d 3d 20 22 6e 75 6d 62 f.errRecord.statusCode.===."numb
e080 65 72 22 20 3f 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3a 20 75 6e 64 er".?.errRecord.statusCode.:.und
e0a0 65 66 69 6e 65 64 3b 0a 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d efined;....const.errorMsg.=.form
e0c0 61 74 45 72 72 6f 72 28 65 72 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 79 69 atError(err,.this.config);....yi
e0e0 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a 20 65 72 72 6f eld.{.type:."error",.error:.erro
e100 72 4d 73 67 2c 20 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 21 3d 3d 20 75 6e 64 65 66 69 6e rMsg,....(statusCode.!==.undefin
e120 65 64 20 3f 20 7b 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a 20 7b 7d 29 20 7d 3b 0a 09 09 09 ed.?.{.statusCode.}.:.{}).};....
e140 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 79 69 65 6c 64 20 this.status.=."error";....yield.
e160 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 65 72 72 6f 72 {.type:."status",.status:."error
e180 22 20 7d 3b 0a 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 7d 0a 0a 09 09 74 68 69 73 2e 73 74 61 74 ".};....return;...}....this.stat
e1a0 75 73 20 3d 20 22 69 64 6c 65 22 3b 0a 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 us.=."idle";...yield.{.type:."st
e1c0 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 69 64 6c 65 22 20 7d 3b 0a 09 7d 0a 7d 0a atus",.status:."idle".};..}.}.