summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/agent/agent.ts
blob: c6f1322ae4e74c814516741538e11510f98450ca (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 0a 2f 2a 2a 0a 20 2a 20 52 65 ."../types/index.js";../**..*.Re
0400 62 75 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 build.AI.SDK.`ModelMessage[]`.fr
0420 6f 6d 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 om.our.internal.`ChatMessage[]`.
0440 0a 20 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 ..*..*.Strip.rules.(see.plan-chu
0460 6e 6b 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 nk-refactor.md):..*..-.`role:."s
0480 79 73 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 ystem"`.messages.are.skipped.who
04a0 6c 65 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 lesale.(they're.display-only..*.
04c0 20 20 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 ...standalone-system.bubbles.tha
04e0 74 20 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 t.exist.outside.any.model.turn).
0500 0a 20 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 ..*..-.`error`.chunks.are.skippe
0520 64 20 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 d.....the.turn.ended;.the.LLM.do
0540 65 73 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 esn't.need.them...*..-.`system`.
0560 63 68 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 chunks.are.skipped.....display-o
0580 6e 6c 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 nly.notices...*..-.`text`.chunks
05a0 20 e2 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 .....`{.type:."text",.text.}`.pa
05c0 72 74 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 rts...*..-.`thinking`.chunks....
05e0 20 60 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 .`{.type:."reasoning",.text,.pro
0600 76 69 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 viderOptions?.}`.parts...*....Th
0620 65 20 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 e.`providerOptions`.carries.the.
0640 41 6e 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 Anthropic.signature.blob.(if.pre
0660 73 65 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 sent).so..*....Anthropic.can.val
0680 69 64 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 idate.extended-thinking.round-tr
06a0 69 70 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 ips..Non-Anthropic..*....reasoni
06c0 6e 67 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 ng.has.no.metadata.and.is.sent.w
06e0 69 74 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 ithout.providerOptions.(accepted
0700 0a 20 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 ..*....by.Anthropic.....it.just.
0720 77 6f 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 won't.verify.a.missing.signature
0740 29 2e 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 )...*..-.`tool-batch`.chunks....
0760 20 6f 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 .one.`{.type:."tool-call".}`.par
0780 74 20 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 t.per.entry..*....inside.the.cur
07a0 72 65 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 rent.assistant.message,.followed
07c0 20 62 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 .by.a.SINGLE..*....`{.role:."too
07e0 6c 22 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 l",.content:.[...all.tool-result
0800 20 70 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 .parts].}`.message.holding..*...
0820 20 65 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 .every.entry.that.has.a.result..
0840 47 72 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 Grouping.(rather.than.one.messag
0860 65 20 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 e.per..*....result).keeps.Anthro
0880 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 69 6e 74 73 20 6c pic.prompt-caching.breakpoints.l
08a0 61 6e 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 anding.on.the..*....assistant/to
08c0 6f 6c 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 ol.turn.boundary;.the.wire.forma
08e0 74 20 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 t.is.identical.for.both.the..*..
0900 20 20 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 ..Anthropic.and.OpenAI-compatibl
0920 65 20 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 e.backends...*..*.Mixed-resoluti
0940 6f 6e 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 on.tool.batches.(some.entries.wi
0960 74 68 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 th.`result`,.some.without):..*.w
0980 65 20 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 e.emit.tool-results.only.for.the
09a0 20 65 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 .entries.that.have.them..In.prac
09c0 74 69 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 tice..*.the.agent.resolves.every
09e0 20 74 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 .tool.call.in.a.step.before.loop
0a00 69 6e 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 ing.back.to.the..*.LLM,.so.this.
0a20 63 61 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 case.only.arises.mid-step.(where
0a40 20 74 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 .the.message.hasn't.been..*.roun
0a60 64 2d 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 d-tripped.to.the.LLM.yet).and.is
0a80 20 62 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 .benign...*/./**..*.Marker.used.
0aa0 74 6f 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 to.identify.the.start.of.a.`[USE
0ac0 52 20 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 R.INTERRUPT]`.block.embedded..*.
0ae0 69 6e 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 in.a.tool.result..Both.the.agent
0b00 2d 6c 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 -level.injection..*.(`packages/c
0b20 6f 72 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 ore/src/agent/agent.ts`).and.the
0b40 20 74 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 .tool-level.injections.in..*.`ru
0b60 6e 2d 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 n-shell`,.`youtube-transcribe`,.
0b80 61 6e 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 and.`retrieve`.use.the.same.sepa
0ba0 72 61 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 rator..*.(`\n\n[USER.INTERRUPT]`
0bc0 29 20 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 ).before.the.boilerplate,.so.a.s
0be0 69 6e 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 ingle.substring..*.search.suffic
0c00 65 73 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 es.for.stripping...*/.const.USER
0c20 5f 49 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 _INTERRUPT_MARKER.=."\n\n[USER.I
0c40 4e 54 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 NTERRUPT]";../**..*.Remove.the.`
0c60 5b 55 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 [USER.INTERRUPT]`.block.(and.eve
0c80 72 79 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 rything.after.it).from.a.tool..*
0ca0 20 72 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 .result.string..Used.when.a.hist
0cc0 6f 72 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 orical.tool-result.is.being.re-s
0ce0 65 72 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 erialized..*.for.the.LLM.and.the
0d00 20 6d 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 .model.has.already.had.a.chance.
0d20 74 6f 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 to.address.that..*.interrupt....
0d40 20 6c 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 .leaving.the.imperative."You.MUS
0d60 54 20 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 T.address.these".text.in..*.plac
0d80 65 20 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 e.causes.the.model.to.re-acknowl
0da0 65 64 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 edge.the.same.interrupt.on.every
0dc0 0a 20 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 ..*.subsequent.step...*..*.The.i
0de0 6e 74 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 nterrupt.block.is.always.appende
0e00 64 20 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 d.to.the.end.of.the.tool.result,
0e20 20 73 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 .so..*.we.strip.from.the.marker.
0e40 74 6f 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 to.end-of-string...*/.function.s
0e60 74 72 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 tripUserInterruptBlock(result:.s
0e80 74 72 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 tring):.string.{..const.idx.=.re
0ea0 73 75 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 sult.indexOf(USER_INTERRUPT_MARK
0ec0 45 52 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 ER);..if.(idx.===.-1).return.res
0ee0 75 6c 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 ult;..return.result.slice(0,.idx
0f00 29 3b 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 );.}../**..*.Stable.key.for.coll
0f20 61 70 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 apsing.byte-identical.tool.calls
0f40 20 69 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 .inside.a.single.batch...*..*.Cl
0f60 61 75 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 aude.occasionally.degenerates.in
0f80 74 6f 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 to.a.generation.loop.and.emits.t
0fa0 68 65 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 he.same..*.tool.call.(same.name.
0fc0 2b 20 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 +.same.arguments).dozens.....eve
0fe0 6e 20 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 n.150+.....times.in.one..*.paral
1000 6c 65 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 lel.batch.(see.tool-runner-dupli
1020 63 61 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 cation-incident.md)..Each.copy.c
1040 61 72 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 arries..*.its.own.unique.`toolCa
1060 6c 6c 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 llId`,.so.Anthropic.still.requir
1080 65 73 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 es.a.`tool_result`.for..*.every.
10a0 6f 6e 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 one,.but.re-executing.identical.
10c0 69 64 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 idempotent.reads.wastes.real.wal
10e0 6c 2d 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 l-clock..*.time.and.money.and.fl
1100 6f 6f 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 oods.the.context.with.redundant.
1120 6f 75 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 output...*..*.Returning.a.non-nu
1140 6c 6c 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 ll.key.here.lets.the.executor.ru
1160 6e 20 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 n.the.FIRST.occurrence.and..*.re
1180 75 73 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 use.its.result.for.every.subsequ
11a0 65 6e 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 ent.identical.call.in.the.same.b
11c0 61 74 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 atch..The..*.key.relies.on.`JSON
11e0 2e 73 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 .stringify`.preserving.argument.
1200 6f 72 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 order.....two.identical..*.gener
1220 61 74 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 ations.serialize.identically....
1240 20 77 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 .which.covers.the.observed.failu
1260 72 65 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 re.mode...*.If.the.arguments.can
1280 27 74 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 't.be.serialized.we.return.`null
12a0 60 2c 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 `,.which.disables.dedup..*.for.t
12c0 68 61 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 hat.call.(it.always.executes)...
12e0 2a 2f 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 */.function.toolDedupKey(name:.s
1300 74 72 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 tring,.args:.Record<string,.unkn
1320 6f 77 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 own>):.string.|.null.{..try.{...
1340 72 65 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 return.`${name}.${JSON.stringify
1360 28 61 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 (args.??.{})}`;..}.catch.{...ret
1380 75 72 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 urn.null;..}.}..function.toModel
13a0 4d 65 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 Messages(messages:.ChatMessage[]
13c0 2c 20 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 ,.useToolPrefix?:.boolean):.Mode
13e0 6c 4d 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 lMessage[].{..const.result:.Mode
1400 6c 4d 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 lMessage[].=.[];...//.A.`[USER.I
1420 4e 54 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 NTERRUPT]`.block.in.a.tool-resul
1440 74 20 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 t.is."fresh".....i.e.,.the..//.m
1460 6f 64 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 odel.has.not.yet.seen.and.respon
1480 64 65 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 ded.to.it.....only.when.ALL.of.t
14a0 68 65 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 hese..//.hold:..//...1..The.tool
14c0 2d 62 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 -batch.is.in.the.very.last.messa
14e0 67 65 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 ge.of.the.history...//...2..That
1500 20 6d 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 .message.is.an.assistant.message
1520 20 28 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 .(a.follow-up.user.message..//..
1540 20 20 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 ....means.the.user.moved.on;.the
1560 20 69 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 .interrupt.was.addressed)...//..
1580 20 33 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 .3..The.tool-batch.is.the.LAST.c
15a0 68 75 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 hunk.in.that.message.(any.later.
15c0 09 2f 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 .//......text/thinking/tool-batc
15e0 68 20 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 h.in.the.same.message.represents
1600 20 74 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 .the..//......model's.response.t
1620 6f 20 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 o.the.tool.results)...//..//.All
1640 20 6f 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 .other.interrupts.get.stripped.f
1660 72 6f 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 rom.history.because.the.imperati
1680 76 65 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 ve..//."You.MUST.address.these".
16a0 6f 74 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 otherwise.gets.re-evaluated.as.a
16c0 20 66 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 .fresh..//.instruction.on.every.
16e0 73 75 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 subsequent.LLM.step...let.freshe
1700 73 74 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 stToolBatchMsgIdx.=.-1;..let.fre
1720 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 2d 31 3b 0a 09 63 6f shestToolBatchChunkIdx.=.-1;..co
1740 6e 73 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 nst.lastMsgIdx.=.messages.length
1760 20 2d 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 .-.1;..const.lastMsg.=.messages[
1780 6c 61 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 lastMsgIdx];..if.(lastMsg.&&.las
17a0 74 4d 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 tMsg.role.===."assistant".&&.las
17c0 74 4d 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 tMsg.chunks.length.>.0).{...cons
17e0 74 20 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 t.lastChunkIdx.=.lastMsg.chunks.
1800 6c 65 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 length.-.1;...const.lastChunk.=.
1820 6c 61 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 lastMsg.chunks[lastChunkIdx];...
1840 69 66 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 if.(lastChunk.&&.lastChunk.type.
1860 3d 3d 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 ===."tool-batch").{....freshestT
1880 6f 6f 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 oolBatchMsgIdx.=.lastMsgIdx;....
18a0 66 72 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 freshestToolBatchChunkIdx.=.last
18c0 43 68 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 ChunkIdx;...}..}...for.(let.msgI
18e0 64 78 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 dx.=.0;.msgIdx.<.messages.length
1900 3b 20 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 ;.msgIdx++).{...const.msg.=.mess
1920 61 67 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 ages[msgIdx];...if.(!msg.||.msg.
1940 72 6f 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 role.===."system").continue;....
1960 69 66 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 if.(msg.role.===."user").{....//
1980 20 55 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 .User.messages.in.our.model.can.
19a0 69 6e 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 in.theory.contain.non-text.chunk
19c0 73 2c 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 s,....//.but.in.practice.the.UI.
19e0 6f 6e 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 only.produces.text..Concatenate.
1a00 61 6e 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 any.text....//.chunks;.ignore.an
1a20 79 74 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 ything.else.....const.text.=.msg
1a40 2e 63 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 .chunks......filter((c):.c.is.Ex
1a60 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 3d tract<Chunk,.{.type:."text".}>.=
1a80 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 2e 6d 61 70 28 28 63 >.c.type.===."text")......map((c
1aa0 29 20 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 ).=>.c.text)......join("");....r
1ac0 65 73 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 esult.push({.role:."user",.conte
1ae0 6e 74 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 nt:.text.});....continue;...}...
1b00 09 2f 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 .//.role.===."assistant"...//...
1b20 2f 2f 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 //.Segment.the.turn's.chunks.int
1b40 6f 20 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 o.per-LLM-step.`[assistant,.tool
1b60 5d 60 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 ]`...//.message.pairs,.splitting
1b80 20 61 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 .at.each.`tool-batch`.boundary..
1ba0 45 76 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 Every...//.round-trip.emits.text
1bc0 2f 74 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 /thinking.then.(optionally).one.
1be0 74 6f 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 tool-batch,.so...//.a.tool-batch
1c00 20 69 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 .is.exactly.a.step.boundary..../
1c20 2f 0a 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 /...//.This.is.the.cache.fix:.ea
1c40 63 68 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 ch.prior.step's.messages.are.bui
1c60 6c 74 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 lt.from...//.immutable.chunks.at
1c80 20 66 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 .fixed.positions,.so.they.serial
1ca0 69 7a 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 ize...//.byte-identically.on.eve
1cc0 72 79 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 ry.later.request.....stable.Anth
1ce0 72 6f 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 ropic.prompt...//.prefix..Collap
1d00 73 69 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 sing.all.steps.into.ONE.assistan
1d20 74 20 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 t.+.ONE.tool.message...//.(and.t
1d40 68 65 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 hen.letting.the.structural-norma
1d60 6c 69 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 lisation.pass.re-bucket.the...//
1d80 20 74 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 .tool_use/tool_result.blocks).re
1da0 73 68 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 shuffled.earlier.steps'.position
1dc0 73 20 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 s.on...//.every.step.and.shatter
1de0 65 64 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 ed.the.cache.(see.cache-miss-rep
1e00 6f 72 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 ort.md)....type.AssistantPart.=.
1e20 09 09 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 ...|.{.type:."text";.text:.strin
1e40 67 20 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 g.}....|.{.type:."reasoning";.te
1e60 78 74 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 xt:.string;.providerOptions?:.Pr
1e80 6f 76 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 oviderOptions.}....|.{.type:."to
1ea0 6f 6c 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 ol-call";.toolCallId:.string;.to
1ec0 6f 6c 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 olName:.string;.input:.unknown.}
1ee0 3b 0a 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 ;...type.StepResult.=.{....toolC
1f00 61 6c 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 allId:.string;....toolName:.stri
1f20 6e 67 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 ng;....result:.string;....isErro
1f40 72 3f 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 r?:.boolean;...};....let.parts:.
1f60 41 73 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 AssistantPart[].=.[];...let.step
1f80 52 65 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 Results:.StepResult[].=.[];....c
1fa0 6f 6e 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 onst.flushStep.=.():.void.=>.{..
1fc0 09 09 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 ..if.(parts.length.>.0).{.....re
1fe0 73 75 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 sult.push({.role:."assistant",.c
2000 6f 6e 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 ontent:.parts.});....}....//.One
2020 20 67 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 .grouped.`role:."tool"`.message.
2040 70 65 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 per.step.holds.that.step's....//
2060 20 72 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 .results.....`applyAnthropicCach
2080 69 6e 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 ing`.then.marks.the.last.two....
20a0 2f 2f 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 //.non-system.messages.as.`[assi
20c0 73 74 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 stant(step),.tool(step)]`,.the..
20e0 09 09 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 ..//.correct.rolling-breakpoint.
2100 70 6c 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 placement.....if.(stepResults.le
2120 6e 67 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 ngth.>.0).{.....result.push({...
2140 09 09 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 ...role:."tool",......content:.s
2160 74 65 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 tepResults.map((tr).=>.({.......
2180 74 79 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 type:."tool-result".as.const,...
21a0 09 09 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 ....toolCallId:.tr.toolCallId,..
21c0 09 09 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 .....toolName:.tr.toolName,.....
21e0 09 09 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 ..//.v6:.`output`.(ToolResultOut
2200 70 75 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 put).replaces.v4's.raw.`result`.
2220 09 09 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 ......output:.{.type:."text".as.
2240 63 6f 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 const,.value:.tr.result.},......
2260 09 2e 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 ....(tr.isError.?.{.isError:.tru
2280 65 20 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 e.}.:.{}),......})),.....});....
22a0 7d 0a 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 }....parts.=.[];....stepResults.
22c0 3d 20 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 =.[];...};....for.(let.chunkIdx.
22e0 3d 20 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 =.0;.chunkIdx.<.msg.chunks.lengt
2300 68 3b 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 h;.chunkIdx++).{....const.chunk.
2320 3d 20 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 =.msg.chunks[chunkIdx];....if.(!
2340 63 68 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 chunk).continue;....switch.(chun
2360 6b 2e 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 k.type).{.....case."text":......
2380 70 61 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 parts.push({.type:."text",.text:
23a0 20 63 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 .chunk.text.});......break;.....
23c0 63 61 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 case."thinking":......//.v6:.car
23e0 72 79 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 ry.providerOptions.(Anthropic.si
2400 67 6e 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 gnature.blob).if.present......./
2420 2f 20 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 /.Non-Anthropic.reasoning.has.no
2440 20 6d 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 .metadata.....send.without.provi
2460 64 65 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 derOptions......//.(Anthropic.ac
2480 63 65 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 cepts.it;.the.round-trip.just.wo
24a0 6e 27 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 n't.carry.a.signature).......par
24c0 74 73 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 ts.push({.......type:."reasoning
24e0 22 2c 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 ",.......text:.chunk.text,......
2500 09 2e 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 ....(chunk.metadata.!==.undefine
2520 64 0a 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 d........?.{.providerOptions:.ch
2540 75 6e 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 unk.metadata.as.ProviderOptions.
2560 7d 0a 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 }........:.{}),......});......br
2580 65 61 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 eak;.....case."tool-batch":.{...
25a0 09 09 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 ...//.Strip.stale.`[USER.INTERRU
25c0 50 54 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 PT]`.blocks.from.every......//.t
25e0 6f 6f 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 ool-batch.except.the.freshest.on
2600 65 20 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 e.(most.recent......//.tool-batc
2620 68 20 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 h.in.the.most.recent.assistant.m
2640 65 73 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 essage).......//.Without.this,.t
2660 68 65 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 he.imperative."You.MUST.address.
2680 74 68 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 these"......//.text.persists.in.
26a0 68 69 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 history.and.the.model.re-acknowl
26c0 65 64 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 edges......//.the.same.interrupt
26e0 20 76 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 .verbatim.on.every.subsequent.st
2700 65 70 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 ep.......const.isFreshestToolBat
2720 63 68 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 ch.=.......msgIdx.===.freshestTo
2740 6f 6c 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 olBatchMsgIdx.&&.chunkIdx.===.fr
2760 65 73 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 eshestToolBatchChunkIdx;......fo
2780 72 20 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 r.(const.entry.of.chunk.calls).{
27a0 0a 09 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 .......const.toolName.=.useToolP
27c0 72 65 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 refix.?.prefixToolName(entry.nam
27e0 65 29 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 e).:.entry.name;.......//.v6:.`i
2800 6e 70 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 nput`.replaces.v4's.`args`......
2820 09 70 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 .parts.push({........type:."tool
2840 2d 63 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 -call",........toolCallId:.entry
2860 2e 69 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 .id,........toolName,........inp
2880 75 74 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 ut:.entry.arguments,.......});..
28a0 09 09 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 .....if.(entry.result.!==.undefi
28c0 6e 65 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 ned).{........const.resultText.=
28e0 20 69 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 .isFreshestToolBatch.........?.e
2900 6e 74 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 ntry.result.........:.stripUserI
2920 6e 74 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 nterruptBlock(entry.result);....
2940 09 09 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 ....stepResults.push({.........t
2960 6f 6f 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 oolCallId:.entry.id,.........too
2980 6c 4e 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 lName,.........result:.resultTex
29a0 74 2c 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 t,.........isError:.entry.isErro
29c0 72 2c 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 r,........});.......}......}....
29e0 09 09 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 ..//.End.of.this.LLM.step.....em
2a00 69 74 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 it.its.`[assistant,.tool]`.pair.
2a20 61 6e 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 and......//.start.a.fresh.pair.f
2a40 6f 72 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 or.the.next.step.......flushStep
2a60 28 29 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 ();......break;.....}.....case."
2a80 65 72 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 error":.....case."system":......
2aa0 2f 2f 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 //.Strip.....not.sent.back.to.th
2ac0 65 20 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 e.LLM.......break;....}...}..../
2ae0 2f 20 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 /.Final.step:.trailing.text/thin
2b00 6b 69 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 king.with.no.tool-batch..`flushS
2b20 74 65 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 tep`...//.skips.empties,.so.a.tu
2b40 72 6e 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 rn.of.only.system/error.chunks.e
2b60 6d 69 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 mits.nothing....flushStep();..}.
2b80 09 72 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 .return.result;.}../**..*.Apply.
2ba0 4f 70 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 OpenAI-compatible.reasoning.norm
2bc0 61 6c 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 alisation...*..*.Cribbed.from.op
2be0 65 6e 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 encode.`provider/transform.ts:21
2c00 37 2d 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 7-249`..Solves.DeepSeek's..*."Th
2c20 65 20 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 e.reasoning_content.in.the.think
2c40 69 6e 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 ing.mode.must.be.passed.back.to.
2c60 74 68 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 the..*.API".error...*..*.The.v6.
2c80 60 40 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 `@ai-sdk/[email protected]`.
2ca0 70 72 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 provider.extracts.`reasoning_con
2cc0 74 65 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 tent`..*.from.assistant.`{.type:
2ce0 20 22 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 ."reasoning",.text.}`.parts.nati
2d00 76 65 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 vely..*.(see.`node_modules/@ai-s
2d20 64 6b 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 dk/openai-compatible/dist/index.
2d40 6d 6a 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 mjs:215-216`.and.:245)...*.But.t
2d60 68 61 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 hat.native.path.SKIPS.emission.w
2d80 68 65 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 hen.`reasoning.length.===.0`....
2da0 0a 20 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 ..*."reasoning_content".is.omitt
2dc0 65 64 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 ed.from.the.wire..DeepSeek.(and.
2de0 73 69 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 similar..*."thinking.mode".provi
2e00 64 65 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 ders).require.the.field.to.be.pr
2e20 65 73 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 esent.in.every..*.follow-up.turn
2e40 20 6f 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 .once.it.was.emitted.at.least.on
2e60 63 65 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 ce,.even.if.the.value.is..*.the.
2e80 65 6d 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 empty.string...*..*.Strategy:.fo
2ea0 72 20 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 r.every.assistant.message.that.h
2ec0 61 73 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 as.any.`reasoning`.parts,..*.con
2ee0 63 61 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 catenate.their.text.into.`provid
2f00 65 72 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 erOptions.openaiCompatible.reaso
2f20 6e 69 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 ning_content`..*.(preserving.emp
2f40 74 79 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 ty.strings).AND.strip.those.part
2f60 73 20 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 s.from.content..The..*.resulting
2f80 20 70 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 .payload.has.a.single.source.of.
2fa0 74 72 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 truth.for.`reasoning_content`..*
2fc0 20 63 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 .coming.via.the.message-level.`p
2fe0 72 6f 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 roviderOptions`.spread.at.line.2
3000 34 37 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 47.of.the..*.SDK.provider,.which
3020 20 66 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 .fires.regardless.of.empty-vs-no
3040 6e 2d 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 n-empty.text...*..*.Only.applied
3060 20 66 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 .for.the.default.(non-Anthropic)
3080 20 6f 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 .openai-compatible.path...*/.fun
30a0 63 74 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 ction.applyOpenAICompatibleReaso
30c0 6e 69 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 ningNormalisation(msgs:.ModelMes
30e0 73 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 72 65 74 75 72 sage[]):.ModelMessage[].{..retur
3100 6e 20 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 n.msgs.map((msg).=>.{...if.(msg.
3120 72 6f 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 role.!==."assistant".||.!Array.i
3140 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 6d 73 67 3b sArray(msg.content)).return.msg;
3160 0a 0a 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 ....//.Find.reasoning.parts..If.
3180 74 68 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 there.are.none,.this.message.nev
31a0 65 72 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 er.had...//.a.thinking.turn.....
31c0 44 65 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 DeepSeek.doesn't.require.`reason
31e0 69 6e 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 ing_content`...//.in.that.case,.
3200 73 6f 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 so.we.pass.through.unchanged....
3220 63 6f 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 const.reasoningParts.=.msg.conte
3240 6e 74 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 nt.filter(....(p):.p.is.Extract<
3260 74 79 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 typeof.p,.{.type:."reasoning".}>
3280 20 3d 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 .=>.p.type.===."reasoning",...);
32a0 0a 09 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 ...if.(reasoningParts.length.===
32c0 20 30 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 .0).return.msg;....const.reasoni
32e0 6e 67 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 ngText.=.reasoningParts.map((p).
3300 3d 3e 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 =>.p.text).join("");...const.fil
3320 74 65 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 teredContent.=.msg.content.filte
3340 72 28 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 r((p).=>.p.type.!==."reasoning")
3360 3b 0a 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 ;....const.existingOpts.=.msg.pr
3380 6f 76 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 oviderOptions.??.{};...const.exi
33a0 73 74 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 stingCompat.=.(existingOpts.open
33c0 61 69 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 aiCompatible.??.{}).as.Record<st
33e0 72 69 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 ring,.unknown>;....return.{.....
3400 2e 2e 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 ..msg,....content:.filteredConte
3420 6e 74 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 nt,....providerOptions:.{.......
3440 2e 65 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 .existingOpts,.....openaiCompati
3460 62 6c 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 ble:.{.........existingCompat,..
3480 09 09 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 ....//.Always.set,.even.when.emp
34a0 74 79 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 ty..This.is.the.key.fix.........
34c0 09 2f 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 .//.the.SDK's.content-side.extra
34e0 63 74 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 ction.skips.empty......//.reason
3500 69 6e 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 ing,.but.DeepSeek.requires.the.f
3520 69 65 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 ield.present.......reasoning_con
3540 74 65 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 tent:.reasoningText,.....},....}
3560 2c 0a 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 ,...}.as.ModelMessage;..});.}../
3580 2a 2a 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 **..*.Apply.Anthropic.structural
35a0 20 6e 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 .normalisations.to.a.`ModelMessa
35c0 67 65 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 ge[]`...*..*.Cribbed.from.openco
35e0 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 35 33 2d 31 34 38 de.`provider/transform.ts:53-148
3600 60 2e 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 `..Two.passes:..*..*.1..**Empty-
3620 74 65 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 text/reasoning.filter**:.Drop.`t
3640 65 78 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 ext`./.`reasoning`.parts..*....w
3660 68 6f 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 hose.`text.===.""`..Drop.message
3680 73 20 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 s.whose.content.array.becomes..*
36a0 20 20 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 ....empty..Anthropic.rejects.ass
36c0 69 73 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 istant.turns.with.empty.content.
36e0 0a 20 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 ..*..*.2..**`toolCallId`.scrubbi
3700 6e 67 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 ng**:.Anthropic.only.accepts.too
3720 6c 20 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 l.call.IDs..*....that.match.`[a-
3740 7a 41 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 zA-Z0-9_-]`..Our.IDs.are.crypto.
3760 72 61 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 randomUUID().values..*....which.
3780 61 72 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 are.already.safe,.but.tool-call.
37a0 49 44 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 IDs.assigned.by.upstream..*....s
37c0 6f 75 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 ources.(provider-executed.tools,
37e0 20 73 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 .subagent.retrieval,.etc.).may..
3800 2a 20 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 *....not.be..Defensively.scrub..
3820 4d 69 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 Mirrors.opencode.`provider/trans
3840 66 6f 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 form.ts:96-122`...*..*.3..**`[to
3860 6f 6c 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 ol-call,.text]`.split**:.Anthrop
3880 69 63 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 ic.rejects.assistant.turns..*...
38a0 20 77 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 .where.`tool_use`.blocks.are.fol
38c0 6c 6f 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 lowed.by.non-tool-call.content..
38e0 2a 20 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 *....("`tool_use`.ids.were.found
3900 20 77 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 .without.`tool_result`.blocks.im
3920 6d 65 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 mediately..*....after")..If.an.a
3940 73 73 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 ssistant.message.has.mixed.order
3960 69 6e 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 ing,.split.it.into..*....`[non-t
3980 6f 6f 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 ool.parts].+.[tool-call.parts]`.
39a0 0a 20 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 ..*..*.Only.applied.for.Anthropi
39c0 63 2d 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 c-backed.providers.(Claude.OAuth
39e0 20 6f 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 .or..*.opencode-anthropic)..Skip
3a00 20 66 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 .for.openai-compatible./.OpenCod
3a20 65 20 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 e.Zen...*/.const.SCRUB_TOOL_CALL
3a40 5f 49 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 _ID.=.(id:.string):.string.=>.id
3a60 2e 72 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 .replace(/[^a-zA-Z0-9_-]/g,."_")
3a80 3b 0a 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 ;..function.applyAnthropicStruct
3aa0 75 72 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 uralNormalisations(msgs:.ModelMe
3ac0 73 73 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 ssage[]):.ModelMessage[].{..//.P
3ae0 61 73 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 ass.1:.Filter.empty.text/reasoni
3b00 6e 67 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 ng.parts;.drop.messages.that.bec
3b20 6f 6d 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 ome.empty...msgs.=.msgs....map((
3b40 6d 73 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 msg).=>.{....if.(typeof.msg.cont
3b60 65 6e 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 ent.===."string").{.....if.(msg.
3b80 63 6f 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 content.===."").return.undefined
3ba0 3b 0a 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 ;.....return.msg;....}....if.(!A
3bc0 72 72 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 rray.isArray(msg.content)).retur
3be0 6e 20 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 n.msg;....const.filtered.=.msg.c
3c00 6f 6e 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 ontent.filter((part).=>.{.....if
3c20 20 28 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 .(part.type.===."text".||.part.t
3c40 79 70 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 ype.===."reasoning").{......//.D
3c60 72 6f 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 rop.empty.text/reasoning.parts..
3c80 41 6e 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 Anthropic.rejects.an.empty......
3ca0 2f 2f 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 //.`reasoning`.part.("thinking.b
3cc0 6c 6f 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 lock.must.have.content").even...
3ce0 09 09 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 ...//.when.it.carries.a.signatur
3d00 65 2c 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 e,.so.we.strip.it.on.the.way.out
3d20 0a 09 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 ......//.while.still.persisting.
3d40 74 68 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 the.signed.block.for.round-trip.
3d60 09 09 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 .....//.fidelity.(see.the.empty-
3d80 72 65 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 reasoning-part.test).......retur
3da0 6e 20 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 n.(part.as.{.text:.string.}).tex
3dc0 74 20 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 t.!==."";.....}.....return.true;
3de0 0a 09 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 ....});....if.(filtered.length.=
3e00 3d 3d 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 ==.0).return.undefined;....retur
3e20 6e 20 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 n.{....msg,.content:.filtered.};
3e40 0a 09 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 ...})....filter((msg):.msg.is.Mo
3e60 64 65 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 delMessage.=>.msg.!==.undefined.
3e80 26 26 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 &&.msg.content.!==."");...//.Pas
3ea0 73 20 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 s.2:.Scrub.toolCallId.chars.on.b
3ec0 6f 74 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 oth.assistant.tool-call.parts.an
3ee0 64 0a 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 d..//.tool-role.tool-result.part
3f00 73 2e 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 s..Anthropic.rejects.anything.ou
3f20 74 73 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 tside..//.[a-zA-Z0-9_-]..Our.int
3f40 65 72 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 ernal.IDs.are.crypto.randomUUID(
3f60 29 20 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 ).and.safe,.but..//.upstream.pro
3f80 76 69 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 vider-executed.tools.or.external
3fa0 20 73 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 .sources.may.not.be...msgs.=.msg
3fc0 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 6c 65 20 s.map((msg).=>.{...if.(msg.role.
3fe0 3d 3d 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 ===."assistant".&&.Array.isArray
4000 28 6d 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 (msg.content)).{....return.{....
4020 09 2e 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 ....msg,.....content:.msg.conten
4040 74 2e 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 t.map((part).=>.{......if.(part.
4060 74 79 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 type.===."tool-call".||.part.typ
4080 65 20 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 e.===."tool-result").{.......ret
40a0 75 72 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 urn.{....part,.toolCallId:.SCRUB
40c0 5f 54 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 _TOOL_CALL_ID(part.toolCallId).}
40e0 3b 0a 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 ;......}......return.part;.....}
4100 29 2c 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 ),....};...}...if.(msg.role.===.
4120 22 74 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 "tool".&&.Array.isArray(msg.cont
4140 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 2e 2e 6d 73 67 2c 0a ent)).{....return.{........msg,.
4160 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 6d 61 70 28 28 70 61 ....content:.msg.content.map((pa
4180 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 70 65 20 3d 3d 3d 20 rt).=>.{......if.(part.type.===.
41a0 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 6e 20 7b 20 "tool-result").{.......return.{.
41c0 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 4f 4f 4c 5f ...part,.toolCallId:.SCRUB_TOOL_
41e0 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 09 09 09 09 CALL_ID(part.toolCallId).};.....
4200 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 0a 09 09 09 .}......return.part;.....}),....
4220 7d 3b 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 };...}...return.msg;..});...//.P
4240 61 73 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 ass.3:.Split.assistant.messages.
4260 77 68 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 where.tool-calls.are.followed.by
4280 20 6e 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 .non-tool-call.parts...//.[text,
42a0 20 74 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 .tool-call,.text].....[text,.tex
42c0 74 5d 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 t].+.[tool-call].(text-only.firs
42e0 74 2c 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 t,.tools-only.second)..msgs.=.ms
4300 67 73 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 gs.flatMap((msg).=>.{...if.(msg.
4320 72 6f 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 role.!==."assistant".||.!Array.i
4340 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 5b 6d 73 67 sArray(msg.content)).return.[msg
4360 5d 3b 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 ];...const.parts.=.msg.content;.
4380 09 09 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 ..const.firstToolCallIdx.=.parts
43a0 2e 66 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 .findIndex((part).=>.part.type.=
43c0 3d 3d 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 ==."tool-call");...if.(firstTool
43e0 43 61 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 CallIdx.===.-1).return.[msg];.//
4400 20 6e 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 .no.tool.calls.....pass.through.
4420 09 09 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 ..//.If.everything.from.the.firs
4440 74 20 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 t.tool-call.onward.is.also.a.too
4460 6c 2d 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 l-call,.it's.already.valid...if.
4480 28 21 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 (!parts.slice(firstToolCallIdx).
44a0 73 6f 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 some((part).=>.part.type.!==."to
44c0 6f 6c 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 ol-call")).return.[msg];...//.Ha
44e0 73 20 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 s.non-tool-call.content.AFTER.a.
4500 74 6f 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 tool-call.....split...const.nonT
4520 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 72 74 29 20 3d oolParts.=.parts.filter((part).=
4540 3e 20 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 >.part.type.!==."tool-call");...
4560 63 6f 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 const.toolParts.=.parts.filter((
4580 70 61 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 part).=>.part.type.===."tool-cal
45a0 6c 22 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 l");...return.[....{....msg,.con
45c0 74 65 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 tent:.nonToolParts.},....{....ms
45e0 67 2c 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 g,.content:.toolParts.},...];..}
4600 29 3b 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 );...return.msgs;.}../**..*.Appl
4620 79 20 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 y.Anthropic.prompt-caching.break
4640 70 6f 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 points.to.a.message.list...*..*.
4660 41 6e 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 Anthropic.caches.the.entire.requ
4680 65 73 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 est.prefix.up.to.(and.including)
46a0 20 61 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 .any.block..*.marked.with.`cache
46c0 5f 63 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 _control`..Up.to.4.breakpoints.p
46e0 65 72 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 er.request;.we.use.three..*.(fir
4700 73 74 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 st.system.+.last.2.non-system)..
4720 20 2a 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 .*..*.Strategy.(mirrors.OpenCode
4740 27 73 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 's.`applyCaching`.in.transform.t
4760 73 29 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 s):..*..-.Mark.the.first.system.
4780 6d 65 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 message.....caches.system.prompt
47a0 20 28 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 .(and.tools,.which..*....sit.bef
47c0 6f 72 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 ore.messages.in.the.request.body
47e0 29 2e 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 )...*..-.Mark.the.last.2.non-sys
4800 74 65 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 tem.messages.....rolling.cache.t
4820 68 61 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 hat.extends.through..*....the.co
4840 6e 76 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 nversation.each.turn...*..*.This
4860 20 72 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 .relies.on.`toModelMessages`.gro
4880 75 70 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 uping.a.turn's.tool.results.into
48a0 20 6f 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 .one..*.`role:."tool"`.message:.
48c0 74 68 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 that.makes.the.last.two.non-syst
48e0 65 6d 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 em.messages..*.`[assistant(tool-
4900 63 61 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 calls),.tool(results)]`.mid-turn
4920 2c 20 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 ,.so.the.two.rolling..*.breakpoi
4940 6e 74 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 nts.straddle.the.assistant/tool.
4960 62 6f 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 boundary.instead.of.collapsing.o
4980 6e 74 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 nto..*.two.adjacent.tool-result.
49a0 6d 65 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 messages.(which.wastes.a.breakpo
49c0 69 6e 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 int.....see..*.claude-report.md,
49e0 20 52 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 .Root.Cause.2)..Anthropic.caches
4a00 20 74 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 .the.whole.prefix.up.to.and..*.i
4a20 6e 63 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 ncluding.a.marked.block,.so.mark
4a40 69 6e 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 ing.the.grouped.tool.message.ext
4a60 65 6e 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 ends.the..*.cached.prefix.across
4a80 20 65 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 .every.result.the.turn.produced.
4aa0 0a 20 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 ..*..*.Only.applied.for.the.Anth
4ac0 72 6f 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 ropic.provider..OpenCode.Zen's.O
4ae0 70 65 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 penAI-compatible..*.endpoint.(`/
4b00 7a 65 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 zen/v1/chat/completions`).backs.
4b20 6d 6f 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 models.like.MiniMax,.GLM,.Kimi,.
4b40 20 2a 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 .*.Grok,.etc......those.upstream
4b60 73 20 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 s.do.automatic.prefix.caching.se
4b80 72 76 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 rver-side.and..*.don't.accept.`c
4ba0 61 63 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 ache_control`.markers..OpenCode'
4bc0 73 20 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 s.own.transform.ts.gates..*.`app
4be0 6c 79 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 lyCaching`.on.Anthropic-family.d
4c00 65 74 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 etection.for.the.same.reason..Mo
4c20 64 65 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 dels..*.served.via.`@ai-sdk/open
4c40 61 69 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 ai`.(GPT).and.`@ai-sdk/google`.(
4c60 47 65 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 Gemini).likewise..*.use.server-s
4c80 69 64 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 ide.automatic.caching...*/.funct
4ca0 69 6f 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 ion.applyAnthropicCaching(msgs:.
4cc0 4d 6f 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 ModelMessage[]):.void.{..const.t
4ce0 61 72 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 argets.=.new.Set<ModelMessage>()
4d00 3b 0a 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 ;...const.systemMsgs.=.msgs.filt
4d20 65 72 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 er((m).=>.m.role.===."system").s
4d40 6c 69 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 lice(0,.2);..for.(const.m.of.sys
4d60 74 65 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 temMsgs).targets.add(m);...const
4d80 20 6e 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 .nonSystem.=.msgs.filter((m).=>.
4da0 6d 2e 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 m.role.!==."system").slice(-2);.
4dc0 09 66 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 .for.(const.m.of.nonSystem).targ
4de0 65 74 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 ets.add(m);...for.(const.msg.of.
4e00 74 61 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 targets).{...msg.providerOptions
4e20 20 3d 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 .=.{.......msg.providerOptions,.
4e40 09 09 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 ...anthropic:.{........(msg.prov
4e60 69 64 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 iderOptions?.anthropic.??.{}),..
4e80 09 09 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 ...cacheControl:.{.type:."epheme
4ea0 72 61 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 ral".},....},...};..}.}..functio
4ec0 6e 20 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 n.formatError(err:.unknown,.conf
4ee0 69 67 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 ig:.AgentConfig):.string.{..cons
4f00 74 20 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 t.context.=.`[model=${config.mod
4f20 65 6c 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 el},.baseURL=${config.baseURL}]`
4f40 3b 0a 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 ;...if.(err.instanceof.Error).{.
4f60 09 09 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 ..const.cause.=.err.cause.?.`.|.
4f80 63 61 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 cause:.${JSON.stringify(err.caus
4fa0 65 29 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 e)}`.:."";...//.AI.SDK.errors.of
4fc0 74 65 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 ten.have.statusCode,.responseBod
4fe0 79 2c 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 y,.or.url.properties...const.ext
5000 72 61 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 ras:.string[].=.[];...const.errR
5020 65 63 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 ecord.=.err.as.unknown.as.Record
5040 3c 73 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 <string,.unknown>;...if.("status
5060 43 6f 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 Code".in.errRecord).extras.push(
5080 60 73 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 `status=${errRecord.statusCode}`
50a0 29 3b 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 );...if.("url".in.errRecord).ext
50c0 72 61 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 ras.push(`url=${errRecord.url}`)
50e0 3b 0a 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 ;...if.("responseBody".in.errRec
5100 6f 72 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 ord).extras.push(`body=${JSON.st
5120 72 69 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 ringify(errRecord.responseBody)}
5140 60 29 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 `);...if.("responseHeaders".in.e
5160 72 72 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 rrRecord)....extras.push(`header
5180 73 3d 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 s=${JSON.stringify(errRecord.res
51a0 70 6f 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 ponseHeaders)}`);....const.detai
51c0 6c 20 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 l.=.extras.length.>.0.?.`.(${ext
51e0 72 61 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 ras.join(",.")})`.:."";...return
5200 20 60 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 .`${err.message}${detail}${cause
5220 7d 20 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 }.${context}`;..}...return.`${St
5240 72 69 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 ring(err)}.${context}`;.}../**..
5260 2a 20 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 *.Build.the.Anthropic.`providerO
5280 70 74 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 ptions.anthropic`.thinking.confi
52a0 67 20 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 g.for.a.given..*.model.+.reasoni
52c0 6e 67 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 ng.effort..Detection.mirrors.ope
52e0 6e 63 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 ncode's.`provider/transform.ts`.
5300 20 2a 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 .*.(`anthropicOpus47OrLater`.+.`
5320 61 6e 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 anthropicAdaptiveEfforts`):..*..
5340 2a 20 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 *..-.ADAPTIVE.models.emit.`{.thi
5360 6e 6b 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 nking:.{.type:."adaptive".},.eff
5380 6f 72 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 ort.}`.and.pick..*....their.own.
53a0 74 68 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 thinking.budget.within.`maxOutpu
53c0 74 54 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 tTokens`..A.model.is.adaptive.wh
53e0 65 6e 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 en..*....it.is.Opus.4.7+.(parsed
5400 20 66 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 .from.the.id).OR.Opus/Sonnet.4.6
5420 20 28 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 .(matched.by.id..*....substring.
5440 e2 80 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 ....there.is.no.newer.Sonnet.to.
5460 67 65 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 generalise.yet)...*......-.`disp
5480 6c 61 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 lay:."summarized"`.is.added.ONLY
54a0 20 66 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 .for.Opus.4.7+..Those.models..*.
54c0 20 20 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 .......default.to.`display:."omi
54e0 74 74 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 tted"`.(NO.thinking.streamed.to.
5500 75 73 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 us),.so.the..*........flag.must.
5520 62 65 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 be.forced.to.surface.thinking.in
5540 20 74 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 .the.UI..Opus/Sonnet.4.6..*.....
5560 20 20 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 ...stream.thinking.without.it.(o
5580 70 65 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 pencode.omits.`display`.there.to
55a0 6f 29 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 o)...*......-.`effort`.(sibling.
55c0 6f 66 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 of.`thinking`).tells.adaptive.ho
55e0 77 20 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 w.hard.to.think...*..-.All.OTHER
5600 20 43 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 .Claude.models.use.classic.`{.th
5620 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 2c 0a 20 2a 20 20 20 inking:.{.type:."enabled",..*...
5640 20 62 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 .budgetTokens.}.}`..The.budget.i
5660 73 20 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 s.a.ceiling,.not.a.requirement..
5680 80 94 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 ...the.model..*....self-regulate
56a0 73 20 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 s.thinking.vs.response.within.`m
56c0 61 78 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 axOutputTokens`...*..*.Returned.
56e0 61 73 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 as.concrete.object.shapes.(no.op
5700 74 69 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 tional/`undefined`.properties).s
5720 6f 20 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 o.the..*.result.is.a.clean.`Reco
5740 72 64 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 rd<string,.JSONValue>`.for.`prov
5760 69 64 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 iderOptions.anthropic`...*.Calle
5780 72 73 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 rs.only.invoke.this.when.`effort
57a0 20 21 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 .!==."none"`...*/.export.functio
57c0 6e 20 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 n.anthropicThinkingProviderOptio
57e0 6e 73 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 ns(model:.string,.effort:.Reason
5800 69 6e 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 ingEffort).{..const.opusVersion.
5820 3d 20 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 =./opus-(\d+)[.-](\d+)(?:[.@-]|$
5840 29 2f 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 )/i.exec(model);..const.isOpus47
5860 4f 72 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 OrLater.=.opusVersion...?.Number
5880 28 6f 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 (opusVersion[1]).>.4.||.(Number(
58a0 6f 70 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 opusVersion[1]).===.4.&&.Number(
58c0 6f 70 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 opusVersion[2]).>=.7)...:.false;
58e0 0a 09 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 ..const.isAdaptive.=...isOpus47O
5900 72 4c 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 rLater.||...["opus-4-6",."opus-4
5920 2e 36 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 .6",."sonnet-4-6",."sonnet-4.6"]
5940 2e 73 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 .some((s).=>.model.includes(s));
5960 0a 0a 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 ...if.(isAdaptive).{...return.is
5980 4f 70 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 Opus47OrLater....?.{.thinking:.{
59a0 20 74 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 .type:."adaptive".as.const,.disp
59c0 6c 61 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 lay:."summarized".as.const.},.ef
59e0 66 6f 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 fort.}....:.{.thinking:.{.type:.
5a00 22 61 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 "adaptive".as.const.},.effort.};
5a20 0a 09 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 ..}...const.budgetTokens.=...eff
5a40 6f 72 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 ort.===."max"....?.31999....:.ef
5a60 66 6f 72 74 20 3d 3d 3d 20 22 68 69 67 68 22 0a 09 09 09 09 3f 20 31 36 30 30 30 0a 09 09 09 09 fort.===."high".....?.16000.....
5a80 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 3f 20 35 30 30 :.effort.===."medium"......?.500
5aa0 30 0a 09 09 09 09 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6c 6f 77 22 0a 09 09 09 09 09 09 0......:.effort.===."low".......
5ac0 3f 20 32 30 30 30 0a 09 09 09 09 09 09 3a 20 30 3b 0a 09 72 65 74 75 72 6e 20 7b 20 74 68 69 6e ?.2000.......:.0;..return.{.thin
5ae0 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 20 61 73 20 63 6f 6e 73 74 king:.{.type:."enabled".as.const
5b00 2c 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 3b 0a 7d 0a 0a 63 6f 6e 73 74 20 4d 41 58 ,.budgetTokens.}.};.}..const.MAX
5b20 5f 53 54 45 50 53 20 3d 20 35 30 3b 0a 0a 65 78 70 6f 72 74 20 63 6c 61 73 73 20 41 67 65 6e 74 _STEPS.=.50;..export.class.Agent
5b40 20 7b 0a 09 73 74 61 74 75 73 3a 20 41 67 65 6e 74 53 74 61 74 75 73 20 3d 20 22 69 64 6c 65 22 .{..status:.AgentStatus.=."idle"
5b60 3b 0a 09 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 5d 3b ;..messages:.ChatMessage[].=.[];
5b80 0a 0a 09 70 72 69 76 61 74 65 20 63 6f 6e 66 69 67 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 3b 0a ...private.config:.AgentConfig;.
5ba0 09 70 72 69 76 61 74 65 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3f 3a 20 51 75 65 75 65 43 .private.queueCallbacks?:.QueueC
5bc0 61 6c 6c 62 61 63 6b 73 3b 0a 0a 09 63 6f 6e 73 74 72 75 63 74 6f 72 28 63 6f 6e 66 69 67 3a 20 allbacks;...constructor(config:.
5be0 41 67 65 6e 74 43 6f 6e 66 69 67 2c 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3f 3a 20 51 75 AgentConfig,.queueCallbacks?:.Qu
5c00 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 09 09 74 68 69 73 2e 63 6f 6e 66 69 67 20 3d 20 eueCallbacks).{...this.config.=.
5c20 63 6f 6e 66 69 67 3b 0a 09 09 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 20 3d 20 config;...this.queueCallbacks.=.
5c40 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 09 7d 0a 0a 09 70 72 69 76 61 74 65 20 61 73 79 queueCallbacks;..}...private.asy
5c60 6e 63 20 65 78 65 63 75 74 65 54 6f 6f 6c 57 69 74 68 53 74 72 65 61 6d 69 6e 67 28 0a 09 09 74 nc.executeToolWithStreaming(...t
5c80 63 3a 20 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 09 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 3a c:.ToolCall,...shellOutputQueue:
5ca0 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 22 .Array<{.data:.string;.stream:."
5cc0 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 2c 0a 09 29 3a 20 50 72 6f 6d 69 stdout".|."stderr".}>,..):.Promi
5ce0 73 65 3c 54 6f 6f 6c 52 65 73 75 6c 74 3e 20 7b 0a 09 09 63 6f 6e 73 74 20 72 65 67 69 73 74 72 se<ToolResult>.{...const.registr
5d00 79 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 y.=.createToolRegistry(this.conf
5d20 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 20 3d 20 72 65 67 69 73 74 ig.tools);...const.tool.=.regist
5d40 72 79 2e 67 65 74 54 6f 6f 6c 28 74 63 2e 6e 61 6d 65 29 3b 0a 09 09 69 66 20 28 21 74 6f 6f 6c ry.getTool(tc.name);...if.(!tool
5d60 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 49 64 3a 20 ).{....return.{.....toolCallId:.
5d80 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 2c 0a 09 09 tc.id,.....toolName:.tc.name,...
5da0 09 09 72 65 73 75 6c 74 3a 20 60 55 6e 6b 6e 6f 77 6e 20 74 6f 6f 6c 3a 20 24 7b 74 63 2e 6e 61 ..result:.`Unknown.tool:.${tc.na
5dc0 6d 65 7d 60 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 me}`,.....isError:.true,....};..
5de0 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 66 6f 72 20 73 68 .}....//.Permission.check.for.sh
5e00 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 e2 80 94 20 6f 6e 6c 79 20 70 72 6f 6d 70 74 20 66 6f 72 ell.commands.....only.prompt.for
5e20 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 2e 0a 09 09 2f 2f .external.directory.access....//
5e40 20 43 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 73 74 61 79 20 77 69 74 68 69 6e 20 74 68 65 20 77 .Commands.that.stay.within.the.w
5e60 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 61 72 65 20 61 75 74 6f 2d 61 6c 6c 6f 77 65 orking.directory.are.auto-allowe
5e80 64 2e 0a 09 09 69 66 20 28 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 75 6e 5f 73 68 65 6c 6c 22 d....if.(tc.name.===."run_shell"
5ea0 20 26 26 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 .&&.this.config.permissionChecke
5ec0 72 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 6f 6d 6d 61 6e 64 20 3d 20 74 79 70 65 6f 66 20 74 r).{....const.command.=.typeof.t
5ee0 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 c.arguments.command.===."string"
5f00 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3a 20 22 22 3b 0a 09 09 .?.tc.arguments.command.:."";...
5f20 09 63 6f 6e 73 74 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 20 3d 20 74 68 69 73 2e 63 .const.workingDirectory.=.this.c
5f40 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 3b 0a 09 09 09 63 6f 6e 73 74 onfig.workingDirectory;....const
5f60 20 61 6e 61 6c 79 73 69 73 20 3d 20 61 77 61 69 74 20 61 6e 61 6c 79 7a 65 43 6f 6d 6d 61 6e 64 .analysis.=.await.analyzeCommand
5f80 28 63 6f 6d 6d 61 6e 64 2c 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 (command,.workingDirectory);....
5fa0 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 75 6c 65 const.ruleset.=.this.config.rule
5fc0 73 65 74 20 3f 3f 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 65 78 74 65 set.??.[];.....//.Check.for.exte
5fe0 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 20 66 72 6f 6d 20 73 68 65 6c 6c rnal.directory.access.from.shell
6000 20 63 6f 6d 6d 61 6e 64 0a 09 09 09 69 66 20 28 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6c 65 .command....if.(analysis.dirs.le
6020 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 64 69 72 52 65 71 75 65 73 74 ngth.>.0).{.....const.dirRequest
6040 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 74 65 72 6e 61 6c 5f .=.{......permission:."external_
6060 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 3a 20 61 6e 61 6c 79 directory",......patterns:.analy
6080 73 69 73 2e 64 69 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 sis.dirs.map((d).=>.`${d}/*`),..
60a0 09 09 09 09 61 6c 77 61 79 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6d 61 70 28 28 64 ....always:.analysis.dirs.map((d
60c0 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a 60 29 2c 0a 09 09 09 09 09 64 65 73 63 72 69 70 74 69 6f 6e ).=>.`${d}/*`),......description
60e0 3a 20 60 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 61 63 63 65 73 73 65 73 20 65 78 74 65 72 6e :.`Shell.command.accesses.extern
6100 61 6c 20 64 69 72 65 63 74 6f 72 79 3a 20 24 7b 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6a 6f al.directory:.${analysis.dirs.jo
6120 69 6e 28 22 2c 20 22 29 7d 60 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 63 6f 6d in(",.")}`,......metadata:.{.com
6140 6d 61 6e 64 2c 20 64 69 72 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 20 7d 2c 0a 09 09 09 mand,.dirs:.analysis.dirs.},....
6160 09 7d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 64 69 72 52 65 70 6c .};.....try.{......const.dirRepl
6180 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 6d 69 73 73 69 6f 6e y.=.await.this.config.permission
61a0 43 68 65 63 6b 65 72 2e 61 73 6b 28 64 69 72 52 65 71 75 65 73 74 2c 20 5b 72 75 6c 65 73 65 74 Checker.ask(dirRequest,.[ruleset
61c0 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 64 69 72 52 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 63 ]);......if.(dirReply.===."rejec
61e0 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 6c t").{.......return.{........tool
6200 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 20 CallId:.tc.id,........toolName:.
6220 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 73 tc.name,........result:.`Permiss
6240 69 6f 6e 20 64 65 6e 69 65 64 3a 20 61 63 63 65 73 73 20 74 6f 20 65 78 74 65 72 6e 61 6c 20 64 ion.denied:.access.to.external.d
6260 69 72 65 63 74 6f 72 69 65 73 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 09 09 09 09 09 09 69 73 45 irectories.rejected`,........isE
6280 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 7d 0a 09 09 09 09 rror:.true,.......};......}.....
62a0 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 74 6f }.catch.{......return.{.......to
62c0 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a olCallId:.tc.id,.......toolName:
62e0 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 .tc.name,.......result:.`Permiss
6300 69 6f 6e 20 64 65 6e 69 65 64 3a 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 ion.denied:.external.directory.a
6320 63 63 65 73 73 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 ccess.not.allowed`,.......isErro
6340 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,......};.....}....}...}.
6360 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 66 6f 72 20 66 69 6c 65 20 ...//.Permission.check.for.file.
6380 74 6f 6f 6c 73 20 61 63 63 65 73 73 69 6e 67 20 70 61 74 68 73 20 6f 75 74 73 69 64 65 20 77 6f tools.accessing.paths.outside.wo
63a0 72 6b 73 70 61 63 65 0a 09 09 69 66 20 28 0a 09 09 09 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 rkspace...if.(....this.config.pe
63c0 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 20 26 26 0a 09 09 09 28 74 63 2e 6e 61 6d 65 20 3d rmissionChecker.&&....(tc.name.=
63e0 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d ==."read_file".||.....tc.name.==
6400 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 =."read_file_slice".||.....tc.na
6420 6d 65 20 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 me.===."write_file".||.....tc.na
6440 6d 65 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 29 0a 09 09 29 20 7b 0a 09 09 09 63 6f me.===."list_files")...).{....co
6460 6e 73 74 20 70 61 74 68 41 72 67 20 3d 20 74 79 70 65 6f 66 20 74 63 2e 61 72 67 75 6d 65 6e 74 nst.pathArg.=.typeof.tc.argument
6480 73 2e 70 61 74 68 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e s.path.===."string".?.tc.argumen
64a0 74 73 2e 70 61 74 68 20 3a 20 22 2e 22 3b 0a 0a 09 09 09 2f 2f 20 43 61 6e 6f 6e 69 63 61 6c 69 ts.path.:.".";.....//.Canonicali
64c0 7a 65 20 61 6c 6c 20 74 68 72 65 65 20 73 6f 20 73 79 6d 6c 69 6e 6b 2d 69 6e 2d 77 6f 72 6b 64 ze.all.three.so.symlink-in-workd
64e0 69 72 20 65 73 63 61 70 65 73 20 61 72 65 20 64 65 74 65 63 74 65 64 0a 09 09 09 2f 2f 20 61 74 ir.escapes.are.detected....//.at
6500 20 74 68 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 67 61 74 65 20 28 6e 6f 74 20 6a 75 73 74 20 72 .the.permission.gate.(not.just.r
6520 65 6c 61 74 69 76 65 20 60 2e 2e 2f 60 20 74 72 61 76 65 72 73 61 6c 29 2e 20 54 68 65 0a 09 09 elative.`../`.traversal)..The...
6540 09 2f 2f 20 68 65 6c 70 65 72 20 77 61 6c 6b 73 20 75 70 20 74 6f 20 74 68 65 20 6e 65 61 72 65 .//.helper.walks.up.to.the.neare
6560 73 74 20 65 78 69 73 74 69 6e 67 20 61 6e 63 65 73 74 6f 72 20 77 68 65 6e 20 74 68 65 20 6c 65 st.existing.ancestor.when.the.le
6580 61 66 0a 09 09 09 2f 2f 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 28 77 72 69 74 65 5f 66 69 af....//.doesn't.exist.(write_fi
65a0 6c 65 20 63 72 65 61 74 69 6e 67 20 6e 65 77 20 66 69 6c 65 73 29 2c 20 73 6f 20 61 20 70 61 72 le.creating.new.files),.so.a.par
65c0 65 6e 74 0a 09 09 09 2f 2f 20 73 79 6d 6c 69 6e 6b 20 70 6f 69 6e 74 69 6e 67 20 6f 75 74 73 69 ent....//.symlink.pointing.outsi
65e0 64 65 20 74 68 65 20 77 6f 72 6b 64 69 72 20 69 73 20 73 74 69 6c 6c 20 63 61 75 67 68 74 2e 20 de.the.workdir.is.still.caught..
6600 54 68 65 20 73 61 6d 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 69 73 20 75 73 65 64 20 69 6e The.same....//.helper.is.used.in
6620 73 69 64 65 20 74 68 65 20 74 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 e2 80 side.the.tool.implementations...
6640 94 20 6b 65 65 70 69 6e 67 20 74 68 65 0a 09 09 09 2f 2f 20 74 77 6f 20 6c 61 79 65 72 73 20 63 ..keeping.the....//.two.layers.c
6660 6f 6e 73 69 73 74 65 6e 74 20 73 6f 20 61 20 70 61 74 68 20 74 68 61 74 20 6c 6f 6f 6b 73 20 65 onsistent.so.a.path.that.looks.e
6680 78 74 65 72 6e 61 6c 20 68 65 72 65 20 61 6c 73 6f 0a 09 09 09 2f 2f 20 6c 6f 6f 6b 73 20 65 78 xternal.here.also....//.looks.ex
66a0 74 65 72 6e 61 6c 20 69 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 61 6e 64 20 76 69 63 65 20 76 65 72 ternal.in.the.tool,.and.vice.ver
66c0 73 61 2e 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 20 61 77 61 69 sa.....const.resolvedPath.=.awai
66e0 74 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 t.canonicalize(this.config.worki
6700 6e 67 44 69 72 65 63 74 6f 72 79 2c 20 70 61 74 68 41 72 67 29 3b 0a 09 09 09 63 6f 6e 73 74 20 ngDirectory,.pathArg);....const.
6720 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 20 3d 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 resolvedWorkDir.=.await.canonica
6740 6c 69 7a 65 28 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 lize(this.config.workingDirector
6760 79 29 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 3d y);....const.resolvedSpillRoot.=
6780 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 53 50 49 4c 4c 5f 52 4f 4f 54 29 3b .await.canonicalize(SPILL_ROOT);
67a0 0a 0a 09 09 09 63 6f 6e 73 74 20 69 73 55 6e 64 65 72 57 6f 72 6b 64 69 72 20 3d 0a 09 09 09 09 .....const.isUnderWorkdir.=.....
67c0 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 resolvedPath.===.resolvedWorkDir
67e0 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 60 24 7b 72 .||.resolvedPath.startsWith(`${r
6800 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 7d 2f 60 29 3b 0a 09 09 09 2f 2f 20 44 69 73 70 61 74 esolvedWorkDir}/`);....//.Dispat
6820 63 68 27 73 20 6f 77 6e 20 74 6f 6f 6c 2d 6f 75 74 70 75 74 20 73 70 69 6c 6c 20 64 69 72 65 63 ch's.own.tool-output.spill.direc
6840 74 6f 72 79 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 6c 6c 6f 77 65 64 20 e2 80 94 0a 09 tory.is.implicitly.allowed......
6860 09 09 2f 2f 20 74 68 65 20 41 49 20 72 65 63 65 69 76 65 73 20 61 20 74 72 75 6e 63 61 74 69 6f ..//.the.AI.receives.a.truncatio
6880 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 69 6e 67 20 68 65 72 65 20 61 6e 64 20 69 73 20 65 78 n.notice.pointing.here.and.is.ex
68a0 70 65 63 74 65 64 0a 09 09 09 2f 2f 20 74 6f 20 72 65 61 64 20 69 74 20 77 69 74 68 6f 75 74 20 pected....//.to.read.it.without.
68c0 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 2e 20 42 79 70 61 73 73 69 6e 67 20 74 68 prompting.the.user..Bypassing.th
68e0 65 20 65 78 74 65 72 6e 61 6c 2d 0a 09 09 09 2f 2f 20 64 69 72 65 63 74 6f 72 79 20 63 68 65 63 e.external-....//.directory.chec
6900 6b 20 68 65 72 65 20 6b 65 65 70 73 20 74 68 65 20 69 6e 73 70 65 63 74 69 6f 6e 20 66 6c 6f 77 k.here.keeps.the.inspection.flow
6920 20 66 72 69 63 74 69 6f 6e 6c 65 73 73 2e 0a 09 09 09 63 6f 6e 73 74 20 69 73 53 70 69 6c 6c 50 .frictionless.....const.isSpillP
6940 61 74 68 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 ath.=.....resolvedPath.===.resol
6960 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 vedSpillRoot.||.resolvedPath.sta
6980 72 74 73 57 69 74 68 28 60 24 7b 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 7d 2f 60 29 rtsWith(`${resolvedSpillRoot}/`)
69a0 3b 0a 0a 09 09 09 2f 2f 20 41 67 65 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 6c 69 76 65 20 ;.....//.Agent.definitions.live.
69c0 69 6e 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 64 69 72 65 63 74 6f 72 69 65 73 0a 09 09 09 2f 2f 20 in.well-known.directories....//.
69e0 28 60 7e 2f 2e 63 6f 6e 66 69 67 2f 64 69 73 70 61 74 63 68 2f 61 67 65 6e 74 73 2f 60 20 61 6e (`~/.config/dispatch/agents/`.an
6a00 64 0a 09 09 09 2f 2f 20 60 3c 77 6f 72 6b 64 69 72 3e 2f 2e 64 69 73 70 61 74 63 68 2f 61 67 65 d....//.`<workdir>/.dispatch/age
6a20 6e 74 73 2f 60 29 2e 20 52 65 61 64 69 6e 67 20 74 68 6f 73 65 20 69 73 20 61 0a 09 09 09 2f 2f nts/`)..Reading.those.is.a....//
6a40 20 70 72 65 72 65 71 75 69 73 69 74 65 20 66 6f 72 20 74 68 65 20 73 75 6d 6d 6f 6e 20 74 6f 6f .prerequisite.for.the.summon.too
6a60 6c 27 73 20 22 73 70 65 63 69 66 79 20 77 68 69 63 68 20 73 75 62 61 67 65 6e 74 22 0a 09 09 09 l's."specify.which.subagent"....
6a80 2f 2f 20 66 6c 6f 77 20 e2 80 94 20 74 68 65 20 4c 4c 4d 20 6e 65 65 64 73 20 74 6f 20 69 6e 73 //.flow.....the.LLM.needs.to.ins
6aa0 70 65 63 74 20 74 68 65 20 54 4f 4d 4c 20 74 6f 20 6b 6e 6f 77 20 77 68 61 74 20 65 61 63 68 0a pect.the.TOML.to.know.what.each.
6ac0 09 09 09 2f 2f 20 61 67 65 6e 74 20 64 6f 65 73 2e 20 57 65 20 61 75 74 6f 2d 61 6c 6c 6f 77 20 ...//.agent.does..We.auto-allow.
6ae0 52 45 41 44 2d 4f 4e 4c 59 20 74 6f 6f 6c 73 20 75 6e 64 65 72 20 74 68 6f 73 65 20 70 61 74 68 READ-ONLY.tools.under.those.path
6b00 73 0a 09 09 09 2f 2f 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 s....//.without.prompting.the.us
6b20 65 72 2e 20 57 72 69 74 65 73 20 28 60 77 72 69 74 65 5f 66 69 6c 65 60 29 20 73 74 69 6c 6c 20 er..Writes.(`write_file`).still.
6b40 67 6f 0a 09 09 09 2f 2f 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 6f 72 6d 61 6c 20 65 78 74 65 go....//.through.the.normal.exte
6b60 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 20 67 61 74 65 20 73 6f 20 61 6e 20 61 67 65 6e 74 20 rnal_directory.gate.so.an.agent.
6b80 63 61 6e 27 74 0a 09 09 09 2f 2f 20 71 75 69 65 74 6c 79 20 6f 76 65 72 77 72 69 74 65 20 61 6e can't....//.quietly.overwrite.an
6ba0 6f 74 68 65 72 20 61 67 65 6e 74 27 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 09 09 09 63 6f 6e other.agent's.definition.....con
6bc0 73 74 20 69 73 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 20 3d 0a 09 09 09 09 74 63 2e 6e 61 6d 65 20 st.isReadOnlyTool.=.....tc.name.
6be0 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 ===."read_file".||.tc.name.===."
6c00 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 read_file_slice".||.tc.name.===.
6c20 22 6c 69 73 74 5f 66 69 6c 65 73 22 3b 0a 09 09 09 6c 65 74 20 69 73 41 67 65 6e 74 73 44 69 72 "list_files";....let.isAgentsDir
6c40 52 65 61 64 4f 6e 6c 79 20 3d 20 66 61 6c 73 65 3b 0a 09 09 09 69 66 20 28 69 73 52 65 61 64 4f ReadOnly.=.false;....if.(isReadO
6c60 6e 6c 79 54 6f 6f 6c 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 61 67 65 6e 74 44 69 72 73 20 3d nlyTool).{.....const.agentDirs.=
6c80 20 67 65 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f .getAgentDirPaths(this.config.wo
6ca0 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 63 61 6e 6f 6e rkingDirectory);.....const.canon
6cc0 69 63 61 6c 41 67 65 6e 74 44 69 72 73 20 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 73 65 2e 61 6c icalAgentDirs.=.await.Promise.al
6ce0 6c 28 61 67 65 6e 74 44 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 63 61 6e 6f 6e 69 63 61 6c l(agentDirs.map((d).=>.canonical
6d00 69 7a 65 28 64 29 29 29 3b 0a 09 09 09 09 69 73 41 67 65 6e 74 73 44 69 72 52 65 61 64 4f 6e 6c ize(d)));.....isAgentsDirReadOnl
6d20 79 20 3d 20 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 2e 73 6f 6d 65 28 0a 09 09 09 y.=.canonicalAgentDirs.some(....
6d40 09 09 28 64 29 20 3d 3e 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 64 20 7c 7c 20 72 ..(d).=>.resolvedPath.===.d.||.r
6d60 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 28 60 24 7b 64 7d 2f 60 29 2c esolvedPath.startsWith(`${d}/`),
6d80 0a 09 09 09 09 29 3b 0a 09 09 09 7d 0a 0a 09 09 09 69 66 20 28 21 69 73 55 6e 64 65 72 57 6f 72 .....);....}.....if.(!isUnderWor
6da0 6b 64 69 72 20 26 26 20 21 69 73 53 70 69 6c 6c 50 61 74 68 20 26 26 20 21 69 73 41 67 65 6e 74 kdir.&&.!isSpillPath.&&.!isAgent
6dc0 73 44 69 72 52 65 61 64 4f 6e 6c 79 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 70 65 72 6d 69 73 sDirReadOnly).{.....const.permis
6de0 73 69 6f 6e 54 79 70 65 20 3d 0a 09 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 sionType.=......tc.name.===."rea
6e00 64 5f 66 69 6c 65 22 20 3f 20 22 72 65 61 64 22 20 3a 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 d_file".?."read".:.tc.name.===."
6e20 77 72 69 74 65 5f 66 69 6c 65 22 20 3f 20 22 65 64 69 74 22 20 3a 20 22 6c 69 73 74 22 3b 0a 0a write_file".?."edit".:."list";..
6e40 09 09 09 09 63 6f 6e 73 74 20 70 61 72 65 6e 74 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 72 65 ....const.parentDir.=.dirname(re
6e60 73 6f 6c 76 65 64 50 61 74 68 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 72 65 71 75 65 73 74 20 3d solvedPath);.....const.request.=
6e80 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 74 65 72 6e 61 6c 5f 64 69 .{......permission:."external_di
6ea0 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 3a 20 5b 60 24 7b 70 61 72 rectory",......patterns:.[`${par
6ec0 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 61 6c 77 61 79 73 3a 20 5b 60 24 7b 70 61 entDir}/*`],......always:.[`${pa
6ee0 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 rentDir}/*`],......description:.
6f00 60 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 66 69 6c 65 20 6f 75 74 73 69 64 65 20 `${permissionType}.file.outside.
6f20 77 6f 72 6b 73 70 61 63 65 3a 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 60 2c 0a 09 09 09 workspace:.${resolvedPath}`,....
6f40 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 66 69 6c 65 70 61 74 68 3a 20 72 65 73 6f 6c 76 65 64 ..metadata:.{.filepath:.resolved
6f60 50 61 74 68 2c 20 70 61 72 65 6e 74 44 69 72 2c 20 6f 70 65 72 61 74 69 6f 6e 3a 20 70 65 72 6d Path,.parentDir,.operation:.perm
6f80 69 73 73 69 6f 6e 54 79 70 65 20 7d 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 63 6f 6e 73 74 20 issionType.},.....};......const.
6fa0 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 72 75 6c 65 73 65 74 20 3f 3f ruleset.=.this.config.ruleset.??
6fc0 20 5b 5d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 72 65 70 6c 79 20 .[];.....try.{......const.reply.
6fe0 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 =.await.this.config.permissionCh
7000 65 63 6b 65 72 2e 61 73 6b 28 72 65 71 75 65 73 74 2c 20 5b 72 75 6c 65 73 65 74 5d 29 3b 0a 09 ecker.ask(request,.[ruleset]);..
7020 09 09 09 09 69 66 20 28 72 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 63 74 22 29 20 7b 0a 09 09 ....if.(reply.===."reject").{...
7040 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 ....return.{........toolCallId:.
7060 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c tc.id,........toolName:.tc.name,
7080 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 ........result:.`Permission.deni
70a0 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 61 63 63 65 73 73 20 74 6f 20 ed:.${permissionType}.access.to.
70c0 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 09 09 09 09 ${resolvedPath}.rejected`,......
70e0 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 09 09 09 7d ..isError:.true,.......};......}
7100 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 0a 09 09 09 .....}.catch.{......return.{....
7120 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 74 6f 6f 6c ...toolCallId:.tc.id,.......tool
7140 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 20 60 50 65 Name:.tc.name,.......result:.`Pe
7160 72 6d 69 73 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 rmission.denied:.${permissionTyp
7180 65 7d 20 61 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 6e 6f 74 e}.access.to.${resolvedPath}.not
71a0 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a .allowed`,.......isError:.true,.
71c0 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 74 72 79 20 7b 0a .....};.....}....}...}....try.{.
71e0 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 6f 6f 6c 2e 65 78 65 63 ...const.execPromise.=.tool.exec
7200 75 74 65 28 74 63 2e 61 72 67 75 6d 65 6e 74 73 2c 20 7b 0a 09 09 09 09 6f 6e 4f 75 74 70 75 74 ute(tc.arguments,.{.....onOutput
7220 3a 20 28 64 61 74 61 3a 20 73 74 72 69 6e 67 2c 20 73 74 72 65 61 6d 3a 20 22 73 74 64 6f 75 74 :.(data:.string,.stream:."stdout
7240 22 20 7c 20 22 73 74 64 65 72 72 22 29 20 3d 3e 20 7b 0a 09 09 09 09 09 73 68 65 6c 6c 4f 75 74 ".|."stderr").=>.{......shellOut
7260 70 75 74 51 75 65 75 65 2e 70 75 73 68 28 7b 20 64 61 74 61 2c 20 73 74 72 65 61 6d 20 7d 29 3b putQueue.push({.data,.stream.});
7280 0a 09 09 09 09 7d 2c 0a 09 09 09 09 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3a 20 74 68 69 73 .....},.....queueCallbacks:.this
72a0 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 09 09 7d 29 3b 0a 0a 09 09 09 63 6f 6e 73 .queueCallbacks,....});.....cons
72c0 74 20 72 61 77 52 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 65 78 65 63 50 72 6f 6d 69 73 65 3b t.rawResult.=.await.execPromise;
72e0 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 53 74 72 20 3d 20 74 79 70 65 6f 66 20 72 61 77 ....const.resultStr.=.typeof.raw
7300 52 65 73 75 6c 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 72 61 77 52 65 73 75 6c 74 20 Result.===."string".?.rawResult.
7320 3a 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 72 61 77 52 65 73 75 6c 74 29 3b 0a 0a 09 09 :.JSON.stringify(rawResult);....
7340 09 2f 2f 20 43 6f 6d 70 75 74 65 20 69 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 72 61 77 20 28 .//.Compute.isError.on.the.raw.(
7360 75 6e 74 72 75 6e 63 61 74 65 64 29 20 73 74 72 69 6e 67 20 73 6f 20 61 6e 20 60 45 72 72 6f 72 untruncated).string.so.an.`Error
7380 3a 60 20 70 72 65 66 69 78 0a 09 09 09 2f 2f 20 74 68 61 74 20 6c 69 76 65 73 20 61 6e 79 77 68 :`.prefix....//.that.lives.anywh
73a0 65 72 65 20 e2 80 94 20 69 6e 63 6c 75 64 69 6e 67 20 62 65 79 6f 6e 64 20 74 68 65 20 68 65 61 ere.....including.beyond.the.hea
73c0 64 20 65 78 63 65 72 70 74 20 e2 80 94 20 69 73 20 73 74 69 6c 6c 0a 09 09 09 2f 2f 20 64 65 74 d.excerpt.....is.still....//.det
73e0 65 63 74 65 64 2e 20 54 68 65 20 64 69 73 70 6c 61 79 20 72 65 73 75 6c 74 20 67 6f 65 73 20 74 ected..The.display.result.goes.t
7400 68 72 6f 75 67 68 20 75 6e 69 76 65 72 73 61 6c 20 74 72 75 6e 63 61 74 69 6f 6e 20 73 6f 0a 09 hrough.universal.truncation.so..
7420 09 09 2f 2f 20 6f 76 65 72 73 69 7a 65 64 20 6f 75 74 70 75 74 73 20 64 6f 6e 27 74 20 62 6c 6f ..//.oversized.outputs.don't.blo
7440 77 20 63 6f 6e 74 65 78 74 2e 20 54 68 65 20 66 75 6c 6c 20 63 6f 6e 74 65 6e 74 20 6c 69 76 65 w.context..The.full.content.live
7460 73 20 69 6e 20 74 68 65 0a 09 09 09 2f 2f 20 73 70 69 6c 6c 20 66 69 6c 65 20 74 68 65 20 74 72 s.in.the....//.spill.file.the.tr
7480 75 6e 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 73 20 74 6f 2e 0a 09 09 09 63 6f uncation.notice.points.to.....co
74a0 6e 73 74 20 69 73 45 72 72 6f 72 20 3d 20 72 65 73 75 6c 74 53 74 72 2e 73 74 61 72 74 73 57 69 nst.isError.=.resultStr.startsWi
74c0 74 68 28 22 45 72 72 6f 72 3a 22 29 3b 0a 09 09 09 63 6f 6e 73 74 20 7b 20 64 69 73 70 6c 61 79 th("Error:");....const.{.display
74e0 52 65 73 75 6c 74 20 7d 20 3d 20 61 70 70 6c 79 54 72 75 6e 63 61 74 69 6f 6e 28 72 65 73 75 6c Result.}.=.applyTruncation(resul
7500 74 53 74 72 2c 20 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 tStr,.{.....tabId:.this.config.t
7520 61 62 49 64 20 3f 3f 20 22 64 65 66 61 75 6c 74 22 2c 0a 09 09 09 09 63 61 6c 6c 49 64 3a 20 74 abId.??."default",.....callId:.t
7540 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 2c 0a 09 09 09 c.id,.....toolName:.tc.name,....
7560 7d 29 3b 0a 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 49 64 3a });.....return.{.....toolCallId:
7580 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 2c 0a 09 .tc.id,.....toolName:.tc.name,..
75a0 09 09 09 72 65 73 75 6c 74 3a 20 64 69 73 70 6c 61 79 52 65 73 75 6c 74 2c 0a 09 09 09 09 69 73 ...result:.displayResult,.....is
75c0 45 72 72 6f 72 2c 0a 09 09 09 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 72 72 29 20 7b 0a 09 Error,....};...}.catch.(err).{..
75e0 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 ..return.{.....toolCallId:.tc.id
7600 2c 0a 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 72 65 73 ,.....toolName:.tc.name,.....res
7620 75 6c 74 3a 20 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f 20 65 72 72 2e ult:.err.instanceof.Error.?.err.
7640 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 72 72 29 2c 0a 09 09 09 09 69 73 45 72 72 message.:.String(err),.....isErr
7660 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 7d 0a 0a 09 2f 2a 2a 0a 09 20 2a or:.true,....};...}..}.../**...*
7680 20 42 75 69 6c 64 20 73 79 6e 74 68 65 74 69 63 20 60 74 6f 6f 6c 2d 72 65 73 75 6c 74 60 20 65 .Build.synthetic.`tool-result`.e
76a0 72 72 6f 72 20 65 76 65 6e 74 73 20 66 6f 72 20 65 76 65 72 79 20 74 6f 6f 6c 20 63 61 6c 6c 20 rror.events.for.every.tool.call.
76c0 69 6e 0a 09 20 2a 20 60 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 60 20 74 68 61 74 20 64 6f 65 73 in...*.`stepToolCalls`.that.does
76e0 20 6e 6f 74 20 79 65 74 20 68 61 76 65 20 61 20 72 65 63 6f 72 64 65 64 20 72 65 73 75 6c 74 20 .not.yet.have.a.recorded.result.
7700 69 6e 20 60 63 68 75 6e 6b 73 60 2e 0a 09 20 2a 0a 09 20 2a 20 57 68 65 6e 20 61 20 74 6f 6f 6c in.`chunks`....*...*.When.a.tool
7720 20 62 61 74 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 72 65 73 6f 6c 76 65 64 20 e2 80 94 .batch.is.partially.resolved....
7740 20 65 2e 67 2e 20 6f 6e 65 20 74 6f 6f 6c 20 65 6d 69 74 74 65 64 20 61 0a 09 20 2a 20 60 74 6f .e.g..one.tool.emitted.a...*.`to
7760 6f 6c 2d 65 72 72 6f 72 60 20 77 68 69 6c 65 20 69 74 73 20 73 69 62 6c 69 6e 67 73 20 77 65 72 ol-error`.while.its.siblings.wer
7780 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2c 20 6f 72 20 74 68 65 20 73 74 72 65 61 6d 0a e.never.executed,.or.the.stream.
77a0 09 20 2a 20 61 62 6f 72 74 65 64 20 6d 69 64 2d 62 61 74 63 68 20 e2 80 94 20 74 68 65 20 75 6e ..*.aborted.mid-batch.....the.un
77c0 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 61 72 65 20 72 65 67 69 73 resolved.tool-call.IDs.are.regis
77e0 74 65 72 65 64 20 69 6e 20 74 68 65 0a 09 20 2a 20 68 69 73 74 6f 72 79 20 28 69 6e 73 69 64 65 tered.in.the...*.history.(inside
7800 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 29 20 62 75 74 20 68 61 76 65 20 6e .`tool-batch`.chunks).but.have.n
7820 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 2e 20 4f 6e 20 74 68 65 0a 09 20 2a 20 6e 65 o.matching.result..On.the...*.ne
7840 78 74 20 4c 4c 4d 20 72 6f 75 6e 64 2d 74 72 69 70 20 74 68 65 20 41 49 20 53 44 4b 20 74 68 72 xt.LLM.round-trip.the.AI.SDK.thr
7860 6f 77 73 20 60 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 60 2e 20 46 ows.`MissingToolResultsError`..F
7880 69 6c 6c 69 6e 67 0a 09 20 2a 20 69 6e 20 60 69 73 45 72 72 6f 72 3a 20 74 72 75 65 60 20 72 65 illing...*.in.`isError:.true`.re
78a0 73 75 6c 74 73 20 66 6f 72 20 74 68 6f 73 65 20 6f 72 70 68 61 6e 65 64 20 49 44 73 20 6b 65 65 sults.for.those.orphaned.IDs.kee
78c0 70 73 20 74 68 65 20 6f 6e 2d 74 68 65 2d 77 69 72 65 0a 09 20 2a 20 74 6f 6f 6c 2d 63 61 6c 6c ps.the.on-the-wire...*.tool-call
78e0 2f 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 69 72 69 6e 67 20 63 6f 6d 70 6c 65 74 65 2e 0a 09 /tool-result.pairing.complete...
7900 20 2a 0a 09 20 2a 20 43 61 6c 6c 65 72 20 69 73 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 .*...*.Caller.is.responsible.for
7920 20 60 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 65 76 .`appendEventToChunks(chunks,.ev
7940 74 29 60 20 2b 20 60 79 69 65 6c 64 60 69 6e 67 0a 09 20 2a 20 65 61 63 68 20 72 65 74 75 72 6e t)`.+.`yield`ing...*.each.return
7960 65 64 20 65 76 65 6e 74 2e 0a 09 20 2a 2f 0a 09 70 72 69 76 61 74 65 20 73 79 6e 74 68 65 73 69 ed.event....*/..private.synthesi
7980 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 73 74 65 70 54 6f 6f zeResidualToolResults(...stepToo
79a0 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c 43 61 6c 6c 5b 5d 2c 0a 09 09 63 68 75 6e 6b 73 3a 20 43 68 lCalls:.ToolCall[],...chunks:.Ch
79c0 75 6e 6b 5b 5d 2c 0a 09 09 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 2c unk[],...defaultMessage:.string,
79e0 0a 09 29 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 7b 0a 09 09 63 6f 6e 73 74 20 72 65 73 75 ..):.AgentEvent[].{...const.resu
7a00 6c 74 73 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 6f 6e 73 74 20 lts:.AgentEvent[].=.[];...const.
7a20 72 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 6e 67 3e 28 29 3b 0a 09 09 resolved.=.new.Set<string>();...
7a40 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 20 7b 0a 09 09 09 69 66 20 for.(const.c.of.chunks).{....if.
7a60 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 29 20 63 6f 6e 74 69 6e (c.type.!==."tool-batch").contin
7a80 75 65 3b 0a 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 63 2e 63 61 6c ue;....for.(const.entry.of.c.cal
7aa0 6c 73 29 20 7b 0a 09 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 ls).{.....if.(entry.result.!==.u
7ac0 6e 64 65 66 69 6e 65 64 29 20 72 65 73 6f 6c 76 65 64 2e 61 64 64 28 65 6e 74 72 79 2e 69 64 29 ndefined).resolved.add(entry.id)
7ae0 3b 0a 09 09 09 7d 0a 09 09 7d 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 74 63 20 6f 66 20 73 74 ;....}...}...for.(const.tc.of.st
7b00 65 70 54 6f 6f 6c 43 61 6c 6c 73 29 20 7b 0a 09 09 09 69 66 20 28 72 65 73 6f 6c 76 65 64 2e 68 epToolCalls).{....if.(resolved.h
7b20 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 63 6f 6e 73 74 20 74 72 as(tc.id)).continue;....const.tr
7b40 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a :.ToolResult.=.{.....toolCallId:
7b60 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 2c 0a 09 .tc.id,.....toolName:.tc.name,..
7b80 09 09 09 72 65 73 75 6c 74 3a 20 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 2c 0a 09 09 09 09 69 ...result:.defaultMessage,.....i
7ba0 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 09 63 6f 6e 73 74 20 65 76 74 sError:.true,....};....const.evt
7bc0 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 :.AgentEvent.=.{.type:."tool-res
7be0 75 6c 74 22 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 74 72 20 7d 3b 0a 09 09 09 72 65 73 75 6c ult",.toolResult:.tr.};....resul
7c00 74 73 2e 70 75 73 68 28 65 76 74 29 3b 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 72 65 73 75 6c ts.push(evt);...}...return.resul
7c20 74 73 3b 0a 09 7d 0a 0a 09 61 73 79 6e 63 20 2a 72 75 6e 28 0a 09 09 75 73 65 72 4d 65 73 73 61 ts;..}...async.*run(...userMessa
7c40 67 65 3a 20 73 74 72 69 6e 67 2c 0a 09 09 6f 70 74 69 6f 6e 73 3f 3a 20 7b 0a 09 09 09 72 65 61 ge:.string,...options?:.{....rea
7c60 73 6f 6e 69 6e 67 45 66 66 6f 72 74 3f 3a 20 22 6e 6f 6e 65 22 20 7c 20 22 6c 6f 77 22 20 7c 20 soningEffort?:."none".|."low".|.
7c80 22 6d 65 64 69 75 6d 22 20 7c 20 22 68 69 67 68 22 20 7c 20 22 6d 61 78 22 3b 0a 09 09 09 61 62 "medium".|."high".|."max";....ab
7ca0 6f 72 74 53 69 67 6e 61 6c 3f 3a 20 41 62 6f 72 74 53 69 67 6e 61 6c 3b 0a 09 09 7d 2c 0a 09 29 ortSignal?:.AbortSignal;...},..)
7cc0 3a 20 41 73 79 6e 63 47 65 6e 65 72 61 74 6f 72 3c 41 67 65 6e 74 45 76 65 6e 74 3e 20 7b 0a 09 :.AsyncGenerator<AgentEvent>.{..
7ce0 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 72 75 6e 6e 69 6e 67 22 3b 0a 09 09 79 69 65 6c .this.status.=."running";...yiel
7d00 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 73 3a 20 22 72 75 6e d.{.type:."status",.status:."run
7d20 6e 69 6e 67 22 20 7d 3b 0a 0a 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 70 75 73 68 28 7b ning".};....this.messages.push({
7d40 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 68 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 .role:."user",.chunks:.[{.type:.
7d60 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 75 73 65 72 4d 65 73 73 61 67 65 20 7d 5d 20 7d 29 3b "text",.text:.userMessage.}].});
7d80 0a 0a 09 09 63 6f 6e 73 74 20 72 65 67 69 73 74 72 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 ....const.registry.=.createToolR
7da0 65 67 69 73 74 72 79 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 2f 2f egistry(this.config.tools);...//
7dc0 20 60 69 73 43 6c 61 75 64 65 4f 41 75 74 68 60 20 67 61 74 65 73 20 43 6c 61 75 64 65 2d 43 6f .`isClaudeOAuth`.gates.Claude-Co
7de0 64 65 2d 43 4c 49 2d 73 70 65 63 69 66 69 63 20 62 65 68 61 76 69 6f 72 3a 20 62 69 6c 6c 69 6e de-CLI-specific.behavior:.billin
7e00 67 2d 68 65 61 64 65 72 0a 09 09 2f 2f 20 69 6e 6a 65 63 74 69 6f 6e 2c 20 69 64 65 6e 74 69 74 g-header...//.injection,.identit
7e20 79 20 70 72 65 61 6d 62 6c 65 2c 20 60 6d 63 70 5f 2a 60 20 74 6f 6f 6c 20 6e 61 6d 65 20 70 72 y.preamble,.`mcp_*`.tool.name.pr
7e40 65 66 69 78 2c 20 61 6e 64 20 65 78 74 65 6e 64 65 64 0a 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 efix,.and.extended...//.thinking
7e60 20 63 6f 6e 66 69 67 2e 20 4f 6e 6c 79 20 74 68 65 20 4f 41 75 74 68 20 66 6c 6f 77 20 28 70 72 .config..Only.the.OAuth.flow.(pr
7e80 6f 76 69 64 65 72 3d 22 61 6e 74 68 72 6f 70 69 63 22 29 20 6e 65 65 64 73 20 74 68 65 73 65 2e ovider="anthropic").needs.these.
7ea0 0a 09 09 2f 2f 20 60 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 60 20 69 73 20 74 68 65 20 ...//.`usesAnthropicSDK`.is.the.
7ec0 62 72 6f 61 64 65 72 20 63 61 74 65 67 6f 72 79 20 e2 80 94 20 61 6e 79 20 70 72 6f 76 69 64 65 broader.category.....any.provide
7ee0 72 20 77 68 6f 73 65 0a 09 09 2f 2f 20 72 65 71 75 65 73 74 73 20 61 72 65 20 73 65 72 69 61 6c r.whose...//.requests.are.serial
7f00 69 7a 65 64 20 62 79 20 60 40 61 69 2d 73 64 6b 2f 61 6e 74 68 72 6f 70 69 63 60 20 61 6e 64 20 ized.by.`@ai-sdk/anthropic`.and.
7f20 74 68 65 72 65 66 6f 72 65 20 65 78 70 65 63 74 0a 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 2d therefore.expect...//.Anthropic-
7f40 73 74 79 6c 65 20 60 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 54 style.`cache_control`.markers..T
7f60 6f 64 61 79 20 74 68 61 74 27 73 20 43 6c 61 75 64 65 20 4f 41 75 74 68 0a 09 09 2f 2f 20 70 6c oday.that's.Claude.OAuth...//.pl
7f80 75 73 20 4f 70 65 6e 43 6f 64 65 20 47 6f 27 73 20 4d 69 6e 69 4d 61 78 2f 51 77 65 6e 20 72 6f us.OpenCode.Go's.MiniMax/Qwen.ro
7fa0 75 74 65 73 2e 0a 09 09 63 6f 6e 73 74 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3d 20 74 68 utes....const.isClaudeOAuth.=.th
7fc0 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 22 61 6e 74 68 72 6f 70 69 is.config.provider.===."anthropi
7fe0 63 22 3b 0a 09 09 63 6f 6e 73 74 20 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 20 3d 20 69 c";...const.usesAnthropicSDK.=.i
8000 73 43 6c 61 75 64 65 4f 41 75 74 68 20 7c 7c 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 sClaudeOAuth.||.this.config.prov
8020 69 64 65 72 20 3d 3d 3d 20 22 6f 70 65 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 ider.===."opencode-anthropic";..
8040 09 63 6f 6e 73 74 20 70 72 6f 76 69 64 65 72 46 61 63 74 6f 72 79 20 3d 20 63 72 65 61 74 65 50 .const.providerFactory.=.createP
8060 72 6f 76 69 64 65 72 28 7b 0a 09 09 09 61 70 69 4b 65 79 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 rovider({....apiKey:.this.config
8080 2e 61 70 69 4b 65 79 2c 0a 09 09 09 62 61 73 65 55 52 4c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 .apiKey,....baseURL:.this.config
80a0 2e 62 61 73 65 55 52 4c 2c 0a 09 09 09 70 72 6f 76 69 64 65 72 3a 20 74 68 69 73 2e 63 6f 6e 66 .baseURL,....provider:.this.conf
80c0 69 67 2e 70 72 6f 76 69 64 65 72 2c 0a 09 09 09 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c ig.provider,....claudeCredential
80e0 73 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 s:.this.config.claudeCredentials
8100 2c 0a 09 09 09 74 61 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 ,....tabId:.this.config.tabId,..
8120 09 7d 29 3b 0a 0a 09 09 2f 2f 20 4f 6e 6c 79 20 74 68 65 20 43 6c 61 75 64 65 20 4f 41 75 74 68 .});....//.Only.the.Claude.OAuth
8140 20 66 6c 6f 77 20 65 78 70 65 63 74 73 20 60 6d 63 70 5f 2a 60 20 70 72 65 66 69 78 65 64 20 74 .flow.expects.`mcp_*`.prefixed.t
8160 6f 6f 6c 20 6e 61 6d 65 73 2e 20 54 68 65 0a 09 09 2f 2f 20 4f 70 65 6e 43 6f 64 65 20 47 6f 20 ool.names..The...//.OpenCode.Go.
8180 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 20 65 6e 64 70 6f 69 6e 74 20 70 61 73 73 65 73 anthropic-format.endpoint.passes
81a0 20 74 6f 6f 6c 73 20 74 68 72 6f 75 67 68 20 74 6f 20 4d 69 6e 69 4d 61 78 0a 09 09 2f 2f 20 6f .tools.through.to.MiniMax...//.o
81c0 72 20 51 77 65 6e 2c 20 77 68 69 63 68 20 65 78 70 65 63 74 20 72 61 77 20 6e 61 6d 65 73 2e 0a r.Qwen,.which.expect.raw.names..
81e0 09 09 63 6f 6e 73 74 20 61 69 54 6f 6f 6c 73 20 3d 20 72 65 67 69 73 74 72 79 2e 67 65 74 41 49 ..const.aiTools.=.registry.getAI
8200 53 44 4b 54 6f 6f 6c 73 28 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 73 20 3d 20 69 73 43 6c SDKTools();...const.tools.=.isCl
8220 61 75 64 65 4f 41 75 74 68 0a 09 09 09 3f 20 4f 62 6a 65 63 74 2e 66 72 6f 6d 45 6e 74 72 69 65 audeOAuth....?.Object.fromEntrie
8240 73 28 0a 09 09 09 09 09 4f 62 6a 65 63 74 2e 65 6e 74 72 69 65 73 28 61 69 54 6f 6f 6c 73 29 2e s(......Object.entries(aiTools).
8260 6d 61 70 28 28 5b 6e 61 6d 65 2c 20 74 6f 6f 6c 5d 29 20 3d 3e 20 5b 70 72 65 66 69 78 54 6f 6f map(([name,.tool]).=>.[prefixToo
8280 6c 4e 61 6d 65 28 6e 61 6d 65 29 2c 20 74 6f 6f 6c 5d 29 2c 0a 09 09 09 09 29 0a 09 09 09 3a 20 lName(name),.tool]),.....)....:.
82a0 61 69 54 6f 6f 6c 73 3b 0a 0a 09 09 2f 2f 20 42 75 69 6c 64 20 73 79 73 74 65 6d 20 70 72 6f 6d aiTools;....//.Build.system.prom
82c0 70 74 20 e2 80 94 20 43 6c 61 75 64 65 20 4f 41 75 74 68 20 72 65 71 75 65 73 74 73 20 65 6d 62 pt.....Claude.OAuth.requests.emb
82e0 65 64 20 61 20 62 69 6c 6c 69 6e 67 20 68 65 61 64 65 72 0a 09 09 2f 2f 20 61 6e 64 20 74 68 65 ed.a.billing.header...//.and.the
8300 20 43 6c 61 75 64 65 20 43 6f 64 65 20 69 64 65 6e 74 69 74 79 20 70 72 65 61 6d 62 6c 65 20 73 .Claude.Code.identity.preamble.s
8320 6f 20 41 6e 74 68 72 6f 70 69 63 20 72 65 63 6f 67 6e 69 7a 65 73 20 74 68 65 0a 09 09 2f 2f 20 o.Anthropic.recognizes.the...//.
8340 72 65 71 75 65 73 74 20 61 73 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 6f 66 66 69 63 request.as.coming.from.the.offic
8360 69 61 6c 20 43 4c 49 2e 0a 09 09 6c 65 74 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 20 3d 20 74 68 ial.CLI....let.systemPrompt.=.th
8380 69 73 2e 63 6f 6e 66 69 67 2e 73 79 73 74 65 6d 50 72 6f 6d 70 74 3b 0a 09 09 69 66 20 28 69 73 is.config.systemPrompt;...if.(is
83a0 43 6c 61 75 64 65 4f 41 75 74 68 29 20 7b 0a 09 09 09 2f 2f 20 60 62 75 69 6c 64 42 69 6c 6c 69 ClaudeOAuth).{....//.`buildBilli
83c0 6e 67 48 65 61 64 65 72 56 61 6c 75 65 60 20 68 69 73 74 6f 72 69 63 61 6c 6c 79 20 74 6f 6f 6b ngHeaderValue`.historically.took
83e0 20 60 7b 20 72 6f 6c 65 2c 20 63 6f 6e 74 65 6e 74 3a 20 73 74 72 69 6e 67 20 7d 5b 5d 60 2e 0a .`{.role,.content:.string.}[]`..
8400 09 09 09 2f 2f 20 50 72 6f 6a 65 63 74 20 74 68 65 20 6e 65 77 20 63 68 75 6e 6b 2d 62 61 73 65 ...//.Project.the.new.chunk-base
8420 64 20 43 68 61 74 4d 65 73 73 61 67 65 20 73 68 61 70 65 20 6f 6e 74 6f 20 74 68 61 74 20 6c 65 d.ChatMessage.shape.onto.that.le
8440 67 61 63 79 20 73 68 61 70 65 0a 09 09 09 2f 2f 20 62 79 20 73 74 72 69 6e 67 69 66 79 69 6e 67 gacy.shape....//.by.stringifying
8460 20 74 65 78 74 20 63 68 75 6e 6b 73 2e 20 4f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 75 73 65 .text.chunks..Only.the.first.use
8480 72 20 6d 65 73 73 61 67 65 27 73 20 74 65 78 74 20 69 73 0a 09 09 09 2f 2f 20 61 63 74 75 61 6c r.message's.text.is....//.actual
84a0 6c 79 20 75 73 65 64 20 28 73 65 65 20 65 78 74 72 61 63 74 46 69 72 73 74 55 73 65 72 4d 65 73 ly.used.(see.extractFirstUserMes
84c0 73 61 67 65 54 65 78 74 29 20 e2 80 94 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b 73 0a 09 09 sageText).....non-text.chunks...
84e0 09 2f 2f 20 73 61 66 65 6c 79 20 63 6f 6e 74 72 69 62 75 74 65 20 6e 6f 74 68 69 6e 67 2e 0a 09 .//.safely.contribute.nothing...
8500 09 09 63 6f 6e 73 74 20 6c 65 67 61 63 79 53 68 61 70 65 20 3d 20 74 68 69 73 2e 6d 65 73 73 61 ..const.legacyShape.=.this.messa
8520 67 65 73 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 28 7b 0a 09 09 09 09 72 6f 6c 65 3a 20 6d 2e 72 6f ges.map((m).=>.({.....role:.m.ro
8540 6c 65 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 2e 63 68 75 6e 6b 73 0a 09 09 09 09 09 2e le,.....content:.m.chunks.......
8560 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 78 74 72 61 63 74 3c 43 68 75 6e 6b 2c 20 filter((c):.c.is.Extract<Chunk,.
8580 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 3d 3e 20 63 2e 74 79 70 65 20 3d 3d 3d 20 {.type:."text".}>.=>.c.type.===.
85a0 22 74 65 78 74 22 29 0a 09 09 09 09 09 2e 6d 61 70 28 28 63 29 20 3d 3e 20 63 2e 74 65 78 74 29 "text").......map((c).=>.c.text)
85c0 0a 09 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 2c 0a 09 09 09 7d 29 29 3b 0a 09 09 09 63 6f 6e 73 .......join(""),....}));....cons
85e0 74 20 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 20 3d 20 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 t.billingHeader.=.buildBillingHe
8600 61 64 65 72 56 61 6c 75 65 28 6c 65 67 61 63 79 53 68 61 70 65 29 3b 0a 09 09 09 73 79 73 74 65 aderValue(legacyShape);....syste
8620 6d 50 72 6f 6d 70 74 20 3d 20 60 24 7b 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 7d 5c 6e 24 7b 53 mPrompt.=.`${billingHeader}\n${S
8640 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 59 7d 5c 6e 5c 6e 24 7b 73 79 73 74 65 6d 50 72 6f 6d 70 YSTEM_IDENTITY}\n\n${systemPromp
8660 74 7d 60 3b 0a 09 09 7d 0a 0a 09 09 74 72 79 20 7b 0a 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f t}`;...}....try.{....logAgentLoo
8680 70 28 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 p({.....tabId:.this.config.tabId
86a0 2c 0a 09 09 09 09 65 76 65 6e 74 3a 20 22 72 75 6e 2d 73 74 61 72 74 22 2c 0a 09 09 09 09 64 65 ,.....event:."run-start",.....de
86c0 74 61 69 6c 3a 20 7b 20 6d 6f 64 65 6c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c tail:.{.model:.this.config.model
86e0 2c 20 70 72 6f 76 69 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 ,.provider:.this.config.provider
8700 20 7d 2c 0a 09 09 09 7d 29 3b 0a 09 09 09 2f 2f 20 53 69 6e 67 6c 65 20 63 68 75 6e 6b 20 61 63 .},....});....//.Single.chunk.ac
8720 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 74 68 65 20 65 6e 74 69 72 65 20 61 73 73 69 73 74 61 cumulator.for.the.entire.assista
8740 6e 74 20 74 75 72 6e 20 28 61 6c 6c 20 73 74 65 70 73 29 2e 0a 09 09 09 2f 2f 20 41 6c 6c 20 65 nt.turn.(all.steps).....//.All.e
8760 76 65 6e 74 2d 64 72 69 76 65 6e 20 6d 75 74 61 74 69 6f 6e 73 20 67 6f 20 74 68 72 6f 75 67 68 vent-driven.mutations.go.through
8780 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 60 2e 0a 09 09 09 63 6f 6e 73 74 .`appendEventToChunks`.....const
87a0 20 63 68 75 6e 6b 73 3a 20 43 68 75 6e 6b 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 57 65 .chunks:.Chunk[].=.[];.....//.We
87c0 20 62 75 69 6c 64 20 75 70 20 61 20 6c 6f 63 61 6c 20 6d 65 73 73 61 67 65 20 6c 69 73 74 20 66 .build.up.a.local.message.list.f
87e0 6f 72 20 6d 75 6c 74 69 2d 74 75 72 6e 20 77 69 74 68 69 6e 20 6f 6e 65 20 72 75 6e 28 29 20 63 or.multi-turn.within.one.run().c
8800 61 6c 6c 0a 09 09 09 2f 2f 20 74 68 61 74 20 69 6e 63 6c 75 64 65 73 20 74 6f 6f 6c 20 72 65 73 all....//.that.includes.tool.res
8820 75 6c 74 73 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 45 61 63 68 20 73 ults.fed.back.to.the.LLM..Each.s
8840 74 65 70 20 61 70 70 65 6e 64 73 0a 09 09 09 2f 2f 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 27 tep.appends....//.the.assistant'
8860 73 20 65 76 6f 6c 76 69 6e 67 20 63 68 75 6e 6b 20 6c 69 73 74 20 61 73 20 6f 6e 65 20 43 68 61 s.evolving.chunk.list.as.one.Cha
8880 74 4d 65 73 73 61 67 65 3b 20 73 75 62 73 65 71 75 65 6e 74 0a 09 09 09 2f 2f 20 73 74 65 70 73 tMessage;.subsequent....//.steps
88a0 20 73 65 65 20 70 72 69 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 6e 64 20 74 68 65 69 72 20 .see.prior.tool.calls.and.their.
88c0 72 65 73 75 6c 74 73 20 76 69 61 20 74 68 65 20 63 68 75 6e 6b 73 2e 0a 09 09 09 63 6f 6e 73 74 results.via.the.chunks.....const
88e0 20 73 74 65 70 4d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b .stepMessages:.ChatMessage[].=.[
8900 2e 2e 2e 74 68 69 73 2e 6d 65 73 73 61 67 65 73 5d 3b 0a 09 09 09 2f 2f 20 54 68 65 20 61 73 73 ...this.messages];....//.The.ass
8920 69 73 74 61 6e 74 20 43 68 61 74 4d 65 73 73 61 67 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 istant.ChatMessage.for.the.curre
8940 6e 74 20 74 75 72 6e 2c 20 73 68 61 72 65 64 20 61 63 72 6f 73 73 20 73 74 65 70 73 0a 09 09 09 nt.turn,.shared.across.steps....
8960 2f 2f 20 73 6f 20 69 74 73 20 60 63 68 75 6e 6b 73 60 20 72 65 66 65 72 65 6e 63 65 20 6d 61 74 //.so.its.`chunks`.reference.mat
8980 63 68 65 73 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 61 62 6f 76 65 2e 20 57 65 20 70 ches.the.accumulator.above..We.p
89a0 75 73 68 0a 09 09 09 2f 2f 20 69 74 20 6f 6e 63 65 20 77 68 65 6e 20 74 68 65 20 66 69 72 73 74 ush....//.it.once.when.the.first
89c0 20 73 74 65 70 20 68 61 73 20 61 63 74 75 61 6c 20 6f 75 74 70 75 74 20 74 6f 20 72 65 63 6f 72 .step.has.actual.output.to.recor
89e0 64 2e 0a 09 09 09 6c 65 74 20 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 3a 20 d.....let.assistantTurnMessage:.
8a00 43 68 61 74 4d 65 73 73 61 67 65 20 7c 20 6e 75 6c 6c 20 3d 20 6e 75 6c 6c 3b 0a 0a 09 09 09 66 ChatMessage.|.null.=.null;.....f
8a20 6f 72 20 28 6c 65 74 20 73 74 65 70 20 3d 20 30 3b 20 73 74 65 70 20 3c 20 4d 41 58 5f 53 54 45 or.(let.step.=.0;.step.<.MAX_STE
8a40 50 53 3b 20 73 74 65 70 2b 2b 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 65 66 66 6f 72 74 20 3d PS;.step++).{.....const.effort.=
8a60 20 6f 70 74 69 6f 6e 73 3f 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 74 68 69 .options?.reasoningEffort.??.thi
8a80 73 2e 63 6f 6e 66 69 67 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 22 6d 61 78 s.config.reasoningEffort.??."max
8aa0 22 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 6e 65 78 74 44 65 ";.....const.debugReqId.=.nextDe
8ac0 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 79 63 6c 65 28 7b bugSeq();.....logStepLifecycle({
8ae0 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 61 62 49 64 2c 0a ......tabId:.this.config.tabId,.
8b00 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 65 70 2d 73 74 61 .....step,......event:."step-sta
8b20 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 2c 20 68 69 73 74 rt",......detail:.{.effort,.hist
8b40 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 6c 65 6e 67 74 68 oryMessages:.stepMessages.length
8b60 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 73 74 72 65 61 6d .},.....});......//.Build.stream
8b80 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 64 65 6c 20 3d 20 .text.options.....const.model.=.
8ba0 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 67 2e 6d 6f 64 65 providerFactory(this.config.mode
8bc0 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 61 67 65 20 6c 69 l);......//.Build.the.message.li
8be0 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 70 72 65 70 65 6e st.with.the.system.prompt.prepen
8c00 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 65 20 6d 65 73 73 ded.as.a.system.....//.role.mess
8c20 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 41 6e 74 68 72 6f age..This.is.required.for.Anthro
8c40 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 09 09 2f 2f 20 60 pic.prompt.caching:.the.....//.`
8c60 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 20 74 61 6b 65 73 system`.shortcut.parameter.takes
8c80 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 72 65 20 74 6f 0a .a.plain.string.with.nowhere.to.
8ca0 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 69 6f 6e 73 2e 61 ....//.attach.`providerOptions.a
8cc0 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 76 69 6e 67 20 69 nthropic.cacheControl`..Moving.i
8ce0 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 75 73 20 61 70 70 t.inline.....//.also.lets.us.app
8d00 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 74 73 20 74 6f 20 ly.rolling.cache.breakpoints.to.
8d20 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 73 74 20 73 79 73 the.last.messages......const.sys
8d40 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 73 61 67 65 20 3d temMessage:.SystemModelMessage.=
8d60 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 09 09 09 63 6f 6e .{......role:."system",......con
8d80 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 0a 0a 09 09 09 09 tent:.systemPrompt,.....};......
8da0 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 73 61 67 65 5b 5d let.coreMessages:.ModelMessage[]
8dc0 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 09 09 09 09 2e 2e .=.[......systemMessage,........
8de0 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 67 65 73 2c 20 69 .toModelMessages(stepMessages,.i
8e00 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 09 2f 2f 20 41 70 sClaudeOAuth),.....];......//.Ap
8e20 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 63 74 75 72 61 6c ply.provider-specific.structural
8e40 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 09 2f 2f 20 73 65 .normalisations.before.....//.se
8e60 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 69 2d 63 6f 6d 70 nding..Anthropic.and.openai-comp
8e80 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 09 2f 2f 20 74 68 atible.paths.each.have.....//.th
8ea0 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 69 72 65 6d 65 6e eir.own.message-shape.requiremen
8ec0 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 09 2f 2f 20 6d 75 ts;.the.two.passes.are.....//.mu
8ee0 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 75 73 65 73 41 6e tually.exclusive......if.(usesAn
8f00 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 73 61 67 65 73 20 thropicSDK).{......coreMessages.
8f20 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 4e 6f 72 6d 61 6c =.applyAnthropicStructuralNormal
8f40 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 09 09 09 61 70 70 isations(coreMessages);......app
8f60 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 73 61 67 65 73 29 lyAnthropicCaching(coreMessages)
8f80 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 73 73 61 67 65 73 ;.....}.else.{......coreMessages
8fa0 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 61 73 6f 6e 69 6e .=.applyOpenAICompatibleReasonin
8fc0 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 73 29 3b 0a 09 09 gNormalisation(coreMessages);...
8fe0 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 6e 73 3a 20 50 61 ..}......const.streamOptions:.Pa
9000 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 3e 5b 30 5d 20 3d rameters<typeof.streamText>[0].=
9020 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 65 73 3a 20 63 6f .{......model,......messages:.co
9040 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 09 09 09 61 62 6f reMessages,......tools,......abo
9060 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 67 6e 61 6c 2c 0a rtSignal:.options?.abortSignal,.
9080 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 6f 6f 6c 20 75 73 ....};......//.Encourage.tool.us
90a0 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 20 65 78 70 6c 69 e.on.Anthropic..Without.an.expli
90c0 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 6c 61 75 64 65 20 cit.....//.`toolChoice`,.Claude.
90e0 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 61 64 61 70 74 69 (especially.Opus.4.7.with.adapti
9100 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 63 69 64 65 20 74 ve.....//.thinking).can.decide.t
9120 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 6f 66 20 63 61 6c o."think.forever".instead.of.cal
9140 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 61 73 20 62 65 65 ling.....//.the.tools.it.has.bee
9160 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 61 75 64 65 20 66 n.given..`"auto"`.keeps.Claude.f
9180 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 74 65 78 74 20 77 ree.to.....//.answer.with.text.w
91a0 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 6c 65 20 6d 61 6b hen.no.tool.is.needed,.while.mak
91c0 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 79 20 6f 66 20 74 ing.the.....//.availability.of.t
91e0 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 20 74 68 65 20 72 ools.an.explicit.signal.in.the.r
9200 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 75 74 68 29 20 7b equest......if.(isClaudeOAuth).{
9220 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 6f 69 63 65 20 3d ......streamOptions.toolChoice.=
9240 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 43 6c 61 75 64 65 ."auto";.....}......if.(isClaude
9260 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 29 20 7b 0a 09 09 OAuth.&&.effort.!==."none").{...
9280 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 72 20 41 6e 74 68 ...//.v6.native.support.for.Anth
92a0 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 61 0a 09 09 09 09 ropic.adaptive.thinking.via.....
92c0 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 72 65 20 72 65 77 .//.providerOptions..No.more.rew
92e0 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 09 09 09 2f 2f 20 riteBodyForOpus47.body-......//.
9300 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 09 09 2f 2f 0a 09 injection.hack.needed.......//..
9320 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 63 6f 64 65 20 74 ....//.Budgets.mirror.opencode.t
9340 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 61 78 20 20 62 75 ransform.ts:......//...-.max..bu
9360 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 64 6f 63 75 6d 65 dget.=.31999.(Anthropic's.docume
9380 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 60 4d 61 74 68 2e nted.ceiling;......//.....`Math.
93a0 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 74 70 75 74 20 2d min(31_999,.model.limit.output.-
93c0 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 64 65 20 6c 69 6e .1)`.in......//.....opencode.lin
93e0 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 64 67 65 74 20 3d e.668)......//...-.high.budget.=
9400 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 0a 09 09 09 09 09 .16000.(opencode.line.662:......
9420 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 61 74 68 2e 66 6c //.....`Math.min(16_000,.Math.fl
9440 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 29 29 60 29 0a 09 oor(model.limit.output/2-1))`)..
9460 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 6f 70 65 6e 63 6f ....//...-.medium/low:.no.openco
9480 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 0a 09 09 09 09 09 de.equivalent.....sensible......
94a0 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 74 73 2e 0a 09 09 //.....intermediate.defaults....
94c0 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 6b 65 6e 73 60 20 ...//......//.`maxOutputTokens`.
94e0 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 68 69 6e 6b 69 6e is.the.TOTAL.output.cap.(thinkin
9500 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 6e 65 64 29 2e 20 g.+......//.response.combined)..
9520 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 74 20 6d 61 78 20 Anthropic's.standard.output.max.
9540 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 34 2e 78 3b 20 6d is......//.32K.for.Claude.4.x;.m
9560 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 54 4f 4b 45 4e 5f atching.opencode's.OUTPUT_TOKEN_
9580 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 60 62 75 64 67 65 MAX......//.constant..The.`budge
95a0 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 69 6e 67 0a 09 09 t_tokens`.field.is.a.thinking...
95c0 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 72 65 6d 65 6e 74 ...//.ceiling,.not.a.requirement
95e0 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 74 65 73 0a 09 09 ,.so.the.model.self-regulates...
9600 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 20 77 69 74 68 69 ...//.thinking.vs.response.withi
9620 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 2f 2f 0a 09 09 09 n.this.total.budget.......//....
9640 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 63 69 66 69 63 73 ..//.Adaptive.thinking.specifics
9660 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 2e 36 3b 20 6d 69 .(Opus.4.7+,.Opus/Sonnet.4.6;.mi
9680 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 6e 73 66 6f 72 6d rrors.opencode......//.transform
96a0 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 60 74 68 69 6e 6b .ts:642-655):......//...-.`think
96c0 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 20 74 68 65 20 6d ing.type.=."adaptive"`.....the.m
96e0 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 20 20 20 6d 75 63 odel.decides.how......//.....muc
9700 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 75 74 54 6f 6b 65 h.to.think.within.`maxOutputToke
9720 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 2e 64 69 73 70 6c ns`.......//...-.`thinking.displ
9740 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 70 74 69 76 65 20 ay.=."summarized"`.....adaptive.
9760 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 70 75 73 20 34 2e thinking......//.....for.Opus.4.
9780 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 6d 69 74 74 65 64 7.defaults.to.`display:."omitted
97a0 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 73 20 4e 4f 20 74 "`,.which......//.....means.NO.t
97c0 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 64 20 74 6f 20 75 hinking.content.is.streamed.to.u
97e0 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 6d 6d 61 72 69 7a s..Setting......//.....`summariz
9800 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 6b 69 6e 67 20 76 ed`.is.what.makes.the.thinking.v
9820 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 55 49 2e 0a 09 09 isible.in......//.....the.UI....
9840 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 67 20 6f 66 20 60 ...//...-.`effort`.(sibling.of.`
9860 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 65 64 73 20 61 6e thinking`).....adaptive.needs.an
9880 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 72 74 20 6c 65 76 ......//.....explicit.effort.lev
98a0 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 75 73 65 73 20 61 el..Without.it,.Anthropic.uses.a
98c0 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 64 65 66 61 75 6c ......//.....conservative.defaul
98e0 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 6e 6b 73 2e 0a 09 t.and.the.model.barely.thinks...
9900 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 73 74 61 6e 64 61 ....//.Cap.at.Anthropic's.standa
9920 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 6e 63 6f 64 65 27 rd.32K.output.(matches.opencode'
9940 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 29 3b 20 74 68 65 s......//.OUTPUT_TOKEN_MAX);.the
9960 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 6b 69 6e 67 20 76 .model.self-regulates.thinking.v
9980 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 74 68 69 73 20 74 s......//.response.within.this.t
99a0 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 69 67 20 28 61 64 otal.budget..Thinking.config.(ad
99c0 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 20 70 6c 75 73 20 aptive......//.vs.enabled,.plus.
99e0 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 70 75 73 20 34 2e display:"summarized".for.Opus.4.
9a00 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 6d 20 74 68 65 20 7+).is......//.derived.from.the.
9a20 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 6e 6b 69 6e 67 50 model.id.(see.anthropicThinkingP
9a40 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 61 6d 4f 70 74 69 roviderOptions).......streamOpti
9a60 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 30 3b 0a 09 09 09 ons.maxOutputTokens.=.32000;....
9a80 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 74 69 6f 6e 73 20 ..streamOptions.providerOptions.
9aa0 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 6f 70 69 63 54 68 =.{.......anthropic:.anthropicTh
9ac0 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 2e 63 6f 6e 66 69 inkingProviderOptions(this.confi
9ae0 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 09 09 09 09 7d 20 g.model,.effort),......};.....}.
9b00 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 20 26 26 20 65 66 else.if.(!usesAnthropicSDK.&&.ef
9b20 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 20 4f 70 65 6e 41 fort.!==."none").{......//.OpenA
9b40 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 6f 64 65 20 5a 65 I-compatible.models.(OpenCode.Ze
9b60 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 4b 69 6d 69 2c 20 n:.DeepSeek,.GLM,......//.Kimi,.
9b80 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 74 60 20 66 69 65 etc.)..The.`reasoningEffort`.fie
9ba0 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 72 62 61 74 69 6d ld.is.forwarded......//.verbatim
9bc0 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 20 69 74 2e 20 60 .to.providers.that.support.it..`
9be0 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 6e 67 65 73 74 20 "max"`.is.the......//.strongest.
9c00 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 64 65 72 20 6d 61 level.we.expose;.the.provider.ma
9c20 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 79 20 28 65 2e 67 y.map.it......//.internally.(e.g
9c40 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 73 20 64 65 65 70 ..DeepSeek.interprets.it.as.deep
9c60 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 73 74 72 65 61 6d ......//.reasoning).......stream
9c80 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 7b 20 6f 70 65 6e Options.providerOptions.=.{.open
9ca0 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 66 66 6f 72 74 3a aiCompatible:.{.reasoningEffort:
9cc0 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 6e 73 74 20 72 65 .effort.}.};.....}......const.re
9ce0 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 74 69 6f 6e 73 29 sult.=.streamText(streamOptions)
9d00 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 6c 6c 20 74 72 61 ;......//.Per-step.tool-call.tra
9d20 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 65 20 6f 6e 6c 79 cking.....needed.because.we.only
9d40 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 4c 4d 20 69 66 20 .loop.back.....//.to.the.LLM.if.
9d60 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 6c 6c 73 2e 20 54 this.step.produced.tool.calls..T
9d80 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 74 65 20 66 6f 72 he.actual.chunk.....//.state.for
9da0 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 60 2e 0a 09 09 09 .the.turn.lives.in.`chunks`.....
9dc0 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 43 61 6c 6c 5b 5d .const.stepToolCalls:.ToolCall[]
9de0 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 61 76 65 20 61 6e .=.[];......//.Ensure.we.have.an
9e00 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 4d 65 73 73 61 67 .assistant.message.in.stepMessag
9e20 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 65 66 65 72 65 6e es.whose.....//.`chunks`.referen
9e40 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 6d 75 6c 61 74 6f ce.is.shared.with.our.accumulato
9e60 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 73 75 62 73 65 71 r..Only.push.....//.once;.subseq
9e80 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 20 63 68 75 6e 6b uent.steps.mutate.the.same.chunk
9ea0 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 54 75 72 6e 4d 65 s.array......if.(assistantTurnMe
9ec0 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 69 73 74 61 6e 74 ssage.===.null).{......assistant
9ee0 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 69 73 74 61 6e 74 TurnMessage.=.{.role:."assistant
9f00 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 61 67 65 73 2e 70 ",.chunks.};......stepMessages.p
9f20 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 0a 09 09 09 09 7d ush(assistantTurnMessage);.....}
9f40 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 20 65 72 72 6f 72 ......//.Unexpected.stream.error
9f60 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 72 20 74 72 79 2f s.propagate.up.to.the.outer.try/
9f80 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 68 69 63 68 20 66 catch.....//.in.`run()`,.which.f
9fa0 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 73 20 74 68 65 20 ormats.them.and.transitions.the.
9fc0 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 22 20 73 74 61 74 agent.to.....//.the."error".stat
9fe0 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 20 75 6e 61 76 61 us..The.AI.SDK.v6.surfaces.unava
a000 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 73 20 6e 61 74 69 ilable-tool.....//.calls.as.nati
a020 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 6e 74 73 20 28 68 ve.`tool-error`.stream.events.(h
a040 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 68 65 72 65 27 73 andled.below),.....//.so.there's
a060 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 63 68 20 68 65 72 .no.NoSuchToolError.to.catch.her
a080 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 65 6e 74 20 6f 66 e......for.await.(const.event.of
a0a0 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 09 6c 6f 67 53 74 .result.fullStream).{......logSt
a0c0 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 64 3a 20 64 65 62 reamEvent({.......requestId:.deb
a0e0 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 09 65 76 65 6e 74 ugReqId,.......step,.......event
a100 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 62 49 64 3a 20 74 Type:.event.type,.......tabId:.t
a120 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 0a 09 09 09 09 09 his.config.tabId,......});......
a140 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 65 6c 74 61 22 29 if.(event.type.===."text-delta")
a160 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 20 63 61 72 72 69 .{.......//.v6:.text-delta.carri
a180 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 29 0a 09 09 09 09 es.`text`.(not.`textDelta`).....
a1a0 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 6e 74 45 76 65 6e ..const.internalEvent:.AgentEven
a1c0 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 65 6c 74 61 22 2c t.=.{........type:."text-delta",
a1e0 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 0a 09 09 09 09 09 ........delta:.event.text,......
a200 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 6e 6b 73 28 63 68 .};.......appendEventToChunks(ch
a220 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 79 69 65 6c unks,.internalEvent);.......yiel
a240 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 73 65 20 69 66 20 d.internalEvent;......}.else.if.
a260 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 2d 64 65 6c 74 61 (event.type.===."reasoning-delta
a280 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 3a 20 72 65 61 73 ").{.......//.v6.new.event:.reas
a2a0 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 20 28 6e 6f 74 20 oning-delta.carries.`text`.(not.
a2c0 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 6e 74 65 72 6e 61 `textDelta`).......const.interna
a2e0 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
a300 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 09 09 09 09 64 65 pe:."reasoning-delta",........de
a320 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 09 09 09 09 09 09 lta:.event.text,.......};.......
a340 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 65 appendEventToChunks(chunks,.inte
a360 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 6c rnalEvent);.......yield.internal
a380 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 70 Event;......}.else.if.(event.typ
a3a0 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 09 09 09 09 09 2f e.===."reasoning-end").{......./
a3c0 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 65 74 61 64 61 74 /.Only.emit.when.providerMetadat
a3e0 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 6f 70 69 63 0a 09 a.is.present.....non-Anthropic..
a400 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 69 6e 67 2d 65 6e .....//.models.send.reasoning-en
a420 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 72 6f 75 6e 64 2d d.without.any.metadata.to.round-
a440 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 20 73 69 67 6e 61 trip........//.Anthropic's.signa
a460 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 4d 65 74 61 64 61 ture.lives.inside.providerMetada
a480 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 3a 20 7b 20 73 69 ta.as.......//.{.anthropic:.{.si
a4a0 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 69 66 20 28 65 76 gnature:."...".}.}........if.(ev
a4c0 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 6e 64 65 66 69 6e ent.providerMetadata.!==.undefin
a4e0 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 6c 45 76 65 6e 74 ed).{........const.internalEvent
a500 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 79 70 65 3a 20 22 :.AgentEvent.=.{.........type:."
a520 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 74 61 64 61 74 61 reasoning-end",.........metadata
a540 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 73 20 52 65 63 6f :.event.providerMetadata.as.Reco
a560 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 09 09 7d 3b 0a 09 rd<string,.unknown>,........};..
a580 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
a5a0 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 69 65 6c 64 20 69 ,.internalEvent);........yield.i
a5c0 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 09 7d 20 65 6c 73 nternalEvent;.......}......}.els
a5e0 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 2d 63 61 6c 6c 22 e.if.(event.type.===."tool-call"
a600 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 20 69 6e 70 75 74 ).{.......//.v6:.tool.call.input
a620 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 29 0a 09 09 09 09 .is.in.`input`.(not.`args`).....
a640 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 6f 6c 4e 61 6d 65 ..const.rawName.=.event.toolName
a660 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 73 43 6c 61 75 64 ;.......const.toolName.=.isClaud
a680 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 72 61 77 4e 61 6d eOAuth.?.unprefixToolName(rawNam
a6a0 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 74 6f 6f 6c 43 61 e).:.rawName;.......const.toolCa
a6c0 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 3a 20 65 76 65 6e ll:.ToolCall.=.{........id:.even
a6e0 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 20 74 6f 6f 6c 4e t.toolCallId,........name:.toolN
a700 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 6e 74 2e 69 6e 70 ame,........arguments:.event.inp
a720 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 77 6e 3e 2c 0a 09 ut.as.Record<string,.unknown>,..
a740 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 73 2e 70 75 73 68 .....};.......stepToolCalls.push
a760 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 74 65 72 6e 61 6c (toolCall);.......const.internal
a780 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 3a 20 22 74 6f 6f Event:.AgentEvent.=.{.type:."too
a7a0 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 09 61 70 70 65 6e l-call",.toolCall.};.......appen
a7c0 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 65 72 6e 61 6c 45 dEventToChunks(chunks,.internalE
a7e0 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 6c 45 76 65 6e 74 vent);.......yield.internalEvent
a800 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 3d 3d ;......}.else.if.(event.type.===
a820 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 54 68 65 20 6d 6f ."tool-error").{.......//.The.mo
a840 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 73 6e 27 74 20 65 del.called.a.tool.that.doesn't.e
a860 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 65 72 2d 65 78 65 xist.(or.a.......//.provider-exe
a880 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 29 2e 20 54 68 65 cuted./.server.tool.failed)..The
a8a0 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 74 68 69 73 20 61 .AI.SDK.v6.......//.emits.this.a
a8c0 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 72 72 79 69 6e 67 s.a.native.stream.event.carrying
a8e0 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 6c 20 6e 61 6d 65 .the.......//.original.tool.name
a900 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 0a 09 09 09 09 09 ..Forward.both.a.synthetic......
a920 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 6f 6c 2d 62 61 74 .//.tool-result.(so.the.tool-bat
a940 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 0a 09 09 09 09 09 ch.entry.the.model.expects......
a960 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 20 72 65 73 75 6c .//.has.an.`isError:.true`.resul
a980 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 09 09 09 09 09 09 t).and.an.error.chunk.for.......
a9a0 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 74 68 65 20 72 65 //.visibility.....without.the.re
a9c0 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 09 2f 2f 20 73 69 sult.the.model.would.......//.si
a9e0 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 65 76 65 72 20 61 lently.wait.for.one.that.never.a
aa00 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 65 76 65 6e 74 20 rrives........const.evt.=.event.
aa20 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 6c 43 61 6c 6c 49 as.unknown.as.{........toolCallI
aa40 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 3a 20 73 74 72 69 d:.string;........toolName:.stri
aa60 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 0a 09 09 09 09 09 ng;........error:.unknown;......
aa80 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 20 69 73 43 6c 61 .};.......const.toolName.=.isCla
aaa0 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 65 76 74 2e udeOAuth.?.unprefixToolName(evt.
aac0 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 09 09 09 09 09 09 toolName).:.evt.toolName;.......
aae0 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 6f 72 20 69 6e 73 const.errMessage.=.evt.error.ins
ab00 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 6d 65 73 73 61 67 tanceof.Error.?.evt.error.messag
ab20 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 09 09 09 09 63 6f e.:.String(evt.error);........co
ab40 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 7b 0a 09 09 09 09 nst.trEvent:.AgentEvent.=.{.....
ab60 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 09 09 09 09 09 74 ...type:."tool-result",........t
ab80 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 61 6c 6c 49 64 3a oolResult:.{.........toolCallId:
aba0 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 6f 6f 6c 4e 61 6d .evt.toolCallId,.........toolNam
abc0 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 20 24 7b 65 72 72 e,.........result:.`Error:.${err
abe0 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 3a 20 74 72 75 65 Message}`,.........isError:.true
ac00 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 09 61 70 70 65 6e ,........},.......};.......appen
ac20 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 6e 74 29 3b dEventToChunks(chunks,.trEvent);
ac40 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 09 09 09 2f 2f 20 .......yield.trEvent;........//.
ac60 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 73 69 62 69 6c 69 Emit.an.error.chunk.for.visibili
ac80 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 09 09 09 2f 2f 20 ty,.but.do.NOT.set.the.......//.
aca0 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 94 20 74 68 65 20 agent.status.to."error".....the.
acc0 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 09 09 09 09 09 2f step.continues.and.loops......./
ace0 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 2e 0a 09 09 09 09 /.back.to.the.LLM.normally......
ad00 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 28 65 ..const.errorMsg.=.formatError(e
ad20 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 09 09 09 09 63 6f vt.error,.this.config);.......co
ad40 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 65 6e 74 20 3d 20 nst.errChunkEvent:.AgentEvent.=.
ad60 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 72 4d 73 67 {.type:."error",.error:.errorMsg
ad80 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 6e 6b 73 28 63 68 .};.......appendEventToChunks(ch
ada0 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 09 09 79 69 65 6c unks,.errChunkEvent);.......yiel
adc0 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 61 6b 3b 0a 09 09 d.errChunkEvent;.......break;...
ade0 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 3d 3d 20 22 61 62 ...}.else.if.(event.type.===."ab
ae00 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 6f 72 74 65 64 20 ort").{.......//.Stream.aborted.
ae20 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 72 6f 72 20 73 6f upstream..Surface.as.an.error.so
ae40 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 20 74 72 61 6e 73 .the.......//.frontend.tab.trans
ae60 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 65 20 64 6f 6e 27 itions.out.of.`running`..We.don'
ae80 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 61 62 6f 72 74 43 t.......//.currently.call.abortC
aea0 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 73 2c 20 73 6f 0a ontroller.abort().ourselves,.so.
aec0 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 69 72 65 20 66 72 ......//.this.would.only.fire.fr
aee0 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 74 69 6f 6e 2e 0a om.external.signal.propagation..
af00 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 09 09 74 79 70 65 ......const.reason.=........type
af20 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 6b 6e 6f 77 6e 20 of.(event.as.{.reason?:.unknown.
af40 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 09 09 09 09 09 3f }).reason.===."string".........?
af60 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 67 20 7d 29 2e 72 .(event.as.{.reason:.string.}).r
af80 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 6f 72 74 65 64 22 eason.........:."stream.aborted"
afa0 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 65 73 75 6c 74 73 ;.......//.Fill.in.error.results
afc0 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 61 6c 6c 73 20 73 .for.any.unresolved.tool.calls.s
afe0 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 6f 6c 2d 63 61 6c o.......//.the.orphaned.tool-cal
b000 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 09 09 2f 2f 20 4d l.IDs.don't.trigger.a.......//.M
b020 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 74 68 69 73 20 68 issingToolResultsError.if.this.h
b040 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 09 09 09 09 09 63 istory.is.ever.replayed........c
b060 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 73 79 6e 74 68 65 onst.abortResidual.=.this.synthe
b080 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 09 09 09 09 09 09 sizeResidualToolResults(........
b0a0 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 6b 73 2c 0a 09 09 stepToolCalls,........chunks,...
b0c0 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 6f 72 74 65 64 3a .....`Error:.Stream.was.aborted:
b0e0 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 09 09 66 6f 72 20 .${reason}`,.......);.......for.
b100 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 20 7b 0a 09 09 09 (const.r.of.abortResidual).{....
b120 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 20 ....appendEventToChunks(chunks,.
b140 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 7d 0a 0a 09 09 09 r);........yield.r;.......}.....
b160 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 28 ...const.errorMsg.=.formatError(
b180 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 6e 66 69 67 29 3b new.Error(reason),.this.config);
b1a0 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 6e .......const.internalEvent:.Agen
b1c0 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 65 72 72 6f 72 3a tEvent.=.{.type:."error",.error:
b1e0 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 76 65 6e 74 54 6f .errorMsg.};.......appendEventTo
b200 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 6e 74 29 3b 0a 09 Chunks(chunks,.internalEvent);..
b220 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 09 09 09 09 09 09 .....yield.internalEvent;.......
b240 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 09 09 09 79 69 65 this.status.=."error";.......yie
b260 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 73 3a 20 22 65 72 ld.{.type:."status",.status:."er
b280 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 09 7d 20 65 6c 73 ror".};.......return;......}.els
b2a0 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 72 22 29 20 7b 0a e.if.(event.type.===."error").{.
b2c0 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 65 6e 74 2e 65 72 ......const.errRecord.=.event.er
b2e0 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 74 72 69 6e 67 2c ror.as.unknown.as.Record<string,
b300 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 74 75 73 43 6f 64 .unknown>;.......const.statusCod
b320 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 64 2e 73 74 61 74 e.=........typeof.errRecord.stat
b340 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 65 63 6f 72 64 2e usCode.===."number".?.errRecord.
b360 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 09 09 09 09 63 6f statusCode.:.undefined;.......co
b380 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 28 65 76 65 6e 74 nst.errorMsg.=.formatError(event
b3a0 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 09 09 2f 2f 20 46 .error,.this.config);.......//.F
b3c0 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 6e 79 20 75 6e 72 ill.in.error.results.for.any.unr
b3e0 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 09 09 2f 2f 20 74 esolved.tool.calls.so.......//.t
b400 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 64 6f 6e 27 74 20 he.orphaned.tool-call.IDs.don't.
b420 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 54 6f 6f 6c 52 65 trigger.a.......//.MissingToolRe
b440 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 20 69 73 20 65 76 sultsError.if.this.history.is.ev
b460 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 74 72 65 61 6d 45 er.replayed........const.streamE
b480 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 7a 65 52 65 73 69 rrResidual.=.this.synthesizeResi
b4a0 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 65 70 54 6f 6f 6c dualToolResults(........stepTool
b4c0 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 09 09 09 60 45 72 Calls,........chunks,........`Er
b4e0 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 3b 0a 09 09 09 09 ror:.${errorMsg}`,.......);.....
b500 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 72 52 65 73 69 64 ..for.(const.r.of.streamErrResid
b520 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 6f 43 68 75 6e 6b ual).{........appendEventToChunk
b540 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 20 72 3b 0a 09 09 s(chunks,.r);........yield.r;...
b560 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 6c 45 76 65 6e 74 ....}........const.internalEvent
b580 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 70 65 3a 20 22 65 :.AgentEvent.=.{........type:."e
b5a0 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 4d 73 67 2c 0a 09 rror",........error:.errorMsg,..
b5c0 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 6e 64 65 66 69 6e .........(statusCode.!==.undefin
b5e0 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 0a 09 09 09 09 09 ed.?.{.statusCode.}.:.{}),......
b600 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 6e 6b 73 28 63 68 .};.......appendEventToChunks(ch
b620 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 79 69 65 6c unks,.internalEvent);.......yiel
b640 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 73 2e 73 74 61 74 d.internalEvent;.......this.stat
b660 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 7b 20 74 79 70 65 us.=."error";.......yield.{.type
b680 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 22 20 7d 3b 0a 09 :."status",.status:."error".};..
b6a0 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 66 20 28 65 76 65 .....return;......}.else.if.(eve
b6c0 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 20 7b 0a 09 09 09 nt.type.===."finish-step").{....
b6e0 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 72 20 60 73 74 72 ...//.One.`finish-step`.per.`str
b700 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 54 20 74 68 65 0a eamText`.step..This.....NOT.the.
b720 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 20 70 61 72 74 20 ......//.terminal.`finish`.part.
b740 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 74 73 20 74 68 65 ....is.where.the.AI.SDK.puts.the
b760 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 20 28 74 68 65 20 .......//.per-step.`usage`.(the.
b780 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 20 74 68 65 0a 09 `finish`.part.only.carries.the..
b7a0 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 61 67 65 60 29 2e .....//.aggregate.`totalUsage`).
b7c0 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 20 68 6f 6c 64 73 .`usage.inputTokenDetails`.holds
b7e0 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 70 74 2d 63 61 63 .......//.Anthropic's.prompt-cac
b800 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 20 70 6f 77 65 72 he.read/write.split,.which.power
b820 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 76 69 65 77 2e 20 s.the.......//.Cache.Rate.view..
b840 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 20 70 72 6f 6d 70 `inputTokens`.is.the.TOTAL.promp
b860 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 29 2e 20 53 6b 69 t.(cached.+.......//.fresh)..Ski
b880 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 73 20 61 74 74 61 p.emission.when.no.usage.is.atta
b8a0 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 6f 63 6b 73 29 20 ched.(e.g..test.......//.mocks).
b8c0 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 6c 6c 2d 7a 65 72 so.we.never.broadcast.an.all-zer
b8e0 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 20 75 20 3d 20 28 o.usage.event........const.u.=.(
b900 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 65 4d 6f 64 65 6c event.as.{.usage?:.LanguageModel
b920 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 75 29 20 7b 0a 09 Usage.}).usage;.......if.(u).{..
b940 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 70 75 74 54 6f 6b ......const.details.=.u.inputTok
b960 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 61 67 65 45 76 65 enDetails;........const.usageEve
b980 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 79 70 65 3a nt:.AgentEvent.=.{.........type:
b9a0 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 0a 09 09 09 09 09 ."usage",.........usage:.{......
b9c0 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 6b 65 6e 73 20 3f ....inputTokens:.u.inputTokens.?
b9e0 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 3a 20 75 2e 6f 75 ?.0,..........outputTokens:.u.ou
ba00 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 63 61 63 68 65 52 tputTokens.??.0,..........cacheR
ba20 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 65 61 64 54 6f 6b eadTokens:.details?.cacheReadTok
ba40 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 69 74 65 54 6f 6b ens.??.0,..........cacheWriteTok
ba60 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 6b 65 6e 73 20 3f ens:.details?.cacheWriteTokens.?
ba80 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 09 09 09 09 09 09 ?.0,.........},........};.......
baa0 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 47 45 3d 31 20 74 .//.Set.DISPATCH_DEBUG_USAGE=1.t
bac0 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 09 09 09 09 09 09 o.print.the.raw.per-step........
bae0 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 20 e2 80 94 20 6c //.usage.to.the.server.log.....l
bb00 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 73 0a 09 09 09 09 ets.you.confirm.cache.reads.....
bb20 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 20 74 68 65 20 55 ...//.are.non-zero.without.the.U
bb40 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 44 49 53 50 41 54 I.........if.(process.env.DISPAT
bb60 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 63 6f 6e 73 6f 6c CH_DEBUG_USAGE).{.........consol
bb80 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 2c 20 4a 53 4f 4e e.error("[dispatch.usage]",.JSON
bba0 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 65 29 29 3b 0a 09 .stringify(usageEvent.usage));..
bbc0 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 6e 64 65 64 20 74 ......}........//.Not.appended.t
bbe0 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 6d 65 74 72 79 2c o.chunks.....usage.is.telemetry,
bc00 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 74 65 6e 74 20 28 .not........//.message.content.(
bc20 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 09 09 09 09 09 09 see.appendEventToChunks)........
bc40 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 0a 09 09 09 09 09 .yield.usageEvent;.......}......
bc60 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 69 6e 74 65 6e 74 }......//.Ignored.events.(intent
bc80 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 65 78 74 2d 73 74 ional):......//...start,.text-st
bca0 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 74 61 72 74 2c 0a art,.text-end,.reasoning-start,.
bcc0 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 2c 20 74 6f 6f 6c .....//...tool-input-start,.tool
bce0 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 6e 64 2c 0a 09 09 -input-delta,.tool-input-end,...
bd00 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 66 69 72 65 73 20 ...//...tool-result.(only.fires.
bd20 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 64 6f 6e 27 74 29 if.tool.has.execute;.ours.don't)
bd40 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 6e 69 73 68 20 28 ,......//...start-step,.finish.(
bd60 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 2c 20 72 61 77 2c aggregate.totalUsage.only),.raw,
bd80 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 6f 6f 6c 2d 6f 75 ......//...source,.file,.tool-ou
bda0 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 2d 2a 0a 09 09 09 tput-denied,.tool-approval-*....
bdc0 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 65 61 6e 73 20 74 .}......//.No.tool.calls.means.t
bde0 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 73 73 69 73 74 61 he.agent.is.done.....the.assista
be00 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 65 78 69 73 74 73 nt.message.....//.already.exists
be20 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 6f 2d 64 61 74 65 .in.stepMessages.with.up-to-date
be40 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 61 6c 6c 73 2e 6c .chunks......if.(stepToolCalls.l
be60 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 70 4c 69 66 65 63 ength.===.0).{......logStepLifec
be80 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 6f 6e 66 69 67 2e ycle({.......tabId:.this.config.
bea0 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 76 65 6e 74 3a 20 tabId,.......step,.......event:.
bec0 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 7d 29 3b 0a 09 09 "step-end-no-tools",......});...
bee0 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 62 49 64 3a 20 74 ...logAgentLoop({.......tabId:.t
bf00 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 65 6e 74 3a 20 22 his.config.tabId,.......event:."
bf20 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 69 6c 3a 20 7b 20 run-end-clean",.......detail:.{.
bf40 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 3b 0a 09 09 09 09 steps:.step.+.1.},......});.....
bf60 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 69 66 65 63 79 63 .break;.....}.....logStepLifecyc
bf80 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 61 62 le({......tabId:.this.config.tab
bfa0 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 65 70 Id,......step,......event:."step
bfc0 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 7b 0a 09 09 09 09 -has-tools",......detail:.{.....
bfe0 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 2e 6c 65 6e 67 74 ..toolCount:.stepToolCalls.lengt
c000 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 6f 6c 43 61 6c 6c h,.......toolNames:.stepToolCall
c020 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 09 7d 2c 0a 09 09 s.map((t).=>.t.name),......},...
c040 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 20 63 61 6c 6c 73 ..});......//.Execute.tool.calls
c060 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 65 72 67 65 20 62 .manually..Their.results.merge.b
c080 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 73 60 20 61 63 63 ack.into.the.....//.`chunks`.acc
c0a0 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 6f 43 68 75 6e 6b umulator.via.`appendEventToChunk
c0c0 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 63 68 20 72 65 73 s`,.which.routes.....//.each.res
c0e0 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 6e 73 69 64 65 20 ult.to.the.correct.entry.inside.
c100 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 2f 2f 20 54 72 61 its.tool-batch.chunk......//.Tra
c120 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 65 20 61 20 72 65 ck.which.calls.already.have.a.re
c140 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 09 09 2f 2f 20 73 corded.result.(from.the.....//.s
c160 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 65 72 72 6f 72 20 ynthetic.unavailable-tool.error.
c180 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 09 09 2f 2f 20 72 path.above).so.we.don't.....//.r
c1a0 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 61 6c 72 65 61 64 e-execute.them......const.alread
c1c0 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 3e 28 29 3b 0a 09 yResolved.=.new.Set<string>();..
c1e0 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 20 7b 0a 09 09 09 ...for.(const.c.of.chunks).{....
c200 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 22 29 20 63 ..if.(c.type.!==."tool-batch").c
c220 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 6e 74 72 79 20 6f ontinue;......for.(const.entry.o
c240 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 72 79 2e 72 65 73 f.c.calls).{.......if.(entry.res
c260 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 52 65 73 6f 6c 76 ult.!==.undefined).alreadyResolv
c280 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 09 09 09 7d 0a 0a ed.add(entry.id);......}.....}..
c2a0 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 6f 66 20 74 68 65 ....//.Identify.the.index.of.the
c2c0 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 68 61 74 20 77 69 .last.tool.in.this.batch.that.wi
c2e0 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 2e 20 51 75 65 75 ll.....//.actually.execute..Queu
c300 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 72 65 64 20 61 63 ed.user.messages.are.buffered.ac
c320 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 20 69 6e 6a 65 63 ross.....//.this.batch.and.injec
c340 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 72 65 73 75 6c 74 ted.into.ONLY.that.tool's.result
c360 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 61 70 70 65 61 72 ,.so.the.....//.interrupt.appear
c380 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 74 68 65 72 20 74 s.exactly.once.per.step.rather.t
c3a0 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 73 73 20 77 68 69 han.fragmented.....//.across.whi
c3c0 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 71 75 65 75 65 20 chever.tool.happened.to.dequeue.
c3e0 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 6e 74 65 72 72 75 first..Tool-level.....//.interru
c400 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 6f 75 74 75 62 65 pt.handlers.in.run-shell/youtube
c420 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 2f 20 73 74 69 6c -transcribe/retrieve.....//.stil
c440 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 74 20 74 65 78 74 l.embed.their.own.interrupt.text
c460 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 94 0a 09 09 09 09 .in.their.return.values.........
c480 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 74 20 61 6e 64 20 //.that.path.is.independent.and.
c4a0 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 61 73 74 45 78 65 remains.correct......let.lastExe
c4c0 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 6c 65 74 20 69 20 cutableIdx.=.-1;.....for.(let.i.
c4e0 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 67 74 68 3b 20 69 =.0;.i.<.stepToolCalls.length;.i
c500 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 65 70 54 6f 6f 6c ++).{......const.tcAt.=.stepTool
c520 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 20 21 61 6c 72 65 Calls[i];......if.(tcAt.&&.!alre
c540 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 6c 61 73 74 45 78 adyResolved.has(tcAt.id)).lastEx
c560 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 09 09 2f 2f 20 41 ecutableIdx.=.i;.....}......//.A
c580 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 71 75 65 75 65 64 ccumulator.for.messages.dequeued
c5a0 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 64 0a 09 09 09 09 .during.this.batch..Drained.....
c5c0 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 49 64 78 60 2e 20 //.only.at.`lastExecutableIdx`..
c5e0 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 20 71 75 65 75 65 Destructive.dequeue.at.the.queue
c600 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 20 73 61 6d 65 20 .....//.level.prevents.the.same.
c620 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 73 75 62 73 65 71 message.from.appearing.in.subseq
c640 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 6f 6e 73 74 20 62 uent.....//.batches......const.b
c660 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 3a 20 73 74 72 69 atchPendingInjection:.{.id:.stri
c680 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 74 61 6d 70 3a 20 ng;.message:.string;.timestamp:.
c6a0 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 65 73 75 6c 74 73 number.}[].=.[];......//.Results
c6c0 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 20 69 6e 20 74 68 .of.already-executed.calls.in.th
c6e0 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 60 74 6f 6f 6c 44 is.batch,.keyed.by.....//.`toolD
c700 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 65 70 65 61 74 73 edupKey`..Byte-identical.repeats
c720 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 09 09 2f 2f 20 69 .reuse.the.first.result.....//.i
c740 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 6f 6f 6c 20 28 73 nstead.of.re-running.the.tool.(s
c760 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 2d 0a 09 09 09 09 ee.tool-runner-duplication-.....
c780 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 72 61 77 2c 20 70 //.incident.md)..Only.the.raw,.p
c7a0 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 75 6c 74 20 69 73 re-interrupt-injection.result.is
c7c0 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 20 63 6f 70 79 20 .....//.cached.so.a.reused.copy.
c7e0 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 27 73 20 69 6e 74 never.carries.another.call's.int
c800 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 75 6c 74 73 20 3d errupt......const.dedupResults.=
c820 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 74 3e 28 29 3b 0a .new.Map<string,.ToolResult>();.
c840 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 63 49 64 78 20 3c .....for.(let.tcIdx.=.0;.tcIdx.<
c860 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 64 78 2b 2b 29 20 .stepToolCalls.length;.tcIdx++).
c880 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 43 61 6c 6c 73 5b {......const.tc.=.stepToolCalls[
c8a0 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 72 65 61 64 79 52 tcIdx];......if.(!tc.||.alreadyR
c8c0 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 0a 09 esolved.has(tc.id)).continue;...
c8e0 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 65 64 75 70 4b 65 ....const.dedupKey.=.toolDedupKe
c900 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 0a 09 09 09 09 09 y(tc.name,.tc.arguments);.......
c920 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 20 7c 20 75 6e 64 let.toolResult:.ToolResult.|.und
c940 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 3d 20 64 65 64 75 efined;......const.cached.=.dedu
c960 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 74 73 2e 67 65 74 pKey.!==.null.?.dedupResults.get
c980 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 09 09 09 69 66 20 (dedupKey).:.undefined;......if.
c9a0 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 63 61 6c 20 63 61 (cached).{.......//.Identical.ca
c9c0 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 63 68 20 e2 80 94 ll.already.ran.in.this.batch....
c9e0 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 20 75 6e 64 65 72 .reuse.its.......//.output.under
ca00 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 65 63 75 74 69 6f .this.call's.own.id.(no.executio
ca20 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 74 20 74 6f 20 73 n,.no.shell.......//.output.to.s
ca40 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 20 7b 20 2e 2e 2e tream)........toolResult.=.{....
ca60 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 20 74 6f 6f 6c 4e cached,.toolCallId:.tc.id,.toolN
ca80 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 65 20 7b 0a 09 09 ame:.tc.name.};......}.else.{...
caa0 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 3a 20 41 72 72 61 ....const.shellOutputQueue:.Arra
cac0 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 22 73 74 64 6f 75 y<{.data:.string;.stream:."stdou
cae0 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 09 09 09 09 63 6f t".|."stderr".}>.=.[];........co
cb00 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 63 75 74 65 54 6f nst.execPromise.=.this.executeTo
cb20 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 75 74 70 75 74 51 olWithStreaming(tc,.shellOutputQ
cb40 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 73 68 65 6c 6c 20 ueue);........//.Poll.for.shell.
cb60 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 75 6e 6e 69 6e 67 output.while.the.tool.is.running
cb80 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 09 2f 2f 20 73 6f ,.using.Promise.race.......//.so
cba0 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 20 65 76 65 6e 74 .we.can.yield.shell-output.event
cbc0 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 61 6e 20 62 75 66 s.as.they.arrive.rather.than.buf
cbe0 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 6e 74 69 6c 20 74 fering.......//.them.all.until.t
cc00 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 65 20 28 74 6f 6f ool.completion........while.(too
cc20 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 09 09 09 09 09 09 lResult.===.undefined).{........
cc40 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 68 20 3e 20 30 29 if.(shellOutputQueue.length.>.0)
cc60 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 65 6c 6c 4f 75 74 .{.........const.item.=.shellOut
cc80 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 69 66 20 28 69 74 putQueue.shift();.........if.(it
cca0 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 45 76 65 6e 74 3a em).{..........const.shellEvent:
ccc0 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 74 79 70 65 3a 20 .AgentEvent.=.{...........type:.
cce0 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 64 61 74 61 3a 20 "shell-output",...........data:.
cd00 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 6d 3a 20 69 74 65 item.data,...........stream:.ite
cd20 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 09 09 09 09 09 61 m.stream,..........};..........a
cd40 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 73 68 65 6c 6c ppendEventToChunks(chunks,.shell
cd60 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 6c 6c 45 76 65 6e Event);..........yield.shellEven
cd80 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 6e 75 65 3b 0a 09 t;.........}.........continue;..
cda0 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 65 73 75 6c 74 20 ......}........const.raceResult.
cdc0 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 09 09 09 09 09 65 =.await.Promise.race([.........e
cde0 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 64 6f 6e 65 3a 20 xecPromise.then((r).=>.({.done:.
ce00 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 29 2c 0a 09 09 09 true.as.const,.value:.r.})),....
ce20 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 61 6c 73 65 20 7d .....new.Promise<{.done:.false.}
ce40 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 74 49 6d 6d 65 64 >((resolve).=>..........setImmed
ce60 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 20 66 61 6c 73 65 iate(().=>.resolve({.done:.false
ce80 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 3b 0a 09 09 09 09 .})),.........),........]);.....
cea0 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 09 09 09 09 09 09 ...if.(raceResult.done).{.......
cec0 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 76 61 6c 75 65 3b ..toolResult.=.raceResult.value;
cee0 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 2f 20 44 72 61 69 ........}.......}........//.Drai
cf00 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 75 74 20 65 6d 69 n.any.remaining.shell.output.emi
cf20 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 73 75 6c 74 0a 09 tted.before.we.read.the.result..
cf40 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 75 65 2e 6c 65 6e .....while.(shellOutputQueue.len
cf60 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 65 6d 20 3d 20 73 gth.>.0).{........const.item.=.s
cf80 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 09 09 09 09 09 09 hellOutputQueue.shift();........
cfa0 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 73 68 65 6c 6c 45 if.(item).{.........const.shellE
cfc0 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 74 79 vent:.AgentEvent.=.{..........ty
cfe0 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 64 61 74 pe:."shell-output",..........dat
d000 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 65 61 6d 3a 20 69 a:.item.data,..........stream:.i
d020 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 09 09 09 09 09 61 tem.stream,.........};.........a
d040 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 73 68 65 6c 6c ppendEventToChunks(chunks,.shell
d060 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 6c 45 76 65 6e 74 Event);.........yield.shellEvent
d080 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 2f 20 43 61 63 ;........}.......}........//.Cac
d0a0 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 20 69 64 65 6e 74 he.the.raw.result.so.later.ident
d0c0 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 2f 20 62 61 74 63 ical.calls.in.this.......//.batc
d0e0 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 64 65 64 75 70 4b h.can.reuse.it........if.(dedupK
d100 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 73 65 74 28 64 65 ey.!==.null).dedupResults.set(de
d120 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 7d 0a 0a 09 09 09 dupKey,.toolResult);......}.....
d140 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 65 72 20 6d 65 73 ..//.Harvest.any.queued.user.mes
d160 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 75 6e 74 69 6c 0a sages.but.DEFER.injection.until.
d180 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 68 65 20 62 61 74 .....//.the.last.tool.of.the.bat
d1a0 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 65 0a 09 09 09 09 ch..This.collapses.multiple.....
d1c0 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 20 73 69 6e 67 6c .//.queued.messages.into.a.singl
d1e0 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 67 6c 65 0a 09 09 e.interrupt.block.on.a.single...
d200 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 6f 66 20 66 72 61 ...//.tool-result.instead.of.fra
d220 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 0a 09 09 09 09 09 gmenting.across.the.batch.......
d240 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 0a 09 09 09 09 09 if.(this.queueCallbacks).{......
d260 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 75 65 75 65 43 61 .const.queuedMsgs.=.this.queueCa
d280 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 0a 09 09 09 09 09 llbacks.dequeueMessages();......
d2a0 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 29 20 7b 0a 09 09 .if.(queuedMsgs.length.>.0).{...
d2c0 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 2e 70 75 73 68 28 .....batchPendingInjection.push(
d2e0 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 09 09 09 7d 0a 0a ...queuedMsgs);.......}......}..
d300 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 20 74 6f 6f 6c 52 .....let.finalToolResult.=.toolR
d320 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 6c 61 73 74 45 78 esult;......if.(tcIdx.===.lastEx
d340 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 67 49 6e 6a 65 63 ecutableIdx.&&.batchPendingInjec
d360 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 6f 6e 73 74 20 75 tion.length.>.0).{.......const.u
d380 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 6e 6a 65 63 74 serMessages.=.batchPendingInject
d3a0 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 6f 69 6e 28 22 ion.map((m).=>.m.message).join("
d3c0 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 52 65 73 75 6c 74 \n---\n");.......finalToolResult
d3e0 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 0a 09 09 09 09 09 .=.{...........toolResult,......
d400 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 73 75 6c 74 7d 5c ..result:.`${toolResult.result}\
d420 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 73 65 72 20 68 61 n\n[USER.INTERRUPT]\nThe.user.ha
d440 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 65 20 79 6f 75 20 s.sent.you.message(s).while.you.
d460 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 72 65 73 73 20 74 were.working..You.MUST.address.t
d480 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 68 20 79 6f 75 72 hese.before.continuing.with.your
d4a0 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 73 73 61 67 65 73 .current.task:\n\n${userMessages
d4c0 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 6e 64 69 6e 67 49 }`,.......};.......batchPendingI
d4e0 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 7d 0a 0a 09 09 09 njection.length.=.0;......}.....
d500 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 7b 20 ..const.trEvent:.AgentEvent.=.{.
d520 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 65 73 75 6c 74 3a type:."tool-result",.toolResult:
d540 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 70 70 65 6e 64 45 .finalToolResult.};......appendE
d560 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 6e 74 29 3b 0a 09 ventToChunks(chunks,.trEvent);..
d580 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 09 09 09 09 2f 2f ....yield.trEvent;.....}......//
d5a0 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 74 61 62 6c 65 49 .Safety.net:.if.`lastExecutableI
d5c0 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 2e 2c 0a 09 09 09 dx`.was.never.reached.(e.g.,....
d5e0 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 75 73 65 20 61 6c .//.no.tools.executed.because.al
d600 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 75 74 0a 09 09 09 l.were.already.resolved).but....
d620 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 71 75 65 75 65 64 .//.messages.were.still.dequeued
d640 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 65 73 73 61 67 65 ,.surface.them.as.a.user.message
d660 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 70 70 65 64 2e 20 .....//.so.they.aren't.dropped..
d680 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 80 94 20 69 74 20 In.practice.this.is.rare.....it.
d6a0 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 68 65 20 65 6e 74 only.....//.happens.when.the.ent
d6c0 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 6f 6f 6c 20 73 79 ire.batch.is.unavailable-tool.sy
d6e0 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 74 68 20 61 20 6d nthesized.....//.errors.with.a.m
d700 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 72 72 6f 77 20 77 essage.arriving.in.that.narrow.w
d720 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 67 49 6e 6a 65 63 indow......if.(batchPendingInjec
d740 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 6e 73 74 20 75 73 tion.length.>.0).{......const.us
d760 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 6e 6a 65 63 74 69 erMessages.=.batchPendingInjecti
d780 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 6f 69 6e 28 22 5c on.map((m).=>.m.message).join("\
d7a0 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 65 73 2e 70 75 73 n---\n");......this.messages.pus
d7c0 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 09 09 09 09 63 68 h({.......role:."user",.......ch
d7e0 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 74 3a 20 75 73 65 unks:.[{.type:."text",.text:.use
d800 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 09 09 62 61 74 63 rMessages.}],......});......batc
d820 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 20 30 3b 0a 09 09 hPendingInjection.length.=.0;...
d840 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 65 74 3a 20 61 66 ..}......//.Final.safety.net:.af
d860 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 75 61 72 61 6e 74 ter.executing.the.batch,.guarant
d880 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 72 65 63 6f 72 64 ee.every.....//.tool-call.record
d8a0 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 68 69 6e 67 20 72 ed.in.this.step.has.a.matching.r
d8c0 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 70 20 62 61 63 6b esult.before.we.....//.loop.back
d8e0 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 20 49 44 20 74 68 .to.the.LLM..Any.tool-call.ID.th
d900 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 77 69 74 68 6f 75 at.slipped.through.....//.withou
d920 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 27 74 20 61 6e 74 t.a.result.(a.path.we.didn't.ant
d940 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 09 09 09 2f 2f 20 icipate).would.otherwise.....//.
d960 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 54 6f 6f 6c 52 65 orphan.and.trigger.MissingToolRe
d980 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 09 2f 2f 20 72 6f sultsError.on.the.next.....//.ro
d9a0 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 52 65 73 69 64 75 und-trip......const.safetyResidu
d9c0 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 61 6c 54 6f 6f 6c al.=.this.synthesizeResidualTool
d9e0 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 73 2c 0a 09 09 09 Results(......stepToolCalls,....
da00 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 65 72 6e 61 6c 20 ..chunks,......"Error:.Internal.
da20 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 65 72 20 70 72 6f error:.tool.result.was.never.pro
da40 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 6f 6e 73 74 20 72 duced.",.....);.....for.(const.r
da60 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 09 61 70 70 65 6e .of.safetyResidual).{......appen
da80 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 0a 09 09 09 09 09 dEventToChunks(chunks,.r);......
daa0 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 20 42 75 69 6c 64 yield.r;.....}....}.....//.Build
dac0 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 67 65 20 66 72 6f .the.final.assistant.message.fro
dae0 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 09 09 09 2f 2f 20 m.the.accumulated.chunks.....//.
db00 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 67 65 20 77 61 73 If.no.assistant.turn.message.was
db20 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 6f 64 65 6c 0a 09 .ever.created.(e.g.,.the.model..
db40 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 75 6e 75 73 75 61 ..//.produced.nothing.....unusua
db60 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 65 20 61 6e 20 65 l.but.possible),.synthesize.an.e
db80 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 6e 74 4d 65 73 73 mpty.one.....const.assistantMess
dba0 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 6e 74 54 75 72 6e age:.ChatMessage.=.assistantTurn
dbc0 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 73 69 73 74 61 6e Message.??.{.....role:."assistan
dbe0 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 2f 20 60 61 73 73 t",.....chunks,....};....//.`ass
dc00 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 68 65 64 20 69 6e istantTurnMessage`.was.pushed.in
dc20 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 69 6e 74 6f 0a 09 to.`stepMessages`.but.not.into..
dc40 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 75 73 68 20 69 74 ..//.`this.messages`.....push.it
dc60 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 64 2d 66 61 63 69 .now.so.the.agent's.outward-faci
dc80 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 74 68 65 20 74 75 ng....//.history.reflects.the.tu
dca0 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 61 73 73 69 73 74 rn.....this.messages.push(assist
dcc0 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 71 75 65 75 65 64 antMessage);.....//.NOTE:.queued
dce0 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 52 20 74 68 65 20 .messages.that.arrive.AFTER.the.
dd00 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 09 2f 2f 20 6e 6f last.tool.call.(or.with....//.no
dd20 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 74 65 6e 74 69 6f .tool.calls.at.all).are.intentio
dd40 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 61 69 6e 69 6e 67 nally.NOT.drained.here..Draining
dd60 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 73 61 67 65 73 60 ....//.them.into.`this.messages`
dd80 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 80 94 20 74 68 65 .as.a.trailing.user.turn.....the
dda0 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 65 66 74 20 74 68 .old....//.behaviour.....left.th
ddc0 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 20 6e 6f 20 6d 6f em.sitting.in.history.with.no.mo
dde0 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 72 6e 20 65 6e 64 del.response:....//.the.turn.end
de00 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 65 6d 20 28 74 68 ed.instead.of.answering.them.(th
de20 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 2f 20 61 66 74 65 e."queue.not.consumed....//.afte
de40 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 79 20 6e 6f 77 20 r.the.turn.ends".bug)..They.now.
de60 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 09 09 2f 2f 20 6f stay.on.the.queue.so.the....//.o
de80 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 2e 70 72 6f 63 65 rchestrator.(`AgentManager.proce
dea0 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 65 73 68 20 74 75 ssMessage`).can.start.a.fresh.tu
dec0 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 73 20 6f 6e 65 20 rn....//.for.them.once.this.one.
dee0 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 74 73 20 61 72 65 settles..Mid-turn.interrupts.are
df00 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 20 74 68 65 20 6c .still....//.injected.into.the.l
df20 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 74 68 61 74 20 70 ast.tool.result.above.....that.p
df40 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 64 20 7b 20 74 79 ath.is.unchanged......yield.{.ty
df60 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 74 61 6e 74 4d 65 pe:."done",.message:.assistantMe
df80 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 0a 09 09 09 63 6f ssage.};...}.catch.(err).{....co
dfa0 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 6e 6f 77 6e 20 61 nst.errRecord.=.err.as.unknown.a
dfc0 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 0a 09 09 09 63 6f s.Record<string,.unknown>;....co
dfe0 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 66 20 65 72 72 52 nst.statusCode.=.....typeof.errR
e000 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 65 72 22 20 3f 20 ecord.statusCode.===."number".?.
e020 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 65 66 69 6e 65 64 errRecord.statusCode.:.undefined
e040 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 61 74 45 72 72 6f ;....const.errorMsg.=.formatErro
e060 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 65 6c 64 20 7b 20 r(err,.this.config);....yield.{.
e080 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 72 4d 73 67 2c 20 type:."error",.error:.errorMsg,.
e0a0 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 65 64 20 3f 20 7b ...(statusCode.!==.undefined.?.{
e0c0 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 74 68 69 73 2e 73 .statusCode.}.:.{}).};....this.s
e0e0 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 7b 20 74 79 70 65 tatus.=."error";....yield.{.type
e100 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 22 20 7d 3b 0a 09 :."status",.status:."error".};..
e120 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 75 73 20 3d 20 22 ..return;...}....this.status.=."
e140 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 61 74 75 73 22 2c idle";...yield.{.type:."status",
e160 20 73 74 61 74 75 73 3a 20 22 69 64 6c 65 22 20 7d 3b 0a 09 7d 0a 7d 0a .status:."idle".};..}.}.