summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/agent/agent.ts
blob: 08b317a8b6433c6033777766c54e1307a104ac0c (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 0a 09 46 69 6c 65 50 61 72 74 2c 0a 09 49 6d s";.import.type.{..FilePart,..Im
0080 61 67 65 50 61 72 74 2c 0a 09 4c 61 6e 67 75 61 67 65 4d 6f 64 65 6c 55 73 61 67 65 2c 0a 09 4d agePart,..LanguageModelUsage,..M
00a0 6f 64 65 6c 4d 65 73 73 61 67 65 2c 0a 09 53 79 73 74 65 6d 4d 6f 64 65 6c 4d 65 73 73 61 67 65 odelMessage,..SystemModelMessage
00c0 2c 0a 09 54 65 78 74 50 61 72 74 2c 0a 7d 20 66 72 6f 6d 20 22 61 69 22 3b 0a 69 6d 70 6f 72 74 ,..TextPart,.}.from."ai";.import
00e0 20 7b 20 73 74 72 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 .{.streamText.}.from."ai";.impor
0100 74 20 7b 20 67 65 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 t.{.getAgentDirPaths.}.from."../
0120 61 67 65 6e 74 73 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 agents/loader.js";.import.{.appe
0140 6e 64 45 76 65 6e 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 ndEventToChunks.}.from."../chunk
0160 73 2f 61 70 70 65 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 s/append.js";.import.{.buildBill
0180 69 6e 67 48 65 61 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 ingHeaderValue,.SYSTEM_IDENTITY.
01a0 7d 20 66 72 6f 6d 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 }.from."../credentials/claude.js
01c0 22 3b 0a 69 6d 70 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 ";.import.{..logAgentLoop,..logS
01e0 74 65 70 4c 69 66 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 tepLifecycle,..logStreamEvent,..
0200 6e 65 78 74 44 65 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 nextDebugSeq,.}.from."../llm/deb
0220 75 67 2d 6c 6f 67 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 ug-logger.js";.import.{.createPr
0240 6f 76 69 64 65 72 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 ovider,.prefixToolName,.unprefix
0260 54 6f 6f 6c 4e 61 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 ToolName.}.from."../llm/provider
0280 2e 6a 73 22 3b 0a 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 .js";.import.{.canonicalize.}.fr
02a0 6f 6d 20 22 2e 2e 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 om."../tools/path-utils.js";.imp
02c0 6f 72 74 20 7b 20 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 ort.{.createToolRegistry.}.from.
02e0 22 2e 2e 2f 74 6f 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 "../tools/registry.js";.import.{
0300 20 61 6e 61 6c 79 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 .analyzeCommand.}.from."../tools
0320 2f 73 68 65 6c 6c 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 /shell-analyze.js";.import.{.app
0340 6c 79 54 72 75 6e 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 lyTruncation,.SPILL_ROOT.}.from.
0360 22 2e 2e 2f 74 6f 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 "../tools/truncate.js";.import.t
0380 79 70 65 20 7b 0a 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 ype.{..AgentConfig,..AgentEvent,
03a0 0a 09 41 67 65 6e 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 ..AgentStatus,..ChatMessage,..Ch
03c0 75 6e 6b 2c 0a 09 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 unk,..QueueCallbacks,..Reasoning
03e0 45 66 66 6f 72 74 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 Effort,..ToolCall,..ToolResult,.
0400 09 55 73 65 72 43 6f 6e 74 65 6e 74 50 61 72 74 2c 0a 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 79 70 .UserContentPart,.}.from."../typ
0420 65 73 2f 69 6e 64 65 78 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 44 45 46 41 55 4c 54 5f 52 es/index.js";.import.{.DEFAULT_R
0440 45 41 53 4f 4e 49 4e 47 5f 45 46 46 4f 52 54 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 79 70 65 73 EASONING_EFFORT.}.from."../types
0460 2f 69 6e 64 65 78 2e 6a 73 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 62 75 69 6c 64 20 41 49 20 53 /index.js";../**..*.Rebuild.AI.S
0480 44 4b 20 60 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 60 20 66 72 6f 6d 20 6f 75 72 20 69 6e 74 DK.`ModelMessage[]`.from.our.int
04a0 65 72 6e 61 6c 20 60 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 60 2e 0a 20 2a 0a 20 2a 20 53 74 72 ernal.`ChatMessage[]`...*..*.Str
04c0 69 70 20 72 75 6c 65 73 20 28 73 65 65 20 70 6c 61 6e 2d 63 68 75 6e 6b 2d 72 65 66 61 63 74 6f ip.rules.(see.plan-chunk-refacto
04e0 72 2e 6d 64 29 3a 0a 20 2a 20 20 2d 20 60 72 6f 6c 65 3a 20 22 73 79 73 74 65 6d 22 60 20 6d 65 r.md):..*..-.`role:."system"`.me
0500 73 73 61 67 65 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 77 68 6f 6c 65 73 61 6c 65 20 28 74 68 ssages.are.skipped.wholesale.(th
0520 65 79 27 72 65 20 64 69 73 70 6c 61 79 2d 6f 6e 6c 79 0a 20 2a 20 20 20 20 73 74 61 6e 64 61 6c ey're.display-only..*....standal
0540 6f 6e 65 2d 73 79 73 74 65 6d 20 62 75 62 62 6c 65 73 20 74 68 61 74 20 65 78 69 73 74 20 6f 75 one-system.bubbles.that.exist.ou
0560 74 73 69 64 65 20 61 6e 79 20 6d 6f 64 65 6c 20 74 75 72 6e 29 2e 0a 20 2a 20 20 2d 20 60 65 72 tside.any.model.turn)...*..-.`er
0580 72 6f 72 60 20 63 68 75 6e 6b 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 e2 80 94 20 74 68 65 20 ror`.chunks.are.skipped.....the.
05a0 74 75 72 6e 20 65 6e 64 65 64 3b 20 74 68 65 20 4c 4c 4d 20 64 6f 65 73 6e 27 74 20 6e 65 65 64 turn.ended;.the.LLM.doesn't.need
05c0 20 74 68 65 6d 2e 0a 20 2a 20 20 2d 20 60 73 79 73 74 65 6d 60 20 63 68 75 6e 6b 73 20 61 72 65 .them...*..-.`system`.chunks.are
05e0 20 73 6b 69 70 70 65 64 20 e2 80 94 20 64 69 73 70 6c 61 79 2d 6f 6e 6c 79 20 6e 6f 74 69 63 65 .skipped.....display-only.notice
0600 73 2e 0a 20 2a 20 20 2d 20 60 74 65 78 74 60 20 63 68 75 6e 6b 73 20 e2 86 92 20 60 7b 20 74 79 s...*..-.`text`.chunks.....`{.ty
0620 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 20 7d 60 20 70 61 72 74 73 2e 0a 20 2a 20 20 2d pe:."text",.text.}`.parts...*..-
0640 20 60 74 68 69 6e 6b 69 6e 67 60 20 63 68 75 6e 6b 73 20 e2 86 92 20 60 7b 20 74 79 70 65 3a 20 .`thinking`.chunks.....`{.type:.
0660 22 72 65 61 73 6f 6e 69 6e 67 22 2c 20 74 65 78 74 2c 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f "reasoning",.text,.providerOptio
0680 6e 73 3f 20 7d 60 20 70 61 72 74 73 2e 0a 20 2a 20 20 20 20 54 68 65 20 60 70 72 6f 76 69 64 65 ns?.}`.parts...*....The.`provide
06a0 72 4f 70 74 69 6f 6e 73 60 20 63 61 72 72 69 65 73 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 rOptions`.carries.the.Anthropic.
06c0 73 69 67 6e 61 74 75 72 65 20 62 6c 6f 62 20 28 69 66 20 70 72 65 73 65 6e 74 29 20 73 6f 0a 20 signature.blob.(if.present).so..
06e0 2a 20 20 20 20 41 6e 74 68 72 6f 70 69 63 20 63 61 6e 20 76 61 6c 69 64 61 74 65 20 65 78 74 65 *....Anthropic.can.validate.exte
0700 6e 64 65 64 2d 74 68 69 6e 6b 69 6e 67 20 72 6f 75 6e 64 2d 74 72 69 70 73 2e 20 4e 6f 6e 2d 41 nded-thinking.round-trips..Non-A
0720 6e 74 68 72 6f 70 69 63 0a 20 2a 20 20 20 20 72 65 61 73 6f 6e 69 6e 67 20 68 61 73 20 6e 6f 20 nthropic..*....reasoning.has.no.
0740 6d 65 74 61 64 61 74 61 20 61 6e 64 20 69 73 20 73 65 6e 74 20 77 69 74 68 6f 75 74 20 70 72 6f metadata.and.is.sent.without.pro
0760 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 61 63 63 65 70 74 65 64 0a 20 2a 20 20 20 20 62 79 20 viderOptions.(accepted..*....by.
0780 41 6e 74 68 72 6f 70 69 63 20 e2 80 94 20 69 74 20 6a 75 73 74 20 77 6f 6e 27 74 20 76 65 72 69 Anthropic.....it.just.won't.veri
07a0 66 79 20 61 20 6d 69 73 73 69 6e 67 20 73 69 67 6e 61 74 75 72 65 29 2e 0a 20 2a 20 20 2d 20 60 fy.a.missing.signature)...*..-.`
07c0 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 20 e2 86 92 20 6f 6e 65 20 60 7b 20 74 79 tool-batch`.chunks.....one.`{.ty
07e0 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7d 60 20 70 61 72 74 20 70 65 72 20 65 6e 74 72 pe:."tool-call".}`.part.per.entr
0800 79 0a 20 2a 20 20 20 20 69 6e 73 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 73 73 69 73 y..*....inside.the.current.assis
0820 74 61 6e 74 20 6d 65 73 73 61 67 65 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 53 49 4e 47 tant.message,.followed.by.a.SING
0840 4c 45 0a 20 2a 20 20 20 20 60 7b 20 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 2c 20 63 6f 6e 74 65 6e LE..*....`{.role:."tool",.conten
0860 74 3a 20 5b 2e 2e 2e 61 6c 6c 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 72 74 73 5d 20 7d 60 t:.[...all.tool-result.parts].}`
0880 20 6d 65 73 73 61 67 65 20 68 6f 6c 64 69 6e 67 0a 20 2a 20 20 20 20 65 76 65 72 79 20 65 6e 74 .message.holding..*....every.ent
08a0 72 79 20 74 68 61 74 20 68 61 73 20 61 20 72 65 73 75 6c 74 2e 20 47 72 6f 75 70 69 6e 67 20 28 ry.that.has.a.result..Grouping.(
08c0 72 61 74 68 65 72 20 74 68 61 6e 20 6f 6e 65 20 6d 65 73 73 61 67 65 20 70 65 72 0a 20 2a 20 20 rather.than.one.message.per..*..
08e0 20 20 72 65 73 75 6c 74 29 20 6b 65 65 70 73 20 41 6e 74 68 72 6f 70 69 63 20 70 72 6f 6d 70 74 ..result).keeps.Anthropic.prompt
0900 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 6c 61 6e 64 69 6e 67 20 6f 6e 20 -caching.breakpoints.landing.on.
0920 74 68 65 0a 20 2a 20 20 20 20 61 73 73 69 73 74 61 6e 74 2f 74 6f 6f 6c 20 74 75 72 6e 20 62 6f the..*....assistant/tool.turn.bo
0940 75 6e 64 61 72 79 3b 20 74 68 65 20 77 69 72 65 20 66 6f 72 6d 61 74 20 69 73 20 69 64 65 6e 74 undary;.the.wire.format.is.ident
0960 69 63 61 6c 20 66 6f 72 20 62 6f 74 68 20 74 68 65 0a 20 2a 20 20 20 20 41 6e 74 68 72 6f 70 69 ical.for.both.the..*....Anthropi
0980 63 20 61 6e 64 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 73 c.and.OpenAI-compatible.backends
09a0 2e 0a 20 2a 0a 20 2a 20 4d 69 78 65 64 2d 72 65 73 6f 6c 75 74 69 6f 6e 20 74 6f 6f 6c 20 62 61 ...*..*.Mixed-resolution.tool.ba
09c0 74 63 68 65 73 20 28 73 6f 6d 65 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 60 72 65 73 75 6c 74 tches.(some.entries.with.`result
09e0 60 2c 20 73 6f 6d 65 20 77 69 74 68 6f 75 74 29 3a 0a 20 2a 20 77 65 20 65 6d 69 74 20 74 6f 6f `,.some.without):..*.we.emit.too
0a00 6c 2d 72 65 73 75 6c 74 73 20 6f 6e 6c 79 20 66 6f 72 20 74 68 65 20 65 6e 74 72 69 65 73 20 74 l-results.only.for.the.entries.t
0a20 68 61 74 20 68 61 76 65 20 74 68 65 6d 2e 20 49 6e 20 70 72 61 63 74 69 63 65 0a 20 2a 20 74 68 hat.have.them..In.practice..*.th
0a40 65 20 61 67 65 6e 74 20 72 65 73 6f 6c 76 65 73 20 65 76 65 72 79 20 74 6f 6f 6c 20 63 61 6c 6c e.agent.resolves.every.tool.call
0a60 20 69 6e 20 61 20 73 74 65 70 20 62 65 66 6f 72 65 20 6c 6f 6f 70 69 6e 67 20 62 61 63 6b 20 74 .in.a.step.before.looping.back.t
0a80 6f 20 74 68 65 0a 20 2a 20 4c 4c 4d 2c 20 73 6f 20 74 68 69 73 20 63 61 73 65 20 6f 6e 6c 79 20 o.the..*.LLM,.so.this.case.only.
0aa0 61 72 69 73 65 73 20 6d 69 64 2d 73 74 65 70 20 28 77 68 65 72 65 20 74 68 65 20 6d 65 73 73 61 arises.mid-step.(where.the.messa
0ac0 67 65 20 68 61 73 6e 27 74 20 62 65 65 6e 0a 20 2a 20 72 6f 75 6e 64 2d 74 72 69 70 70 65 64 20 ge.hasn't.been..*.round-tripped.
0ae0 74 6f 20 74 68 65 20 4c 4c 4d 20 79 65 74 29 20 61 6e 64 20 69 73 20 62 65 6e 69 67 6e 2e 0a 20 to.the.LLM.yet).and.is.benign...
0b00 2a 2f 0a 2f 2a 2a 0a 20 2a 20 4d 61 72 6b 65 72 20 75 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 */./**..*.Marker.used.to.identif
0b20 79 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 60 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 y.the.start.of.a.`[USER.INTERRUP
0b40 54 5d 60 20 62 6c 6f 63 6b 20 65 6d 62 65 64 64 65 64 0a 20 2a 20 69 6e 20 61 20 74 6f 6f 6c 20 T]`.block.embedded..*.in.a.tool.
0b60 72 65 73 75 6c 74 2e 20 42 6f 74 68 20 74 68 65 20 61 67 65 6e 74 2d 6c 65 76 65 6c 20 69 6e 6a result..Both.the.agent-level.inj
0b80 65 63 74 69 6f 6e 0a 20 2a 20 28 60 70 61 63 6b 61 67 65 73 2f 63 6f 72 65 2f 73 72 63 2f 61 67 ection..*.(`packages/core/src/ag
0ba0 65 6e 74 2f 61 67 65 6e 74 2e 74 73 60 29 20 61 6e 64 20 74 68 65 20 74 6f 6f 6c 2d 6c 65 76 65 ent/agent.ts`).and.the.tool-leve
0bc0 6c 20 69 6e 6a 65 63 74 69 6f 6e 73 20 69 6e 0a 20 2a 20 60 72 75 6e 2d 73 68 65 6c 6c 60 2c 20 l.injections.in..*.`run-shell`,.
0be0 60 79 6f 75 74 75 62 65 2d 74 72 61 6e 73 63 72 69 62 65 60 2c 20 61 6e 64 20 60 72 65 74 72 69 `youtube-transcribe`,.and.`retri
0c00 65 76 65 60 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 73 65 70 61 72 61 74 6f 72 0a 20 2a 20 28 eve`.use.the.same.separator..*.(
0c20 60 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 29 20 62 65 66 6f 72 65 20 74 `\n\n[USER.INTERRUPT]`).before.t
0c40 68 65 20 62 6f 69 6c 65 72 70 6c 61 74 65 2c 20 73 6f 20 61 20 73 69 6e 67 6c 65 20 73 75 62 73 he.boilerplate,.so.a.single.subs
0c60 74 72 69 6e 67 0a 20 2a 20 73 65 61 72 63 68 20 73 75 66 66 69 63 65 73 20 66 6f 72 20 73 74 72 tring..*.search.suffices.for.str
0c80 69 70 70 69 6e 67 2e 0a 20 2a 2f 0a 63 6f 6e 73 74 20 55 53 45 52 5f 49 4e 54 45 52 52 55 50 54 ipping...*/.const.USER_INTERRUPT
0ca0 5f 4d 41 52 4b 45 52 20 3d 20 22 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 22 _MARKER.=."\n\n[USER.INTERRUPT]"
0cc0 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 60 5b 55 53 45 52 20 49 4e 54 45 ;../**..*.Remove.the.`[USER.INTE
0ce0 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 28 61 6e 64 20 65 76 65 72 79 74 68 69 6e 67 20 61 66 RRUPT]`.block.(and.everything.af
0d00 74 65 72 20 69 74 29 20 66 72 6f 6d 20 61 20 74 6f 6f 6c 0a 20 2a 20 72 65 73 75 6c 74 20 73 74 ter.it).from.a.tool..*.result.st
0d20 72 69 6e 67 2e 20 55 73 65 64 20 77 68 65 6e 20 61 20 68 69 73 74 6f 72 69 63 61 6c 20 74 6f 6f ring..Used.when.a.historical.too
0d40 6c 2d 72 65 73 75 6c 74 20 69 73 20 62 65 69 6e 67 20 72 65 2d 73 65 72 69 61 6c 69 7a 65 64 0a l-result.is.being.re-serialized.
0d60 20 2a 20 66 6f 72 20 74 68 65 20 4c 4c 4d 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 68 61 73 .*.for.the.LLM.and.the.model.has
0d80 20 61 6c 72 65 61 64 79 20 68 61 64 20 61 20 63 68 61 6e 63 65 20 74 6f 20 61 64 64 72 65 73 73 .already.had.a.chance.to.address
0da0 20 74 68 61 74 0a 20 2a 20 69 6e 74 65 72 72 75 70 74 20 e2 80 94 20 6c 65 61 76 69 6e 67 20 74 .that..*.interrupt.....leaving.t
0dc0 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.
0de0 74 68 65 73 65 22 20 74 65 78 74 20 69 6e 0a 20 2a 20 70 6c 61 63 65 20 63 61 75 73 65 73 20 74 these".text.in..*.place.causes.t
0e00 68 65 20 6d 6f 64 65 6c 20 74 6f 20 72 65 2d 61 63 6b 6e 6f 77 6c 65 64 67 65 20 74 68 65 20 73 he.model.to.re-acknowledge.the.s
0e20 61 6d 65 20 69 6e 74 65 72 72 75 70 74 20 6f 6e 20 65 76 65 72 79 0a 20 2a 20 73 75 62 73 65 71 ame.interrupt.on.every..*.subseq
0e40 75 65 6e 74 20 73 74 65 70 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 69 6e 74 65 72 72 75 70 74 20 62 uent.step...*..*.The.interrupt.b
0e60 6c 6f 63 6b 20 69 73 20 61 6c 77 61 79 73 20 61 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 65 lock.is.always.appended.to.the.e
0e80 6e 64 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 2c 20 73 6f 0a 20 2a 20 77 65 20 nd.of.the.tool.result,.so..*.we.
0ea0 73 74 72 69 70 20 66 72 6f 6d 20 74 68 65 20 6d 61 72 6b 65 72 20 74 6f 20 65 6e 64 2d 6f 66 2d strip.from.the.marker.to.end-of-
0ec0 73 74 72 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 70 55 73 65 72 49 6e string...*/.function.stripUserIn
0ee0 74 65 72 72 75 70 74 42 6c 6f 63 6b 28 72 65 73 75 6c 74 3a 20 73 74 72 69 6e 67 29 3a 20 73 74 terruptBlock(result:.string):.st
0f00 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 74 20 69 64 78 20 3d 20 72 65 73 75 6c 74 2e 69 6e 64 65 78 ring.{..const.idx.=.result.index
0f20 4f 66 28 55 53 45 52 5f 49 4e 54 45 52 52 55 50 54 5f 4d 41 52 4b 45 52 29 3b 0a 09 69 66 20 28 Of(USER_INTERRUPT_MARKER);..if.(
0f40 69 64 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 09 72 65 74 75 idx.===.-1).return.result;..retu
0f60 72 6e 20 72 65 73 75 6c 74 2e 73 6c 69 63 65 28 30 2c 20 69 64 78 29 3b 0a 7d 0a 0a 2f 2a 2a 0a rn.result.slice(0,.idx);.}../**.
0f80 20 2a 20 53 74 61 62 6c 65 20 6b 65 79 20 66 6f 72 20 63 6f 6c 6c 61 70 73 69 6e 67 20 62 79 74 .*.Stable.key.for.collapsing.byt
0fa0 65 2d 69 64 65 6e 74 69 63 61 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 69 6e 73 69 64 65 20 61 20 e-identical.tool.calls.inside.a.
0fc0 73 69 6e 67 6c 65 20 62 61 74 63 68 2e 0a 20 2a 0a 20 2a 20 43 6c 61 75 64 65 20 6f 63 63 61 73 single.batch...*..*.Claude.occas
0fe0 69 6f 6e 61 6c 6c 79 20 64 65 67 65 6e 65 72 61 74 65 73 20 69 6e 74 6f 20 61 20 67 65 6e 65 72 ionally.degenerates.into.a.gener
1000 61 74 69 6f 6e 20 6c 6f 6f 70 20 61 6e 64 20 65 6d 69 74 73 20 74 68 65 20 73 61 6d 65 0a 20 2a ation.loop.and.emits.the.same..*
1020 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 73 61 6d 65 20 6e 61 6d 65 20 2b 20 73 61 6d 65 20 61 72 67 .tool.call.(same.name.+.same.arg
1040 75 6d 65 6e 74 73 29 20 64 6f 7a 65 6e 73 20 e2 80 94 20 65 76 65 6e 20 31 35 30 2b 20 e2 80 94 uments).dozens.....even.150+....
1060 20 74 69 6d 65 73 20 69 6e 20 6f 6e 65 0a 20 2a 20 70 61 72 61 6c 6c 65 6c 20 62 61 74 63 68 20 .times.in.one..*.parallel.batch.
1080 28 73 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 63 61 74 69 6f 6e 2d 69 6e 63 (see.tool-runner-duplication-inc
10a0 69 64 65 6e 74 2e 6d 64 29 2e 20 45 61 63 68 20 63 6f 70 79 20 63 61 72 72 69 65 73 0a 20 2a 20 ident.md)..Each.copy.carries..*.
10c0 69 74 73 20 6f 77 6e 20 75 6e 69 71 75 65 20 60 74 6f 6f 6c 43 61 6c 6c 49 64 60 2c 20 73 6f 20 its.own.unique.`toolCallId`,.so.
10e0 41 6e 74 68 72 6f 70 69 63 20 73 74 69 6c 6c 20 72 65 71 75 69 72 65 73 20 61 20 60 74 6f 6f 6c Anthropic.still.requires.a.`tool
1100 5f 72 65 73 75 6c 74 60 20 66 6f 72 0a 20 2a 20 65 76 65 72 79 20 6f 6e 65 2c 20 62 75 74 20 72 _result`.for..*.every.one,.but.r
1120 65 2d 65 78 65 63 75 74 69 6e 67 20 69 64 65 6e 74 69 63 61 6c 20 69 64 65 6d 70 6f 74 65 6e 74 e-executing.identical.idempotent
1140 20 72 65 61 64 73 20 77 61 73 74 65 73 20 72 65 61 6c 20 77 61 6c 6c 2d 63 6c 6f 63 6b 0a 20 2a .reads.wastes.real.wall-clock..*
1160 20 74 69 6d 65 20 61 6e 64 20 6d 6f 6e 65 79 20 61 6e 64 20 66 6c 6f 6f 64 73 20 74 68 65 20 63 .time.and.money.and.floods.the.c
1180 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 64 75 6e 64 61 6e 74 20 6f 75 74 70 75 74 2e 0a 20 2a ontext.with.redundant.output...*
11a0 0a 20 2a 20 52 65 74 75 72 6e 69 6e 67 20 61 20 6e 6f 6e 2d 6e 75 6c 6c 20 6b 65 79 20 68 65 72 ..*.Returning.a.non-null.key.her
11c0 65 20 6c 65 74 73 20 74 68 65 20 65 78 65 63 75 74 6f 72 20 72 75 6e 20 74 68 65 20 46 49 52 53 e.lets.the.executor.run.the.FIRS
11e0 54 20 6f 63 63 75 72 72 65 6e 63 65 20 61 6e 64 0a 20 2a 20 72 65 75 73 65 20 69 74 73 20 72 65 T.occurrence.and..*.reuse.its.re
1200 73 75 6c 74 20 66 6f 72 20 65 76 65 72 79 20 73 75 62 73 65 71 75 65 6e 74 20 69 64 65 6e 74 69 sult.for.every.subsequent.identi
1220 63 61 6c 20 63 61 6c 6c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 62 61 74 63 68 2e 20 54 68 65 0a cal.call.in.the.same.batch..The.
1240 20 2a 20 6b 65 79 20 72 65 6c 69 65 73 20 6f 6e 20 60 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 .*.key.relies.on.`JSON.stringify
1260 60 20 70 72 65 73 65 72 76 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 6f 72 64 65 72 20 e2 80 94 20 `.preserving.argument.order.....
1280 74 77 6f 20 69 64 65 6e 74 69 63 61 6c 0a 20 2a 20 67 65 6e 65 72 61 74 69 6f 6e 73 20 73 65 72 two.identical..*.generations.ser
12a0 69 61 6c 69 7a 65 20 69 64 65 6e 74 69 63 61 6c 6c 79 20 e2 80 94 20 77 68 69 63 68 20 63 6f 76 ialize.identically.....which.cov
12c0 65 72 73 20 74 68 65 20 6f 62 73 65 72 76 65 64 20 66 61 69 6c 75 72 65 20 6d 6f 64 65 2e 0a 20 ers.the.observed.failure.mode...
12e0 2a 20 49 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 63 61 6e 27 74 20 62 65 20 73 65 72 69 *.If.the.arguments.can't.be.seri
1300 61 6c 69 7a 65 64 20 77 65 20 72 65 74 75 72 6e 20 60 6e 75 6c 6c 60 2c 20 77 68 69 63 68 20 64 alized.we.return.`null`,.which.d
1320 69 73 61 62 6c 65 73 20 64 65 64 75 70 0a 20 2a 20 66 6f 72 20 74 68 61 74 20 63 61 6c 6c 20 28 isables.dedup..*.for.that.call.(
1340 69 74 20 61 6c 77 61 79 73 20 65 78 65 63 75 74 65 73 29 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f it.always.executes)...*/.functio
1360 6e 20 74 6f 6f 6c 44 65 64 75 70 4b 65 79 28 6e 61 6d 65 3a 20 73 74 72 69 6e 67 2c 20 61 72 67 n.toolDedupKey(name:.string,.arg
1380 73 3a 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 29 3a 20 73 74 72 s:.Record<string,.unknown>):.str
13a0 69 6e 67 20 7c 20 6e 75 6c 6c 20 7b 0a 09 74 72 79 20 7b 0a 09 09 72 65 74 75 72 6e 20 60 24 7b ing.|.null.{..try.{...return.`${
13c0 6e 61 6d 65 7d 00 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 61 72 67 73 20 3f 3f 20 7b name}.${JSON.stringify(args.??.{
13e0 7d 29 7d 60 3b 0a 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a })}`;..}.catch.{...return.null;.
1400 09 7d 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6e 76 65 72 74 20 61 20 75 73 65 72 20 74 75 72 6e .}.}../**..*.Convert.a.user.turn
1420 27 73 20 65 70 68 65 6d 65 72 61 6c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 60 63 6f 6e 74 65 6e 74 's.ephemeral.multimodal.`content
1440 60 20 69 6e 74 6f 20 41 49 20 53 44 4b 20 75 73 65 72 2d 63 6f 6e 74 65 6e 74 0a 20 2a 20 70 61 `.into.AI.SDK.user-content..*.pa
1460 72 74 73 20 28 60 54 65 78 74 50 61 72 74 20 7c 20 49 6d 61 67 65 50 61 72 74 20 7c 20 46 69 6c rts.(`TextPart.|.ImagePart.|.Fil
1480 65 50 61 72 74 60 29 2c 20 70 72 65 73 65 72 76 69 6e 67 20 6f 72 64 65 72 2e 20 49 6d 61 67 65 ePart`),.preserving.order..Image
14a0 73 20 62 65 63 6f 6d 65 0a 20 2a 20 60 49 6d 61 67 65 50 61 72 74 60 73 3b 20 50 44 46 73 20 28 s.become..*.`ImagePart`s;.PDFs.(
14c0 61 6e 64 20 61 6e 79 20 6e 6f 6e 2d 69 6d 61 67 65 20 61 74 74 61 63 68 6d 65 6e 74 29 20 62 65 and.any.non-image.attachment).be
14e0 63 6f 6d 65 20 60 46 69 6c 65 50 61 72 74 60 73 2e 20 54 68 65 0a 20 2a 20 62 61 73 65 36 34 20 come.`FilePart`s..The..*.base64.
1500 70 61 79 6c 6f 61 64 20 69 73 20 77 72 61 70 70 65 64 20 69 6e 20 61 20 60 64 61 74 61 3a 60 20 payload.is.wrapped.in.a.`data:`.
1520 55 52 49 20 73 6f 20 74 68 65 20 53 44 4b 20 61 63 63 65 70 74 73 20 69 74 20 64 69 72 65 63 74 URI.so.the.SDK.accepts.it.direct
1540 6c 79 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 73 20 60 6e 75 6c 6c 60 20 77 68 65 6e 20 74 68 ly...*..*.Returns.`null`.when.th
1560 65 72 65 20 69 73 20 6e 6f 20 61 63 74 75 61 6c 20 61 74 74 61 63 68 6d 65 6e 74 20 28 6e 6f 20 ere.is.no.actual.attachment.(no.
1580 60 63 6f 6e 74 65 6e 74 60 2c 20 6f 72 20 6f 6e 6c 79 20 74 65 78 74 0a 20 2a 20 70 61 72 74 73 `content`,.or.only.text..*.parts
15a0 29 2c 20 73 6f 20 74 68 65 20 63 61 6c 6c 65 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 74 6f 20 74 ),.so.the.caller.falls.back.to.t
15c0 68 65 20 70 6c 61 69 6e 2d 73 74 72 69 6e 67 20 70 61 74 68 20 61 6e 64 20 74 65 78 74 2d 6f 6e he.plain-string.path.and.text-on
15e0 6c 79 20 74 75 72 6e 73 0a 20 2a 20 73 65 72 69 61 6c 69 7a 65 20 62 79 74 65 2d 69 64 65 6e 74 ly.turns..*.serialize.byte-ident
1600 69 63 61 6c 6c 79 20 74 6f 20 62 65 66 6f 72 65 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 75 ically.to.before...*/.function.u
1620 73 65 72 43 6f 6e 74 65 6e 74 54 6f 50 61 72 74 73 28 0a 09 63 6f 6e 74 65 6e 74 3a 20 55 73 65 serContentToParts(..content:.Use
1640 72 43 6f 6e 74 65 6e 74 50 61 72 74 5b 5d 20 7c 20 75 6e 64 65 66 69 6e 65 64 2c 0a 29 3a 20 41 rContentPart[].|.undefined,.):.A
1660 72 72 61 79 3c 54 65 78 74 50 61 72 74 20 7c 20 49 6d 61 67 65 50 61 72 74 20 7c 20 46 69 6c 65 rray<TextPart.|.ImagePart.|.File
1680 50 61 72 74 3e 20 7c 20 6e 75 6c 6c 20 7b 0a 09 69 66 20 28 21 63 6f 6e 74 65 6e 74 3f 2e 73 6f Part>.|.null.{..if.(!content?.so
16a0 6d 65 28 28 70 29 20 3d 3e 20 70 2e 74 79 70 65 20 3d 3d 3d 20 22 61 74 74 61 63 68 6d 65 6e 74 me((p).=>.p.type.===."attachment
16c0 22 29 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 09 63 6f 6e 73 74 20 70 61 72 74 73 3a 20 41 ")).return.null;..const.parts:.A
16e0 72 72 61 79 3c 54 65 78 74 50 61 72 74 20 7c 20 49 6d 61 67 65 50 61 72 74 20 7c 20 46 69 6c 65 rray<TextPart.|.ImagePart.|.File
1700 50 61 72 74 3e 20 3d 20 5b 5d 3b 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 70 61 72 74 20 6f 66 20 Part>.=.[];..for.(const.part.of.
1720 63 6f 6e 74 65 6e 74 29 20 7b 0a 09 09 69 66 20 28 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 content).{...if.(part.type.===."
1740 74 65 78 74 22 29 20 7b 0a 09 09 09 69 66 20 28 70 61 72 74 2e 74 65 78 74 2e 6c 65 6e 67 74 68 text").{....if.(part.text.length
1760 20 3e 20 30 29 20 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 .>.0).parts.push({.type:."text",
1780 20 74 65 78 74 3a 20 70 61 72 74 2e 74 65 78 74 20 7d 29 3b 0a 09 09 09 63 6f 6e 74 69 6e 75 65 .text:.part.text.});....continue
17a0 3b 0a 09 09 7d 0a 09 09 63 6f 6e 73 74 20 64 61 74 61 55 72 69 20 3d 20 60 64 61 74 61 3a 24 7b ;...}...const.dataUri.=.`data:${
17c0 70 61 72 74 2e 6d 65 64 69 61 54 79 70 65 7d 3b 62 61 73 65 36 34 2c 24 7b 70 61 72 74 2e 64 61 part.mediaType};base64,${part.da
17e0 74 61 7d 60 3b 0a 09 09 69 66 20 28 70 61 72 74 2e 6d 65 64 69 61 54 79 70 65 2e 73 74 61 72 74 ta}`;...if.(part.mediaType.start
1800 73 57 69 74 68 28 22 69 6d 61 67 65 2f 22 29 29 20 7b 0a 09 09 09 70 61 72 74 73 2e 70 75 73 68 sWith("image/")).{....parts.push
1820 28 7b 20 74 79 70 65 3a 20 22 69 6d 61 67 65 22 2c 20 69 6d 61 67 65 3a 20 64 61 74 61 55 72 69 ({.type:."image",.image:.dataUri
1840 2c 20 6d 65 64 69 61 54 79 70 65 3a 20 70 61 72 74 2e 6d 65 64 69 61 54 79 70 65 20 7d 29 3b 0a ,.mediaType:.part.mediaType.});.
1860 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 09 70 61 72 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 74 ..}.else.{....parts.push({.....t
1880 79 70 65 3a 20 22 66 69 6c 65 22 2c 0a 09 09 09 09 64 61 74 61 3a 20 64 61 74 61 55 72 69 2c 0a ype:."file",.....data:.dataUri,.
18a0 09 09 09 09 6d 65 64 69 61 54 79 70 65 3a 20 70 61 72 74 2e 6d 65 64 69 61 54 79 70 65 2c 0a 09 ....mediaType:.part.mediaType,..
18c0 09 09 09 2e 2e 2e 28 70 61 72 74 2e 6e 61 6d 65 20 3f 20 7b 20 66 69 6c 65 6e 61 6d 65 3a 20 70 ......(part.name.?.{.filename:.p
18e0 61 72 74 2e 6e 61 6d 65 20 7d 20 3a 20 7b 7d 29 2c 0a 09 09 09 7d 29 3b 0a 09 09 7d 0a 09 7d 0a art.name.}.:.{}),....});...}..}.
1900 09 72 65 74 75 72 6e 20 70 61 72 74 73 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 4d 6f 64 .return.parts;.}..function.toMod
1920 65 6c 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 elMessages(messages:.ChatMessage
1940 5b 5d 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 [],.useToolPrefix?:.boolean):.Mo
1960 64 65 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 delMessage[].{..const.result:.Mo
1980 64 65 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 delMessage[].=.[];...//.A.`[USER
19a0 20 49 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 .INTERRUPT]`.block.in.a.tool-res
19c0 75 6c 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 ult.is."fresh".....i.e.,.the..//
19e0 20 6d 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 .model.has.not.yet.seen.and.resp
1a00 6f 6e 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 onded.to.it.....only.when.ALL.of
1a20 20 74 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 .these..//.hold:..//...1..The.to
1a40 6f 6c 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 ol-batch.is.in.the.very.last.mes
1a60 73 61 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 sage.of.the.history...//...2..Th
1a80 61 74 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 at.message.is.an.assistant.messa
1aa0 67 65 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 ge.(a.follow-up.user.message..//
1ac0 20 20 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 ......means.the.user.moved.on;.t
1ae0 68 65 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 he.interrupt.was.addressed)...//
1b00 20 20 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 ...3..The.tool-batch.is.the.LAST
1b20 20 63 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 .chunk.in.that.message.(any.late
1b40 72 0a 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 r..//......text/thinking/tool-ba
1b60 74 63 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 tch.in.the.same.message.represen
1b80 74 73 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 ts.the..//......model's.response
1ba0 20 74 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 .to.the.tool.results)...//..//.A
1bc0 6c 6c 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 ll.other.interrupts.get.stripped
1be0 20 66 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 .from.history.because.the.impera
1c00 74 69 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 tive..//."You.MUST.address.these
1c20 22 20 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 ".otherwise.gets.re-evaluated.as
1c40 20 61 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 .a.fresh..//.instruction.on.ever
1c60 79 20 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 y.subsequent.LLM.step...let.fres
1c80 68 65 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 hestToolBatchMsgIdx.=.-1;..let.f
1ca0 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 2d 31 3b 0a 09 reshestToolBatchChunkIdx.=.-1;..
1cc0 63 6f 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 const.lastMsgIdx.=.messages.leng
1ce0 74 68 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 th.-.1;..const.lastMsg.=.message
1d00 73 5b 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 s[lastMsgIdx];..if.(lastMsg.&&.l
1d20 61 73 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 astMsg.role.===."assistant".&&.l
1d40 61 73 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 astMsg.chunks.length.>.0).{...co
1d60 6e 73 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 nst.lastChunkIdx.=.lastMsg.chunk
1d80 73 2e 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 s.length.-.1;...const.lastChunk.
1da0 3d 20 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 =.lastMsg.chunks[lastChunkIdx];.
1dc0 09 09 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 ..if.(lastChunk.&&.lastChunk.typ
1de0 65 20 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 e.===."tool-batch").{....freshes
1e00 74 54 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 tToolBatchMsgIdx.=.lastMsgIdx;..
1e20 09 09 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 ..freshestToolBatchChunkIdx.=.la
1e40 73 74 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 stChunkIdx;...}..}...for.(let.ms
1e60 67 49 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 gIdx.=.0;.msgIdx.<.messages.leng
1e80 74 68 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 th;.msgIdx++).{...const.msg.=.me
1ea0 73 73 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 ssages[msgIdx];...if.(!msg.||.ms
1ec0 67 2e 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 g.role.===."system").continue;..
1ee0 09 09 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 ..if.(msg.role.===."user").{....
1f00 2f 2f 20 41 20 75 73 65 72 20 74 75 72 6e 20 77 69 74 68 20 65 70 68 65 6d 65 72 61 6c 20 6d 75 //.A.user.turn.with.ephemeral.mu
1f20 6c 74 69 6d 6f 64 61 6c 20 60 63 6f 6e 74 65 6e 74 60 20 28 69 6d 61 67 65 2f 70 64 66 0a 09 09 ltimodal.`content`.(image/pdf...
1f40 09 2f 2f 20 61 74 74 61 63 68 6d 65 6e 74 73 20 69 6e 74 65 72 6c 65 61 76 65 64 20 77 69 74 68 .//.attachments.interleaved.with
1f60 20 74 65 78 74 29 20 69 73 20 65 6d 69 74 74 65 64 20 61 73 20 61 6e 20 4f 52 44 45 52 45 44 20 .text).is.emitted.as.an.ORDERED.
1f80 70 61 72 74 73 0a 09 09 09 2f 2f 20 61 72 72 61 79 20 73 6f 20 74 68 65 20 6d 6f 64 65 6c 20 73 parts....//.array.so.the.model.s
1fa0 65 65 73 20 74 65 78 74 20 61 6e 64 20 61 74 74 61 63 68 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 ees.text.and.attachments.in.the.
1fc0 65 78 61 63 74 20 73 65 71 75 65 6e 63 65 0a 09 09 09 2f 2f 20 74 68 65 20 75 73 65 72 20 63 6f exact.sequence....//.the.user.co
1fe0 6d 70 6f 73 65 64 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 65 76 65 72 20 73 65 74 20 6f 6e mposed..This.is.only.ever.set.on
2000 20 74 68 65 20 69 6e 2d 66 6c 69 67 68 74 20 74 75 72 6e 20 e2 80 94 0a 09 09 09 2f 2f 20 68 69 .the.in-flight.turn........//.hi
2020 73 74 6f 72 79 2d 72 65 62 75 69 6c 74 20 6d 65 73 73 61 67 65 73 20 68 61 76 65 20 6e 6f 20 60 story-rebuilt.messages.have.no.`
2040 63 6f 6e 74 65 6e 74 60 20 61 6e 64 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 20 74 6f 20 74 68 65 content`.and.fall.through.to.the
2060 0a 09 09 09 2f 2f 20 70 6c 61 69 6e 2d 74 65 78 74 20 70 61 74 68 20 62 65 6c 6f 77 2e 0a 09 09 ....//.plain-text.path.below....
2080 09 63 6f 6e 73 74 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 3d 20 75 73 65 72 43 6f 6e 74 65 6e 74 54 .const.multimodal.=.userContentT
20a0 6f 50 61 72 74 73 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 3b 0a 09 09 09 69 66 20 28 6d 75 6c 74 oParts(msg.content);....if.(mult
20c0 69 6d 6f 64 61 6c 29 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 2e 70 75 73 68 28 7b 20 72 6f 6c 65 imodal).{.....result.push({.role
20e0 3a 20 22 75 73 65 72 22 2c 20 63 6f 6e 74 65 6e 74 3a 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 7d 29 :."user",.content:.multimodal.})
2100 3b 0a 09 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 7d 0a 09 09 09 2f 2f 20 55 73 65 72 20 ;.....continue;....}....//.User.
2120 6d 65 73 73 61 67 65 73 20 69 6e 20 6f 75 72 20 6d 6f 64 65 6c 20 63 61 6e 20 69 6e 20 74 68 65 messages.in.our.model.can.in.the
2140 6f 72 79 20 63 6f 6e 74 61 69 6e 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b 73 2c 0a 09 09 09 ory.contain.non-text.chunks,....
2160 2f 2f 20 62 75 74 20 69 6e 20 70 72 61 63 74 69 63 65 20 74 68 65 20 55 49 20 6f 6e 6c 79 20 70 //.but.in.practice.the.UI.only.p
2180 72 6f 64 75 63 65 73 20 74 65 78 74 2e 20 43 6f 6e 63 61 74 65 6e 61 74 65 20 61 6e 79 20 74 65 roduces.text..Concatenate.any.te
21a0 78 74 0a 09 09 09 2f 2f 20 63 68 75 6e 6b 73 3b 20 69 67 6e 6f 72 65 20 61 6e 79 74 68 69 6e 67 xt....//.chunks;.ignore.anything
21c0 20 65 6c 73 65 2e 0a 09 09 09 63 6f 6e 73 74 20 74 65 78 74 20 3d 20 6d 73 67 2e 63 68 75 6e 6b .else.....const.text.=.msg.chunk
21e0 73 0a 09 09 09 09 2e 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 78 74 72 61 63 74 3c s......filter((c):.c.is.Extract<
2200 43 68 75 6e 6b 2c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 3d 3e 20 63 2e 74 79 Chunk,.{.type:."text".}>.=>.c.ty
2220 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 29 0a 09 09 09 09 2e 6d 61 70 28 28 63 29 20 3d 3e 20 63 pe.===."text")......map((c).=>.c
2240 2e 74 65 78 74 29 0a 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 09 72 65 73 75 6c 74 2e .text)......join("");....result.
2260 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 6f 6e 74 65 6e 74 3a 20 74 65 push({.role:."user",.content:.te
2280 78 74 20 7d 29 3b 0a 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 7d 0a 0a 09 09 2f 2f 20 72 6f xt.});....continue;...}....//.ro
22a0 6c 65 20 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 0a 09 09 2f 2f 0a 09 09 2f 2f 20 53 65 67 le.===."assistant"...//...//.Seg
22c0 6d 65 6e 74 20 74 68 65 20 74 75 72 6e 27 73 20 63 68 75 6e 6b 73 20 69 6e 74 6f 20 70 65 72 2d ment.the.turn's.chunks.into.per-
22e0 4c 4c 4d 2d 73 74 65 70 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c 5d 60 0a 09 09 2f LLM-step.`[assistant,.tool]`.../
2300 2f 20 6d 65 73 73 61 67 65 20 70 61 69 72 73 2c 20 73 70 6c 69 74 74 69 6e 67 20 61 74 20 65 61 /.message.pairs,.splitting.at.ea
2320 63 68 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 62 6f 75 6e 64 61 72 79 2e 20 45 76 65 72 79 0a ch.`tool-batch`.boundary..Every.
2340 09 09 2f 2f 20 72 6f 75 6e 64 2d 74 72 69 70 20 65 6d 69 74 73 20 74 65 78 74 2f 74 68 69 6e 6b ..//.round-trip.emits.text/think
2360 69 6e 67 20 74 68 65 6e 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 6f 6e 65 20 74 6f 6f 6c 2d 62 ing.then.(optionally).one.tool-b
2380 61 74 63 68 2c 20 73 6f 0a 09 09 2f 2f 20 61 20 74 6f 6f 6c 2d 62 61 74 63 68 20 69 73 20 65 78 atch,.so...//.a.tool-batch.is.ex
23a0 61 63 74 6c 79 20 61 20 73 74 65 70 20 62 6f 75 6e 64 61 72 79 2e 0a 09 09 2f 2f 0a 09 09 2f 2f actly.a.step.boundary....//...//
23c0 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 63 68 65 20 66 69 78 3a 20 65 61 63 68 20 70 72 69 .This.is.the.cache.fix:.each.pri
23e0 6f 72 20 73 74 65 70 27 73 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 62 75 69 6c 74 20 66 72 6f or.step's.messages.are.built.fro
2400 6d 0a 09 09 2f 2f 20 69 6d 6d 75 74 61 62 6c 65 20 63 68 75 6e 6b 73 20 61 74 20 66 69 78 65 64 m...//.immutable.chunks.at.fixed
2420 20 70 6f 73 69 74 69 6f 6e 73 2c 20 73 6f 20 74 68 65 79 20 73 65 72 69 61 6c 69 7a 65 0a 09 09 .positions,.so.they.serialize...
2440 2f 2f 20 62 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 6c 79 20 6f 6e 20 65 76 65 72 79 20 6c 61 74 //.byte-identically.on.every.lat
2460 65 72 20 72 65 71 75 65 73 74 20 e2 86 92 20 73 74 61 62 6c 65 20 41 6e 74 68 72 6f 70 69 63 20 er.request.....stable.Anthropic.
2480 70 72 6f 6d 70 74 0a 09 09 2f 2f 20 70 72 65 66 69 78 2e 20 43 6f 6c 6c 61 70 73 69 6e 67 20 61 prompt...//.prefix..Collapsing.a
24a0 6c 6c 20 73 74 65 70 73 20 69 6e 74 6f 20 4f 4e 45 20 61 73 73 69 73 74 61 6e 74 20 2b 20 4f 4e ll.steps.into.ONE.assistant.+.ON
24c0 45 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 0a 09 09 2f 2f 20 28 61 6e 64 20 74 68 65 6e 20 6c 65 E.tool.message...//.(and.then.le
24e0 74 74 69 6e 67 20 74 68 65 20 73 74 72 75 63 74 75 72 61 6c 2d 6e 6f 72 6d 61 6c 69 73 61 74 69 tting.the.structural-normalisati
2500 6f 6e 20 70 61 73 73 20 72 65 2d 62 75 63 6b 65 74 20 74 68 65 0a 09 09 2f 2f 20 74 6f 6f 6c 5f on.pass.re-bucket.the...//.tool_
2520 75 73 65 2f 74 6f 6f 6c 5f 72 65 73 75 6c 74 20 62 6c 6f 63 6b 73 29 20 72 65 73 68 75 66 66 6c use/tool_result.blocks).reshuffl
2540 65 64 20 65 61 72 6c 69 65 72 20 73 74 65 70 73 27 20 70 6f 73 69 74 69 6f 6e 73 20 6f 6e 0a 09 ed.earlier.steps'.positions.on..
2560 09 2f 2f 20 65 76 65 72 79 20 73 74 65 70 20 61 6e 64 20 73 68 61 74 74 65 72 65 64 20 74 68 65 .//.every.step.and.shattered.the
2580 20 63 61 63 68 65 20 28 73 65 65 20 63 61 63 68 65 2d 6d 69 73 73 2d 72 65 70 6f 72 74 2e 6d 64 .cache.(see.cache-miss-report.md
25a0 29 2e 0a 09 09 74 79 70 65 20 41 73 73 69 73 74 61 6e 74 50 61 72 74 20 3d 0a 09 09 09 7c 20 7b )....type.AssistantPart.=....|.{
25c0 20 74 79 70 65 3a 20 22 74 65 78 74 22 3b 20 74 65 78 74 3a 20 73 74 72 69 6e 67 20 7d 0a 09 09 .type:."text";.text:.string.}...
25e0 09 7c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 3b 20 74 65 78 74 3a 20 73 74 .|.{.type:."reasoning";.text:.st
2600 72 69 6e 67 3b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3f 3a 20 50 72 6f 76 69 64 65 72 ring;.providerOptions?:.Provider
2620 4f 70 74 69 6f 6e 73 20 7d 0a 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c Options.}....|.{.type:."tool-cal
2640 6c 22 3b 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 20 74 6f 6f 6c 4e 61 6d 65 l";.toolCallId:.string;.toolName
2660 3a 20 73 74 72 69 6e 67 3b 20 69 6e 70 75 74 3a 20 75 6e 6b 6e 6f 77 6e 20 7d 3b 0a 09 09 74 79 :.string;.input:.unknown.};...ty
2680 70 65 20 53 74 65 70 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a pe.StepResult.=.{....toolCallId:
26a0 20 73 74 72 69 6e 67 3b 0a 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 0a 09 09 .string;....toolName:.string;...
26c0 09 72 65 73 75 6c 74 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 69 73 45 72 72 6f 72 3f 3a 20 62 6f .result:.string;....isError?:.bo
26e0 6f 6c 65 61 6e 3b 0a 09 09 7d 3b 0a 0a 09 09 6c 65 74 20 70 61 72 74 73 3a 20 41 73 73 69 73 74 olean;...};....let.parts:.Assist
2700 61 6e 74 50 61 72 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 6c 65 74 20 73 74 65 70 52 65 73 75 6c 74 antPart[].=.[];...let.stepResult
2720 73 3a 20 53 74 65 70 52 65 73 75 6c 74 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 63 6f 6e 73 74 20 66 s:.StepResult[].=.[];....const.f
2740 6c 75 73 68 53 74 65 70 20 3d 20 28 29 3a 20 76 6f 69 64 20 3d 3e 20 7b 0a 09 09 09 69 66 20 28 lushStep.=.():.void.=>.{....if.(
2760 70 61 72 74 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 2e 70 parts.length.>.0).{.....result.p
2780 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 61 73 73 69 73 74 61 6e 74 22 2c 20 63 6f 6e 74 65 6e 74 ush({.role:."assistant",.content
27a0 3a 20 70 61 72 74 73 20 7d 29 3b 0a 09 09 09 7d 0a 09 09 09 2f 2f 20 4f 6e 65 20 67 72 6f 75 70 :.parts.});....}....//.One.group
27c0 65 64 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 20 70 65 72 20 73 74 ed.`role:."tool"`.message.per.st
27e0 65 70 20 68 6f 6c 64 73 20 74 68 61 74 20 73 74 65 70 27 73 0a 09 09 09 2f 2f 20 72 65 73 75 6c ep.holds.that.step's....//.resul
2800 74 73 20 e2 80 94 20 60 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 60 20 74 ts.....`applyAnthropicCaching`.t
2820 68 65 6e 20 6d 61 72 6b 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 0a 09 09 09 2f 2f 20 6e 6f 6e hen.marks.the.last.two....//.non
2840 2d 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 20 61 73 20 60 5b 61 73 73 69 73 74 61 6e 74 28 -system.messages.as.`[assistant(
2860 73 74 65 70 29 2c 20 74 6f 6f 6c 28 73 74 65 70 29 5d 60 2c 20 74 68 65 0a 09 09 09 2f 2f 20 63 step),.tool(step)]`,.the....//.c
2880 6f 72 72 65 63 74 20 72 6f 6c 6c 69 6e 67 2d 62 72 65 61 6b 70 6f 69 6e 74 20 70 6c 61 63 65 6d orrect.rolling-breakpoint.placem
28a0 65 6e 74 2e 0a 09 09 09 69 66 20 28 73 74 65 70 52 65 73 75 6c 74 73 2e 6c 65 6e 67 74 68 20 3e ent.....if.(stepResults.length.>
28c0 20 30 29 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 72 6f 6c .0).{.....result.push({......rol
28e0 65 3a 20 22 74 6f 6f 6c 22 2c 0a 09 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 73 74 65 70 52 65 73 e:."tool",......content:.stepRes
2900 75 6c 74 73 2e 6d 61 70 28 28 74 72 29 20 3d 3e 20 28 7b 0a 09 09 09 09 09 09 74 79 70 65 3a 20 ults.map((tr).=>.({.......type:.
2920 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 20 61 73 20 63 6f 6e 73 74 2c 0a 09 09 09 09 09 09 74 6f "tool-result".as.const,.......to
2940 6f 6c 43 61 6c 6c 49 64 3a 20 74 72 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 74 olCallId:.tr.toolCallId,.......t
2960 6f 6f 6c 4e 61 6d 65 3a 20 74 72 2e 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 2f 2f 20 76 oolName:.tr.toolName,.......//.v
2980 36 3a 20 60 6f 75 74 70 75 74 60 20 28 54 6f 6f 6c 52 65 73 75 6c 74 4f 75 74 70 75 74 29 20 72 6:.`output`.(ToolResultOutput).r
29a0 65 70 6c 61 63 65 73 20 76 34 27 73 20 72 61 77 20 60 72 65 73 75 6c 74 60 0a 09 09 09 09 09 09 eplaces.v4's.raw.`result`.......
29c0 6f 75 74 70 75 74 3a 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 61 73 20 63 6f 6e 73 74 2c output:.{.type:."text".as.const,
29e0 20 76 61 6c 75 65 3a 20 74 72 2e 72 65 73 75 6c 74 20 7d 2c 0a 09 09 09 09 09 09 2e 2e 2e 28 74 .value:.tr.result.},..........(t
2a00 72 2e 69 73 45 72 72 6f 72 20 3f 20 7b 20 69 73 45 72 72 6f 72 3a 20 74 72 75 65 20 7d 20 3a 20 r.isError.?.{.isError:.true.}.:.
2a20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 29 2c 0a 09 09 09 09 7d 29 3b 0a 09 09 09 7d 0a 09 09 09 70 {}),......})),.....});....}....p
2a40 61 72 74 73 20 3d 20 5b 5d 3b 0a 09 09 09 73 74 65 70 52 65 73 75 6c 74 73 20 3d 20 5b 5d 3b 0a arts.=.[];....stepResults.=.[];.
2a60 09 09 7d 3b 0a 0a 09 09 66 6f 72 20 28 6c 65 74 20 63 68 75 6e 6b 49 64 78 20 3d 20 30 3b 20 63 ..};....for.(let.chunkIdx.=.0;.c
2a80 68 75 6e 6b 49 64 78 20 3c 20 6d 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 6e 67 74 68 3b 20 63 68 75 hunkIdx.<.msg.chunks.length;.chu
2aa0 6e 6b 49 64 78 2b 2b 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 68 75 6e 6b 20 3d 20 6d 73 67 2e nkIdx++).{....const.chunk.=.msg.
2ac0 63 68 75 6e 6b 73 5b 63 68 75 6e 6b 49 64 78 5d 3b 0a 09 09 09 69 66 20 28 21 63 68 75 6e 6b 29 chunks[chunkIdx];....if.(!chunk)
2ae0 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 73 77 69 74 63 68 20 28 63 68 75 6e 6b 2e 74 79 70 65 .continue;....switch.(chunk.type
2b00 29 20 7b 0a 09 09 09 09 63 61 73 65 20 22 74 65 78 74 22 3a 0a 09 09 09 09 09 70 61 72 74 73 2e ).{.....case."text":......parts.
2b20 70 75 73 68 28 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 63 68 75 6e 6b push({.type:."text",.text:.chunk
2b40 2e 74 65 78 74 20 7d 29 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 63 61 73 65 20 22 .text.});......break;.....case."
2b60 74 68 69 6e 6b 69 6e 67 22 3a 0a 09 09 09 09 09 2f 2f 20 76 36 3a 20 63 61 72 72 79 20 70 72 6f thinking":......//.v6:.carry.pro
2b80 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 41 6e 74 68 72 6f 70 69 63 20 73 69 67 6e 61 74 75 72 viderOptions.(Anthropic.signatur
2ba0 65 20 62 6c 6f 62 29 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 2f 2f 20 4e 6f 6e 2d e.blob).if.present.......//.Non-
2bc0 41 6e 74 68 72 6f 70 69 63 20 72 65 61 73 6f 6e 69 6e 67 20 68 61 73 20 6e 6f 20 6d 65 74 61 64 Anthropic.reasoning.has.no.metad
2be0 61 74 61 20 e2 86 92 20 73 65 6e 64 20 77 69 74 68 6f 75 74 20 70 72 6f 76 69 64 65 72 4f 70 74 ata.....send.without.providerOpt
2c00 69 6f 6e 73 0a 09 09 09 09 09 2f 2f 20 28 41 6e 74 68 72 6f 70 69 63 20 61 63 63 65 70 74 73 20 ions......//.(Anthropic.accepts.
2c20 69 74 3b 20 74 68 65 20 72 6f 75 6e 64 2d 74 72 69 70 20 6a 75 73 74 20 77 6f 6e 27 74 20 63 61 it;.the.round-trip.just.won't.ca
2c40 72 72 79 20 61 20 73 69 67 6e 61 74 75 72 65 29 2e 0a 09 09 09 09 09 70 61 72 74 73 2e 70 75 73 rry.a.signature).......parts.pus
2c60 68 28 7b 0a 09 09 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 0a 09 09 09 h({.......type:."reasoning",....
2c80 09 09 09 74 65 78 74 3a 20 63 68 75 6e 6b 2e 74 65 78 74 2c 0a 09 09 09 09 09 09 2e 2e 2e 28 63 ...text:.chunk.text,..........(c
2ca0 68 75 6e 6b 2e 6d 65 74 61 64 61 74 61 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 0a 09 09 09 09 hunk.metadata.!==.undefined.....
2cc0 09 09 09 3f 20 7b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 63 68 75 6e 6b 2e 6d 65 ...?.{.providerOptions:.chunk.me
2ce0 74 61 64 61 74 61 20 61 73 20 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 7d 0a 09 09 09 09 tadata.as.ProviderOptions.}.....
2d00 09 09 09 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 ...:.{}),......});......break;..
2d20 09 09 09 63 61 73 65 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 3a 20 7b 0a 09 09 09 09 09 2f 2f 20 ...case."tool-batch":.{......//.
2d40 53 74 72 69 70 20 73 74 61 6c 65 20 60 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 20 62 Strip.stale.`[USER.INTERRUPT]`.b
2d60 6c 6f 63 6b 73 20 66 72 6f 6d 20 65 76 65 72 79 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 62 61 locks.from.every......//.tool-ba
2d80 74 63 68 20 65 78 63 65 70 74 20 74 68 65 20 66 72 65 73 68 65 73 74 20 6f 6e 65 20 28 6d 6f 73 tch.except.the.freshest.one.(mos
2da0 74 20 72 65 63 65 6e 74 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 62 61 74 63 68 20 69 6e 20 74 t.recent......//.tool-batch.in.t
2dc0 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 he.most.recent.assistant.message
2de0 29 2e 0a 09 09 09 09 09 2f 2f 20 57 69 74 68 6f 75 74 20 74 68 69 73 2c 20 74 68 65 20 69 6d 70 ).......//.Without.this,.the.imp
2e00 65 72 61 74 69 76 65 20 22 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 74 68 65 73 65 22 erative."You.MUST.address.these"
2e20 0a 09 09 09 09 09 2f 2f 20 74 65 78 74 20 70 65 72 73 69 73 74 73 20 69 6e 20 68 69 73 74 6f 72 ......//.text.persists.in.histor
2e40 79 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 72 65 2d 61 63 6b 6e 6f 77 6c 65 64 67 65 73 0a y.and.the.model.re-acknowledges.
2e60 09 09 09 09 09 2f 2f 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 72 72 75 70 74 20 76 65 72 62 61 .....//.the.same.interrupt.verba
2e80 74 69 6d 20 6f 6e 20 65 76 65 72 79 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 2e 0a 09 09 tim.on.every.subsequent.step....
2ea0 09 09 09 63 6f 6e 73 74 20 69 73 46 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 20 3d 0a 09 ...const.isFreshestToolBatch.=..
2ec0 09 09 09 09 09 6d 73 67 49 64 78 20 3d 3d 3d 20 66 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 .....msgIdx.===.freshestToolBatc
2ee0 68 4d 73 67 49 64 78 20 26 26 20 63 68 75 6e 6b 49 64 78 20 3d 3d 3d 20 66 72 65 73 68 65 73 74 hMsgIdx.&&.chunkIdx.===.freshest
2f00 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 3b 0a 09 09 09 09 09 66 6f 72 20 28 63 6f 6e ToolBatchChunkIdx;......for.(con
2f20 73 74 20 65 6e 74 72 79 20 6f 66 20 63 68 75 6e 6b 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 09 st.entry.of.chunk.calls).{......
2f40 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 75 73 65 54 6f 6f 6c 50 72 65 66 69 78 20 .const.toolName.=.useToolPrefix.
2f60 3f 20 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 65 6e 74 72 79 2e 6e 61 6d 65 29 20 3a 20 65 ?.prefixToolName(entry.name).:.e
2f80 6e 74 72 79 2e 6e 61 6d 65 3b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 60 69 6e 70 75 74 60 20 ntry.name;.......//.v6:.`input`.
2fa0 72 65 70 6c 61 63 65 73 20 76 34 27 73 20 60 61 72 67 73 60 0a 09 09 09 09 09 09 70 61 72 74 73 replaces.v4's.`args`.......parts
2fc0 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 .push({........type:."tool-call"
2fe0 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 65 6e 74 72 79 2e 69 64 2c 0a 09 ,........toolCallId:.entry.id,..
3000 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 69 6e 70 75 74 3a 20 65 6e ......toolName,........input:.en
3020 74 72 79 2e 61 72 67 75 6d 65 6e 74 73 2c 0a 09 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 09 69 try.arguments,.......});.......i
3040 66 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 7b f.(entry.result.!==.undefined).{
3060 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 54 65 78 74 20 3d 20 69 73 46 72 65 ........const.resultText.=.isFre
3080 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 0a 09 09 09 09 09 09 09 09 3f 20 65 6e 74 72 79 2e 72 shestToolBatch.........?.entry.r
30a0 65 73 75 6c 74 0a 09 09 09 09 09 09 09 09 3a 20 73 74 72 69 70 55 73 65 72 49 6e 74 65 72 72 75 esult.........:.stripUserInterru
30c0 70 74 42 6c 6f 63 6b 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 29 3b 0a 09 09 09 09 09 09 09 73 74 ptBlock(entry.result);........st
30e0 65 70 52 65 73 75 6c 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c epResults.push({.........toolCal
3100 6c 49 64 3a 20 65 6e 74 72 79 2e 69 64 2c 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 2c lId:.entry.id,.........toolName,
3120 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 72 65 73 75 6c 74 54 65 78 74 2c 0a 09 09 09 .........result:.resultText,....
3140 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 65 6e 74 72 79 2e 69 73 45 72 72 6f 72 2c 0a 09 09 09 .....isError:.entry.isError,....
3160 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 7d 0a 09 09 09 09 09 2f 2f 20 45 ....});.......}......}......//.E
3180 6e 64 20 6f 66 20 74 68 69 73 20 4c 4c 4d 20 73 74 65 70 20 e2 86 92 20 65 6d 69 74 20 69 74 73 nd.of.this.LLM.step.....emit.its
31a0 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c 5d 60 20 70 61 69 72 20 61 6e 64 0a 09 09 .`[assistant,.tool]`.pair.and...
31c0 09 09 09 2f 2f 20 73 74 61 72 74 20 61 20 66 72 65 73 68 20 70 61 69 72 20 66 6f 72 20 74 68 65 ...//.start.a.fresh.pair.for.the
31e0 20 6e 65 78 74 20 73 74 65 70 2e 0a 09 09 09 09 09 66 6c 75 73 68 53 74 65 70 28 29 3b 0a 09 09 .next.step.......flushStep();...
3200 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 7d 0a 09 09 09 09 63 61 73 65 20 22 65 72 72 6f 72 22 ...break;.....}.....case."error"
3220 3a 0a 09 09 09 09 63 61 73 65 20 22 73 79 73 74 65 6d 22 3a 0a 09 09 09 09 09 2f 2f 20 53 74 72 :.....case."system":......//.Str
3240 69 70 20 e2 80 94 20 6e 6f 74 20 73 65 6e 74 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2e ip.....not.sent.back.to.the.LLM.
3260 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 2f 2f 20 46 69 6e 61 ......break;....}...}....//.Fina
3280 6c 20 73 74 65 70 3a 20 74 72 61 69 6c 69 6e 67 20 74 65 78 74 2f 74 68 69 6e 6b 69 6e 67 20 77 l.step:.trailing.text/thinking.w
32a0 69 74 68 20 6e 6f 20 74 6f 6f 6c 2d 62 61 74 63 68 2e 20 60 66 6c 75 73 68 53 74 65 70 60 0a 09 ith.no.tool-batch..`flushStep`..
32c0 09 2f 2f 20 73 6b 69 70 73 20 65 6d 70 74 69 65 73 2c 20 73 6f 20 61 20 74 75 72 6e 20 6f 66 20 .//.skips.empties,.so.a.turn.of.
32e0 6f 6e 6c 79 20 73 79 73 74 65 6d 2f 65 72 72 6f 72 20 63 68 75 6e 6b 73 20 65 6d 69 74 73 20 6e only.system/error.chunks.emits.n
3300 6f 74 68 69 6e 67 2e 0a 09 09 66 6c 75 73 68 53 74 65 70 28 29 3b 0a 09 7d 0a 09 72 65 74 75 72 othing....flushStep();..}..retur
3320 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 4f 70 65 6e 41 49 n.result;.}../**..*.Apply.OpenAI
3340 2d 63 6f 6d 70 61 74 69 62 6c 65 20 72 65 61 73 6f 6e 69 6e 67 20 6e 6f 72 6d 61 6c 69 73 61 74 -compatible.reasoning.normalisat
3360 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 65 6e 63 6f 64 65 ion...*..*.Cribbed.from.opencode
3380 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 32 31 37 2d 32 34 39 60 .`provider/transform.ts:217-249`
33a0 2e 20 53 6f 6c 76 65 73 20 44 65 65 70 53 65 65 6b 27 73 0a 20 2a 20 22 54 68 65 20 72 65 61 73 ..Solves.DeepSeek's..*."The.reas
33c0 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 20 69 6e 20 74 68 65 20 74 68 69 6e 6b 69 6e 67 20 6d 6f oning_content.in.the.thinking.mo
33e0 64 65 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 0a 20 2a de.must.be.passed.back.to.the..*
3400 20 41 50 49 22 20 65 72 72 6f 72 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 76 36 20 60 40 61 69 2d 73 .API".error...*..*.The.v6.`@ai-s
3420 64 6b 2f 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 40 32 2e 78 60 20 70 72 6f 76 69 64 dk/[email protected]`.provid
3440 65 72 20 65 78 74 72 61 63 74 73 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a er.extracts.`reasoning_content`.
3460 20 2a 20 66 72 6f 6d 20 61 73 73 69 73 74 61 6e 74 20 60 7b 20 74 79 70 65 3a 20 22 72 65 61 73 .*.from.assistant.`{.type:."reas
3480 6f 6e 69 6e 67 22 2c 20 74 65 78 74 20 7d 60 20 70 61 72 74 73 20 6e 61 74 69 76 65 6c 79 0a 20 oning",.text.}`.parts.natively..
34a0 2a 20 28 73 65 65 20 60 6e 6f 64 65 5f 6d 6f 64 75 6c 65 73 2f 40 61 69 2d 73 64 6b 2f 6f 70 65 *.(see.`node_modules/@ai-sdk/ope
34c0 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 2f 64 69 73 74 2f 69 6e 64 65 78 2e 6d 6a 73 3a 32 31 nai-compatible/dist/index.mjs:21
34e0 35 2d 32 31 36 60 20 61 6e 64 20 3a 32 34 35 29 2e 0a 20 2a 20 42 75 74 20 74 68 61 74 20 6e 61 5-216`.and.:245)...*.But.that.na
3500 74 69 76 65 20 70 61 74 68 20 53 4b 49 50 53 20 65 6d 69 73 73 69 6f 6e 20 77 68 65 6e 20 60 72 tive.path.SKIPS.emission.when.`r
3520 65 61 73 6f 6e 69 6e 67 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 60 20 e2 80 94 0a 20 2a 20 22 72 easoning.length.===.0`......*."r
3540 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 22 20 69 73 20 6f 6d 69 74 74 65 64 20 66 72 6f easoning_content".is.omitted.fro
3560 6d 20 74 68 65 20 77 69 72 65 2e 20 44 65 65 70 53 65 65 6b 20 28 61 6e 64 20 73 69 6d 69 6c 61 m.the.wire..DeepSeek.(and.simila
3580 72 0a 20 2a 20 22 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 22 20 70 72 6f 76 69 64 65 72 73 29 20 r..*."thinking.mode".providers).
35a0 72 65 71 75 69 72 65 20 74 68 65 20 66 69 65 6c 64 20 74 6f 20 62 65 20 70 72 65 73 65 6e 74 20 require.the.field.to.be.present.
35c0 69 6e 20 65 76 65 72 79 0a 20 2a 20 66 6f 6c 6c 6f 77 2d 75 70 20 74 75 72 6e 20 6f 6e 63 65 20 in.every..*.follow-up.turn.once.
35e0 69 74 20 77 61 73 20 65 6d 69 74 74 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65 2c 20 65 76 it.was.emitted.at.least.once,.ev
3600 65 6e 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 0a 20 2a 20 74 68 65 20 65 6d 70 74 79 20 en.if.the.value.is..*.the.empty.
3620 73 74 72 69 6e 67 2e 0a 20 2a 0a 20 2a 20 53 74 72 61 74 65 67 79 3a 20 66 6f 72 20 65 76 65 72 string...*..*.Strategy:.for.ever
3640 79 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 74 68 61 74 20 68 61 73 20 61 6e 79 y.assistant.message.that.has.any
3660 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 2c 0a 20 2a 20 63 6f 6e 63 61 74 65 6e 61 .`reasoning`.parts,..*.concatena
3680 74 65 20 74 68 65 69 72 20 74 65 78 74 20 69 6e 74 6f 20 60 70 72 6f 76 69 64 65 72 4f 70 74 69 te.their.text.into.`providerOpti
36a0 6f 6e 73 2e 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 2e 72 65 61 73 6f 6e 69 6e 67 5f 63 ons.openaiCompatible.reasoning_c
36c0 6f 6e 74 65 6e 74 60 0a 20 2a 20 28 70 72 65 73 65 72 76 69 6e 67 20 65 6d 70 74 79 20 73 74 72 ontent`..*.(preserving.empty.str
36e0 69 6e 67 73 29 20 41 4e 44 20 73 74 72 69 70 20 74 68 6f 73 65 20 70 61 72 74 73 20 66 72 6f 6d ings).AND.strip.those.parts.from
3700 20 63 6f 6e 74 65 6e 74 2e 20 54 68 65 0a 20 2a 20 72 65 73 75 6c 74 69 6e 67 20 70 61 79 6c 6f .content..The..*.resulting.paylo
3720 61 64 20 68 61 73 20 61 20 73 69 6e 67 6c 65 20 73 6f 75 72 63 65 20 6f 66 20 74 72 75 74 68 20 ad.has.a.single.source.of.truth.
3740 66 6f 72 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 20 2a 20 63 6f 6d 69 6e for.`reasoning_content`..*.comin
3760 67 20 76 69 61 20 74 68 65 20 6d 65 73 73 61 67 65 2d 6c 65 76 65 6c 20 60 70 72 6f 76 69 64 65 g.via.the.message-level.`provide
3780 72 4f 70 74 69 6f 6e 73 60 20 73 70 72 65 61 64 20 61 74 20 6c 69 6e 65 20 32 34 37 20 6f 66 20 rOptions`.spread.at.line.247.of.
37a0 74 68 65 0a 20 2a 20 53 44 4b 20 70 72 6f 76 69 64 65 72 2c 20 77 68 69 63 68 20 66 69 72 65 73 the..*.SDK.provider,.which.fires
37c0 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 65 6d 70 74 79 2d 76 73 2d 6e 6f 6e 2d 65 6d 70 74 .regardless.of.empty-vs-non-empt
37e0 79 20 74 65 78 74 2e 0a 20 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 74 y.text...*..*.Only.applied.for.t
3800 68 65 20 64 65 66 61 75 6c 74 20 28 6e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 29 20 6f 70 65 6e 61 he.default.(non-Anthropic).opena
3820 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 70 61 74 68 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 i-compatible.path...*/.function.
3840 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 67 4e 6f applyOpenAICompatibleReasoningNo
3860 72 6d 61 6c 69 73 61 74 69 6f 6e 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d rmalisation(msgs:.ModelMessage[]
3880 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 72 65 74 75 72 6e 20 6d 73 67 73 ):.ModelMessage[].{..return.msgs
38a0 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 21 .map((msg).=>.{...if.(msg.role.!
38c0 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 73 41 72 72 61 79 ==."assistant".||.!Array.isArray
38e0 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 6d 73 67 3b 0a 0a 09 09 2f 2f (msg.content)).return.msg;....//
3900 20 46 69 6e 64 20 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 49 66 20 74 68 65 72 65 20 .Find.reasoning.parts..If.there.
3920 61 72 65 20 6e 6f 6e 65 2c 20 74 68 69 73 20 6d 65 73 73 61 67 65 20 6e 65 76 65 72 20 68 61 64 are.none,.this.message.never.had
3940 0a 09 09 2f 2f 20 61 20 74 68 69 6e 6b 69 6e 67 20 74 75 72 6e 20 e2 80 94 20 44 65 65 70 53 65 ...//.a.thinking.turn.....DeepSe
3960 65 6b 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 65 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f ek.doesn't.require.`reasoning_co
3980 6e 74 65 6e 74 60 0a 09 09 2f 2f 20 69 6e 20 74 68 61 74 20 63 61 73 65 2c 20 73 6f 20 77 65 20 ntent`...//.in.that.case,.so.we.
39a0 70 61 73 73 20 74 68 72 6f 75 67 68 20 75 6e 63 68 61 6e 67 65 64 2e 0a 09 09 63 6f 6e 73 74 20 pass.through.unchanged....const.
39c0 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 66 69 6c reasoningParts.=.msg.content.fil
39e0 74 65 72 28 0a 09 09 09 28 70 29 3a 20 70 20 69 73 20 45 78 74 72 61 63 74 3c 74 79 70 65 6f 66 ter(....(p):.p.is.Extract<typeof
3a00 20 70 2c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 7d 3e 20 3d 3e 20 70 2e .p,.{.type:."reasoning".}>.=>.p.
3a20 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 0a 09 09 29 3b 0a 09 09 69 66 20 type.===."reasoning",...);...if.
3a40 28 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 29 20 72 65 (reasoningParts.length.===.0).re
3a60 74 75 72 6e 20 6d 73 67 3b 0a 0a 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 69 6e 67 54 65 78 74 turn.msg;....const.reasoningText
3a80 20 3d 20 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6d 61 70 28 28 70 29 20 3d 3e 20 70 2e 74 .=.reasoningParts.map((p).=>.p.t
3aa0 65 78 74 29 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 63 6f 6e 73 74 20 66 69 6c 74 65 72 65 64 43 ext).join("");...const.filteredC
3ac0 6f 6e 74 65 6e 74 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 66 69 6c 74 65 72 28 28 70 29 20 ontent.=.msg.content.filter((p).
3ae0 3d 3e 20 70 2e 74 79 70 65 20 21 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 3b 0a 0a 09 09 63 =>.p.type.!==."reasoning");....c
3b00 6f 6e 73 74 20 65 78 69 73 74 69 6e 67 4f 70 74 73 20 3d 20 6d 73 67 2e 70 72 6f 76 69 64 65 72 onst.existingOpts.=.msg.provider
3b20 4f 70 74 69 6f 6e 73 20 3f 3f 20 7b 7d 3b 0a 09 09 63 6f 6e 73 74 20 65 78 69 73 74 69 6e 67 43 Options.??.{};...const.existingC
3b40 6f 6d 70 61 74 20 3d 20 28 65 78 69 73 74 69 6e 67 4f 70 74 73 2e 6f 70 65 6e 61 69 43 6f 6d 70 ompat.=.(existingOpts.openaiComp
3b60 61 74 69 62 6c 65 20 3f 3f 20 7b 7d 29 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 atible.??.{}).as.Record<string,.
3b80 75 6e 6b 6e 6f 77 6e 3e 3b 0a 0a 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 2e 2e 2e 6d 73 67 2c unknown>;....return.{.......msg,
3ba0 0a 09 09 09 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 43 6f 6e 74 65 6e 74 2c 0a 09 09 ....content:.filteredContent,...
3bc0 09 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 7b 0a 09 09 09 09 2e 2e 2e 65 78 69 73 74 .providerOptions:.{........exist
3be0 69 6e 67 4f 70 74 73 2c 0a 09 09 09 09 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 3a 20 7b ingOpts,.....openaiCompatible:.{
3c00 0a 09 09 09 09 09 2e 2e 2e 65 78 69 73 74 69 6e 67 43 6f 6d 70 61 74 2c 0a 09 09 09 09 09 2f 2f .........existingCompat,......//
3c20 20 41 6c 77 61 79 73 20 73 65 74 2c 20 65 76 65 6e 20 77 68 65 6e 20 65 6d 70 74 79 2e 20 54 68 .Always.set,.even.when.empty..Th
3c40 69 73 20 69 73 20 74 68 65 20 6b 65 79 20 66 69 78 20 e2 80 94 0a 09 09 09 09 09 2f 2f 20 74 68 is.is.the.key.fix..........//.th
3c60 65 20 53 44 4b 27 73 20 63 6f 6e 74 65 6e 74 2d 73 69 64 65 20 65 78 74 72 61 63 74 69 6f 6e 20 e.SDK's.content-side.extraction.
3c80 73 6b 69 70 73 20 65 6d 70 74 79 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e 69 6e 67 2c 20 62 skips.empty......//.reasoning,.b
3ca0 75 74 20 44 65 65 70 53 65 65 6b 20 72 65 71 75 69 72 65 73 20 74 68 65 20 66 69 65 6c 64 20 70 ut.DeepSeek.requires.the.field.p
3cc0 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 3a 20 resent.......reasoning_content:.
3ce0 72 65 61 73 6f 6e 69 6e 67 54 65 78 74 2c 0a 09 09 09 09 7d 2c 0a 09 09 09 7d 2c 0a 09 09 7d 20 reasoningText,.....},....},...}.
3d00 61 73 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3b 0a 09 7d 29 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 as.ModelMessage;..});.}../**..*.
3d20 41 70 70 6c 79 20 41 6e 74 68 72 6f 70 69 63 20 73 74 72 75 63 74 75 72 61 6c 20 6e 6f 72 6d 61 Apply.Anthropic.structural.norma
3d40 6c 69 73 61 74 69 6f 6e 73 20 74 6f 20 61 20 60 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 60 2e lisations.to.a.`ModelMessage[]`.
3d60 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 65 6e 63 6f 64 65 20 60 70 72 ..*..*.Cribbed.from.opencode.`pr
3d80 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 35 33 2d 31 34 38 60 2e 20 54 77 6f ovider/transform.ts:53-148`..Two
3da0 20 70 61 73 73 65 73 3a 0a 20 2a 0a 20 2a 20 31 2e 20 2a 2a 45 6d 70 74 79 2d 74 65 78 74 2f 72 .passes:..*..*.1..**Empty-text/r
3dc0 65 61 73 6f 6e 69 6e 67 20 66 69 6c 74 65 72 2a 2a 3a 20 44 72 6f 70 20 60 74 65 78 74 60 20 2f easoning.filter**:.Drop.`text`./
3de0 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 0a 20 2a 20 20 20 20 77 68 6f 73 65 20 60 .`reasoning`.parts..*....whose.`
3e00 74 65 78 74 20 3d 3d 3d 20 22 22 60 2e 20 44 72 6f 70 20 6d 65 73 73 61 67 65 73 20 77 68 6f 73 text.===.""`..Drop.messages.whos
3e20 65 20 63 6f 6e 74 65 6e 74 20 61 72 72 61 79 20 62 65 63 6f 6d 65 73 0a 20 2a 20 20 20 20 65 6d e.content.array.becomes..*....em
3e40 70 74 79 2e 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 73 73 69 73 74 61 6e 74 pty..Anthropic.rejects.assistant
3e60 20 74 75 72 6e 73 20 77 69 74 68 20 65 6d 70 74 79 20 63 6f 6e 74 65 6e 74 2e 0a 20 2a 0a 20 2a .turns.with.empty.content...*..*
3e80 20 32 2e 20 2a 2a 60 74 6f 6f 6c 43 61 6c 6c 49 64 60 20 73 63 72 75 62 62 69 6e 67 2a 2a 3a 20 .2..**`toolCallId`.scrubbing**:.
3ea0 41 6e 74 68 72 6f 70 69 63 20 6f 6e 6c 79 20 61 63 63 65 70 74 73 20 74 6f 6f 6c 20 63 61 6c 6c Anthropic.only.accepts.tool.call
3ec0 20 49 44 73 0a 20 2a 20 20 20 20 74 68 61 74 20 6d 61 74 63 68 20 60 5b 61 2d 7a 41 2d 5a 30 2d .IDs..*....that.match.`[a-zA-Z0-
3ee0 39 5f 2d 5d 60 2e 20 4f 75 72 20 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e 72 61 6e 64 6f 6d 9_-]`..Our.IDs.are.crypto.random
3f00 55 55 49 44 28 29 20 76 61 6c 75 65 73 0a 20 2a 20 20 20 20 77 68 69 63 68 20 61 72 65 20 61 6c UUID().values..*....which.are.al
3f20 72 65 61 64 79 20 73 61 66 65 2c 20 62 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 61 73 ready.safe,.but.tool-call.IDs.as
3f40 73 69 67 6e 65 64 20 62 79 20 75 70 73 74 72 65 61 6d 0a 20 2a 20 20 20 20 73 6f 75 72 63 65 73 signed.by.upstream..*....sources
3f60 20 28 70 72 6f 76 69 64 65 72 2d 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 2c 20 73 75 62 61 67 .(provider-executed.tools,.subag
3f80 65 6e 74 20 72 65 74 72 69 65 76 61 6c 2c 20 65 74 63 2e 29 20 6d 61 79 0a 20 2a 20 20 20 20 6e ent.retrieval,.etc.).may..*....n
3fa0 6f 74 20 62 65 2e 20 44 65 66 65 6e 73 69 76 65 6c 79 20 73 63 72 75 62 2e 20 4d 69 72 72 6f 72 ot.be..Defensively.scrub..Mirror
3fc0 73 20 6f 70 65 6e 63 6f 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 s.opencode.`provider/transform.t
3fe0 73 3a 39 36 2d 31 32 32 60 2e 0a 20 2a 0a 20 2a 20 33 2e 20 2a 2a 60 5b 74 6f 6f 6c 2d 63 61 6c s:96-122`...*..*.3..**`[tool-cal
4000 6c 2c 20 74 65 78 74 5d 60 20 73 70 6c 69 74 2a 2a 3a 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a l,.text]`.split**:.Anthropic.rej
4020 65 63 74 73 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 73 0a 20 2a 20 20 20 20 77 68 65 72 65 ects.assistant.turns..*....where
4040 20 60 74 6f 6f 6c 5f 75 73 65 60 20 62 6c 6f 63 6b 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 .`tool_use`.blocks.are.followed.
4060 62 79 20 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 0a 20 2a 20 20 20 20 28 by.non-tool-call.content..*....(
4080 22 60 74 6f 6f 6c 5f 75 73 65 60 20 69 64 73 20 77 65 72 65 20 66 6f 75 6e 64 20 77 69 74 68 6f "`tool_use`.ids.were.found.witho
40a0 75 74 20 60 74 6f 6f 6c 5f 72 65 73 75 6c 74 60 20 62 6c 6f 63 6b 73 20 69 6d 6d 65 64 69 61 74 ut.`tool_result`.blocks.immediat
40c0 65 6c 79 0a 20 2a 20 20 20 20 61 66 74 65 72 22 29 2e 20 49 66 20 61 6e 20 61 73 73 69 73 74 61 ely..*....after")..If.an.assista
40e0 6e 74 20 6d 65 73 73 61 67 65 20 68 61 73 20 6d 69 78 65 64 20 6f 72 64 65 72 69 6e 67 2c 20 73 nt.message.has.mixed.ordering,.s
4100 70 6c 69 74 20 69 74 20 69 6e 74 6f 0a 20 2a 20 20 20 20 60 5b 6e 6f 6e 2d 74 6f 6f 6c 20 70 61 plit.it.into..*....`[non-tool.pa
4120 72 74 73 5d 20 2b 20 5b 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 5d 60 2e 0a 20 2a 0a 20 2a rts].+.[tool-call.parts]`...*..*
4140 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 63 2d 62 61 63 6b .Only.applied.for.Anthropic-back
4160 65 64 20 70 72 6f 76 69 64 65 72 73 20 28 43 6c 61 75 64 65 20 4f 41 75 74 68 20 6f 72 0a 20 2a ed.providers.(Claude.OAuth.or..*
4180 20 6f 70 65 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 29 2e 20 53 6b 69 70 20 66 6f 72 20 6f .opencode-anthropic)..Skip.for.o
41a0 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 2f 20 4f 70 65 6e 43 6f 64 65 20 5a 65 6e 2e penai-compatible./.OpenCode.Zen.
41c0 0a 20 2a 2f 0a 63 6f 6e 73 74 20 53 43 52 55 42 5f 54 4f 4f 4c 5f 43 41 4c 4c 5f 49 44 20 3d 20 ..*/.const.SCRUB_TOOL_CALL_ID.=.
41e0 28 69 64 3a 20 73 74 72 69 6e 67 29 3a 20 73 74 72 69 6e 67 20 3d 3e 20 69 64 2e 72 65 70 6c 61 (id:.string):.string.=>.id.repla
4200 63 65 28 2f 5b 5e 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2f 67 2c 20 22 5f 22 29 3b 0a 0a 66 75 6e ce(/[^a-zA-Z0-9_-]/g,."_");..fun
4220 63 74 69 6f 6e 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 74 75 72 61 6c 4e 6f ction.applyAnthropicStructuralNo
4240 72 6d 61 6c 69 73 61 74 69 6f 6e 73 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b rmalisations(msgs:.ModelMessage[
4260 5d 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 2f 2f 20 50 61 73 73 20 31 3a ]):.ModelMessage[].{..//.Pass.1:
4280 20 46 69 6c 74 65 72 20 65 6d 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 .Filter.empty.text/reasoning.par
42a0 74 73 3b 20 64 72 6f 70 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 62 65 63 6f 6d 65 20 65 6d ts;.drop.messages.that.become.em
42c0 70 74 79 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 0a 09 09 2e 6d 61 70 28 28 6d 73 67 29 20 3d pty...msgs.=.msgs....map((msg).=
42e0 3e 20 7b 0a 09 09 09 69 66 20 28 74 79 70 65 6f 66 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 20 3d 3d >.{....if.(typeof.msg.content.==
4300 3d 20 22 73 74 72 69 6e 67 22 29 20 7b 0a 09 09 09 09 69 66 20 28 6d 73 67 2e 63 6f 6e 74 65 6e =."string").{.....if.(msg.conten
4320 74 20 3d 3d 3d 20 22 22 29 20 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 09 t.===."").return.undefined;.....
4340 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 09 09 7d 0a 09 09 09 69 66 20 28 21 41 72 72 61 79 2e 69 return.msg;....}....if.(!Array.i
4360 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;
4380 0a 09 09 09 63 6f 6e 73 74 20 66 69 6c 74 65 72 65 64 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 ....const.filtered.=.msg.content
43a0 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 69 66 20 28 70 61 72 74 .filter((part).=>.{.....if.(part
43c0 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 20 7c 7c 20 70 61 72 74 2e 74 79 70 65 20 3d 3d .type.===."text".||.part.type.==
43e0 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 20 7b 0a 09 09 09 09 09 2f 2f 20 44 72 6f 70 20 65 6d =."reasoning").{......//.Drop.em
4400 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 41 6e 74 68 72 6f pty.text/reasoning.parts..Anthro
4420 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 20 65 6d 70 74 79 0a 09 09 09 09 09 2f 2f 20 60 72 65 pic.rejects.an.empty......//.`re
4440 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 20 28 22 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 20 6d asoning`.part.("thinking.block.m
4460 75 73 74 20 68 61 76 65 20 63 6f 6e 74 65 6e 74 22 29 20 65 76 65 6e 0a 09 09 09 09 09 2f 2f 20 ust.have.content").even......//.
4480 77 68 65 6e 20 69 74 20 63 61 72 72 69 65 73 20 61 20 73 69 67 6e 61 74 75 72 65 2c 20 73 6f 20 when.it.carries.a.signature,.so.
44a0 77 65 20 73 74 72 69 70 20 69 74 20 6f 6e 20 74 68 65 20 77 61 79 20 6f 75 74 0a 09 09 09 09 09 we.strip.it.on.the.way.out......
44c0 2f 2f 20 77 68 69 6c 65 20 73 74 69 6c 6c 20 70 65 72 73 69 73 74 69 6e 67 20 74 68 65 20 73 69 //.while.still.persisting.the.si
44e0 67 6e 65 64 20 62 6c 6f 63 6b 20 66 6f 72 20 72 6f 75 6e 64 2d 74 72 69 70 0a 09 09 09 09 09 2f gned.block.for.round-trip....../
4500 2f 20 66 69 64 65 6c 69 74 79 20 28 73 65 65 20 74 68 65 20 65 6d 70 74 79 2d 72 65 61 73 6f 6e /.fidelity.(see.the.empty-reason
4520 69 6e 67 2d 70 61 72 74 20 74 65 73 74 29 2e 0a 09 09 09 09 09 72 65 74 75 72 6e 20 28 70 61 72 ing-part.test).......return.(par
4540 74 20 61 73 20 7b 20 74 65 78 74 3a 20 73 74 72 69 6e 67 20 7d 29 2e 74 65 78 74 20 21 3d 3d 20 t.as.{.text:.string.}).text.!==.
4560 22 22 3b 0a 09 09 09 09 7d 0a 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 09 09 09 7d 29 "";.....}.....return.true;....})
4580 3b 0a 09 09 09 69 66 20 28 66 69 6c 74 65 72 65 64 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 29 20 ;....if.(filtered.length.===.0).
45a0 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 72 65 74 75 72 6e 20 7b 20 2e 2e return.undefined;....return.{...
45c0 2e 6d 73 67 2c 20 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 20 7d 3b 0a 09 09 7d 29 0a .msg,.content:.filtered.};...}).
45e0 09 09 2e 66 69 6c 74 65 72 28 28 6d 73 67 29 3a 20 6d 73 67 20 69 73 20 4d 6f 64 65 6c 4d 65 73 ...filter((msg):.msg.is.ModelMes
4600 73 61 67 65 20 3d 3e 20 6d 73 67 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 26 26 20 6d 73 67 sage.=>.msg.!==.undefined.&&.msg
4620 2e 63 6f 6e 74 65 6e 74 20 21 3d 3d 20 22 22 29 3b 0a 0a 09 2f 2f 20 50 61 73 73 20 32 3a 20 53 .content.!==."");...//.Pass.2:.S
4640 63 72 75 62 20 74 6f 6f 6c 43 61 6c 6c 49 64 20 63 68 61 72 73 20 6f 6e 20 62 6f 74 68 20 61 73 crub.toolCallId.chars.on.both.as
4660 73 69 73 74 61 6e 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 20 61 6e 64 0a 09 2f 2f 20 sistant.tool-call.parts.and..//.
4680 74 6f 6f 6c 2d 72 6f 6c 65 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 72 74 73 2e 20 41 6e 74 tool-role.tool-result.parts..Ant
46a0 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 79 74 68 69 6e 67 20 6f 75 74 73 69 64 65 0a hropic.rejects.anything.outside.
46c0 09 2f 2f 20 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2e 20 4f 75 72 20 69 6e 74 65 72 6e 61 6c 20 .//.[a-zA-Z0-9_-]..Our.internal.
46e0 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e 72 61 6e 64 6f 6d 55 55 49 44 28 29 20 61 6e 64 20 IDs.are.crypto.randomUUID().and.
4700 73 61 66 65 2c 20 62 75 74 0a 09 2f 2f 20 75 70 73 74 72 65 61 6d 20 70 72 6f 76 69 64 65 72 2d safe,.but..//.upstream.provider-
4720 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 20 6f 72 20 65 78 74 65 72 6e 61 6c 20 73 6f 75 72 63 executed.tools.or.external.sourc
4740 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 2e 6d 61 70 28 es.may.not.be...msgs.=.msgs.map(
4760 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 61 (msg).=>.{...if.(msg.role.===."a
4780 73 73 69 73 74 61 6e 74 22 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 ssistant".&&.Array.isArray(msg.c
47a0 6f 6e 74 65 6e 74 29 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 2e 2e 2e 6d 73 ontent)).{....return.{........ms
47c0 67 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 6d 61 70 28 g,.....content:.msg.content.map(
47e0 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e 74 79 70 65 20 3d (part).=>.{......if.(part.type.=
4800 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7c 7c 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 ==."tool-call".||.part.type.===.
4820 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.{.
4840 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_
4860 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).};.....
4880 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;.....}),....
48a0 7d 3b 0a 09 09 7d 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 74 6f 6f 6c 22 };...}...if.(msg.role.===."tool"
48c0 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 .&&.Array.isArray(msg.content)).
48e0 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 2e 2e 2e 6d 73 67 2c 0a 09 09 09 09 63 6f {....return.{........msg,.....co
4900 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 6d 61 70 28 28 70 61 72 74 29 20 3d 3e ntent:.msg.content.map((part).=>
4920 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d .{......if.(part.type.===."tool-
4940 72 65 73 75 6c 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 20 2e 2e 2e 70 61 72 result").{.......return.{....par
4960 74 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 53 43 52 55 42 5f 54 4f 4f 4c 5f 43 41 4c 4c 5f 49 t,.toolCallId:.SCRUB_TOOL_CALL_I
4980 44 28 70 61 72 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 29 20 7d 3b 0a 09 09 09 09 09 7d 0a 09 09 09 D(part.toolCallId).};......}....
49a0 09 09 72 65 74 75 72 6e 20 70 61 72 74 3b 0a 09 09 09 09 7d 29 2c 0a 09 09 09 7d 3b 0a 09 09 7d ..return.part;.....}),....};...}
49c0 0a 09 09 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 7d 29 3b 0a 0a 09 2f 2f 20 50 61 73 73 20 33 3a ...return.msg;..});...//.Pass.3:
49e0 20 53 70 6c 69 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 73 20 77 68 65 72 65 20 .Split.assistant.messages.where.
4a00 74 6f 6f 6c 2d 63 61 6c 6c 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 6e 6f 6e 2d 74 tool-calls.are.followed.by.non-t
4a20 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 2e 0a 09 2f 2f 20 5b 74 65 78 74 2c 20 74 6f 6f 6c 2d ool-call.parts...//.[text,.tool-
4a40 63 61 6c 6c 2c 20 74 65 78 74 5d 20 e2 86 92 20 5b 74 65 78 74 2c 20 74 65 78 74 5d 20 2b 20 5b call,.text].....[text,.text].+.[
4a60 74 6f 6f 6c 2d 63 61 6c 6c 5d 20 28 74 65 78 74 2d 6f 6e 6c 79 20 66 69 72 73 74 2c 20 74 6f 6f tool-call].(text-only.first,.too
4a80 6c 73 2d 6f 6e 6c 79 20 73 65 63 6f 6e 64 29 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 2e 66 6c 61 ls-only.second)..msgs.=.msgs.fla
4aa0 74 4d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 21 tMap((msg).=>.{...if.(msg.role.!
4ac0 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 73 41 72 72 61 79 ==."assistant".||.!Array.isArray
4ae0 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 0a 09 09 63 (msg.content)).return.[msg];...c
4b00 6f 6e 73 74 20 70 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 3b 0a 09 09 63 6f 6e 73 onst.parts.=.msg.content;...cons
4b20 74 20 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 20 3d 20 70 61 72 74 73 2e 66 69 6e 64 49 t.firstToolCallIdx.=.parts.findI
4b40 6e 64 65 78 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f ndex((part).=>.part.type.===."to
4b60 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 69 66 20 28 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 ol-call");...if.(firstToolCallId
4b80 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 20 2f 2f 20 6e 6f 20 74 6f x.===.-1).return.[msg];.//.no.to
4ba0 6f 6c 20 63 61 6c 6c 73 20 e2 86 92 20 70 61 73 73 20 74 68 72 6f 75 67 68 0a 09 09 2f 2f 20 49 ol.calls.....pass.through...//.I
4bc0 66 20 65 76 65 72 79 74 68 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 66 69 72 73 74 20 74 6f 6f 6c f.everything.from.the.first.tool
4be0 2d 63 61 6c 6c 20 6f 6e 77 61 72 64 20 69 73 20 61 6c 73 6f 20 61 20 74 6f 6f 6c 2d 63 61 6c 6c -call.onward.is.also.a.tool-call
4c00 2c 20 69 74 27 73 20 61 6c 72 65 61 64 79 20 76 61 6c 69 64 0a 09 09 69 66 20 28 21 70 61 72 74 ,.it's.already.valid...if.(!part
4c20 73 2e 73 6c 69 63 65 28 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 29 2e 73 6f 6d 65 28 28 s.slice(firstToolCallIdx).some((
4c40 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c part).=>.part.type.!==."tool-cal
4c60 6c 22 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 0a 09 09 2f 2f 20 48 61 73 20 6e 6f 6e 2d l")).return.[msg];...//.Has.non-
4c80 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 20 41 46 54 45 52 20 61 20 74 6f 6f 6c 2d 63 tool-call.content.AFTER.a.tool-c
4ca0 61 6c 6c 20 e2 86 92 20 73 70 6c 69 74 0a 09 09 63 6f 6e 73 74 20 6e 6f 6e 54 6f 6f 6c 50 61 72 all.....split...const.nonToolPar
4cc0 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 ts.=.parts.filter((part).=>.part
4ce0 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 63 6f 6e 73 74 20 .type.!==."tool-call");...const.
4d00 74 6f 6f 6c 50 61 72 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 toolParts.=.parts.filter((part).
4d20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 =>.part.type.===."tool-call");..
4d40 09 72 65 74 75 72 6e 20 5b 0a 09 09 09 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e 74 65 6e 74 3a 20 .return.[....{....msg,.content:.
4d60 6e 6f 6e 54 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 09 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e nonToolParts.},....{....msg,.con
4d80 74 65 6e 74 3a 20 74 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 5d 3b 0a 09 7d 29 3b 0a 0a 09 72 tent:.toolParts.},...];..});...r
4da0 65 74 75 72 6e 20 6d 73 67 73 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 41 6e 74 68 eturn.msgs;.}../**..*.Apply.Anth
4dc0 72 6f 70 69 63 20 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b 70 6f 69 6e 74 73 ropic.prompt-caching.breakpoints
4de0 20 74 6f 20 61 20 6d 65 73 73 61 67 65 20 6c 69 73 74 2e 0a 20 2a 0a 20 2a 20 41 6e 74 68 72 6f .to.a.message.list...*..*.Anthro
4e00 70 69 63 20 63 61 63 68 65 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 65 71 75 65 73 74 20 70 72 pic.caches.the.entire.request.pr
4e20 65 66 69 78 20 75 70 20 74 6f 20 28 61 6e 64 20 69 6e 63 6c 75 64 69 6e 67 29 20 61 6e 79 20 62 efix.up.to.(and.including).any.b
4e40 6c 6f 63 6b 0a 20 2a 20 6d 61 72 6b 65 64 20 77 69 74 68 20 60 63 61 63 68 65 5f 63 6f 6e 74 72 lock..*.marked.with.`cache_contr
4e60 6f 6c 60 2e 20 55 70 20 74 6f 20 34 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 70 65 72 20 72 65 71 ol`..Up.to.4.breakpoints.per.req
4e80 75 65 73 74 3b 20 77 65 20 75 73 65 20 74 68 72 65 65 0a 20 2a 20 28 66 69 72 73 74 20 73 79 73 uest;.we.use.three..*.(first.sys
4ea0 74 65 6d 20 2b 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 74 65 6d 29 2e 0a 20 2a 0a 20 2a 20 tem.+.last.2.non-system)...*..*.
4ec0 53 74 72 61 74 65 67 79 20 28 6d 69 72 72 6f 72 73 20 4f 70 65 6e 43 6f 64 65 27 73 20 60 61 70 Strategy.(mirrors.OpenCode's.`ap
4ee0 70 6c 79 43 61 63 68 69 6e 67 60 20 69 6e 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 29 3a 0a 20 2a plyCaching`.in.transform.ts):..*
4f00 20 20 2d 20 4d 61 72 6b 20 74 68 65 20 66 69 72 73 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 ..-.Mark.the.first.system.messag
4f20 65 20 e2 86 92 20 63 61 63 68 65 73 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 28 61 6e 64 20 e.....caches.system.prompt.(and.
4f40 74 6f 6f 6c 73 2c 20 77 68 69 63 68 0a 20 2a 20 20 20 20 73 69 74 20 62 65 66 6f 72 65 20 6d 65 tools,.which..*....sit.before.me
4f60 73 73 61 67 65 73 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 62 6f 64 79 29 2e 0a 20 2a 20 ssages.in.the.request.body)...*.
4f80 20 2d 20 4d 61 72 6b 20 74 68 65 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 74 65 6d 20 6d 65 .-.Mark.the.last.2.non-system.me
4fa0 73 73 61 67 65 73 20 e2 86 92 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 74 68 61 74 20 65 78 ssages.....rolling.cache.that.ex
4fc0 74 65 6e 64 73 20 74 68 72 6f 75 67 68 0a 20 2a 20 20 20 20 74 68 65 20 63 6f 6e 76 65 72 73 61 tends.through..*....the.conversa
4fe0 74 69 6f 6e 20 65 61 63 68 20 74 75 72 6e 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 72 65 6c 69 65 tion.each.turn...*..*.This.relie
5000 73 20 6f 6e 20 60 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 60 20 67 72 6f 75 70 69 6e 67 20 s.on.`toModelMessages`.grouping.
5020 61 20 74 75 72 6e 27 73 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 74 6f 20 6f 6e 65 0a 20 a.turn's.tool.results.into.one..
5040 2a 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 3a 20 74 68 61 74 20 6d *.`role:."tool"`.message:.that.m
5060 61 6b 65 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 6e 6f 6e 2d 73 79 73 74 65 6d 20 6d 65 73 akes.the.last.two.non-system.mes
5080 73 61 67 65 73 0a 20 2a 20 60 5b 61 73 73 69 73 74 61 6e 74 28 74 6f 6f 6c 2d 63 61 6c 6c 73 29 sages..*.`[assistant(tool-calls)
50a0 2c 20 74 6f 6f 6c 28 72 65 73 75 6c 74 73 29 5d 60 20 6d 69 64 2d 74 75 72 6e 2c 20 73 6f 20 74 ,.tool(results)]`.mid-turn,.so.t
50c0 68 65 20 74 77 6f 20 72 6f 6c 6c 69 6e 67 0a 20 2a 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 73 74 he.two.rolling..*.breakpoints.st
50e0 72 61 64 64 6c 65 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 2f 74 6f 6f 6c 20 62 6f 75 6e 64 61 raddle.the.assistant/tool.bounda
5100 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 63 6f 6c 6c 61 70 73 69 6e 67 20 6f 6e 74 6f 0a 20 2a ry.instead.of.collapsing.onto..*
5120 20 74 77 6f 20 61 64 6a 61 63 65 6e 74 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 6d 65 73 73 61 67 .two.adjacent.tool-result.messag
5140 65 73 20 28 77 68 69 63 68 20 77 61 73 74 65 73 20 61 20 62 72 65 61 6b 70 6f 69 6e 74 20 e2 80 es.(which.wastes.a.breakpoint...
5160 94 20 73 65 65 0a 20 2a 20 63 6c 61 75 64 65 2d 72 65 70 6f 72 74 2e 6d 64 2c 20 52 6f 6f 74 20 ..see..*.claude-report.md,.Root.
5180 43 61 75 73 65 20 32 29 2e 20 41 6e 74 68 72 6f 70 69 63 20 63 61 63 68 65 73 20 74 68 65 20 77 Cause.2)..Anthropic.caches.the.w
51a0 68 6f 6c 65 20 70 72 65 66 69 78 20 75 70 20 74 6f 20 61 6e 64 0a 20 2a 20 69 6e 63 6c 75 64 69 hole.prefix.up.to.and..*.includi
51c0 6e 67 20 61 20 6d 61 72 6b 65 64 20 62 6c 6f 63 6b 2c 20 73 6f 20 6d 61 72 6b 69 6e 67 20 74 68 ng.a.marked.block,.so.marking.th
51e0 65 20 67 72 6f 75 70 65 64 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 20 65 78 74 65 6e 64 73 20 74 e.grouped.tool.message.extends.t
5200 68 65 0a 20 2a 20 63 61 63 68 65 64 20 70 72 65 66 69 78 20 61 63 72 6f 73 73 20 65 76 65 72 79 he..*.cached.prefix.across.every
5220 20 72 65 73 75 6c 74 20 74 68 65 20 74 75 72 6e 20 70 72 6f 64 75 63 65 64 2e 0a 20 2a 0a 20 2a .result.the.turn.produced...*..*
5240 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 .Only.applied.for.the.Anthropic.
5260 70 72 6f 76 69 64 65 72 2e 20 4f 70 65 6e 43 6f 64 65 20 5a 65 6e 27 73 20 4f 70 65 6e 41 49 2d provider..OpenCode.Zen's.OpenAI-
5280 63 6f 6d 70 61 74 69 62 6c 65 0a 20 2a 20 65 6e 64 70 6f 69 6e 74 20 28 60 2f 7a 65 6e 2f 76 31 compatible..*.endpoint.(`/zen/v1
52a0 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 60 29 20 62 61 63 6b 73 20 6d 6f 64 65 6c 73 /chat/completions`).backs.models
52c0 20 6c 69 6b 65 20 4d 69 6e 69 4d 61 78 2c 20 47 4c 4d 2c 20 4b 69 6d 69 2c 0a 20 2a 20 47 72 6f .like.MiniMax,.GLM,.Kimi,..*.Gro
52e0 6b 2c 20 65 74 63 2e 20 e2 80 94 20 74 68 6f 73 65 20 75 70 73 74 72 65 61 6d 73 20 64 6f 20 61 k,.etc......those.upstreams.do.a
5300 75 74 6f 6d 61 74 69 63 20 70 72 65 66 69 78 20 63 61 63 68 69 6e 67 20 73 65 72 76 65 72 2d 73 utomatic.prefix.caching.server-s
5320 69 64 65 20 61 6e 64 0a 20 2a 20 64 6f 6e 27 74 20 61 63 63 65 70 74 20 60 63 61 63 68 65 5f 63 ide.and..*.don't.accept.`cache_c
5340 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 4f 70 65 6e 43 6f 64 65 27 73 20 6f 77 6e 20 ontrol`.markers..OpenCode's.own.
5360 74 72 61 6e 73 66 6f 72 6d 2e 74 73 20 67 61 74 65 73 0a 20 2a 20 60 61 70 70 6c 79 43 61 63 68 transform.ts.gates..*.`applyCach
5380 69 6e 67 60 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2d 66 61 6d 69 6c 79 20 64 65 74 65 63 74 69 ing`.on.Anthropic-family.detecti
53a0 6f 6e 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 72 65 61 73 6f 6e 2e 20 4d 6f 64 65 6c 73 0a 20 on.for.the.same.reason..Models..
53c0 2a 20 73 65 72 76 65 64 20 76 69 61 20 60 40 61 69 2d 73 64 6b 2f 6f 70 65 6e 61 69 60 20 28 47 *.served.via.`@ai-sdk/openai`.(G
53e0 50 54 29 20 61 6e 64 20 60 40 61 69 2d 73 64 6b 2f 67 6f 6f 67 6c 65 60 20 28 47 65 6d 69 6e 69 PT).and.`@ai-sdk/google`.(Gemini
5400 29 20 6c 69 6b 65 77 69 73 65 0a 20 2a 20 75 73 65 20 73 65 72 76 65 72 2d 73 69 64 65 20 61 75 ).likewise..*.use.server-side.au
5420 74 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 61 70 tomatic.caching...*/.function.ap
5440 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d plyAnthropicCaching(msgs:.ModelM
5460 65 73 73 61 67 65 5b 5d 29 3a 20 76 6f 69 64 20 7b 0a 09 63 6f 6e 73 74 20 74 61 72 67 65 74 73 essage[]):.void.{..const.targets
5480 20 3d 20 6e 65 77 20 53 65 74 3c 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3e 28 29 3b 0a 0a 09 63 6f .=.new.Set<ModelMessage>();...co
54a0 6e 73 74 20 73 79 73 74 65 6d 4d 73 67 73 20 3d 20 6d 73 67 73 2e 66 69 6c 74 65 72 28 28 6d 29 nst.systemMsgs.=.msgs.filter((m)
54c0 20 3d 3e 20 6d 2e 72 6f 6c 65 20 3d 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 6c 69 63 65 28 30 .=>.m.role.===."system").slice(0
54e0 2c 20 32 29 3b 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 20 6f 66 20 73 79 73 74 65 6d 4d 73 67 ,.2);..for.(const.m.of.systemMsg
5500 73 29 20 74 61 72 67 65 74 73 2e 61 64 64 28 6d 29 3b 0a 0a 09 63 6f 6e 73 74 20 6e 6f 6e 53 79 s).targets.add(m);...const.nonSy
5520 73 74 65 6d 20 3d 20 6d 73 67 73 2e 66 69 6c 74 65 72 28 28 6d 29 20 3d 3e 20 6d 2e 72 6f 6c 65 stem.=.msgs.filter((m).=>.m.role
5540 20 21 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 6c 69 63 65 28 2d 32 29 3b 0a 09 66 6f 72 20 28 .!==."system").slice(-2);..for.(
5560 63 6f 6e 73 74 20 6d 20 6f 66 20 6e 6f 6e 53 79 73 74 65 6d 29 20 74 61 72 67 65 74 73 2e 61 64 const.m.of.nonSystem).targets.ad
5580 64 28 6d 29 3b 0a 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 73 67 20 6f 66 20 74 61 72 67 65 74 d(m);...for.(const.msg.of.target
55a0 73 29 20 7b 0a 09 09 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 3d 20 7b 0a 09 s).{...msg.providerOptions.=.{..
55c0 09 09 2e 2e 2e 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2c 0a 09 09 09 61 6e 74 .....msg.providerOptions,....ant
55e0 68 72 6f 70 69 63 3a 20 7b 0a 09 09 09 09 2e 2e 2e 28 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 hropic:.{........(msg.providerOp
5600 74 69 6f 6e 73 3f 2e 61 6e 74 68 72 6f 70 69 63 20 3f 3f 20 7b 7d 29 2c 0a 09 09 09 09 63 61 63 tions?.anthropic.??.{}),.....cac
5620 68 65 43 6f 6e 74 72 6f 6c 3a 20 7b 20 74 79 70 65 3a 20 22 65 70 68 65 6d 65 72 61 6c 22 20 7d heControl:.{.type:."ephemeral".}
5640 2c 0a 09 09 09 7d 2c 0a 09 09 7d 3b 0a 09 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d ,....},...};..}.}..function.form
5660 61 74 45 72 72 6f 72 28 65 72 72 3a 20 75 6e 6b 6e 6f 77 6e 2c 20 63 6f 6e 66 69 67 3a 20 41 67 atError(err:.unknown,.config:.Ag
5680 65 6e 74 43 6f 6e 66 69 67 29 3a 20 73 74 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 74 20 63 6f 6e 74 entConfig):.string.{..const.cont
56a0 65 78 74 20 3d 20 60 5b 6d 6f 64 65 6c 3d 24 7b 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 7d 2c 20 62 ext.=.`[model=${config.model},.b
56c0 61 73 65 55 52 4c 3d 24 7b 63 6f 6e 66 69 67 2e 62 61 73 65 55 52 4c 7d 5d 60 3b 0a 0a 09 69 66 aseURL=${config.baseURL}]`;...if
56e0 20 28 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 29 20 7b 0a 09 09 63 6f 6e 73 .(err.instanceof.Error).{...cons
5700 74 20 63 61 75 73 65 20 3d 20 65 72 72 2e 63 61 75 73 65 20 3f 20 60 20 7c 20 63 61 75 73 65 3a t.cause.=.err.cause.?.`.|.cause:
5720 20 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 2e 63 61 75 73 65 29 7d 60 20 3a .${JSON.stringify(err.cause)}`.:
5740 20 22 22 3b 0a 09 09 2f 2f 20 41 49 20 53 44 4b 20 65 72 72 6f 72 73 20 6f 66 74 65 6e 20 68 61 ."";...//.AI.SDK.errors.often.ha
5760 76 65 20 73 74 61 74 75 73 43 6f 64 65 2c 20 72 65 73 70 6f 6e 73 65 42 6f 64 79 2c 20 6f 72 20 ve.statusCode,.responseBody,.or.
5780 75 72 6c 20 70 72 6f 70 65 72 74 69 65 73 0a 09 09 63 6f 6e 73 74 20 65 78 74 72 61 73 3a 20 73 url.properties...const.extras:.s
57a0 74 72 69 6e 67 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 tring[].=.[];...const.errRecord.
57c0 3d 20 65 72 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e =.err.as.unknown.as.Record<strin
57e0 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 69 66 20 28 22 73 74 61 74 75 73 43 6f 64 65 22 20 g,.unknown>;...if.("statusCode".
5800 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 72 61 73 2e 70 75 73 68 28 60 73 74 61 74 75 in.errRecord).extras.push(`statu
5820 73 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 7d 60 29 3b 0a 09 09 69 s=${errRecord.statusCode}`);...i
5840 66 20 28 22 75 72 6c 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 72 61 73 2e 70 75 f.("url".in.errRecord).extras.pu
5860 73 68 28 60 75 72 6c 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 75 72 6c 7d 60 29 3b 0a 09 09 69 66 sh(`url=${errRecord.url}`);...if
5880 20 28 22 72 65 73 70 6f 6e 73 65 42 6f 64 79 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 .("responseBody".in.errRecord).e
58a0 78 74 72 61 73 2e 70 75 73 68 28 60 62 6f 64 79 3d 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 xtras.push(`body=${JSON.stringif
58c0 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 70 6f 6e 73 65 42 6f 64 79 29 7d 60 29 3b 0a 09 09 y(errRecord.responseBody)}`);...
58e0 69 66 20 28 22 72 65 73 70 6f 6e 73 65 48 65 61 64 65 72 73 22 20 69 6e 20 65 72 72 52 65 63 6f if.("responseHeaders".in.errReco
5900 72 64 29 0a 09 09 09 65 78 74 72 61 73 2e 70 75 73 68 28 60 68 65 61 64 65 72 73 3d 24 7b 4a 53 rd)....extras.push(`headers=${JS
5920 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 70 6f 6e 73 65 48 ON.stringify(errRecord.responseH
5940 65 61 64 65 72 73 29 7d 60 29 3b 0a 0a 09 09 63 6f 6e 73 74 20 64 65 74 61 69 6c 20 3d 20 65 78 eaders)}`);....const.detail.=.ex
5960 74 72 61 73 2e 6c 65 6e 67 74 68 20 3e 20 30 20 3f 20 60 20 28 24 7b 65 78 74 72 61 73 2e 6a 6f tras.length.>.0.?.`.(${extras.jo
5980 69 6e 28 22 2c 20 22 29 7d 29 60 20 3a 20 22 22 3b 0a 09 09 72 65 74 75 72 6e 20 60 24 7b 65 72 in(",.")})`.:."";...return.`${er
59a0 72 2e 6d 65 73 73 61 67 65 7d 24 7b 64 65 74 61 69 6c 7d 24 7b 63 61 75 73 65 7d 20 24 7b 63 6f r.message}${detail}${cause}.${co
59c0 6e 74 65 78 74 7d 60 3b 0a 09 7d 0a 0a 09 72 65 74 75 72 6e 20 60 24 7b 53 74 72 69 6e 67 28 65 ntext}`;..}...return.`${String(e
59e0 72 72 29 7d 20 24 7b 63 6f 6e 74 65 78 74 7d 60 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 42 75 69 6c rr)}.${context}`;.}../**..*.Buil
5a00 64 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 60 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 d.the.Anthropic.`providerOptions
5a20 2e 61 6e 74 68 72 6f 70 69 63 60 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 67 20 66 6f 72 20 .anthropic`.thinking.config.for.
5a40 61 20 67 69 76 65 6e 0a 20 2a 20 6d 6f 64 65 6c 20 2b 20 72 65 61 73 6f 6e 69 6e 67 20 65 66 66 a.given..*.model.+.reasoning.eff
5a60 6f 72 74 2e 20 44 65 74 65 63 74 69 6f 6e 20 6d 69 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 27 ort..Detection.mirrors.opencode'
5a80 73 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 60 0a 20 2a 20 28 60 61 s.`provider/transform.ts`..*.(`a
5aa0 6e 74 68 72 6f 70 69 63 4f 70 75 73 34 37 4f 72 4c 61 74 65 72 60 20 2b 20 60 61 6e 74 68 72 6f nthropicOpus47OrLater`.+.`anthro
5ac0 70 69 63 41 64 61 70 74 69 76 65 45 66 66 6f 72 74 73 60 29 3a 0a 20 2a 0a 20 2a 20 20 2d 20 41 picAdaptiveEfforts`):..*..*..-.A
5ae0 44 41 50 54 49 56 45 20 6d 6f 64 65 6c 73 20 65 6d 69 74 20 60 7b 20 74 68 69 6e 6b 69 6e 67 3a DAPTIVE.models.emit.`{.thinking:
5b00 20 7b 20 74 79 70 65 3a 20 22 61 64 61 70 74 69 76 65 22 20 7d 2c 20 65 66 66 6f 72 74 20 7d 60 .{.type:."adaptive".},.effort.}`
5b20 20 61 6e 64 20 70 69 63 6b 0a 20 2a 20 20 20 20 74 68 65 69 72 20 6f 77 6e 20 74 68 69 6e 6b 69 .and.pick..*....their.own.thinki
5b40 6e 67 20 62 75 64 67 65 74 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e ng.budget.within.`maxOutputToken
5b60 73 60 2e 20 41 20 6d 6f 64 65 6c 20 69 73 20 61 64 61 70 74 69 76 65 20 77 68 65 6e 0a 20 2a 20 s`..A.model.is.adaptive.when..*.
5b80 20 20 20 69 74 20 69 73 20 4f 70 75 73 20 34 2e 37 2b 20 28 70 61 72 73 65 64 20 66 72 6f 6d 20 ...it.is.Opus.4.7+.(parsed.from.
5ba0 74 68 65 20 69 64 29 20 4f 52 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 20 28 6d 61 74 63 the.id).OR.Opus/Sonnet.4.6.(matc
5bc0 68 65 64 20 62 79 20 69 64 0a 20 2a 20 20 20 20 73 75 62 73 74 72 69 6e 67 20 e2 80 94 20 74 68 hed.by.id..*....substring.....th
5be0 65 72 65 20 69 73 20 6e 6f 20 6e 65 77 65 72 20 53 6f 6e 6e 65 74 20 74 6f 20 67 65 6e 65 72 61 ere.is.no.newer.Sonnet.to.genera
5c00 6c 69 73 65 20 79 65 74 29 2e 0a 20 2a 20 20 20 20 20 20 2d 20 60 64 69 73 70 6c 61 79 3a 20 22 lise.yet)...*......-.`display:."
5c20 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 69 73 20 61 64 64 65 64 20 4f 4e 4c 59 20 66 6f 72 20 4f summarized"`.is.added.ONLY.for.O
5c40 70 75 73 20 34 2e 37 2b 2e 20 54 68 6f 73 65 20 6d 6f 64 65 6c 73 0a 20 2a 20 20 20 20 20 20 20 pus.4.7+..Those.models..*.......
5c60 20 64 65 66 61 75 6c 74 20 74 6f 20 60 64 69 73 70 6c 61 79 3a 20 22 6f 6d 69 74 74 65 64 22 60 .default.to.`display:."omitted"`
5c80 20 28 4e 4f 20 74 68 69 6e 6b 69 6e 67 20 73 74 72 65 61 6d 65 64 20 74 6f 20 75 73 29 2c 20 73 .(NO.thinking.streamed.to.us),.s
5ca0 6f 20 74 68 65 0a 20 2a 20 20 20 20 20 20 20 20 66 6c 61 67 20 6d 75 73 74 20 62 65 20 66 6f 72 o.the..*........flag.must.be.for
5cc0 63 65 64 20 74 6f 20 73 75 72 66 61 63 65 20 74 68 69 6e 6b 69 6e 67 20 69 6e 20 74 68 65 20 55 ced.to.surface.thinking.in.the.U
5ce0 49 2e 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 0a 20 2a 20 20 20 20 20 20 20 20 73 74 72 I..Opus/Sonnet.4.6..*........str
5d00 65 61 6d 20 74 68 69 6e 6b 69 6e 67 20 77 69 74 68 6f 75 74 20 69 74 20 28 6f 70 65 6e 63 6f 64 eam.thinking.without.it.(opencod
5d20 65 20 6f 6d 69 74 73 20 60 64 69 73 70 6c 61 79 60 20 74 68 65 72 65 20 74 6f 6f 29 2e 0a 20 2a e.omits.`display`.there.too)...*
5d40 20 20 20 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 69 62 6c 69 6e 67 20 6f 66 20 60 74 68 ......-.`effort`.(sibling.of.`th
5d60 69 6e 6b 69 6e 67 60 29 20 74 65 6c 6c 73 20 61 64 61 70 74 69 76 65 20 68 6f 77 20 68 61 72 64 inking`).tells.adaptive.how.hard
5d80 20 74 6f 20 74 68 69 6e 6b 2e 0a 20 2a 20 20 2d 20 41 6c 6c 20 4f 54 48 45 52 20 43 6c 61 75 64 .to.think...*..-.All.OTHER.Claud
5da0 65 20 6d 6f 64 65 6c 73 20 75 73 65 20 63 6c 61 73 73 69 63 20 60 7b 20 74 68 69 6e 6b 69 6e 67 e.models.use.classic.`{.thinking
5dc0 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 2c 0a 20 2a 20 20 20 20 62 75 64 67 65 :.{.type:."enabled",..*....budge
5de0 74 54 6f 6b 65 6e 73 20 7d 20 7d 60 2e 20 54 68 65 20 62 75 64 67 65 74 20 69 73 20 61 20 63 65 tTokens.}.}`..The.budget.is.a.ce
5e00 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 20 e2 80 94 20 74 68 65 iling,.not.a.requirement.....the
5e20 20 6d 6f 64 65 6c 0a 20 2a 20 20 20 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 20 74 68 69 6e .model..*....self-regulates.thin
5e40 6b 69 6e 67 20 76 73 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 king.vs.response.within.`maxOutp
5e60 75 74 54 6f 6b 65 6e 73 60 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 65 64 20 61 73 20 63 6f 6e utTokens`...*..*.Returned.as.con
5e80 63 72 65 74 65 20 6f 62 6a 65 63 74 20 73 68 61 70 65 73 20 28 6e 6f 20 6f 70 74 69 6f 6e 61 6c crete.object.shapes.(no.optional
5ea0 2f 60 75 6e 64 65 66 69 6e 65 64 60 20 70 72 6f 70 65 72 74 69 65 73 29 20 73 6f 20 74 68 65 0a /`undefined`.properties).so.the.
5ec0 20 2a 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6c 65 61 6e 20 60 52 65 63 6f 72 64 3c 73 74 72 .*.result.is.a.clean.`Record<str
5ee0 69 6e 67 2c 20 4a 53 4f 4e 56 61 6c 75 65 3e 60 20 66 6f 72 20 60 70 72 6f 76 69 64 65 72 4f 70 ing,.JSONValue>`.for.`providerOp
5f00 74 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 60 2e 0a 20 2a 20 43 61 6c 6c 65 72 73 20 6f 6e 6c tions.anthropic`...*.Callers.onl
5f20 79 20 69 6e 76 6f 6b 65 20 74 68 69 73 20 77 68 65 6e 20 60 65 66 66 6f 72 74 20 21 3d 3d 20 22 y.invoke.this.when.`effort.!==."
5f40 6e 6f 6e 65 22 60 2e 0a 20 2a 2f 0a 65 78 70 6f 72 74 20 66 75 6e 63 74 69 6f 6e 20 61 6e 74 68 none"`...*/.export.function.anth
5f60 72 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 28 6d 6f 64 ropicThinkingProviderOptions(mod
5f80 65 6c 3a 20 73 74 72 69 6e 67 2c 20 65 66 66 6f 72 74 3a 20 52 65 61 73 6f 6e 69 6e 67 45 66 66 el:.string,.effort:.ReasoningEff
5fa0 6f 72 74 29 20 7b 0a 09 63 6f 6e 73 74 20 6f 70 75 73 56 65 72 73 69 6f 6e 20 3d 20 2f 6f 70 75 ort).{..const.opusVersion.=./opu
5fc0 73 2d 28 5c 64 2b 29 5b 2e 2d 5d 28 5c 64 2b 29 28 3f 3a 5b 2e 40 2d 5d 7c 24 29 2f 69 2e 65 78 s-(\d+)[.-](\d+)(?:[.@-]|$)/i.ex
5fe0 65 63 28 6d 6f 64 65 6c 29 3b 0a 09 63 6f 6e 73 74 20 69 73 4f 70 75 73 34 37 4f 72 4c 61 74 65 ec(model);..const.isOpus47OrLate
6000 72 20 3d 20 6f 70 75 73 56 65 72 73 69 6f 6e 0a 09 09 3f 20 4e 75 6d 62 65 72 28 6f 70 75 73 56 r.=.opusVersion...?.Number(opusV
6020 65 72 73 69 6f 6e 5b 31 5d 29 20 3e 20 34 20 7c 7c 20 28 4e 75 6d 62 65 72 28 6f 70 75 73 56 65 ersion[1]).>.4.||.(Number(opusVe
6040 72 73 69 6f 6e 5b 31 5d 29 20 3d 3d 3d 20 34 20 26 26 20 4e 75 6d 62 65 72 28 6f 70 75 73 56 65 rsion[1]).===.4.&&.Number(opusVe
6060 72 73 69 6f 6e 5b 32 5d 29 20 3e 3d 20 37 29 0a 09 09 3a 20 66 61 6c 73 65 3b 0a 09 63 6f 6e 73 rsion[2]).>=.7)...:.false;..cons
6080 74 20 69 73 41 64 61 70 74 69 76 65 20 3d 0a 09 09 69 73 4f 70 75 73 34 37 4f 72 4c 61 74 65 72 t.isAdaptive.=...isOpus47OrLater
60a0 20 7c 7c 0a 09 09 5b 22 6f 70 75 73 2d 34 2d 36 22 2c 20 22 6f 70 75 73 2d 34 2e 36 22 2c 20 22 .||...["opus-4-6",."opus-4.6",."
60c0 73 6f 6e 6e 65 74 2d 34 2d 36 22 2c 20 22 73 6f 6e 6e 65 74 2d 34 2e 36 22 5d 2e 73 6f 6d 65 28 sonnet-4-6",."sonnet-4.6"].some(
60e0 28 73 29 20 3d 3e 20 6d 6f 64 65 6c 2e 69 6e 63 6c 75 64 65 73 28 73 29 29 3b 0a 0a 09 69 66 20 (s).=>.model.includes(s));...if.
6100 28 69 73 41 64 61 70 74 69 76 65 29 20 7b 0a 09 09 72 65 74 75 72 6e 20 69 73 4f 70 75 73 34 37 (isAdaptive).{...return.isOpus47
6120 4f 72 4c 61 74 65 72 0a 09 09 09 3f 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a OrLater....?.{.thinking:.{.type:
6140 20 22 61 64 61 70 74 69 76 65 22 20 61 73 20 63 6f 6e 73 74 2c 20 64 69 73 70 6c 61 79 3a 20 22 ."adaptive".as.const,.display:."
6160 73 75 6d 6d 61 72 69 7a 65 64 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 66 6f 72 74 20 7d summarized".as.const.},.effort.}
6180 0a 09 09 09 3a 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 61 64 61 70 74 ....:.{.thinking:.{.type:."adapt
61a0 69 76 65 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 66 6f 72 74 20 7d 3b 0a 09 7d 0a 0a 09 ive".as.const.},.effort.};..}...
61c0 63 6f 6e 73 74 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 3d 0a 09 09 65 66 66 6f 72 74 20 3d 3d const.budgetTokens.=...effort.==
61e0 3d 20 22 6d 61 78 22 0a 09 09 09 3f 20 33 31 39 39 39 0a 09 09 09 3a 20 65 66 66 6f 72 74 20 3d =."max"....?.31999....:.effort.=
6200 3d 3d 20 22 78 68 69 67 68 22 0a 09 09 09 09 3f 20 32 34 30 30 30 0a 09 09 09 09 3a 20 65 66 66 ==."xhigh".....?.24000.....:.eff
6220 6f 72 74 20 3d 3d 3d 20 22 68 69 67 68 22 0a 09 09 09 09 09 3f 20 31 36 30 30 30 0a 09 09 09 09 ort.===."high"......?.16000.....
6240 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6d 65 64 69 75 6d 22 0a 09 09 09 09 09 09 3f 20 35 .:.effort.===."medium".......?.5
6260 30 30 30 0a 09 09 09 09 09 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6c 6f 77 22 0a 09 09 09 000.......:.effort.===."low"....
6280 09 09 09 09 3f 20 32 30 30 30 0a 09 09 09 09 09 09 09 3a 20 30 3b 0a 09 72 65 74 75 72 6e 20 7b ....?.2000........:.0;..return.{
62a0 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 20 61 73 20 .thinking:.{.type:."enabled".as.
62c0 63 6f 6e 73 74 2c 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 3b 0a 7d 0a 0a 63 6f 6e 73 const,.budgetTokens.}.};.}..cons
62e0 74 20 4d 41 58 5f 53 54 45 50 53 20 3d 20 35 30 3b 0a 0a 65 78 70 6f 72 74 20 63 6c 61 73 73 20 t.MAX_STEPS.=.50;..export.class.
6300 41 67 65 6e 74 20 7b 0a 09 73 74 61 74 75 73 3a 20 41 67 65 6e 74 53 74 61 74 75 73 20 3d 20 22 Agent.{..status:.AgentStatus.=."
6320 69 64 6c 65 22 3b 0a 09 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 idle";..messages:.ChatMessage[].
6340 3d 20 5b 5d 3b 0a 0a 09 70 72 69 76 61 74 65 20 63 6f 6e 66 69 67 3a 20 41 67 65 6e 74 43 6f 6e =.[];...private.config:.AgentCon
6360 66 69 67 3b 0a 09 70 72 69 76 61 74 65 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3f 3a 20 51 fig;..private.queueCallbacks?:.Q
6380 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 0a 09 63 6f 6e 73 74 72 75 63 74 6f 72 28 63 6f 6e ueueCallbacks;...constructor(con
63a0 66 69 67 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 2c 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 fig:.AgentConfig,.queueCallbacks
63c0 3f 3a 20 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 09 09 74 68 69 73 2e 63 6f 6e 66 ?:.QueueCallbacks).{...this.conf
63e0 69 67 20 3d 20 63 6f 6e 66 69 67 3b 0a 09 09 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 ig.=.config;...this.queueCallbac
6400 6b 73 20 3d 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 09 7d 0a 0a 09 70 72 69 76 61 74 ks.=.queueCallbacks;..}...privat
6420 65 20 61 73 79 6e 63 20 65 78 65 63 75 74 65 54 6f 6f 6c 57 69 74 68 53 74 72 65 61 6d 69 6e 67 e.async.executeToolWithStreaming
6440 28 0a 09 09 74 63 3a 20 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 09 73 68 65 6c 6c 4f 75 74 70 75 74 51 (...tc:.ToolCall,...shellOutputQ
6460 75 65 75 65 3a 20 41 72 72 61 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 73 74 72 65 ueue:.Array<{.data:.string;.stre
6480 61 6d 3a 20 22 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 2c 0a 09 29 3a 20 am:."stdout".|."stderr".}>,..):.
64a0 50 72 6f 6d 69 73 65 3c 54 6f 6f 6c 52 65 73 75 6c 74 3e 20 7b 0a 09 09 63 6f 6e 73 74 20 72 65 Promise<ToolResult>.{...const.re
64c0 67 69 73 74 72 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 28 74 68 69 73 gistry.=.createToolRegistry(this
64e0 2e 63 6f 6e 66 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 20 3d 20 72 .config.tools);...const.tool.=.r
6500 65 67 69 73 74 72 79 2e 67 65 74 54 6f 6f 6c 28 74 63 2e 6e 61 6d 65 29 3b 0a 09 09 69 66 20 28 egistry.getTool(tc.name);...if.(
6520 21 74 6f 6f 6c 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c !tool).{....return.{.....toolCal
6540 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d lId:.tc.id,.....toolName:.tc.nam
6560 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 60 55 6e 6b 6e 6f 77 6e 20 74 6f 6f 6c 3a 20 24 7b e,.....result:.`Unknown.tool:.${
6580 74 63 2e 6e 61 6d 65 7d 60 2c 0a 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 tc.name}`,.....isError:.true,...
65a0 09 7d 3b 0a 09 09 7d 0a 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 66 .};...}....//.Permission.check.f
65c0 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 e2 80 94 20 6f 6e 6c 79 20 70 72 6f 6d 70 or.shell.commands.....only.promp
65e0 74 20 66 6f 72 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 2e t.for.external.directory.access.
6600 0a 09 09 2f 2f 20 43 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 73 74 61 79 20 77 69 74 68 69 6e 20 ...//.Commands.that.stay.within.
6620 74 68 65 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 61 72 65 20 61 75 74 6f 2d 61 the.working.directory.are.auto-a
6640 6c 6c 6f 77 65 64 2e 0a 09 09 69 66 20 28 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 75 6e 5f 73 llowed....if.(tc.name.===."run_s
6660 68 65 6c 6c 22 20 26 26 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 hell".&&.this.config.permissionC
6680 68 65 63 6b 65 72 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 6f 6d 6d 61 6e 64 20 3d 20 74 79 70 hecker).{....const.command.=.typ
66a0 65 6f 66 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3d 3d 3d 20 22 73 74 eof.tc.arguments.command.===."st
66c0 72 69 6e 67 22 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3a 20 22 ring".?.tc.arguments.command.:."
66e0 22 3b 0a 09 09 09 63 6f 6e 73 74 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 20 3d 20 74 ";....const.workingDirectory.=.t
6700 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 3b 0a 09 09 09 his.config.workingDirectory;....
6720 63 6f 6e 73 74 20 61 6e 61 6c 79 73 69 73 20 3d 20 61 77 61 69 74 20 61 6e 61 6c 79 7a 65 43 6f const.analysis.=.await.analyzeCo
6740 6d 6d 61 6e 64 28 63 6f 6d 6d 61 6e 64 2c 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 mmand(command,.workingDirectory)
6760 3b 0a 09 09 09 63 6f 6e 73 74 20 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 ;....const.ruleset.=.this.config
6780 2e 72 75 6c 65 73 65 74 20 3f 3f 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 43 68 65 63 6b 20 66 6f 72 .ruleset.??.[];.....//.Check.for
67a0 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 20 66 72 6f 6d 20 .external.directory.access.from.
67c0 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 0a 09 09 09 69 66 20 28 61 6e 61 6c 79 73 69 73 2e 64 69 shell.command....if.(analysis.di
67e0 72 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 64 69 72 52 65 rs.length.>.0).{.....const.dirRe
6800 71 75 65 73 74 20 3d 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 74 65 quest.=.{......permission:."exte
6820 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 3a 20 rnal_directory",......patterns:.
6840 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a analysis.dirs.map((d).=>.`${d}/*
6860 60 29 2c 0a 09 09 09 09 09 61 6c 77 61 79 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6d `),......always:.analysis.dirs.m
6880 61 70 28 28 64 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a 60 29 2c 0a 09 09 09 09 09 64 65 73 63 72 69 ap((d).=>.`${d}/*`),......descri
68a0 70 74 69 6f 6e 3a 20 60 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 61 63 63 65 73 73 65 73 20 65 ption:.`Shell.command.accesses.e
68c0 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 3a 20 24 7b 61 6e 61 6c 79 73 69 73 2e 64 69 xternal.directory:.${analysis.di
68e0 72 73 2e 6a 6f 69 6e 28 22 2c 20 22 29 7d 60 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 74 61 3a 20 rs.join(",.")}`,......metadata:.
6900 7b 20 63 6f 6d 6d 61 6e 64 2c 20 64 69 72 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 20 7d {.command,.dirs:.analysis.dirs.}
6920 2c 0a 09 09 09 09 7d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 64 69 ,.....};.....try.{......const.di
6940 72 52 65 70 6c 79 20 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 rReply.=.await.this.config.permi
6960 73 73 69 6f 6e 43 68 65 63 6b 65 72 2e 61 73 6b 28 64 69 72 52 65 71 75 65 73 74 2c 20 5b 72 75 ssionChecker.ask(dirRequest,.[ru
6980 6c 65 73 65 74 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 64 69 72 52 65 70 6c 79 20 3d 3d 3d 20 22 leset]);......if.(dirReply.===."
69a0 72 65 6a 65 63 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 reject").{.......return.{.......
69c0 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e .toolCallId:.tc.id,........toolN
69e0 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 ame:.tc.name,........result:.`Pe
6a00 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 61 63 63 65 73 73 20 74 6f 20 65 78 74 65 72 rmission.denied:.access.to.exter
6a20 6e 61 6c 20 64 69 72 65 63 74 6f 72 69 65 73 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 09 09 09 09 nal.directories.rejected`,......
6a40 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,.......};......}
6a60 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.{....
6a80 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
6aa0 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
6ac0 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 rmission.denied:.external.direct
6ae0 6f 72 79 20 61 63 63 65 73 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 ory.access.not.allowed`,.......i
6b00 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a 09 09 09 7d sError:.true,......};.....}....}
6b20 0a 09 09 7d 0a 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 66 6f 72 20 ...}....//.Permission.check.for.
6b40 66 69 6c 65 20 74 6f 6f 6c 73 20 61 63 63 65 73 73 69 6e 67 20 70 61 74 68 73 20 6f 75 74 73 69 file.tools.accessing.paths.outsi
6b60 64 65 20 77 6f 72 6b 73 70 61 63 65 0a 09 09 69 66 20 28 0a 09 09 09 74 68 69 73 2e 63 6f 6e 66 de.workspace...if.(....this.conf
6b80 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 20 26 26 0a 09 09 09 28 74 63 2e 6e ig.permissionChecker.&&....(tc.n
6ba0 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 ame.===."read_file".||.....tc.na
6bc0 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 0a 09 09 09 09 me.===."read_file_slice".||.....
6be0 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 tc.name.===."write_file".||.....
6c00 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 29 0a 09 09 29 20 7b 0a tc.name.===."list_files")...).{.
6c20 09 09 09 63 6f 6e 73 74 20 70 61 74 68 41 72 67 20 3d 20 74 79 70 65 6f 66 20 74 63 2e 61 72 67 ...const.pathArg.=.typeof.tc.arg
6c40 75 6d 65 6e 74 73 2e 70 61 74 68 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 74 63 2e 61 72 uments.path.===."string".?.tc.ar
6c60 67 75 6d 65 6e 74 73 2e 70 61 74 68 20 3a 20 22 2e 22 3b 0a 0a 09 09 09 2f 2f 20 43 61 6e 6f 6e guments.path.:.".";.....//.Canon
6c80 69 63 61 6c 69 7a 65 20 61 6c 6c 20 74 68 72 65 65 20 73 6f 20 73 79 6d 6c 69 6e 6b 2d 69 6e 2d icalize.all.three.so.symlink-in-
6ca0 77 6f 72 6b 64 69 72 20 65 73 63 61 70 65 73 20 61 72 65 20 64 65 74 65 63 74 65 64 0a 09 09 09 workdir.escapes.are.detected....
6cc0 2f 2f 20 61 74 20 74 68 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 67 61 74 65 20 28 6e 6f 74 20 6a //.at.the.permission.gate.(not.j
6ce0 75 73 74 20 72 65 6c 61 74 69 76 65 20 60 2e 2e 2f 60 20 74 72 61 76 65 72 73 61 6c 29 2e 20 54 ust.relative.`../`.traversal)..T
6d00 68 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 77 61 6c 6b 73 20 75 70 20 74 6f 20 74 68 65 20 he....//.helper.walks.up.to.the.
6d20 6e 65 61 72 65 73 74 20 65 78 69 73 74 69 6e 67 20 61 6e 63 65 73 74 6f 72 20 77 68 65 6e 20 74 nearest.existing.ancestor.when.t
6d40 68 65 20 6c 65 61 66 0a 09 09 09 2f 2f 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 28 77 72 69 he.leaf....//.doesn't.exist.(wri
6d60 74 65 5f 66 69 6c 65 20 63 72 65 61 74 69 6e 67 20 6e 65 77 20 66 69 6c 65 73 29 2c 20 73 6f 20 te_file.creating.new.files),.so.
6d80 61 20 70 61 72 65 6e 74 0a 09 09 09 2f 2f 20 73 79 6d 6c 69 6e 6b 20 70 6f 69 6e 74 69 6e 67 20 a.parent....//.symlink.pointing.
6da0 6f 75 74 73 69 64 65 20 74 68 65 20 77 6f 72 6b 64 69 72 20 69 73 20 73 74 69 6c 6c 20 63 61 75 outside.the.workdir.is.still.cau
6dc0 67 68 74 2e 20 54 68 65 20 73 61 6d 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 69 73 20 75 73 ght..The.same....//.helper.is.us
6de0 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 74 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ed.inside.the.tool.implementatio
6e00 6e 73 20 e2 80 94 20 6b 65 65 70 69 6e 67 20 74 68 65 0a 09 09 09 2f 2f 20 74 77 6f 20 6c 61 79 ns.....keeping.the....//.two.lay
6e20 65 72 73 20 63 6f 6e 73 69 73 74 65 6e 74 20 73 6f 20 61 20 70 61 74 68 20 74 68 61 74 20 6c 6f ers.consistent.so.a.path.that.lo
6e40 6f 6b 73 20 65 78 74 65 72 6e 61 6c 20 68 65 72 65 20 61 6c 73 6f 0a 09 09 09 2f 2f 20 6c 6f 6f oks.external.here.also....//.loo
6e60 6b 73 20 65 78 74 65 72 6e 61 6c 20 69 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 61 6e 64 20 76 69 63 ks.external.in.the.tool,.and.vic
6e80 65 20 76 65 72 73 61 2e 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d e.versa.....const.resolvedPath.=
6ea0 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e .await.canonicalize(this.config.
6ec0 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 2c 20 70 61 74 68 41 72 67 29 3b 0a 09 09 09 63 workingDirectory,.pathArg);....c
6ee0 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 20 3d 20 61 77 61 69 74 20 63 61 6e onst.resolvedWorkDir.=.await.can
6f00 6f 6e 69 63 61 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 onicalize(this.config.workingDir
6f20 65 63 74 6f 72 79 29 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 ectory);....const.resolvedSpillR
6f40 6f 6f 74 20 3d 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 53 50 49 4c 4c 5f 52 oot.=.await.canonicalize(SPILL_R
6f60 4f 4f 54 29 3b 0a 0a 09 09 09 63 6f 6e 73 74 20 69 73 55 6e 64 65 72 57 6f 72 6b 64 69 72 20 3d OOT);.....const.isUnderWorkdir.=
6f80 0a 09 09 09 09 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 72 65 73 6f 6c 76 65 64 57 6f .....resolvedPath.===.resolvedWo
6fa0 72 6b 44 69 72 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 rkDir.||.resolvedPath.startsWith
6fc0 28 60 24 7b 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 7d 2f 60 29 3b 0a 09 09 09 2f 2f 20 44 (`${resolvedWorkDir}/`);....//.D
6fe0 69 73 70 61 74 63 68 27 73 20 6f 77 6e 20 74 6f 6f 6c 2d 6f 75 74 70 75 74 20 73 70 69 6c 6c 20 ispatch's.own.tool-output.spill.
7000 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 6c 6c 6f 77 65 64 20 directory.is.implicitly.allowed.
7020 e2 80 94 0a 09 09 09 2f 2f 20 74 68 65 20 41 49 20 72 65 63 65 69 76 65 73 20 61 20 74 72 75 6e .......//.the.AI.receives.a.trun
7040 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 69 6e 67 20 68 65 72 65 20 61 6e 64 20 cation.notice.pointing.here.and.
7060 69 73 20 65 78 70 65 63 74 65 64 0a 09 09 09 2f 2f 20 74 6f 20 72 65 61 64 20 69 74 20 77 69 74 is.expected....//.to.read.it.wit
7080 68 6f 75 74 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 2e 20 42 79 70 61 73 73 69 hout.prompting.the.user..Bypassi
70a0 6e 67 20 74 68 65 20 65 78 74 65 72 6e 61 6c 2d 0a 09 09 09 2f 2f 20 64 69 72 65 63 74 6f 72 79 ng.the.external-....//.directory
70c0 20 63 68 65 63 6b 20 68 65 72 65 20 6b 65 65 70 73 20 74 68 65 20 69 6e 73 70 65 63 74 69 6f 6e .check.here.keeps.the.inspection
70e0 20 66 6c 6f 77 20 66 72 69 63 74 69 6f 6e 6c 65 73 73 2e 0a 09 09 09 63 6f 6e 73 74 20 69 73 53 .flow.frictionless.....const.isS
7100 70 69 6c 6c 50 61 74 68 20 3d 0a 09 09 09 09 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 pillPath.=.....resolvedPath.===.
7120 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 resolvedSpillRoot.||.resolvedPat
7140 68 2e 73 74 61 72 74 73 57 69 74 68 28 60 24 7b 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f h.startsWith(`${resolvedSpillRoo
7160 74 7d 2f 60 29 3b 0a 0a 09 09 09 2f 2f 20 41 67 65 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 t}/`);.....//.Agent.definitions.
7180 6c 69 76 65 20 69 6e 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 64 69 72 65 63 74 6f 72 69 65 73 0a 09 live.in.well-known.directories..
71a0 09 09 2f 2f 20 28 60 7e 2f 2e 63 6f 6e 66 69 67 2f 64 69 73 70 61 74 63 68 2f 61 67 65 6e 74 73 ..//.(`~/.config/dispatch/agents
71c0 2f 60 20 61 6e 64 0a 09 09 09 2f 2f 20 60 3c 77 6f 72 6b 64 69 72 3e 2f 2e 64 69 73 70 61 74 63 /`.and....//.`<workdir>/.dispatc
71e0 68 2f 61 67 65 6e 74 73 2f 60 29 2e 20 52 65 61 64 69 6e 67 20 74 68 6f 73 65 20 69 73 20 61 0a h/agents/`)..Reading.those.is.a.
7200 09 09 09 2f 2f 20 70 72 65 72 65 71 75 69 73 69 74 65 20 66 6f 72 20 74 68 65 20 73 75 6d 6d 6f ...//.prerequisite.for.the.summo
7220 6e 20 74 6f 6f 6c 27 73 20 22 73 70 65 63 69 66 79 20 77 68 69 63 68 20 73 75 62 61 67 65 6e 74 n.tool's."specify.which.subagent
7240 22 0a 09 09 09 2f 2f 20 66 6c 6f 77 20 e2 80 94 20 74 68 65 20 4c 4c 4d 20 6e 65 65 64 73 20 74 "....//.flow.....the.LLM.needs.t
7260 6f 20 69 6e 73 70 65 63 74 20 74 68 65 20 54 4f 4d 4c 20 74 6f 20 6b 6e 6f 77 20 77 68 61 74 20 o.inspect.the.TOML.to.know.what.
7280 65 61 63 68 0a 09 09 09 2f 2f 20 61 67 65 6e 74 20 64 6f 65 73 2e 20 57 65 20 61 75 74 6f 2d 61 each....//.agent.does..We.auto-a
72a0 6c 6c 6f 77 20 52 45 41 44 2d 4f 4e 4c 59 20 74 6f 6f 6c 73 20 75 6e 64 65 72 20 74 68 6f 73 65 llow.READ-ONLY.tools.under.those
72c0 20 70 61 74 68 73 0a 09 09 09 2f 2f 20 77 69 74 68 6f 75 74 20 70 72 6f 6d 70 74 69 6e 67 20 74 .paths....//.without.prompting.t
72e0 68 65 20 75 73 65 72 2e 20 57 72 69 74 65 73 20 28 60 77 72 69 74 65 5f 66 69 6c 65 60 29 20 73 he.user..Writes.(`write_file`).s
7300 74 69 6c 6c 20 67 6f 0a 09 09 09 2f 2f 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 6f 72 6d 61 6c till.go....//.through.the.normal
7320 20 65 78 74 65 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 20 67 61 74 65 20 73 6f 20 61 6e 20 61 .external_directory.gate.so.an.a
7340 67 65 6e 74 20 63 61 6e 27 74 0a 09 09 09 2f 2f 20 71 75 69 65 74 6c 79 20 6f 76 65 72 77 72 69 gent.can't....//.quietly.overwri
7360 74 65 20 61 6e 6f 74 68 65 72 20 61 67 65 6e 74 27 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 09 te.another.agent's.definition...
7380 09 09 63 6f 6e 73 74 20 69 73 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 20 3d 0a 09 09 09 09 74 63 2e ..const.isReadOnlyTool.=.....tc.
73a0 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 20 name.===."read_file".||.tc.name.
73c0 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 ===."read_file_slice".||.tc.name
73e0 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 3b 0a 09 09 09 6c 65 74 20 69 73 41 67 65 6e .===."list_files";....let.isAgen
7400 74 73 44 69 72 52 65 61 64 4f 6e 6c 79 20 3d 20 66 61 6c 73 65 3b 0a 09 09 09 69 66 20 28 69 73 tsDirReadOnly.=.false;....if.(is
7420 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 61 67 65 6e 74 44 ReadOnlyTool).{.....const.agentD
7440 69 72 73 20 3d 20 67 65 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 28 74 68 69 73 2e 63 6f 6e 66 irs.=.getAgentDirPaths(this.conf
7460 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 ig.workingDirectory);.....const.
7480 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 20 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 canonicalAgentDirs.=.await.Promi
74a0 73 65 2e 61 6c 6c 28 61 67 65 6e 74 44 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 63 61 6e 6f se.all(agentDirs.map((d).=>.cano
74c0 6e 69 63 61 6c 69 7a 65 28 64 29 29 29 3b 0a 09 09 09 09 69 73 41 67 65 6e 74 73 44 69 72 52 65 nicalize(d)));.....isAgentsDirRe
74e0 61 64 4f 6e 6c 79 20 3d 20 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 2e 73 6f 6d 65 adOnly.=.canonicalAgentDirs.some
7500 28 0a 09 09 09 09 09 28 64 29 20 3d 3e 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 64 (......(d).=>.resolvedPath.===.d
7520 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 64 .||.resolvedPath.startsWith(`${d
7540 7d 2f 60 29 2c 0a 09 09 09 09 29 3b 0a 09 09 09 7d 0a 0a 09 09 09 69 66 20 28 21 69 73 55 6e 64 }/`),.....);....}.....if.(!isUnd
7560 65 72 57 6f 72 6b 64 69 72 20 26 26 20 21 69 73 53 70 69 6c 6c 50 61 74 68 20 26 26 20 21 69 73 erWorkdir.&&.!isSpillPath.&&.!is
7580 41 67 65 6e 74 73 44 69 72 52 65 61 64 4f 6e 6c 79 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 70 AgentsDirReadOnly).{.....const.p
75a0 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 20 3d 0a 09 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d ermissionType.=......tc.name.===
75c0 20 22 72 65 61 64 5f 66 69 6c 65 22 20 3f 20 22 72 65 61 64 22 20 3a 20 74 63 2e 6e 61 6d 65 20 ."read_file".?."read".:.tc.name.
75e0 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 3f 20 22 65 64 69 74 22 20 3a 20 22 6c 69 73 ===."write_file".?."edit".:."lis
7600 74 22 3b 0a 0a 09 09 09 09 63 6f 6e 73 74 20 70 61 72 65 6e 74 44 69 72 20 3d 20 64 69 72 6e 61 t";......const.parentDir.=.dirna
7620 6d 65 28 72 65 73 6f 6c 76 65 64 50 61 74 68 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 72 65 71 75 me(resolvedPath);.....const.requ
7640 65 73 74 20 3d 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 74 65 72 6e est.=.{......permission:."extern
7660 61 6c 5f 64 69 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 3a 20 5b 60 al_directory",......patterns:.[`
7680 24 7b 70 61 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 61 6c 77 61 79 73 3a 20 5b ${parentDir}/*`],......always:.[
76a0 60 24 7b 70 61 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 64 65 73 63 72 69 70 74 `${parentDir}/*`],......descript
76c0 69 6f 6e 3a 20 60 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 66 69 6c 65 20 6f 75 74 ion:.`${permissionType}.file.out
76e0 73 69 64 65 20 77 6f 72 6b 73 70 61 63 65 3a 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 60 side.workspace:.${resolvedPath}`
7700 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 66 69 6c 65 70 61 74 68 3a 20 72 65 73 ,......metadata:.{.filepath:.res
7720 6f 6c 76 65 64 50 61 74 68 2c 20 70 61 72 65 6e 74 44 69 72 2c 20 6f 70 65 72 61 74 69 6f 6e 3a olvedPath,.parentDir,.operation:
7740 20 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 20 7d 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 63 .permissionType.},.....};......c
7760 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 73 onst.ruleset.=.this.config.rules
7780 65 74 20 3f 3f 20 5b 5d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 72 et.??.[];.....try.{......const.r
77a0 65 70 6c 79 20 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 eply.=.await.this.config.permiss
77c0 69 6f 6e 43 68 65 63 6b 65 72 2e 61 73 6b 28 72 65 71 75 65 73 74 2c 20 5b 72 75 6c 65 73 65 74 ionChecker.ask(request,.[ruleset
77e0 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 72 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 63 74 22 29 ]);......if.(reply.===."reject")
7800 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 43 61 6c .{.......return.{........toolCal
7820 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 74 63 2e lId:.tc.id,........toolName:.tc.
7840 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 69 6f 6e name,........result:.`Permission
7860 20 64 65 6e 69 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 61 63 63 65 73 .denied:.${permissionType}.acces
7880 73 20 74 6f 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 20 72 65 6a 65 63 74 65 64 60 2c 0a s.to.${resolvedPath}.rejected`,.
78a0 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 .......isError:.true,.......};..
78c0 09 09 09 09 7d 0a 09 09 09 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 ....}.....}.catch.{......return.
78e0 7b 0a 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 {.......toolCallId:.tc.id,......
7900 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 73 75 6c 74 .toolName:.tc.name,.......result
7920 3a 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 :.`Permission.denied:.${permissi
7940 6f 6e 54 79 70 65 7d 20 61 63 63 65 73 73 20 74 6f 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 onType}.access.to.${resolvedPath
7960 7d 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 }.not.allowed`,.......isError:.t
7980 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 0a 09 09 74 rue,......};.....}....}...}....t
79a0 72 79 20 7b 0a 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 6f 6f 6c ry.{....const.execPromise.=.tool
79c0 2e 65 78 65 63 75 74 65 28 74 63 2e 61 72 67 75 6d 65 6e 74 73 2c 20 7b 0a 09 09 09 09 6f 6e 4f .execute(tc.arguments,.{.....onO
79e0 75 74 70 75 74 3a 20 28 64 61 74 61 3a 20 73 74 72 69 6e 67 2c 20 73 74 72 65 61 6d 3a 20 22 73 utput:.(data:.string,.stream:."s
7a00 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 29 20 3d 3e 20 7b 0a 09 09 09 09 09 73 68 65 tdout".|."stderr").=>.{......she
7a20 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 70 75 73 68 28 7b 20 64 61 74 61 2c 20 73 74 72 65 61 llOutputQueue.push({.data,.strea
7a40 6d 20 7d 29 3b 0a 09 09 09 09 7d 2c 0a 09 09 09 09 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3a m.});.....},.....queueCallbacks:
7a60 20 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 09 09 7d 29 3b 0a 0a 09 09 .this.queueCallbacks,....});....
7a80 09 63 6f 6e 73 74 20 72 61 77 52 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 65 78 65 63 50 72 6f .const.rawResult.=.await.execPro
7aa0 6d 69 73 65 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 53 74 72 20 3d 20 74 79 70 65 6f mise;....const.resultStr.=.typeo
7ac0 66 20 72 61 77 52 65 73 75 6c 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 72 61 77 52 65 f.rawResult.===."string".?.rawRe
7ae0 73 75 6c 74 20 3a 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 72 61 77 52 65 73 75 6c 74 29 sult.:.JSON.stringify(rawResult)
7b00 3b 0a 0a 09 09 09 2f 2f 20 43 6f 6d 70 75 74 65 20 69 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 ;.....//.Compute.isError.on.the.
7b20 72 61 77 20 28 75 6e 74 72 75 6e 63 61 74 65 64 29 20 73 74 72 69 6e 67 20 73 6f 20 61 6e 20 60 raw.(untruncated).string.so.an.`
7b40 45 72 72 6f 72 3a 60 20 70 72 65 66 69 78 0a 09 09 09 2f 2f 20 74 68 61 74 20 6c 69 76 65 73 20 Error:`.prefix....//.that.lives.
7b60 61 6e 79 77 68 65 72 65 20 e2 80 94 20 69 6e 63 6c 75 64 69 6e 67 20 62 65 79 6f 6e 64 20 74 68 anywhere.....including.beyond.th
7b80 65 20 68 65 61 64 20 65 78 63 65 72 70 74 20 e2 80 94 20 69 73 20 73 74 69 6c 6c 0a 09 09 09 2f e.head.excerpt.....is.still..../
7ba0 2f 20 64 65 74 65 63 74 65 64 2e 20 54 68 65 20 64 69 73 70 6c 61 79 20 72 65 73 75 6c 74 20 67 /.detected..The.display.result.g
7bc0 6f 65 73 20 74 68 72 6f 75 67 68 20 75 6e 69 76 65 72 73 61 6c 20 74 72 75 6e 63 61 74 69 6f 6e oes.through.universal.truncation
7be0 20 73 6f 0a 09 09 09 2f 2f 20 6f 76 65 72 73 69 7a 65 64 20 6f 75 74 70 75 74 73 20 64 6f 6e 27 .so....//.oversized.outputs.don'
7c00 74 20 62 6c 6f 77 20 63 6f 6e 74 65 78 74 2e 20 54 68 65 20 66 75 6c 6c 20 63 6f 6e 74 65 6e 74 t.blow.context..The.full.content
7c20 20 6c 69 76 65 73 20 69 6e 20 74 68 65 0a 09 09 09 2f 2f 20 73 70 69 6c 6c 20 66 69 6c 65 20 74 .lives.in.the....//.spill.file.t
7c40 68 65 20 74 72 75 6e 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 73 20 74 6f 2e 0a he.truncation.notice.points.to..
7c60 09 09 09 63 6f 6e 73 74 20 69 73 45 72 72 6f 72 20 3d 20 72 65 73 75 6c 74 53 74 72 2e 73 74 61 ...const.isError.=.resultStr.sta
7c80 72 74 73 57 69 74 68 28 22 45 72 72 6f 72 3a 22 29 3b 0a 09 09 09 63 6f 6e 73 74 20 7b 20 64 69 rtsWith("Error:");....const.{.di
7ca0 73 70 6c 61 79 52 65 73 75 6c 74 20 7d 20 3d 20 61 70 70 6c 79 54 72 75 6e 63 61 74 69 6f 6e 28 splayResult.}.=.applyTruncation(
7cc0 72 65 73 75 6c 74 53 74 72 2c 20 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e resultStr,.{.....tabId:.this.con
7ce0 66 69 67 2e 74 61 62 49 64 20 3f 3f 20 22 64 65 66 61 75 6c 74 22 2c 0a 09 09 09 09 63 61 6c 6c fig.tabId.??."default",.....call
7d00 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 Id:.tc.id,.....toolName:.tc.name
7d20 2c 0a 09 09 09 7d 29 3b 0a 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 ,....});.....return.{.....toolCa
7d40 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 llId:.tc.id,.....toolName:.tc.na
7d60 6d 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 64 69 73 70 6c 61 79 52 65 73 75 6c 74 2c 0a 09 me,.....result:.displayResult,..
7d80 09 09 09 69 73 45 72 72 6f 72 2c 0a 09 09 09 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 72 72 ...isError,....};...}.catch.(err
7da0 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:.
7dc0 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,...
7de0 09 09 72 65 73 75 6c 74 3a 20 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f ..result:.err.instanceof.Error.?
7e00 20 65 72 72 2e 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 72 72 29 2c 0a 09 09 09 09 .err.message.:.String(err),.....
7e20 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 7d 0a 0a 09 2f 2a isError:.true,....};...}..}.../*
7e40 2a 0a 09 20 2a 20 42 75 69 6c 64 20 73 79 6e 74 68 65 74 69 63 20 60 74 6f 6f 6c 2d 72 65 73 75 *...*.Build.synthetic.`tool-resu
7e60 6c 74 60 20 65 72 72 6f 72 20 65 76 65 6e 74 73 20 66 6f 72 20 65 76 65 72 79 20 74 6f 6f 6c 20 lt`.error.events.for.every.tool.
7e80 63 61 6c 6c 20 69 6e 0a 09 20 2a 20 60 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 60 20 74 68 61 74 call.in...*.`stepToolCalls`.that
7ea0 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20 68 61 76 65 20 61 20 72 65 63 6f 72 64 65 64 20 72 65 .does.not.yet.have.a.recorded.re
7ec0 73 75 6c 74 20 69 6e 20 60 63 68 75 6e 6b 73 60 2e 0a 09 20 2a 0a 09 20 2a 20 57 68 65 6e 20 61 sult.in.`chunks`....*...*.When.a
7ee0 20 74 6f 6f 6c 20 62 61 74 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 72 65 73 6f 6c 76 65 .tool.batch.is.partially.resolve
7f00 64 20 e2 80 94 20 65 2e 67 2e 20 6f 6e 65 20 74 6f 6f 6c 20 65 6d 69 74 74 65 64 20 61 0a 09 20 d.....e.g..one.tool.emitted.a...
7f20 2a 20 60 74 6f 6f 6c 2d 65 72 72 6f 72 60 20 77 68 69 6c 65 20 69 74 73 20 73 69 62 6c 69 6e 67 *.`tool-error`.while.its.sibling
7f40 73 20 77 65 72 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2c 20 6f 72 20 74 68 65 20 73 74 s.were.never.executed,.or.the.st
7f60 72 65 61 6d 0a 09 20 2a 20 61 62 6f 72 74 65 64 20 6d 69 64 2d 62 61 74 63 68 20 e2 80 94 20 74 ream...*.aborted.mid-batch.....t
7f80 68 65 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 61 72 65 20 he.unresolved.tool-call.IDs.are.
7fa0 72 65 67 69 73 74 65 72 65 64 20 69 6e 20 74 68 65 0a 09 20 2a 20 68 69 73 74 6f 72 79 20 28 69 registered.in.the...*.history.(i
7fc0 6e 73 69 64 65 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 29 20 62 75 74 20 68 nside.`tool-batch`.chunks).but.h
7fe0 61 76 65 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 2e 20 4f 6e 20 74 68 65 0a 09 ave.no.matching.result..On.the..
8000 20 2a 20 6e 65 78 74 20 4c 4c 4d 20 72 6f 75 6e 64 2d 74 72 69 70 20 74 68 65 20 41 49 20 53 44 .*.next.LLM.round-trip.the.AI.SD
8020 4b 20 74 68 72 6f 77 73 20 60 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f K.throws.`MissingToolResultsErro
8040 72 60 2e 20 46 69 6c 6c 69 6e 67 0a 09 20 2a 20 69 6e 20 60 69 73 45 72 72 6f 72 3a 20 74 72 75 r`..Filling...*.in.`isError:.tru
8060 65 60 20 72 65 73 75 6c 74 73 20 66 6f 72 20 74 68 6f 73 65 20 6f 72 70 68 61 6e 65 64 20 49 44 e`.results.for.those.orphaned.ID
8080 73 20 6b 65 65 70 73 20 74 68 65 20 6f 6e 2d 74 68 65 2d 77 69 72 65 0a 09 20 2a 20 74 6f 6f 6c s.keeps.the.on-the-wire...*.tool
80a0 2d 63 61 6c 6c 2f 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 69 72 69 6e 67 20 63 6f 6d 70 6c 65 -call/tool-result.pairing.comple
80c0 74 65 2e 0a 09 20 2a 0a 09 20 2a 20 43 61 6c 6c 65 72 20 69 73 20 72 65 73 70 6f 6e 73 69 62 6c te....*...*.Caller.is.responsibl
80e0 65 20 66 6f 72 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b e.for.`appendEventToChunks(chunk
8100 73 2c 20 65 76 74 29 60 20 2b 20 60 79 69 65 6c 64 60 69 6e 67 0a 09 20 2a 20 65 61 63 68 20 72 s,.evt)`.+.`yield`ing...*.each.r
8120 65 74 75 72 6e 65 64 20 65 76 65 6e 74 2e 0a 09 20 2a 2f 0a 09 70 72 69 76 61 74 65 20 73 79 6e eturned.event....*/..private.syn
8140 74 68 65 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 73 74 thesizeResidualToolResults(...st
8160 65 70 54 6f 6f 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c 43 61 6c 6c 5b 5d 2c 0a 09 09 63 68 75 6e 6b epToolCalls:.ToolCall[],...chunk
8180 73 3a 20 43 68 75 6e 6b 5b 5d 2c 0a 09 09 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 3a 20 73 74 s:.Chunk[],...defaultMessage:.st
81a0 72 69 6e 67 2c 0a 09 29 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 7b 0a 09 09 63 6f 6e 73 74 ring,..):.AgentEvent[].{...const
81c0 20 72 65 73 75 6c 74 73 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 .results:.AgentEvent[].=.[];...c
81e0 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 6e 67 3e 28 onst.resolved.=.new.Set<string>(
8200 29 3b 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 20 7b 0a 09 );...for.(const.c.of.chunks).{..
8220 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
8240 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 ontinue;....for.(const.entry.of.
8260 63 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 c.calls).{.....if.(entry.result.
8280 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 72 65 73 6f 6c 76 65 64 2e 61 64 64 28 65 6e 74 72 !==.undefined).resolved.add(entr
82a0 79 2e 69 64 29 3b 0a 09 09 09 7d 0a 09 09 7d 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 74 63 20 y.id);....}...}...for.(const.tc.
82c0 6f 66 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 29 20 7b 0a 09 09 09 69 66 20 28 72 65 73 6f 6c of.stepToolCalls).{....if.(resol
82e0 76 65 64 2e 68 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 63 6f 6e ved.has(tc.id)).continue;....con
8300 73 74 20 74 72 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 st.tr:.ToolResult.=.{.....toolCa
8320 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 llId:.tc.id,.....toolName:.tc.na
8340 6d 65 2c 0a 09 09 09 09 72 65 73 75 6c 74 3a 20 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 2c 0a me,.....result:.defaultMessage,.
8360 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 09 63 6f 6e 73 ....isError:.true,....};....cons
8380 74 20 65 76 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f t.evt:.AgentEvent.=.{.type:."too
83a0 6c 2d 72 65 73 75 6c 74 22 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 74 72 20 7d 3b 0a 09 09 09 l-result",.toolResult:.tr.};....
83c0 72 65 73 75 6c 74 73 2e 70 75 73 68 28 65 76 74 29 3b 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 results.push(evt);...}...return.
83e0 72 65 73 75 6c 74 73 3b 0a 09 7d 0a 0a 09 61 73 79 6e 63 20 2a 72 75 6e 28 0a 09 09 75 73 65 72 results;..}...async.*run(...user
8400 4d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 2c 0a 09 09 6f 70 74 69 6f 6e 73 3f 3a 20 7b 0a 09 Message:.string,...options?:.{..
8420 09 09 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 3f 3a 20 52 65 61 73 6f 6e 69 6e 67 45 66 66 ..reasoningEffort?:.ReasoningEff
8440 6f 72 74 3b 0a 09 09 09 61 62 6f 72 74 53 69 67 6e 61 6c 3f 3a 20 41 62 6f 72 74 53 69 67 6e 61 ort;....abortSignal?:.AbortSigna
8460 6c 3b 0a 09 09 09 2f 2a 2a 0a 09 09 09 20 2a 20 45 70 68 65 6d 65 72 61 6c 20 6f 72 64 65 72 65 l;..../**.....*.Ephemeral.ordere
8480 64 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 63 6f 6e 74 65 6e 74 20 28 74 65 78 74 20 2b 20 69 6d 61 d.multimodal.content.(text.+.ima
84a0 67 65 2f 70 64 66 20 61 74 74 61 63 68 6d 65 6e 74 73 29 0a 09 09 09 20 2a 20 66 6f 72 20 54 48 ge/pdf.attachments).....*.for.TH
84c0 49 53 20 75 73 65 72 20 74 75 72 6e 2e 20 57 68 65 6e 20 70 72 65 73 65 6e 74 2c 20 60 75 73 65 IS.user.turn..When.present,.`use
84e0 72 4d 65 73 73 61 67 65 60 20 69 73 20 74 68 65 20 74 65 78 74 2d 6f 6e 6c 79 0a 09 09 09 20 2a rMessage`.is.the.text-only.....*
8500 20 70 72 6f 6a 65 63 74 69 6f 6e 20 28 77 69 74 68 20 60 5b 69 6d 61 67 65 5d 60 2f 60 5b 70 64 .projection.(with.`[image]`/`[pd
8520 66 5d 60 20 6d 61 72 6b 65 72 73 29 20 75 73 65 64 20 66 6f 72 20 70 65 72 73 69 73 74 65 6e 63 f]`.markers).used.for.persistenc
8540 65 20 61 6e 64 0a 09 09 09 20 2a 20 74 68 65 20 63 68 75 6e 6b 20 72 65 6e 64 65 72 2c 20 77 68 e.and.....*.the.chunk.render,.wh
8560 69 6c 65 20 60 63 6f 6e 74 65 6e 74 60 20 63 61 72 72 69 65 73 20 74 68 65 20 61 63 74 75 61 6c ile.`content`.carries.the.actual
8580 20 70 61 72 74 73 20 66 6f 72 77 61 72 64 65 64 0a 09 09 09 20 2a 20 74 6f 20 74 68 65 20 70 72 .parts.forwarded.....*.to.the.pr
85a0 6f 76 69 64 65 72 2e 20 4f 6d 69 74 74 65 64 20 66 6f 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 74 ovider..Omitted.for.plain-text.t
85c0 75 72 6e 73 20 28 74 68 65 20 63 6f 6d 6d 6f 6e 20 63 61 73 65 29 2e 0a 09 09 09 20 2a 2f 0a 09 urns.(the.common.case)......*/..
85e0 09 09 63 6f 6e 74 65 6e 74 3f 3a 20 55 73 65 72 43 6f 6e 74 65 6e 74 50 61 72 74 5b 5d 3b 0a 09 ..content?:.UserContentPart[];..
8600 09 7d 2c 0a 09 29 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 .},..):.AsyncGenerator<AgentEven
8620 74 3e 20 7b 0a 09 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 t>.{...this.status.=."running";.
8640 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 ..yield.{.type:."status",.status
8660 3a 20 22 72 75 6e 6e 69 6e 67 22 20 7d 3b 0a 0a 09 09 2f 2f 20 41 74 74 61 63 68 20 74 68 65 20 :."running".};....//.Attach.the.
8680 65 70 68 65 6d 65 72 61 6c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 63 6f 6e 74 65 6e 74 20 28 69 66 ephemeral.multimodal.content.(if
86a0 20 61 6e 79 29 20 74 6f 20 74 68 65 20 69 6e 2d 66 6c 69 67 68 74 20 75 73 65 72 0a 09 09 2f 2f .any).to.the.in-flight.user...//
86c0 20 6d 65 73 73 61 67 65 20 73 6f 20 60 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 60 20 63 61 .message.so.`toModelMessages`.ca
86e0 6e 20 65 6d 69 74 20 69 6e 74 65 72 6c 65 61 76 65 64 20 69 6d 61 67 65 2f 70 64 66 20 70 61 72 n.emit.interleaved.image/pdf.par
8700 74 73 20 74 6f 20 74 68 65 0a 09 09 2f 2f 20 70 72 6f 76 69 64 65 72 2e 20 54 68 65 20 70 65 72 ts.to.the...//.provider..The.per
8720 73 69 73 74 65 64 20 63 68 75 6e 6b 20 69 73 20 73 74 69 6c 6c 20 74 65 78 74 2d 6f 6e 6c 79 20 sisted.chunk.is.still.text-only.
8740 28 60 75 73 65 72 4d 65 73 73 61 67 65 60 29 2e 0a 09 09 63 6f 6e 73 74 20 68 61 73 4d 75 6c 74 (`userMessage`)....const.hasMult
8760 69 6d 6f 64 61 6c 20 3d 0a 09 09 09 21 21 6f 70 74 69 6f 6e 73 3f 2e 63 6f 6e 74 65 6e 74 20 26 imodal.=....!!options?.content.&
8780 26 20 6f 70 74 69 6f 6e 73 2e 63 6f 6e 74 65 6e 74 2e 73 6f 6d 65 28 28 70 29 20 3d 3e 20 70 2e &.options.content.some((p).=>.p.
87a0 74 79 70 65 20 3d 3d 3d 20 22 61 74 74 61 63 68 6d 65 6e 74 22 29 3b 0a 09 09 74 68 69 73 2e 6d type.===."attachment");...this.m
87c0 65 73 73 61 67 65 73 2e 70 75 73 68 28 7b 0a 09 09 09 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 0a essages.push({....role:."user",.
87e0 09 09 09 63 68 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 ...chunks:.[{.type:."text",.text
8800 3a 20 75 73 65 72 4d 65 73 73 61 67 65 20 7d 5d 2c 0a 09 09 09 2e 2e 2e 28 68 61 73 4d 75 6c 74 :.userMessage.}],.......(hasMult
8820 69 6d 6f 64 61 6c 20 3f 20 7b 20 63 6f 6e 74 65 6e 74 3a 20 6f 70 74 69 6f 6e 73 3f 2e 63 6f 6e imodal.?.{.content:.options?.con
8840 74 65 6e 74 20 7d 20 3a 20 7b 7d 29 2c 0a 09 09 7d 29 3b 0a 0a 09 09 63 6f 6e 73 74 20 72 65 67 tent.}.:.{}),...});....const.reg
8860 69 73 74 72 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 28 74 68 69 73 2e istry.=.createToolRegistry(this.
8880 63 6f 6e 66 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 2f 2f 20 60 69 73 43 6c 61 75 64 65 4f 41 75 config.tools);...//.`isClaudeOAu
88a0 74 68 60 20 67 61 74 65 73 20 43 6c 61 75 64 65 2d 43 6f 64 65 2d 43 4c 49 2d 73 70 65 63 69 66 th`.gates.Claude-Code-CLI-specif
88c0 69 63 20 62 65 68 61 76 69 6f 72 3a 20 62 69 6c 6c 69 6e 67 2d 68 65 61 64 65 72 0a 09 09 2f 2f ic.behavior:.billing-header...//
88e0 20 69 6e 6a 65 63 74 69 6f 6e 2c 20 69 64 65 6e 74 69 74 79 20 70 72 65 61 6d 62 6c 65 2c 20 60 .injection,.identity.preamble,.`
8900 6d 63 70 5f 2a 60 20 74 6f 6f 6c 20 6e 61 6d 65 20 70 72 65 66 69 78 2c 20 61 6e 64 20 65 78 74 mcp_*`.tool.name.prefix,.and.ext
8920 65 6e 64 65 64 0a 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 67 2e 20 4f 6e 6c 79 ended...//.thinking.config..Only
8940 20 74 68 65 20 4f 41 75 74 68 20 66 6c 6f 77 20 28 70 72 6f 76 69 64 65 72 3d 22 61 6e 74 68 72 .the.OAuth.flow.(provider="anthr
8960 6f 70 69 63 22 29 20 6e 65 65 64 73 20 74 68 65 73 65 2e 0a 09 09 2f 2f 20 60 75 73 65 73 41 6e opic").needs.these....//.`usesAn
8980 74 68 72 6f 70 69 63 53 44 4b 60 20 69 73 20 74 68 65 20 62 72 6f 61 64 65 72 20 63 61 74 65 67 thropicSDK`.is.the.broader.categ
89a0 6f 72 79 20 e2 80 94 20 61 6e 79 20 70 72 6f 76 69 64 65 72 20 77 68 6f 73 65 0a 09 09 2f 2f 20 ory.....any.provider.whose...//.
89c0 72 65 71 75 65 73 74 73 20 61 72 65 20 73 65 72 69 61 6c 69 7a 65 64 20 62 79 20 60 40 61 69 2d requests.are.serialized.by.`@ai-
89e0 73 64 6b 2f 61 6e 74 68 72 6f 70 69 63 60 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 65 78 70 sdk/anthropic`.and.therefore.exp
8a00 65 63 74 0a 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 2d 73 74 79 6c 65 20 60 63 61 63 68 65 5f ect...//.Anthropic-style.`cache_
8a20 63 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 54 6f 64 61 79 20 74 68 61 74 27 73 20 43 control`.markers..Today.that's.C
8a40 6c 61 75 64 65 20 4f 41 75 74 68 0a 09 09 2f 2f 20 70 6c 75 73 20 4f 70 65 6e 43 6f 64 65 20 47 laude.OAuth...//.plus.OpenCode.G
8a60 6f 27 73 20 4d 69 6e 69 4d 61 78 2f 51 77 65 6e 20 72 6f 75 74 65 73 2e 0a 09 09 63 6f 6e 73 74 o's.MiniMax/Qwen.routes....const
8a80 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f .isClaudeOAuth.=.this.config.pro
8aa0 76 69 64 65 72 20 3d 3d 3d 20 22 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 09 63 6f 6e 73 74 20 75 vider.===."anthropic";...const.u
8ac0 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 sesAnthropicSDK.=.isClaudeOAuth.
8ae0 7c 7c 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 22 6f 70 65 ||.this.config.provider.===."ope
8b00 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 09 63 6f 6e 73 74 20 70 72 6f 76 69 64 ncode-anthropic";...const.provid
8b20 65 72 46 61 63 74 6f 72 79 20 3d 20 63 72 65 61 74 65 50 72 6f 76 69 64 65 72 28 7b 0a 09 09 09 erFactory.=.createProvider({....
8b40 61 70 69 4b 65 79 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 61 70 69 4b 65 79 2c 0a 09 09 09 62 apiKey:.this.config.apiKey,....b
8b60 61 73 65 55 52 4c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 62 61 73 65 55 52 4c 2c 0a 09 09 09 aseURL:.this.config.baseURL,....
8b80 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 2c 0a provider:.this.config.provider,.
8ba0 09 09 09 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 3a 20 74 68 69 73 2e 63 6f 6e 66 69 ...claudeCredentials:.this.confi
8bc0 67 2e 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 2c 0a 09 09 09 74 61 62 49 64 3a 20 74 g.claudeCredentials,....tabId:.t
8be0 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 7d 29 3b 0a 0a 09 09 2f 2f 20 4f 6e his.config.tabId,...});....//.On
8c00 6c 79 20 74 68 65 20 43 6c 61 75 64 65 20 4f 41 75 74 68 20 66 6c 6f 77 20 65 78 70 65 63 74 73 ly.the.Claude.OAuth.flow.expects
8c20 20 60 6d 63 70 5f 2a 60 20 70 72 65 66 69 78 65 64 20 74 6f 6f 6c 20 6e 61 6d 65 73 2e 20 54 68 .`mcp_*`.prefixed.tool.names..Th
8c40 65 0a 09 09 2f 2f 20 4f 70 65 6e 43 6f 64 65 20 47 6f 20 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 e...//.OpenCode.Go.anthropic-for
8c60 6d 61 74 20 65 6e 64 70 6f 69 6e 74 20 70 61 73 73 65 73 20 74 6f 6f 6c 73 20 74 68 72 6f 75 67 mat.endpoint.passes.tools.throug
8c80 68 20 74 6f 20 4d 69 6e 69 4d 61 78 0a 09 09 2f 2f 20 6f 72 20 51 77 65 6e 2c 20 77 68 69 63 68 h.to.MiniMax...//.or.Qwen,.which
8ca0 20 65 78 70 65 63 74 20 72 61 77 20 6e 61 6d 65 73 2e 0a 09 09 63 6f 6e 73 74 20 61 69 54 6f 6f .expect.raw.names....const.aiToo
8cc0 6c 73 20 3d 20 72 65 67 69 73 74 72 79 2e 67 65 74 41 49 53 44 4b 54 6f 6f 6c 73 28 29 3b 0a 09 ls.=.registry.getAISDKTools();..
8ce0 09 63 6f 6e 73 74 20 74 6f 6f 6c 73 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 0a 09 09 09 .const.tools.=.isClaudeOAuth....
8d00 3f 20 4f 62 6a 65 63 74 2e 66 72 6f 6d 45 6e 74 72 69 65 73 28 0a 09 09 09 09 09 4f 62 6a 65 63 ?.Object.fromEntries(......Objec
8d20 74 2e 65 6e 74 72 69 65 73 28 61 69 54 6f 6f 6c 73 29 2e 6d 61 70 28 28 5b 6e 61 6d 65 2c 20 74 t.entries(aiTools).map(([name,.t
8d40 6f 6f 6c 5d 29 20 3d 3e 20 5b 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 6e 61 6d 65 29 2c 20 ool]).=>.[prefixToolName(name),.
8d60 74 6f 6f 6c 5d 29 2c 0a 09 09 09 09 29 0a 09 09 09 3a 20 61 69 54 6f 6f 6c 73 3b 0a 0a 09 09 2f tool]),.....)....:.aiTools;..../
8d80 2f 20 42 75 69 6c 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 e2 80 94 20 43 6c 61 75 64 65 /.Build.system.prompt.....Claude
8da0 20 4f 41 75 74 68 20 72 65 71 75 65 73 74 73 20 65 6d 62 65 64 20 61 20 62 69 6c 6c 69 6e 67 20 .OAuth.requests.embed.a.billing.
8dc0 68 65 61 64 65 72 0a 09 09 2f 2f 20 61 6e 64 20 74 68 65 20 43 6c 61 75 64 65 20 43 6f 64 65 20 header...//.and.the.Claude.Code.
8de0 69 64 65 6e 74 69 74 79 20 70 72 65 61 6d 62 6c 65 20 73 6f 20 41 6e 74 68 72 6f 70 69 63 20 72 identity.preamble.so.Anthropic.r
8e00 65 63 6f 67 6e 69 7a 65 73 20 74 68 65 0a 09 09 2f 2f 20 72 65 71 75 65 73 74 20 61 73 20 63 6f ecognizes.the...//.request.as.co
8e20 6d 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 43 4c 49 2e 0a 09 09 6c 65 ming.from.the.official.CLI....le
8e40 74 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 73 79 73 t.systemPrompt.=.this.config.sys
8e60 74 65 6d 50 72 6f 6d 70 74 3b 0a 09 09 69 66 20 28 69 73 43 6c 61 75 64 65 4f 41 75 74 68 29 20 temPrompt;...if.(isClaudeOAuth).
8e80 7b 0a 09 09 09 2f 2f 20 60 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 64 65 72 56 61 6c 75 65 {....//.`buildBillingHeaderValue
8ea0 60 20 68 69 73 74 6f 72 69 63 61 6c 6c 79 20 74 6f 6f 6b 20 60 7b 20 72 6f 6c 65 2c 20 63 6f 6e `.historically.took.`{.role,.con
8ec0 74 65 6e 74 3a 20 73 74 72 69 6e 67 20 7d 5b 5d 60 2e 0a 09 09 09 2f 2f 20 50 72 6f 6a 65 63 74 tent:.string.}[]`.....//.Project
8ee0 20 74 68 65 20 6e 65 77 20 63 68 75 6e 6b 2d 62 61 73 65 64 20 43 68 61 74 4d 65 73 73 61 67 65 .the.new.chunk-based.ChatMessage
8f00 20 73 68 61 70 65 20 6f 6e 74 6f 20 74 68 61 74 20 6c 65 67 61 63 79 20 73 68 61 70 65 0a 09 09 .shape.onto.that.legacy.shape...
8f20 09 2f 2f 20 62 79 20 73 74 72 69 6e 67 69 66 79 69 6e 67 20 74 65 78 74 20 63 68 75 6e 6b 73 2e .//.by.stringifying.text.chunks.
8f40 20 4f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 6d 65 73 73 61 67 65 27 73 20 74 .Only.the.first.user.message's.t
8f60 65 78 74 20 69 73 0a 09 09 09 2f 2f 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 28 73 65 65 20 ext.is....//.actually.used.(see.
8f80 65 78 74 72 61 63 74 46 69 72 73 74 55 73 65 72 4d 65 73 73 61 67 65 54 65 78 74 29 20 e2 80 94 extractFirstUserMessageText)....
8fa0 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b 73 0a 09 09 09 2f 2f 20 73 61 66 65 6c 79 20 63 6f .non-text.chunks....//.safely.co
8fc0 6e 74 72 69 62 75 74 65 20 6e 6f 74 68 69 6e 67 2e 0a 09 09 09 63 6f 6e 73 74 20 6c 65 67 61 63 ntribute.nothing.....const.legac
8fe0 79 53 68 61 70 65 20 3d 20 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 6d 61 70 28 28 6d 29 20 3d yShape.=.this.messages.map((m).=
9000 3e 20 28 7b 0a 09 09 09 09 72 6f 6c 65 3a 20 6d 2e 72 6f 6c 65 2c 0a 09 09 09 09 63 6f 6e 74 65 >.({.....role:.m.role,.....conte
9020 6e 74 3a 20 6d 2e 63 68 75 6e 6b 73 0a 09 09 09 09 09 2e 66 69 6c 74 65 72 28 28 63 29 3a 20 63 nt:.m.chunks.......filter((c):.c
9040 20 69 73 20 45 78 74 72 61 63 74 3c 43 68 75 6e 6b 2c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 .is.Extract<Chunk,.{.type:."text
9060 22 20 7d 3e 20 3d 3e 20 63 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 29 0a 09 09 09 09 09 ".}>.=>.c.type.===."text")......
9080 2e 6d 61 70 28 28 63 29 20 3d 3e 20 63 2e 74 65 78 74 29 0a 09 09 09 09 09 2e 6a 6f 69 6e 28 22 .map((c).=>.c.text).......join("
90a0 22 29 2c 0a 09 09 09 7d 29 29 3b 0a 09 09 09 63 6f 6e 73 74 20 62 69 6c 6c 69 6e 67 48 65 61 64 "),....}));....const.billingHead
90c0 65 72 20 3d 20 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 64 65 72 56 61 6c 75 65 28 6c 65 67 er.=.buildBillingHeaderValue(leg
90e0 61 63 79 53 68 61 70 65 29 3b 0a 09 09 09 73 79 73 74 65 6d 50 72 6f 6d 70 74 20 3d 20 60 24 7b acyShape);....systemPrompt.=.`${
9100 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 7d 5c 6e 24 7b 53 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 billingHeader}\n${SYSTEM_IDENTIT
9120 59 7d 5c 6e 5c 6e 24 7b 73 79 73 74 65 6d 50 72 6f 6d 70 74 7d 60 3b 0a 09 09 7d 0a 0a 09 09 74 Y}\n\n${systemPrompt}`;...}....t
9140 72 79 20 7b 0a 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 28 7b 0a 09 09 09 09 74 61 62 49 64 ry.{....logAgentLoop({.....tabId
9160 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 65 76 65 6e 74 3a 20 :.this.config.tabId,.....event:.
9180 22 72 75 6e 2d 73 74 61 72 74 22 2c 0a 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 6d 6f 64 65 6c "run-start",.....detail:.{.model
91a0 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 2c 20 70 72 6f 76 69 64 65 72 3a 20 74 :.this.config.model,.provider:.t
91c0 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 7d 2c 0a 09 09 09 7d 29 3b 0a 09 09 his.config.provider.},....});...
91e0 09 2f 2f 20 53 69 6e 67 6c 65 20 63 68 75 6e 6b 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 .//.Single.chunk.accumulator.for
9200 20 74 68 65 20 65 6e 74 69 72 65 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 20 28 61 6c 6c 20 .the.entire.assistant.turn.(all.
9220 73 74 65 70 73 29 2e 0a 09 09 09 2f 2f 20 41 6c 6c 20 65 76 65 6e 74 2d 64 72 69 76 65 6e 20 6d steps).....//.All.event-driven.m
9240 75 74 61 74 69 6f 6e 73 20 67 6f 20 74 68 72 6f 75 67 68 20 60 61 70 70 65 6e 64 45 76 65 6e 74 utations.go.through.`appendEvent
9260 54 6f 43 68 75 6e 6b 73 60 2e 0a 09 09 09 63 6f 6e 73 74 20 63 68 75 6e 6b 73 3a 20 43 68 75 6e ToChunks`.....const.chunks:.Chun
9280 6b 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 57 65 20 62 75 69 6c 64 20 75 70 20 61 20 6c k[].=.[];.....//.We.build.up.a.l
92a0 6f 63 61 6c 20 6d 65 73 73 61 67 65 20 6c 69 73 74 20 66 6f 72 20 6d 75 6c 74 69 2d 74 75 72 6e ocal.message.list.for.multi-turn
92c0 20 77 69 74 68 69 6e 20 6f 6e 65 20 72 75 6e 28 29 20 63 61 6c 6c 0a 09 09 09 2f 2f 20 74 68 61 .within.one.run().call....//.tha
92e0 74 20 69 6e 63 6c 75 64 65 73 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 66 65 64 20 62 61 63 6b t.includes.tool.results.fed.back
9300 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 45 61 63 68 20 73 74 65 70 20 61 70 70 65 6e 64 73 0a 09 .to.the.LLM..Each.step.appends..
9320 09 09 2f 2f 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 27 73 20 65 76 6f 6c 76 69 6e 67 20 63 68 ..//.the.assistant's.evolving.ch
9340 75 6e 6b 20 6c 69 73 74 20 61 73 20 6f 6e 65 20 43 68 61 74 4d 65 73 73 61 67 65 3b 20 73 75 62 unk.list.as.one.ChatMessage;.sub
9360 73 65 71 75 65 6e 74 0a 09 09 09 2f 2f 20 73 74 65 70 73 20 73 65 65 20 70 72 69 6f 72 20 74 6f sequent....//.steps.see.prior.to
9380 6f 6c 20 63 61 6c 6c 73 20 61 6e 64 20 74 68 65 69 72 20 72 65 73 75 6c 74 73 20 76 69 61 20 74 ol.calls.and.their.results.via.t
93a0 68 65 20 63 68 75 6e 6b 73 2e 0a 09 09 09 63 6f 6e 73 74 20 73 74 65 70 4d 65 73 73 61 67 65 73 he.chunks.....const.stepMessages
93c0 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 2e 2e 2e 74 68 69 73 2e 6d 65 73 73 61 :.ChatMessage[].=.[...this.messa
93e0 67 65 73 5d 3b 0a 09 09 09 2f 2f 20 54 68 65 20 61 73 73 69 73 74 61 6e 74 20 43 68 61 74 4d 65 ges];....//.The.assistant.ChatMe
9400 73 73 61 67 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 75 72 6e 2c 20 73 68 61 72 ssage.for.the.current.turn,.shar
9420 65 64 20 61 63 72 6f 73 73 20 73 74 65 70 73 0a 09 09 09 2f 2f 20 73 6f 20 69 74 73 20 60 63 68 ed.across.steps....//.so.its.`ch
9440 75 6e 6b 73 60 20 72 65 66 65 72 65 6e 63 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 61 63 63 75 unks`.reference.matches.the.accu
9460 6d 75 6c 61 74 6f 72 20 61 62 6f 76 65 2e 20 57 65 20 70 75 73 68 0a 09 09 09 2f 2f 20 69 74 20 mulator.above..We.push....//.it.
9480 6f 6e 63 65 20 77 68 65 6e 20 74 68 65 20 66 69 72 73 74 20 73 74 65 70 20 68 61 73 20 61 63 74 once.when.the.first.step.has.act
94a0 75 61 6c 20 6f 75 74 70 75 74 20 74 6f 20 72 65 63 6f 72 64 2e 0a 09 09 09 6c 65 74 20 61 73 73 ual.output.to.record.....let.ass
94c0 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 3a 20 43 68 61 74 4d 65 73 73 61 67 65 20 7c istantTurnMessage:.ChatMessage.|
94e0 20 6e 75 6c 6c 20 3d 20 6e 75 6c 6c 3b 0a 0a 09 09 09 66 6f 72 20 28 6c 65 74 20 73 74 65 70 20 .null.=.null;.....for.(let.step.
9500 3d 20 30 3b 20 73 74 65 70 20 3c 20 4d 41 58 5f 53 54 45 50 53 3b 20 73 74 65 70 2b 2b 29 20 7b =.0;.step.<.MAX_STEPS;.step++).{
9520 0a 09 09 09 09 63 6f 6e 73 74 20 65 66 66 6f 72 74 20 3d 0a 09 09 09 09 09 6f 70 74 69 6f 6e 73 .....const.effort.=......options
9540 3f 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 74 68 69 73 2e 63 6f 6e 66 69 67 ?.reasoningEffort.??.this.config
9560 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 44 45 46 41 55 4c 54 5f 52 45 41 53 .reasoningEffort.??.DEFAULT_REAS
9580 4f 4e 49 4e 47 5f 45 46 46 4f 52 54 3b 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 62 75 67 52 65 71 ONING_EFFORT;.....const.debugReq
95a0 49 64 20 3d 20 6e 65 78 74 44 65 62 75 67 53 65 71 28 29 3b 0a 09 09 09 09 6c 6f 67 53 74 65 70 Id.=.nextDebugSeq();.....logStep
95c0 4c 69 66 65 63 79 63 6c 65 28 7b 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e Lifecycle({......tabId:.this.con
95e0 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 76 65 6e 74 fig.tabId,......step,......event
9600 3a 20 22 73 74 65 70 2d 73 74 61 72 74 22 2c 0a 09 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 65 :."step-start",......detail:.{.e
9620 66 66 6f 72 74 2c 20 68 69 73 74 6f 72 79 4d 65 73 73 61 67 65 73 3a 20 73 74 65 70 4d 65 73 73 ffort,.historyMessages:.stepMess
9640 61 67 65 73 2e 6c 65 6e 67 74 68 20 7d 2c 0a 09 09 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 ages.length.},.....});......//.B
9660 75 69 6c 64 20 73 74 72 65 61 6d 20 74 65 78 74 20 6f 70 74 69 6f 6e 73 0a 09 09 09 09 63 6f 6e uild.stream.text.options.....con
9680 73 74 20 6d 6f 64 65 6c 20 3d 20 70 72 6f 76 69 64 65 72 46 61 63 74 6f 72 79 28 74 68 69 73 2e st.model.=.providerFactory(this.
96a0 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 75 69 6c 64 20 74 68 65 config.model);......//.Build.the
96c0 20 6d 65 73 73 61 67 65 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 70 72 .message.list.with.the.system.pr
96e0 6f 6d 70 74 20 70 72 65 70 65 6e 64 65 64 20 61 73 20 61 20 73 79 73 74 65 6d 0a 09 09 09 09 2f ompt.prepended.as.a.system...../
9700 2f 20 72 6f 6c 65 20 6d 65 73 73 61 67 65 2e 20 54 68 69 73 20 69 73 20 72 65 71 75 69 72 65 64 /.role.message..This.is.required
9720 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 63 20 70 72 6f 6d 70 74 20 63 61 63 68 69 6e 67 3a 20 74 .for.Anthropic.prompt.caching:.t
9740 68 65 0a 09 09 09 09 2f 2f 20 60 73 79 73 74 65 6d 60 20 73 68 6f 72 74 63 75 74 20 70 61 72 61 he.....//.`system`.shortcut.para
9760 6d 65 74 65 72 20 74 61 6b 65 73 20 61 20 70 6c 61 69 6e 20 73 74 72 69 6e 67 20 77 69 74 68 20 meter.takes.a.plain.string.with.
9780 6e 6f 77 68 65 72 65 20 74 6f 0a 09 09 09 09 2f 2f 20 61 74 74 61 63 68 20 60 70 72 6f 76 69 64 nowhere.to.....//.attach.`provid
97a0 65 72 4f 70 74 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 2e 63 61 63 68 65 43 6f 6e 74 72 6f 6c erOptions.anthropic.cacheControl
97c0 60 2e 20 4d 6f 76 69 6e 67 20 69 74 20 69 6e 6c 69 6e 65 0a 09 09 09 09 2f 2f 20 61 6c 73 6f 20 `..Moving.it.inline.....//.also.
97e0 6c 65 74 73 20 75 73 20 61 70 70 6c 79 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 62 72 65 61 lets.us.apply.rolling.cache.brea
9800 6b 70 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6d 65 73 73 61 67 65 73 2e 0a 09 09 kpoints.to.the.last.messages....
9820 09 09 63 6f 6e 73 74 20 73 79 73 74 65 6d 4d 65 73 73 61 67 65 3a 20 53 79 73 74 65 6d 4d 6f 64 ..const.systemMessage:.SystemMod
9840 65 6c 4d 65 73 73 61 67 65 20 3d 20 7b 0a 09 09 09 09 09 72 6f 6c 65 3a 20 22 73 79 73 74 65 6d elMessage.=.{......role:."system
9860 22 2c 0a 09 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 2c 0a 09 ",......content:.systemPrompt,..
9880 09 09 09 7d 3b 0a 0a 09 09 09 09 6c 65 74 20 63 6f 72 65 4d 65 73 73 61 67 65 73 3a 20 4d 6f 64 ...};......let.coreMessages:.Mod
98a0 65 6c 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 0a 09 09 09 09 09 73 79 73 74 65 6d 4d 65 73 73 61 elMessage[].=.[......systemMessa
98c0 67 65 2c 0a 09 09 09 09 09 2e 2e 2e 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 28 73 74 65 70 ge,.........toModelMessages(step
98e0 4d 65 73 73 61 67 65 73 2c 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 29 2c 0a 09 09 09 09 5d 3b Messages,.isClaudeOAuth),.....];
9900 0a 0a 09 09 09 09 2f 2f 20 41 70 70 6c 79 20 70 72 6f 76 69 64 65 72 2d 73 70 65 63 69 66 69 63 ......//.Apply.provider-specific
9920 20 73 74 72 75 63 74 75 72 61 6c 20 6e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 20 62 65 66 6f 72 .structural.normalisations.befor
9940 65 0a 09 09 09 09 2f 2f 20 73 65 6e 64 69 6e 67 2e 20 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 e.....//.sending..Anthropic.and.
9960 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 70 61 74 68 73 20 65 61 63 68 20 68 61 76 openai-compatible.paths.each.hav
9980 65 0a 09 09 09 09 2f 2f 20 74 68 65 69 72 20 6f 77 6e 20 6d 65 73 73 61 67 65 2d 73 68 61 70 65 e.....//.their.own.message-shape
99a0 20 72 65 71 75 69 72 65 6d 65 6e 74 73 3b 20 74 68 65 20 74 77 6f 20 70 61 73 73 65 73 20 61 72 .requirements;.the.two.passes.ar
99c0 65 0a 09 09 09 09 2f 2f 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 2e 0a 09 09 09 e.....//.mutually.exclusive.....
99e0 09 69 66 20 28 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 29 20 7b 0a 09 09 09 09 09 63 6f .if.(usesAnthropicSDK).{......co
9a00 72 65 4d 65 73 73 61 67 65 73 20 3d 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 reMessages.=.applyAnthropicStruc
9a20 74 75 72 61 6c 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 28 63 6f 72 65 4d 65 73 73 61 67 65 73 turalNormalisations(coreMessages
9a40 29 3b 0a 09 09 09 09 09 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 63 6f );......applyAnthropicCaching(co
9a60 72 65 4d 65 73 73 61 67 65 73 29 3b 0a 09 09 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 09 09 09 63 reMessages);.....}.else.{......c
9a80 6f 72 65 4d 65 73 73 61 67 65 73 20 3d 20 61 70 70 6c 79 4f 70 65 6e 41 49 43 6f 6d 70 61 74 69 oreMessages.=.applyOpenAICompati
9aa0 62 6c 65 52 65 61 73 6f 6e 69 6e 67 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 28 63 6f 72 65 4d 65 bleReasoningNormalisation(coreMe
9ac0 73 73 61 67 65 73 29 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 63 6f 6e 73 74 20 73 74 72 65 61 6d ssages);.....}......const.stream
9ae0 4f 70 74 69 6f 6e 73 3a 20 50 61 72 61 6d 65 74 65 72 73 3c 74 79 70 65 6f 66 20 73 74 72 65 61 Options:.Parameters<typeof.strea
9b00 6d 54 65 78 74 3e 5b 30 5d 20 3d 20 7b 0a 09 09 09 09 09 6d 6f 64 65 6c 2c 0a 09 09 09 09 09 6d mText>[0].=.{......model,......m
9b20 65 73 73 61 67 65 73 3a 20 63 6f 72 65 4d 65 73 73 61 67 65 73 2c 0a 09 09 09 09 09 74 6f 6f 6c essages:.coreMessages,......tool
9b40 73 2c 0a 09 09 09 09 09 61 62 6f 72 74 53 69 67 6e 61 6c 3a 20 6f 70 74 69 6f 6e 73 3f 2e 61 62 s,......abortSignal:.options?.ab
9b60 6f 72 74 53 69 67 6e 61 6c 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 63 6f 75 72 ortSignal,.....};......//.Encour
9b80 61 67 65 20 74 6f 6f 6c 20 75 73 65 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2e 20 57 69 74 68 6f age.tool.use.on.Anthropic..Witho
9ba0 75 74 20 61 6e 20 65 78 70 6c 69 63 69 74 0a 09 09 09 09 2f 2f 20 60 74 6f 6f 6c 43 68 6f 69 63 ut.an.explicit.....//.`toolChoic
9bc0 65 60 2c 20 43 6c 61 75 64 65 20 28 65 73 70 65 63 69 61 6c 6c 79 20 4f 70 75 73 20 34 2e 37 20 e`,.Claude.(especially.Opus.4.7.
9be0 77 69 74 68 20 61 64 61 70 74 69 76 65 0a 09 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 29 20 63 with.adaptive.....//.thinking).c
9c00 61 6e 20 64 65 63 69 64 65 20 74 6f 20 22 74 68 69 6e 6b 20 66 6f 72 65 76 65 72 22 20 69 6e 73 an.decide.to."think.forever".ins
9c20 74 65 61 64 20 6f 66 20 63 61 6c 6c 69 6e 67 0a 09 09 09 09 2f 2f 20 74 68 65 20 74 6f 6f 6c 73 tead.of.calling.....//.the.tools
9c40 20 69 74 20 68 61 73 20 62 65 65 6e 20 67 69 76 65 6e 2e 20 60 22 61 75 74 6f 22 60 20 6b 65 65 .it.has.been.given..`"auto"`.kee
9c60 70 73 20 43 6c 61 75 64 65 20 66 72 65 65 20 74 6f 0a 09 09 09 09 2f 2f 20 61 6e 73 77 65 72 20 ps.Claude.free.to.....//.answer.
9c80 77 69 74 68 20 74 65 78 74 20 77 68 65 6e 20 6e 6f 20 74 6f 6f 6c 20 69 73 20 6e 65 65 64 65 64 with.text.when.no.tool.is.needed
9ca0 2c 20 77 68 69 6c 65 20 6d 61 6b 69 6e 67 20 74 68 65 0a 09 09 09 09 2f 2f 20 61 76 61 69 6c 61 ,.while.making.the.....//.availa
9cc0 62 69 6c 69 74 79 20 6f 66 20 74 6f 6f 6c 73 20 61 6e 20 65 78 70 6c 69 63 69 74 20 73 69 67 6e bility.of.tools.an.explicit.sign
9ce0 61 6c 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 09 09 09 09 69 66 20 28 69 73 43 6c 61 al.in.the.request......if.(isCla
9d00 75 64 65 4f 41 75 74 68 29 20 7b 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 74 udeOAuth).{......streamOptions.t
9d20 6f 6f 6c 43 68 6f 69 63 65 20 3d 20 22 61 75 74 6f 22 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 69 oolChoice.=."auto";.....}......i
9d40 66 20 28 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 26 26 20 65 66 66 6f 72 74 20 21 3d 3d 20 22 f.(isClaudeOAuth.&&.effort.!==."
9d60 6e 6f 6e 65 22 29 20 7b 0a 09 09 09 09 09 2f 2f 20 76 36 20 6e 61 74 69 76 65 20 73 75 70 70 6f none").{......//.v6.native.suppo
9d80 72 74 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 63 20 61 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 rt.for.Anthropic.adaptive.thinki
9da0 6e 67 20 76 69 61 0a 09 09 09 09 09 2f 2f 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2e 20 ng.via......//.providerOptions..
9dc0 4e 6f 20 6d 6f 72 65 20 72 65 77 72 69 74 65 42 6f 64 79 46 6f 72 4f 70 75 73 34 37 20 62 6f 64 No.more.rewriteBodyForOpus47.bod
9de0 79 2d 0a 09 09 09 09 09 2f 2f 20 69 6e 6a 65 63 74 69 6f 6e 20 68 61 63 6b 20 6e 65 65 64 65 64 y-......//.injection.hack.needed
9e00 2e 0a 09 09 09 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 42 75 64 67 65 74 73 20 6d 69 72 72 6f 72 .......//......//.Budgets.mirror
9e20 20 6f 70 65 6e 63 6f 64 65 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 0a 09 09 09 09 09 2f 2f 20 .opencode.transform.ts:......//.
9e40 20 20 2d 20 6d 61 78 20 20 62 75 64 67 65 74 20 3d 20 33 31 39 39 39 20 28 41 6e 74 68 72 6f 70 ..-.max..budget.=.31999.(Anthrop
9e60 69 63 27 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 63 65 69 6c 69 6e 67 3b 0a 09 09 09 09 09 2f 2f ic's.documented.ceiling;......//
9e80 20 20 20 20 20 60 4d 61 74 68 2e 6d 69 6e 28 33 31 5f 39 39 39 2c 20 6d 6f 64 65 6c 2e 6c 69 6d .....`Math.min(31_999,.model.lim
9ea0 69 74 2e 6f 75 74 70 75 74 20 2d 20 31 29 60 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6f it.output.-.1)`.in......//.....o
9ec0 70 65 6e 63 6f 64 65 20 6c 69 6e 65 20 36 36 38 29 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 68 69 pencode.line.668)......//...-.hi
9ee0 67 68 20 62 75 64 67 65 74 20 3d 20 31 36 30 30 30 20 28 6f 70 65 6e 63 6f 64 65 20 6c 69 6e 65 gh.budget.=.16000.(opencode.line
9f00 20 36 36 32 3a 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 60 4d 61 74 68 2e 6d 69 6e 28 31 36 5f 30 .662:......//.....`Math.min(16_0
9f20 30 30 2c 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 6d 6f 64 65 6c 2e 6c 69 6d 69 74 2e 6f 75 74 70 75 00,.Math.floor(model.limit.outpu
9f40 74 2f 32 2d 31 29 29 60 29 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 6d 65 64 69 75 6d 2f 6c 6f 77 t/2-1))`)......//...-.medium/low
9f60 3a 20 6e 6f 20 6f 70 65 6e 63 6f 64 65 20 65 71 75 69 76 61 6c 65 6e 74 20 e2 80 94 20 73 65 6e :.no.opencode.equivalent.....sen
9f80 73 69 62 6c 65 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 64 sible......//.....intermediate.d
9fa0 65 66 61 75 6c 74 73 2e 0a 09 09 09 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 60 6d 61 78 4f 75 74 efaults.......//......//.`maxOut
9fc0 70 75 74 54 6f 6b 65 6e 73 60 20 69 73 20 74 68 65 20 54 4f 54 41 4c 20 6f 75 74 70 75 74 20 63 putTokens`.is.the.TOTAL.output.c
9fe0 61 70 20 28 74 68 69 6e 6b 69 6e 67 20 2b 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 ap.(thinking.+......//.response.
a000 63 6f 6d 62 69 6e 65 64 29 2e 20 41 6e 74 68 72 6f 70 69 63 27 73 20 73 74 61 6e 64 61 72 64 20 combined)..Anthropic's.standard.
a020 6f 75 74 70 75 74 20 6d 61 78 20 69 73 0a 09 09 09 09 09 2f 2f 20 33 32 4b 20 66 6f 72 20 43 6c output.max.is......//.32K.for.Cl
a040 61 75 64 65 20 34 2e 78 3b 20 6d 61 74 63 68 69 6e 67 20 6f 70 65 6e 63 6f 64 65 27 73 20 4f 55 aude.4.x;.matching.opencode's.OU
a060 54 50 55 54 5f 54 4f 4b 45 4e 5f 4d 41 58 0a 09 09 09 09 09 2f 2f 20 63 6f 6e 73 74 61 6e 74 2e TPUT_TOKEN_MAX......//.constant.
a080 20 54 68 65 20 60 62 75 64 67 65 74 5f 74 6f 6b 65 6e 73 60 20 66 69 65 6c 64 20 69 73 20 61 20 .The.`budget_tokens`.field.is.a.
a0a0 74 68 69 6e 6b 69 6e 67 0a 09 09 09 09 09 2f 2f 20 63 65 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 thinking......//.ceiling,.not.a.
a0c0 72 65 71 75 69 72 65 6d 65 6e 74 2c 20 73 6f 20 74 68 65 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 requirement,.so.the.model.self-r
a0e0 65 67 75 6c 61 74 65 73 0a 09 09 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 20 76 73 20 72 65 73 egulates......//.thinking.vs.res
a100 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 74 68 69 73 20 74 6f 74 61 6c 20 62 75 64 67 65 74 2e 0a ponse.within.this.total.budget..
a120 09 09 09 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 41 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e .....//......//.Adaptive.thinkin
a140 67 20 73 70 65 63 69 66 69 63 73 20 28 4f 70 75 73 20 34 2e 37 2b 2c 20 4f 70 75 73 2f 53 6f 6e g.specifics.(Opus.4.7+,.Opus/Son
a160 6e 65 74 20 34 2e 36 3b 20 6d 69 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 0a 09 09 09 09 09 2f net.4.6;.mirrors.opencode....../
a180 2f 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 36 34 32 2d 36 35 35 29 3a 0a 09 09 09 09 09 2f 2f /.transform.ts:642-655):......//
a1a0 20 20 20 2d 20 60 74 68 69 6e 6b 69 6e 67 2e 74 79 70 65 20 3d 20 22 61 64 61 70 74 69 76 65 22 ...-.`thinking.type.=."adaptive"
a1c0 60 20 e2 80 94 20 74 68 65 20 6d 6f 64 65 6c 20 64 65 63 69 64 65 73 20 68 6f 77 0a 09 09 09 09 `.....the.model.decides.how.....
a1e0 09 2f 2f 20 20 20 20 20 6d 75 63 68 20 74 6f 20 74 68 69 6e 6b 20 77 69 74 68 69 6e 20 60 6d 61 .//.....much.to.think.within.`ma
a200 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 60 2e 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 74 68 69 xOutputTokens`.......//...-.`thi
a220 6e 6b 69 6e 67 2e 64 69 73 70 6c 61 79 20 3d 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 e2 80 nking.display.=."summarized"`...
a240 94 20 61 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 ..adaptive.thinking......//.....
a260 66 6f 72 20 4f 70 75 73 20 34 2e 37 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 64 69 73 70 6c 61 for.Opus.4.7.defaults.to.`displa
a280 79 3a 20 22 6f 6d 69 74 74 65 64 22 60 2c 20 77 68 69 63 68 0a 09 09 09 09 09 2f 2f 20 20 20 20 y:."omitted"`,.which......//....
a2a0 20 6d 65 61 6e 73 20 4e 4f 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 74 65 6e 74 20 69 73 20 73 74 .means.NO.thinking.content.is.st
a2c0 72 65 61 6d 65 64 20 74 6f 20 75 73 2e 20 53 65 74 74 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 reamed.to.us..Setting......//...
a2e0 20 20 60 73 75 6d 6d 61 72 69 7a 65 64 60 20 69 73 20 77 68 61 74 20 6d 61 6b 65 73 20 74 68 65 ..`summarized`.is.what.makes.the
a300 20 74 68 69 6e 6b 69 6e 67 20 76 69 73 69 62 6c 65 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 .thinking.visible.in......//....
a320 20 74 68 65 20 55 49 2e 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 .the.UI.......//...-.`effort`.(s
a340 69 62 6c 69 6e 67 20 6f 66 20 60 74 68 69 6e 6b 69 6e 67 60 29 20 e2 80 94 20 61 64 61 70 74 69 ibling.of.`thinking`).....adapti
a360 76 65 20 6e 65 65 64 73 20 61 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 65 78 70 6c 69 63 69 74 ve.needs.an......//.....explicit
a380 20 65 66 66 6f 72 74 20 6c 65 76 65 6c 2e 20 57 69 74 68 6f 75 74 20 69 74 2c 20 41 6e 74 68 72 .effort.level..Without.it,.Anthr
a3a0 6f 70 69 63 20 75 73 65 73 20 61 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 63 6f 6e 73 65 72 76 61 opic.uses.a......//.....conserva
a3c0 74 69 76 65 20 64 65 66 61 75 6c 74 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 62 61 72 65 6c tive.default.and.the.model.barel
a3e0 79 20 74 68 69 6e 6b 73 2e 0a 09 09 09 09 09 2f 2f 20 43 61 70 20 61 74 20 41 6e 74 68 72 6f 70 y.thinks.......//.Cap.at.Anthrop
a400 69 63 27 73 20 73 74 61 6e 64 61 72 64 20 33 32 4b 20 6f 75 74 70 75 74 20 28 6d 61 74 63 68 65 ic's.standard.32K.output.(matche
a420 73 20 6f 70 65 6e 63 6f 64 65 27 73 0a 09 09 09 09 09 2f 2f 20 4f 55 54 50 55 54 5f 54 4f 4b 45 s.opencode's......//.OUTPUT_TOKE
a440 4e 5f 4d 41 58 29 3b 20 74 68 65 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 N_MAX);.the.model.self-regulates
a460 20 74 68 69 6e 6b 69 6e 67 20 76 73 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 77 69 .thinking.vs......//.response.wi
a480 74 68 69 6e 20 74 68 69 73 20 74 6f 74 61 6c 20 62 75 64 67 65 74 2e 20 54 68 69 6e 6b 69 6e 67 thin.this.total.budget..Thinking
a4a0 20 63 6f 6e 66 69 67 20 28 61 64 61 70 74 69 76 65 0a 09 09 09 09 09 2f 2f 20 76 73 20 65 6e 61 .config.(adaptive......//.vs.ena
a4c0 62 6c 65 64 2c 20 70 6c 75 73 20 64 69 73 70 6c 61 79 3a 22 73 75 6d 6d 61 72 69 7a 65 64 22 20 bled,.plus.display:"summarized".
a4e0 66 6f 72 20 4f 70 75 73 20 34 2e 37 2b 29 20 69 73 0a 09 09 09 09 09 2f 2f 20 64 65 72 69 76 65 for.Opus.4.7+).is......//.derive
a500 64 20 66 72 6f 6d 20 74 68 65 20 6d 6f 64 65 6c 20 69 64 20 28 73 65 65 20 61 6e 74 68 72 6f 70 d.from.the.model.id.(see.anthrop
a520 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 29 2e 0a 09 09 09 09 icThinkingProviderOptions)......
a540 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 20 3d .streamOptions.maxOutputTokens.=
a560 20 33 32 30 30 30 3b 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 .32000;......streamOptions.provi
a580 64 65 72 4f 70 74 69 6f 6e 73 20 3d 20 7b 0a 09 09 09 09 09 09 61 6e 74 68 72 6f 70 69 63 3a 20 derOptions.=.{.......anthropic:.
a5a0 61 6e 74 68 72 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 anthropicThinkingProviderOptions
a5c0 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c 2c 20 65 66 66 6f 72 74 29 2c 0a 09 09 09 (this.config.model,.effort),....
a5e0 09 09 7d 3b 0a 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 21 75 73 65 73 41 6e 74 68 72 6f 70 ..};.....}.else.if.(!usesAnthrop
a600 69 63 53 44 4b 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 icSDK.&&.effort.!==."none").{...
a620 09 09 09 2f 2f 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 6d 6f 64 65 6c 73 20 28 ...//.OpenAI-compatible.models.(
a640 4f 70 65 6e 43 6f 64 65 20 5a 65 6e 3a 20 44 65 65 70 53 65 65 6b 2c 20 47 4c 4d 2c 0a 09 09 09 OpenCode.Zen:.DeepSeek,.GLM,....
a660 09 09 2f 2f 20 4b 69 6d 69 2c 20 65 74 63 2e 29 2e 20 54 68 65 20 60 72 65 61 73 6f 6e 69 6e 67 ..//.Kimi,.etc.)..The.`reasoning
a680 45 66 66 6f 72 74 60 20 66 69 65 6c 64 20 69 73 20 66 6f 72 77 61 72 64 65 64 0a 09 09 09 09 09 Effort`.field.is.forwarded......
a6a0 2f 2f 20 76 65 72 62 61 74 69 6d 20 74 6f 20 70 72 6f 76 69 64 65 72 73 20 74 68 61 74 20 73 75 //.verbatim.to.providers.that.su
a6c0 70 70 6f 72 74 20 69 74 2e 20 60 22 6d 61 78 22 60 20 69 73 20 74 68 65 0a 09 09 09 09 09 2f 2f pport.it..`"max"`.is.the......//
a6e0 20 73 74 72 6f 6e 67 65 73 74 20 6c 65 76 65 6c 20 77 65 20 65 78 70 6f 73 65 3b 20 74 68 65 20 .strongest.level.we.expose;.the.
a700 70 72 6f 76 69 64 65 72 20 6d 61 79 20 6d 61 70 20 69 74 0a 09 09 09 09 09 2f 2f 20 69 6e 74 65 provider.may.map.it......//.inte
a720 72 6e 61 6c 6c 79 20 28 65 2e 67 2e 20 44 65 65 70 53 65 65 6b 20 69 6e 74 65 72 70 72 65 74 73 rnally.(e.g..DeepSeek.interprets
a740 20 69 74 20 61 73 20 64 65 65 70 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e 69 6e 67 29 2e 0a .it.as.deep......//.reasoning)..
a760 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f .....streamOptions.providerOptio
a780 6e 73 20 3d 20 7b 20 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 3a 20 7b 20 72 65 61 73 6f ns.=.{.openaiCompatible:.{.reaso
a7a0 6e 69 6e 67 45 66 66 6f 72 74 3a 20 65 66 66 6f 72 74 20 7d 20 7d 3b 0a 09 09 09 09 7d 0a 0a 09 ningEffort:.effort.}.};.....}...
a7c0 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 73 74 72 65 61 6d 54 65 78 74 28 73 74 72 ...const.result.=.streamText(str
a7e0 65 61 6d 4f 70 74 69 6f 6e 73 29 3b 0a 0a 09 09 09 09 2f 2f 20 50 65 72 2d 73 74 65 70 20 74 6f eamOptions);......//.Per-step.to
a800 6f 6c 2d 63 61 6c 6c 20 74 72 61 63 6b 69 6e 67 20 e2 80 94 20 6e 65 65 64 65 64 20 62 65 63 61 ol-call.tracking.....needed.beca
a820 75 73 65 20 77 65 20 6f 6e 6c 79 20 6c 6f 6f 70 20 62 61 63 6b 0a 09 09 09 09 2f 2f 20 74 6f 20 use.we.only.loop.back.....//.to.
a840 74 68 65 20 4c 4c 4d 20 69 66 20 74 68 69 73 20 73 74 65 70 20 70 72 6f 64 75 63 65 64 20 74 6f the.LLM.if.this.step.produced.to
a860 6f 6c 20 63 61 6c 6c 73 2e 20 54 68 65 20 61 63 74 75 61 6c 20 63 68 75 6e 6b 0a 09 09 09 09 2f ol.calls..The.actual.chunk...../
a880 2f 20 73 74 61 74 65 20 66 6f 72 20 74 68 65 20 74 75 72 6e 20 6c 69 76 65 73 20 69 6e 20 60 63 /.state.for.the.turn.lives.in.`c
a8a0 68 75 6e 6b 73 60 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 3a hunks`......const.stepToolCalls:
a8c0 20 54 6f 6f 6c 43 61 6c 6c 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 73 75 72 65 .ToolCall[].=.[];......//.Ensure
a8e0 20 77 65 20 68 61 76 65 20 61 6e 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 69 6e .we.have.an.assistant.message.in
a900 20 73 74 65 70 4d 65 73 73 61 67 65 73 20 77 68 6f 73 65 0a 09 09 09 09 2f 2f 20 60 63 68 75 6e .stepMessages.whose.....//.`chun
a920 6b 73 60 20 72 65 66 65 72 65 6e 63 65 20 69 73 20 73 68 61 72 65 64 20 77 69 74 68 20 6f 75 72 ks`.reference.is.shared.with.our
a940 20 61 63 63 75 6d 75 6c 61 74 6f 72 2e 20 4f 6e 6c 79 20 70 75 73 68 0a 09 09 09 09 2f 2f 20 6f .accumulator..Only.push.....//.o
a960 6e 63 65 3b 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 73 20 6d 75 74 61 74 65 20 74 68 65 nce;.subsequent.steps.mutate.the
a980 20 73 61 6d 65 20 63 68 75 6e 6b 73 20 61 72 72 61 79 2e 0a 09 09 09 09 69 66 20 28 61 73 73 69 .same.chunks.array......if.(assi
a9a0 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 09 09 09 stantTurnMessage.===.null).{....
a9c0 09 09 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 20 3d 20 7b 20 72 6f 6c 65 3a ..assistantTurnMessage.=.{.role:
a9e0 20 22 61 73 73 69 73 74 61 6e 74 22 2c 20 63 68 75 6e 6b 73 20 7d 3b 0a 09 09 09 09 09 73 74 65 ."assistant",.chunks.};......ste
aa00 70 4d 65 73 73 61 67 65 73 2e 70 75 73 68 28 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 pMessages.push(assistantTurnMess
aa20 61 67 65 29 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 55 6e 65 78 70 65 63 74 65 64 20 73 age);.....}......//.Unexpected.s
aa40 74 72 65 61 6d 20 65 72 72 6f 72 73 20 70 72 6f 70 61 67 61 74 65 20 75 70 20 74 6f 20 74 68 65 tream.errors.propagate.up.to.the
aa60 20 6f 75 74 65 72 20 74 72 79 2f 63 61 74 63 68 0a 09 09 09 09 2f 2f 20 69 6e 20 60 72 75 6e 28 .outer.try/catch.....//.in.`run(
aa80 29 60 2c 20 77 68 69 63 68 20 66 6f 72 6d 61 74 73 20 74 68 65 6d 20 61 6e 64 20 74 72 61 6e 73 )`,.which.formats.them.and.trans
aaa0 69 74 69 6f 6e 73 20 74 68 65 20 61 67 65 6e 74 20 74 6f 0a 09 09 09 09 2f 2f 20 74 68 65 20 22 itions.the.agent.to.....//.the."
aac0 65 72 72 6f 72 22 20 73 74 61 74 75 73 2e 20 54 68 65 20 41 49 20 53 44 4b 20 76 36 20 73 75 72 error".status..The.AI.SDK.v6.sur
aae0 66 61 63 65 73 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 6f 6f 6c 0a 09 09 09 09 2f 2f 20 63 61 faces.unavailable-tool.....//.ca
ab00 6c 6c 73 20 61 73 20 6e 61 74 69 76 65 20 60 74 6f 6f 6c 2d 65 72 72 6f 72 60 20 73 74 72 65 61 lls.as.native.`tool-error`.strea
ab20 6d 20 65 76 65 6e 74 73 20 28 68 61 6e 64 6c 65 64 20 62 65 6c 6f 77 29 2c 0a 09 09 09 09 2f 2f m.events.(handled.below),.....//
ab40 20 73 6f 20 74 68 65 72 65 27 73 20 6e 6f 20 4e 6f 53 75 63 68 54 6f 6f 6c 45 72 72 6f 72 20 74 .so.there's.no.NoSuchToolError.t
ab60 6f 20 63 61 74 63 68 20 68 65 72 65 2e 0a 09 09 09 09 66 6f 72 20 61 77 61 69 74 20 28 63 6f 6e o.catch.here......for.await.(con
ab80 73 74 20 65 76 65 6e 74 20 6f 66 20 72 65 73 75 6c 74 2e 66 75 6c 6c 53 74 72 65 61 6d 29 20 7b st.event.of.result.fullStream).{
aba0 0a 09 09 09 09 09 6c 6f 67 53 74 72 65 61 6d 45 76 65 6e 74 28 7b 0a 09 09 09 09 09 09 72 65 71 ......logStreamEvent({.......req
abc0 75 65 73 74 49 64 3a 20 64 65 62 75 67 52 65 71 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a uestId:.debugReqId,.......step,.
abe0 09 09 09 09 09 09 65 76 65 6e 74 54 79 70 65 3a 20 65 76 65 6e 74 2e 74 79 70 65 2c 0a 09 09 09 ......eventType:.event.type,....
ac00 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 09 09 ...tabId:.this.config.tabId,....
ac20 09 09 7d 29 3b 0a 09 09 09 09 09 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 ..});......if.(event.type.===."t
ac40 65 78 74 2d 64 65 6c 74 61 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 65 78 74 2d ext-delta").{.......//.v6:.text-
ac60 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 60 74 65 78 74 44 delta.carries.`text`.(not.`textD
ac80 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 6c 45 76 65 6e 74 elta`).......const.internalEvent
aca0 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 74 :.AgentEvent.=.{........type:."t
acc0 65 78 74 2d 64 65 6c 74 61 22 2c 0a 09 09 09 09 09 09 09 64 65 6c 74 61 3a 20 65 76 65 6e 74 2e ext-delta",........delta:.event.
ace0 74 65 78 74 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 text,.......};.......appendEvent
ad00 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b ToChunks(chunks,.internalEvent);
ad20 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 .......yield.internalEvent;.....
ad40 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 72 65 61 73 .}.else.if.(event.type.===."reas
ad60 6f 6e 69 6e 67 2d 64 65 6c 74 61 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 20 6e 65 77 20 oning-delta").{.......//.v6.new.
ad80 65 76 65 6e 74 3a 20 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 20 63 61 72 72 69 65 73 20 60 event:.reasoning-delta.carries.`
ada0 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 09 09 63 6f text`.(not.`textDelta`).......co
adc0 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 74 20 3d 20 nst.internalEvent:.AgentEvent.=.
ade0 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 22 {........type:."reasoning-delta"
ae00 2c 0a 09 09 09 09 09 09 09 64 65 6c 74 61 3a 20 65 76 65 6e 74 2e 74 65 78 74 2c 0a 09 09 09 09 ,........delta:.event.text,.....
ae20 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 ..};.......appendEventToChunks(c
ae40 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 hunks,.internalEvent);.......yie
ae60 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 ld.internalEvent;......}.else.if
ae80 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 .(event.type.===."reasoning-end"
aea0 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 4f 6e 6c 79 20 65 6d 69 74 20 77 68 65 6e 20 70 72 6f 76 ).{.......//.Only.emit.when.prov
aec0 69 64 65 72 4d 65 74 61 64 61 74 61 20 69 73 20 70 72 65 73 65 6e 74 20 e2 80 94 20 6e 6f 6e 2d iderMetadata.is.present.....non-
aee0 41 6e 74 68 72 6f 70 69 63 0a 09 09 09 09 09 09 2f 2f 20 6d 6f 64 65 6c 73 20 73 65 6e 64 20 72 Anthropic.......//.models.send.r
af00 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 20 77 69 74 68 6f 75 74 20 61 6e 79 20 6d 65 74 61 64 61 74 easoning-end.without.any.metadat
af20 61 20 74 6f 20 72 6f 75 6e 64 2d 74 72 69 70 2e 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f a.to.round-trip........//.Anthro
af40 70 69 63 27 73 20 73 69 67 6e 61 74 75 72 65 20 6c 69 76 65 73 20 69 6e 73 69 64 65 20 70 72 6f pic's.signature.lives.inside.pro
af60 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 61 73 0a 09 09 09 09 09 09 2f 2f 20 7b 20 61 6e 74 68 viderMetadata.as.......//.{.anth
af80 72 6f 70 69 63 3a 20 7b 20 73 69 67 6e 61 74 75 72 65 3a 20 22 2e 2e 2e 22 20 7d 20 7d 2e 0a 09 ropic:.{.signature:."...".}.}...
afa0 09 09 09 09 09 69 66 20 28 65 76 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 .....if.(event.providerMetadata.
afc0 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e !==.undefined).{........const.in
afe0 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 ternalEvent:.AgentEvent.=.{.....
b000 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 2c 0a 09 09 09 09 09 ....type:."reasoning-end",......
b020 09 09 09 6d 65 74 61 64 61 74 61 3a 20 65 76 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 ...metadata:.event.providerMetad
b040 61 74 61 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 ata.as.Record<string,.unknown>,.
b060 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 .......};........appendEventToCh
b080 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 09 09 unks(chunks,.internalEvent);....
b0a0 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 7d ....yield.internalEvent;.......}
b0c0 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 20 ......}.else.if.(event.type.===.
b0e0 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 6f 6f 6c "tool-call").{.......//.v6:.tool
b100 20 63 61 6c 6c 20 69 6e 70 75 74 20 69 73 20 69 6e 20 60 69 6e 70 75 74 60 20 28 6e 6f 74 20 60 .call.input.is.in.`input`.(not.`
b120 61 72 67 73 60 29 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 72 61 77 4e 61 6d 65 20 3d 20 65 76 65 args`).......const.rawName.=.eve
b140 6e 74 2e 74 6f 6f 6c 4e 61 6d 65 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d nt.toolName;.......const.toolNam
b160 65 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c e.=.isClaudeOAuth.?.unprefixTool
b180 4e 61 6d 65 28 72 61 77 4e 61 6d 65 29 20 3a 20 72 61 77 4e 61 6d 65 3b 0a 09 09 09 09 09 09 63 Name(rawName).:.rawName;.......c
b1a0 6f 6e 73 74 20 74 6f 6f 6c 43 61 6c 6c 3a 20 54 6f 6f 6c 43 61 6c 6c 20 3d 20 7b 0a 09 09 09 09 onst.toolCall:.ToolCall.=.{.....
b1c0 09 09 09 69 64 3a 20 65 76 65 6e 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 09 ...id:.event.toolCallId,........
b1e0 6e 61 6d 65 3a 20 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 61 72 67 75 6d 65 6e 74 73 name:.toolName,........arguments
b200 3a 20 65 76 65 6e 74 2e 69 6e 70 75 74 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 :.event.input.as.Record<string,.
b220 75 6e 6b 6e 6f 77 6e 3e 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 73 74 65 70 54 6f 6f unknown>,.......};.......stepToo
b240 6c 43 61 6c 6c 73 2e 70 75 73 68 28 74 6f 6f 6c 43 61 6c 6c 29 3b 0a 09 09 09 09 09 09 63 6f 6e lCalls.push(toolCall);.......con
b260 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 74 20 3d 20 7b st.internalEvent:.AgentEvent.=.{
b280 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 2c 20 74 6f 6f 6c 43 61 6c 6c 20 7d 3b 0a .type:."tool-call",.toolCall.};.
b2a0 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
b2c0 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e ,.internalEvent);.......yield.in
b2e0 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 ternalEvent;......}.else.if.(eve
b300 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 65 72 72 6f 72 22 29 20 7b 0a 09 09 09 09 nt.type.===."tool-error").{.....
b320 09 09 2f 2f 20 54 68 65 20 6d 6f 64 65 6c 20 63 61 6c 6c 65 64 20 61 20 74 6f 6f 6c 20 74 68 61 ..//.The.model.called.a.tool.tha
b340 74 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 28 6f 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 70 t.doesn't.exist.(or.a.......//.p
b360 72 6f 76 69 64 65 72 2d 65 78 65 63 75 74 65 64 20 2f 20 73 65 72 76 65 72 20 74 6f 6f 6c 20 66 rovider-executed./.server.tool.f
b380 61 69 6c 65 64 29 2e 20 54 68 65 20 41 49 20 53 44 4b 20 76 36 0a 09 09 09 09 09 09 2f 2f 20 65 ailed)..The.AI.SDK.v6.......//.e
b3a0 6d 69 74 73 20 74 68 69 73 20 61 73 20 61 20 6e 61 74 69 76 65 20 73 74 72 65 61 6d 20 65 76 65 mits.this.as.a.native.stream.eve
b3c0 6e 74 20 63 61 72 72 79 69 6e 67 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 6f 72 69 67 69 6e 61 nt.carrying.the.......//.origina
b3e0 6c 20 74 6f 6f 6c 20 6e 61 6d 65 2e 20 46 6f 72 77 61 72 64 20 62 6f 74 68 20 61 20 73 79 6e 74 l.tool.name..Forward.both.a.synt
b400 68 65 74 69 63 0a 09 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 73 6f 20 74 hetic.......//.tool-result.(so.t
b420 68 65 20 74 6f 6f 6c 2d 62 61 74 63 68 20 65 6e 74 72 79 20 74 68 65 20 6d 6f 64 65 6c 20 65 78 he.tool-batch.entry.the.model.ex
b440 70 65 63 74 73 0a 09 09 09 09 09 09 2f 2f 20 68 61 73 20 61 6e 20 60 69 73 45 72 72 6f 72 3a 20 pects.......//.has.an.`isError:.
b460 74 72 75 65 60 20 72 65 73 75 6c 74 29 20 61 6e 64 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b true`.result).and.an.error.chunk
b480 20 66 6f 72 0a 09 09 09 09 09 09 2f 2f 20 76 69 73 69 62 69 6c 69 74 79 20 e2 80 94 20 77 69 74 .for.......//.visibility.....wit
b4a0 68 6f 75 74 20 74 68 65 20 72 65 73 75 6c 74 20 74 68 65 20 6d 6f 64 65 6c 20 77 6f 75 6c 64 0a hout.the.result.the.model.would.
b4c0 09 09 09 09 09 09 2f 2f 20 73 69 6c 65 6e 74 6c 79 20 77 61 69 74 20 66 6f 72 20 6f 6e 65 20 74 ......//.silently.wait.for.one.t
b4e0 68 61 74 20 6e 65 76 65 72 20 61 72 72 69 76 65 73 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 hat.never.arrives........const.e
b500 76 74 20 3d 20 65 76 65 6e 74 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 7b 0a 09 09 09 09 09 vt.=.event.as.unknown.as.{......
b520 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 09 09 09 09 74 6f 6f ..toolCallId:.string;........too
b540 6c 4e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 75 6e 6b lName:.string;........error:.unk
b560 6e 6f 77 6e 3b 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e nown;.......};.......const.toolN
b580 61 6d 65 20 3d 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f ame.=.isClaudeOAuth.?.unprefixTo
b5a0 6f 6c 4e 61 6d 65 28 65 76 74 2e 74 6f 6f 6c 4e 61 6d 65 29 20 3a 20 65 76 74 2e 74 6f 6f 6c 4e olName(evt.toolName).:.evt.toolN
b5c0 61 6d 65 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 4d 65 73 73 61 67 65 20 3d 20 65 76 ame;.......const.errMessage.=.ev
b5e0 74 2e 65 72 72 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f 20 65 76 74 2e 65 t.error.instanceof.Error.?.evt.e
b600 72 72 6f 72 2e 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 76 74 2e 65 72 72 6f 72 29 rror.message.:.String(evt.error)
b620 3b 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 ;........const.trEvent:.AgentEve
b640 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 nt.=.{........type:."tool-result
b660 22 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 7b 0a 09 09 09 09 09 09 09 09 ",........toolResult:.{.........
b680 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 65 76 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 toolCallId:.evt.toolCallId,.....
b6a0 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 45 ....toolName,.........result:.`E
b6c0 72 72 6f 72 3a 20 24 7b 65 72 72 4d 65 73 73 61 67 65 7d 60 2c 0a 09 09 09 09 09 09 09 09 69 73 rror:.${errMessage}`,.........is
b6e0 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 09 7d 3b 0a Error:.true,........},.......};.
b700 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
b720 2c 20 74 72 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b ,.trEvent);.......yield.trEvent;
b740 0a 0a 09 09 09 09 09 09 2f 2f 20 45 6d 69 74 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b 20 66 ........//.Emit.an.error.chunk.f
b760 6f 72 20 76 69 73 69 62 69 6c 69 74 79 2c 20 62 75 74 20 64 6f 20 4e 4f 54 20 73 65 74 20 74 68 or.visibility,.but.do.NOT.set.th
b780 65 0a 09 09 09 09 09 09 2f 2f 20 61 67 65 6e 74 20 73 74 61 74 75 73 20 74 6f 20 22 65 72 72 6f e.......//.agent.status.to."erro
b7a0 72 22 20 e2 80 94 20 74 68 65 20 73 74 65 70 20 63 6f 6e 74 69 6e 75 65 73 20 61 6e 64 20 6c 6f r".....the.step.continues.and.lo
b7c0 6f 70 73 0a 09 09 09 09 09 09 2f 2f 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 20 6e 6f 72 ops.......//.back.to.the.LLM.nor
b7e0 6d 61 6c 6c 79 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f mally........const.errorMsg.=.fo
b800 72 6d 61 74 45 72 72 6f 72 28 65 76 74 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 rmatError(evt.error,.this.config
b820 29 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3a 20 41 67 );.......const.errChunkEvent:.Ag
b840 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f entEvent.=.{.type:."error",.erro
b860 72 3a 20 65 72 72 6f 72 4d 73 67 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 r:.errorMsg.};.......appendEvent
b880 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 29 3b ToChunks(chunks,.errChunkEvent);
b8a0 0a 09 09 09 09 09 09 79 69 65 6c 64 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3b 0a 09 09 09 09 .......yield.errChunkEvent;.....
b8c0 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 ..break;......}.else.if.(event.t
b8e0 79 70 65 20 3d 3d 3d 20 22 61 62 6f 72 74 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 53 74 72 65 ype.===."abort").{.......//.Stre
b900 61 6d 20 61 62 6f 72 74 65 64 20 75 70 73 74 72 65 61 6d 2e 20 53 75 72 66 61 63 65 20 61 73 20 am.aborted.upstream..Surface.as.
b920 61 6e 20 65 72 72 6f 72 20 73 6f 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 66 72 6f 6e 74 65 6e an.error.so.the.......//.fronten
b940 64 20 74 61 62 20 74 72 61 6e 73 69 74 69 6f 6e 73 20 6f 75 74 20 6f 66 20 60 72 75 6e 6e 69 6e d.tab.transitions.out.of.`runnin
b960 67 60 2e 20 57 65 20 64 6f 6e 27 74 0a 09 09 09 09 09 09 2f 2f 20 63 75 72 72 65 6e 74 6c 79 20 g`..We.don't.......//.currently.
b980 63 61 6c 6c 20 61 62 6f 72 74 43 6f 6e 74 72 6f 6c 6c 65 72 2e 61 62 6f 72 74 28 29 20 6f 75 72 call.abortController.abort().our
b9a0 73 65 6c 76 65 73 2c 20 73 6f 0a 09 09 09 09 09 09 2f 2f 20 74 68 69 73 20 77 6f 75 6c 64 20 6f selves,.so.......//.this.would.o
b9c0 6e 6c 79 20 66 69 72 65 20 66 72 6f 6d 20 65 78 74 65 72 6e 61 6c 20 73 69 67 6e 61 6c 20 70 72 nly.fire.from.external.signal.pr
b9e0 6f 70 61 67 61 74 69 6f 6e 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 20 3d 0a opagation........const.reason.=.
ba00 09 09 09 09 09 09 09 74 79 70 65 6f 66 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e .......typeof.(event.as.{.reason
ba20 3f 3a 20 75 6e 6b 6e 6f 77 6e 20 7d 29 2e 72 65 61 73 6f 6e 20 3d 3d 3d 20 22 73 74 72 69 6e 67 ?:.unknown.}).reason.===."string
ba40 22 0a 09 09 09 09 09 09 09 09 3f 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e 3a 20 ".........?.(event.as.{.reason:.
ba60 73 74 72 69 6e 67 20 7d 29 2e 72 65 61 73 6f 6e 0a 09 09 09 09 09 09 09 09 3a 20 22 73 74 72 65 string.}).reason.........:."stre
ba80 61 6d 20 61 62 6f 72 74 65 64 22 3b 0a 09 09 09 09 09 09 2f 2f 20 46 69 6c 6c 20 69 6e 20 65 72 am.aborted";.......//.Fill.in.er
baa0 72 6f 72 20 72 65 73 75 6c 74 73 20 66 6f 72 20 61 6e 79 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 ror.results.for.any.unresolved.t
bac0 6f 6f 6c 20 63 61 6c 6c 73 20 73 6f 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 20 6f 72 70 68 61 6e ool.calls.so.......//.the.orphan
bae0 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 64 6f 6e 27 74 20 74 72 69 67 67 65 72 20 61 ed.tool-call.IDs.don't.trigger.a
bb00 0a 09 09 09 09 09 09 2f 2f 20 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f .......//.MissingToolResultsErro
bb20 72 20 69 66 20 74 68 69 73 20 68 69 73 74 6f 72 79 20 69 73 20 65 76 65 72 20 72 65 70 6c 61 79 r.if.this.history.is.ever.replay
bb40 65 64 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 61 62 6f 72 74 52 65 73 69 64 75 61 6c 20 3d 20 ed........const.abortResidual.=.
bb60 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 52 65 73 75 6c this.synthesizeResidualToolResul
bb80 74 73 28 0a 09 09 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 ts(........stepToolCalls,.......
bba0 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 09 09 09 60 45 72 72 6f 72 3a 20 53 74 72 65 61 6d 20 77 .chunks,........`Error:.Stream.w
bbc0 61 73 20 61 62 6f 72 74 65 64 3a 20 24 7b 72 65 61 73 6f 6e 7d 60 2c 0a 09 09 09 09 09 09 29 3b as.aborted:.${reason}`,.......);
bbe0 0a 09 09 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 61 62 6f 72 74 52 65 73 69 .......for.(const.r.of.abortResi
bc00 64 75 61 6c 29 20 7b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e dual).{........appendEventToChun
bc20 6b 73 28 63 68 75 6e 6b 73 2c 20 72 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 ks(chunks,.r);........yield.r;..
bc40 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 .....}........const.errorMsg.=.f
bc60 6f 72 6d 61 74 45 72 72 6f 72 28 6e 65 77 20 45 72 72 6f 72 28 72 65 61 73 6f 6e 29 2c 20 74 68 ormatError(new.Error(reason),.th
bc80 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c is.config);.......const.internal
bca0 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 65 72 72 Event:.AgentEvent.=.{.type:."err
bcc0 6f 72 22 2c 20 65 72 72 6f 72 3a 20 65 72 72 6f 72 4d 73 67 20 7d 3b 0a 09 09 09 09 09 09 61 70 or",.error:.errorMsg.};.......ap
bce0 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 72 6e pendEventToChunks(chunks,.intern
bd00 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 45 76 alEvent);.......yield.internalEv
bd20 65 6e 74 3b 0a 09 09 09 09 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 ent;.......this.status.=."error"
bd40 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 ;.......yield.{.type:."status",.
bd60 73 74 61 74 75 73 3a 20 22 65 72 72 6f 72 22 20 7d 3b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 3b status:."error".};.......return;
bd80 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 20 ......}.else.if.(event.type.===.
bda0 22 65 72 72 6f 72 22 29 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 "error").{.......const.errRecord
bdc0 20 3d 20 65 76 65 6e 74 2e 65 72 72 6f 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 .=.event.error.as.unknown.as.Rec
bde0 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 09 09 09 63 6f 6e 73 ord<string,.unknown>;.......cons
be00 74 20 73 74 61 74 75 73 43 6f 64 65 20 3d 0a 09 09 09 09 09 09 09 74 79 70 65 6f 66 20 65 72 72 t.statusCode.=........typeof.err
be20 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3d 3d 3d 20 22 6e 75 6d 62 65 72 22 20 3f Record.statusCode.===."number".?
be40 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3a 20 75 6e 64 65 66 69 6e 65 .errRecord.statusCode.:.undefine
be60 64 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 d;.......const.errorMsg.=.format
be80 45 72 72 6f 72 28 65 76 65 6e 74 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b Error(event.error,.this.config);
bea0 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 20 .......//.Fill.in.error.results.
bec0 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 6f for.any.unresolved.tool.calls.so
bee0 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 6c .......//.the.orphaned.tool-call
bf00 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 69 .IDs.don't.trigger.a.......//.Mi
bf20 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 69 ssingToolResultsError.if.this.hi
bf40 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 6f story.is.ever.replayed........co
bf60 6e 73 74 20 73 74 72 65 61 6d 45 72 72 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e nst.streamErrResidual.=.this.syn
bf80 74 68 65 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 09 09 thesizeResidualToolResults(.....
bfa0 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 09 63 68 75 6e 6b 73 2c ...stepToolCalls,........chunks,
bfc0 0a 09 09 09 09 09 09 09 60 45 72 72 6f 72 3a 20 24 7b 65 72 72 6f 72 4d 73 67 7d 60 2c 0a 09 09 ........`Error:.${errorMsg}`,...
bfe0 09 09 09 09 29 3b 0a 09 09 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 73 74 72 ....);.......for.(const.r.of.str
c000 65 61 6d 45 72 72 52 65 73 69 64 75 61 6c 29 20 7b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 eamErrResidual).{........appendE
c020 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 09 09 ventToChunks(chunks,.r);........
c040 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e yield.r;.......}........const.in
c060 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 ternalEvent:.AgentEvent.=.{.....
c080 09 09 09 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 ...type:."error",........error:.
c0a0 65 72 72 6f 72 4d 73 67 2c 0a 09 09 09 09 09 09 09 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 errorMsg,...........(statusCode.
c0c0 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 3f 20 7b 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a !==.undefined.?.{.statusCode.}.:
c0e0 20 7b 7d 29 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 .{}),.......};.......appendEvent
c100 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b ToChunks(chunks,.internalEvent);
c120 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 .......yield.internalEvent;.....
c140 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 09 09 09 79 ..this.status.=."error";.......y
c160 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 ield.{.type:."status",.status:."
c180 65 72 72 6f 72 22 20 7d 3b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 09 09 09 7d 20 65 error".};.......return;......}.e
c1a0 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 66 69 6e 69 73 68 2d 73 lse.if.(event.type.===."finish-s
c1c0 74 65 70 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 4f 6e 65 20 60 66 69 6e 69 73 68 2d 73 74 65 tep").{.......//.One.`finish-ste
c1e0 70 60 20 70 65 72 20 60 73 74 72 65 61 6d 54 65 78 74 60 20 73 74 65 70 2e 20 54 68 69 73 20 e2 p`.per.`streamText`.step..This..
c200 80 94 20 4e 4f 54 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 74 65 72 6d 69 6e 61 6c 20 60 66 69 ...NOT.the.......//.terminal.`fi
c220 6e 69 73 68 60 20 70 61 72 74 20 e2 80 94 20 69 73 20 77 68 65 72 65 20 74 68 65 20 41 49 20 53 nish`.part.....is.where.the.AI.S
c240 44 4b 20 70 75 74 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 70 65 72 2d 73 74 65 70 20 60 75 DK.puts.the.......//.per-step.`u
c260 73 61 67 65 60 20 28 74 68 65 20 60 66 69 6e 69 73 68 60 20 70 61 72 74 20 6f 6e 6c 79 20 63 61 sage`.(the.`finish`.part.only.ca
c280 72 72 69 65 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 61 67 67 72 65 67 61 74 65 20 60 74 6f rries.the.......//.aggregate.`to
c2a0 74 61 6c 55 73 61 67 65 60 29 2e 20 60 75 73 61 67 65 2e 69 6e 70 75 74 54 6f 6b 65 6e 44 65 74 talUsage`)..`usage.inputTokenDet
c2c0 61 69 6c 73 60 20 68 6f 6c 64 73 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 27 73 ails`.holds.......//.Anthropic's
c2e0 20 70 72 6f 6d 70 74 2d 63 61 63 68 65 20 72 65 61 64 2f 77 72 69 74 65 20 73 70 6c 69 74 2c 20 .prompt-cache.read/write.split,.
c300 77 68 69 63 68 20 70 6f 77 65 72 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 43 61 63 68 65 20 which.powers.the.......//.Cache.
c320 52 61 74 65 20 76 69 65 77 2e 20 60 69 6e 70 75 74 54 6f 6b 65 6e 73 60 20 69 73 20 74 68 65 20 Rate.view..`inputTokens`.is.the.
c340 54 4f 54 41 4c 20 70 72 6f 6d 70 74 20 28 63 61 63 68 65 64 20 2b 0a 09 09 09 09 09 09 2f 2f 20 TOTAL.prompt.(cached.+.......//.
c360 66 72 65 73 68 29 2e 20 53 6b 69 70 20 65 6d 69 73 73 69 6f 6e 20 77 68 65 6e 20 6e 6f 20 75 73 fresh)..Skip.emission.when.no.us
c380 61 67 65 20 69 73 20 61 74 74 61 63 68 65 64 20 28 65 2e 67 2e 20 74 65 73 74 0a 09 09 09 09 09 age.is.attached.(e.g..test......
c3a0 09 2f 2f 20 6d 6f 63 6b 73 29 20 73 6f 20 77 65 20 6e 65 76 65 72 20 62 72 6f 61 64 63 61 73 74 .//.mocks).so.we.never.broadcast
c3c0 20 61 6e 20 61 6c 6c 2d 7a 65 72 6f 20 75 73 61 67 65 20 65 76 65 6e 74 2e 0a 09 09 09 09 09 09 .an.all-zero.usage.event........
c3e0 63 6f 6e 73 74 20 75 20 3d 20 28 65 76 65 6e 74 20 61 73 20 7b 20 75 73 61 67 65 3f 3a 20 4c 61 const.u.=.(event.as.{.usage?:.La
c400 6e 67 75 61 67 65 4d 6f 64 65 6c 55 73 61 67 65 20 7d 29 2e 75 73 61 67 65 3b 0a 09 09 09 09 09 nguageModelUsage.}).usage;......
c420 09 69 66 20 28 75 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 64 65 74 61 69 6c 73 20 3d .if.(u).{........const.details.=
c440 20 75 2e 69 6e 70 75 74 54 6f 6b 65 6e 44 65 74 61 69 6c 73 3b 0a 09 09 09 09 09 09 09 63 6f 6e .u.inputTokenDetails;........con
c460 73 74 20 75 73 61 67 65 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 st.usageEvent:.AgentEvent.=.{...
c480 09 09 09 09 09 09 74 79 70 65 3a 20 22 75 73 61 67 65 22 2c 0a 09 09 09 09 09 09 09 09 75 73 61 ......type:."usage",.........usa
c4a0 67 65 3a 20 7b 0a 09 09 09 09 09 09 09 09 09 69 6e 70 75 74 54 6f 6b 65 6e 73 3a 20 75 2e 69 6e ge:.{..........inputTokens:.u.in
c4c0 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 6f 75 74 70 75 74 54 putTokens.??.0,..........outputT
c4e0 6f 6b 65 6e 73 3a 20 75 2e 6f 75 74 70 75 74 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 okens:.u.outputTokens.??.0,.....
c500 09 09 09 09 09 63 61 63 68 65 52 65 61 64 54 6f 6b 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 .....cacheReadTokens:.details?.c
c520 61 63 68 65 52 65 61 64 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 63 61 acheReadTokens.??.0,..........ca
c540 63 68 65 57 72 69 74 65 54 6f 6b 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 61 63 68 65 57 72 cheWriteTokens:.details?.cacheWr
c560 69 74 65 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 iteTokens.??.0,.........},......
c580 09 09 7d 3b 0a 09 09 09 09 09 09 09 2f 2f 20 53 65 74 20 44 49 53 50 41 54 43 48 5f 44 45 42 55 ..};........//.Set.DISPATCH_DEBU
c5a0 47 5f 55 53 41 47 45 3d 31 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 72 61 77 20 70 65 72 2d 73 G_USAGE=1.to.print.the.raw.per-s
c5c0 74 65 70 0a 09 09 09 09 09 09 09 2f 2f 20 75 73 61 67 65 20 74 6f 20 74 68 65 20 73 65 72 76 65 tep........//.usage.to.the.serve
c5e0 72 20 6c 6f 67 20 e2 80 94 20 6c 65 74 73 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 63 61 63 68 65 r.log.....lets.you.confirm.cache
c600 20 72 65 61 64 73 0a 09 09 09 09 09 09 09 2f 2f 20 61 72 65 20 6e 6f 6e 2d 7a 65 72 6f 20 77 69 .reads........//.are.non-zero.wi
c620 74 68 6f 75 74 20 74 68 65 20 55 49 2e 0a 09 09 09 09 09 09 09 69 66 20 28 70 72 6f 63 65 73 73 thout.the.UI.........if.(process
c640 2e 65 6e 76 2e 44 49 53 50 41 54 43 48 5f 44 45 42 55 47 5f 55 53 41 47 45 29 20 7b 0a 09 09 09 .env.DISPATCH_DEBUG_USAGE).{....
c660 09 09 09 09 09 63 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 22 5b 64 69 73 70 61 74 63 68 20 75 73 .....console.error("[dispatch.us
c680 61 67 65 5d 22 2c 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 75 73 61 67 65 45 76 65 6e 74 age]",.JSON.stringify(usageEvent
c6a0 2e 75 73 61 67 65 29 29 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 2f 2f 20 4e 6f 74 .usage));........}........//.Not
c6c0 20 61 70 70 65 6e 64 65 64 20 74 6f 20 63 68 75 6e 6b 73 20 e2 80 94 20 75 73 61 67 65 20 69 73 .appended.to.chunks.....usage.is
c6e0 20 74 65 6c 65 6d 65 74 72 79 2c 20 6e 6f 74 0a 09 09 09 09 09 09 09 2f 2f 20 6d 65 73 73 61 67 .telemetry,.not........//.messag
c700 65 20 63 6f 6e 74 65 6e 74 20 28 73 65 65 20 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e e.content.(see.appendEventToChun
c720 6b 73 29 2e 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 75 73 61 67 65 45 76 65 6e 74 3b 0a 09 09 ks).........yield.usageEvent;...
c740 09 09 09 09 7d 0a 09 09 09 09 09 7d 0a 09 09 09 09 09 2f 2f 20 49 67 6e 6f 72 65 64 20 65 76 65 ....}......}......//.Ignored.eve
c760 6e 74 73 20 28 69 6e 74 65 6e 74 69 6f 6e 61 6c 29 3a 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 nts.(intentional):......//...sta
c780 72 74 2c 20 74 65 78 74 2d 73 74 61 72 74 2c 20 74 65 78 74 2d 65 6e 64 2c 20 72 65 61 73 6f 6e rt,.text-start,.text-end,.reason
c7a0 69 6e 67 2d 73 74 61 72 74 2c 0a 09 09 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d ing-start,......//...tool-input-
c7c0 73 74 61 72 74 2c 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 64 65 6c 74 61 2c 20 74 6f 6f 6c 2d 69 6e start,.tool-input-delta,.tool-in
c7e0 70 75 74 2d 65 6e 64 2c 0a 09 09 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 put-end,......//...tool-result.(
c800 6f 6e 6c 79 20 66 69 72 65 73 20 69 66 20 74 6f 6f 6c 20 68 61 73 20 65 78 65 63 75 74 65 3b 20 only.fires.if.tool.has.execute;.
c820 6f 75 72 73 20 64 6f 6e 27 74 29 2c 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 72 74 2d 73 74 65 ours.don't),......//...start-ste
c840 70 2c 20 66 69 6e 69 73 68 20 28 61 67 67 72 65 67 61 74 65 20 74 6f 74 61 6c 55 73 61 67 65 20 p,.finish.(aggregate.totalUsage.
c860 6f 6e 6c 79 29 2c 20 72 61 77 2c 0a 09 09 09 09 09 2f 2f 20 20 20 73 6f 75 72 63 65 2c 20 66 69 only),.raw,......//...source,.fi
c880 6c 65 2c 20 74 6f 6f 6c 2d 6f 75 74 70 75 74 2d 64 65 6e 69 65 64 2c 20 74 6f 6f 6c 2d 61 70 70 le,.tool-output-denied,.tool-app
c8a0 72 6f 76 61 6c 2d 2a 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 4e 6f 20 74 6f 6f 6c 20 63 61 roval-*.....}......//.No.tool.ca
c8c0 6c 6c 73 20 6d 65 61 6e 73 20 74 68 65 20 61 67 65 6e 74 20 69 73 20 64 6f 6e 65 20 e2 80 94 20 lls.means.the.agent.is.done.....
c8e0 74 68 65 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 0a 09 09 09 09 2f 2f 20 61 6c 72 the.assistant.message.....//.alr
c900 65 61 64 79 20 65 78 69 73 74 73 20 69 6e 20 73 74 65 70 4d 65 73 73 61 67 65 73 20 77 69 74 68 eady.exists.in.stepMessages.with
c920 20 75 70 2d 74 6f 2d 64 61 74 65 20 63 68 75 6e 6b 73 2e 0a 09 09 09 09 69 66 20 28 73 74 65 70 .up-to-date.chunks......if.(step
c940 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 29 20 7b 0a 09 09 09 09 09 6c ToolCalls.length.===.0).{......l
c960 6f 67 53 74 65 70 4c 69 66 65 63 79 63 6c 65 28 7b 0a 09 09 09 09 09 09 74 61 62 49 64 3a 20 74 ogStepLifecycle({.......tabId:.t
c980 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a 09 09 his.config.tabId,.......step,...
c9a0 09 09 09 09 65 76 65 6e 74 3a 20 22 73 74 65 70 2d 65 6e 64 2d 6e 6f 2d 74 6f 6f 6c 73 22 2c 0a ....event:."step-end-no-tools",.
c9c0 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 28 7b 0a 09 09 09 .....});......logAgentLoop({....
c9e0 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 09 09 ...tabId:.this.config.tabId,....
ca00 09 09 09 65 76 65 6e 74 3a 20 22 72 75 6e 2d 65 6e 64 2d 63 6c 65 61 6e 22 2c 0a 09 09 09 09 09 ...event:."run-end-clean",......
ca20 09 64 65 74 61 69 6c 3a 20 7b 20 73 74 65 70 73 3a 20 73 74 65 70 20 2b 20 31 20 7d 2c 0a 09 09 .detail:.{.steps:.step.+.1.},...
ca40 09 09 09 7d 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 6c 6f 67 ...});......break;.....}.....log
ca60 53 74 65 70 4c 69 66 65 63 79 63 6c 65 28 7b 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 StepLifecycle({......tabId:.this
ca80 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 .config.tabId,......step,......e
caa0 76 65 6e 74 3a 20 22 73 74 65 70 2d 68 61 73 2d 74 6f 6f 6c 73 22 2c 0a 09 09 09 09 09 64 65 74 vent:."step-has-tools",......det
cac0 61 69 6c 3a 20 7b 0a 09 09 09 09 09 09 74 6f 6f 6c 43 6f 75 6e 74 3a 20 73 74 65 70 54 6f 6f 6c ail:.{.......toolCount:.stepTool
cae0 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 2c 0a 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 73 3a 20 73 Calls.length,.......toolNames:.s
cb00 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6d 61 70 28 28 74 29 20 3d 3e 20 74 2e 6e 61 6d 65 29 2c tepToolCalls.map((t).=>.t.name),
cb20 0a 09 09 09 09 09 7d 2c 0a 09 09 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 45 78 65 63 75 74 65 ......},.....});......//.Execute
cb40 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6d 61 6e 75 61 6c 6c 79 2e 20 54 68 65 69 72 20 72 65 73 75 .tool.calls.manually..Their.resu
cb60 6c 74 73 20 6d 65 72 67 65 20 62 61 63 6b 20 69 6e 74 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 60 lts.merge.back.into.the.....//.`
cb80 63 68 75 6e 6b 73 60 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 76 69 61 20 60 61 70 70 65 6e 64 45 chunks`.accumulator.via.`appendE
cba0 76 65 6e 74 54 6f 43 68 75 6e 6b 73 60 2c 20 77 68 69 63 68 20 72 6f 75 74 65 73 0a 09 09 09 09 ventToChunks`,.which.routes.....
cbc0 2f 2f 20 65 61 63 68 20 72 65 73 75 6c 74 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 65 6e //.each.result.to.the.correct.en
cbe0 74 72 79 20 69 6e 73 69 64 65 20 69 74 73 20 74 6f 6f 6c 2d 62 61 74 63 68 20 63 68 75 6e 6b 2e try.inside.its.tool-batch.chunk.
cc00 0a 09 09 09 09 2f 2f 20 54 72 61 63 6b 20 77 68 69 63 68 20 63 61 6c 6c 73 20 61 6c 72 65 61 64 .....//.Track.which.calls.alread
cc20 79 20 68 61 76 65 20 61 20 72 65 63 6f 72 64 65 64 20 72 65 73 75 6c 74 20 28 66 72 6f 6d 20 74 y.have.a.recorded.result.(from.t
cc40 68 65 0a 09 09 09 09 2f 2f 20 73 79 6e 74 68 65 74 69 63 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d he.....//.synthetic.unavailable-
cc60 74 6f 6f 6c 20 65 72 72 6f 72 20 70 61 74 68 20 61 62 6f 76 65 29 20 73 6f 20 77 65 20 64 6f 6e tool.error.path.above).so.we.don
cc80 27 74 0a 09 09 09 09 2f 2f 20 72 65 2d 65 78 65 63 75 74 65 20 74 68 65 6d 2e 0a 09 09 09 09 63 't.....//.re-execute.them......c
cca0 6f 6e 73 74 20 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 onst.alreadyResolved.=.new.Set<s
ccc0 74 72 69 6e 67 3e 28 29 3b 0a 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 tring>();.....for.(const.c.of.ch
cce0 75 6e 6b 73 29 20 7b 0a 09 09 09 09 09 69 66 20 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f unks).{......if.(c.type.!==."too
cd00 6c 2d 62 61 74 63 68 22 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 09 09 66 6f 72 20 28 63 6f l-batch").continue;......for.(co
cd20 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 63 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 09 09 69 66 nst.entry.of.c.calls).{.......if
cd40 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 61 6c .(entry.result.!==.undefined).al
cd60 72 65 61 64 79 52 65 73 6f 6c 76 65 64 2e 61 64 64 28 65 6e 74 72 79 2e 69 64 29 3b 0a 09 09 09 readyResolved.add(entry.id);....
cd80 09 09 7d 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 49 64 65 6e 74 69 66 79 20 74 68 65 20 69 ..}.....}......//.Identify.the.i
cda0 6e 64 65 78 20 6f 66 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 69 6e 20 74 68 69 73 20 62 61 ndex.of.the.last.tool.in.this.ba
cdc0 74 63 68 20 74 68 61 74 20 77 69 6c 6c 0a 09 09 09 09 2f 2f 20 61 63 74 75 61 6c 6c 79 20 65 78 tch.that.will.....//.actually.ex
cde0 65 63 75 74 65 2e 20 51 75 65 75 65 64 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 ecute..Queued.user.messages.are.
ce00 62 75 66 66 65 72 65 64 20 61 63 72 6f 73 73 0a 09 09 09 09 2f 2f 20 74 68 69 73 20 62 61 74 63 buffered.across.....//.this.batc
ce20 68 20 61 6e 64 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f 20 4f 4e 4c 59 20 74 68 61 74 20 74 6f h.and.injected.into.ONLY.that.to
ce40 6f 6c 27 73 20 72 65 73 75 6c 74 2c 20 73 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 69 6e 74 65 72 ol's.result,.so.the.....//.inter
ce60 72 75 70 74 20 61 70 70 65 61 72 73 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 20 70 65 72 20 73 74 rupt.appears.exactly.once.per.st
ce80 65 70 20 72 61 74 68 65 72 20 74 68 61 6e 20 66 72 61 67 6d 65 6e 74 65 64 0a 09 09 09 09 2f 2f ep.rather.than.fragmented.....//
cea0 20 61 63 72 6f 73 73 20 77 68 69 63 68 65 76 65 72 20 74 6f 6f 6c 20 68 61 70 70 65 6e 65 64 20 .across.whichever.tool.happened.
cec0 74 6f 20 64 65 71 75 65 75 65 20 66 69 72 73 74 2e 20 54 6f 6f 6c 2d 6c 65 76 65 6c 0a 09 09 09 to.dequeue.first..Tool-level....
cee0 09 2f 2f 20 69 6e 74 65 72 72 75 70 74 20 68 61 6e 64 6c 65 72 73 20 69 6e 20 72 75 6e 2d 73 68 .//.interrupt.handlers.in.run-sh
cf00 65 6c 6c 2f 79 6f 75 74 75 62 65 2d 74 72 61 6e 73 63 72 69 62 65 2f 72 65 74 72 69 65 76 65 0a ell/youtube-transcribe/retrieve.
cf20 09 09 09 09 2f 2f 20 73 74 69 6c 6c 20 65 6d 62 65 64 20 74 68 65 69 72 20 6f 77 6e 20 69 6e 74 ....//.still.embed.their.own.int
cf40 65 72 72 75 70 74 20 74 65 78 74 20 69 6e 20 74 68 65 69 72 20 72 65 74 75 72 6e 20 76 61 6c 75 errupt.text.in.their.return.valu
cf60 65 73 20 e2 80 94 0a 09 09 09 09 2f 2f 20 74 68 61 74 20 70 61 74 68 20 69 73 20 69 6e 64 65 70 es.........//.that.path.is.indep
cf80 65 6e 64 65 6e 74 20 61 6e 64 20 72 65 6d 61 69 6e 73 20 63 6f 72 72 65 63 74 2e 0a 09 09 09 09 endent.and.remains.correct......
cfa0 6c 65 74 20 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 3d 20 2d 31 3b 0a 09 09 09 09 let.lastExecutableIdx.=.-1;.....
cfc0 66 6f 72 20 28 6c 65 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c for.(let.i.=.0;.i.<.stepToolCall
cfe0 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 41 74 s.length;.i++).{......const.tcAt
d000 20 3d 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 5b 69 5d 3b 0a 09 09 09 09 09 69 66 20 28 74 63 .=.stepToolCalls[i];......if.(tc
d020 41 74 20 26 26 20 21 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 41 74 2e At.&&.!alreadyResolved.has(tcAt.
d040 69 64 29 29 20 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 3d 20 69 3b 0a 09 09 09 09 id)).lastExecutableIdx.=.i;.....
d060 7d 0a 0a 09 09 09 09 2f 2f 20 41 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 65 73 73 61 67 }......//.Accumulator.for.messag
d080 65 73 20 64 65 71 75 65 75 65 64 20 64 75 72 69 6e 67 20 74 68 69 73 20 62 61 74 63 68 2e 20 44 es.dequeued.during.this.batch..D
d0a0 72 61 69 6e 65 64 0a 09 09 09 09 2f 2f 20 6f 6e 6c 79 20 61 74 20 60 6c 61 73 74 45 78 65 63 75 rained.....//.only.at.`lastExecu
d0c0 74 61 62 6c 65 49 64 78 60 2e 20 44 65 73 74 72 75 63 74 69 76 65 20 64 65 71 75 65 75 65 20 61 tableIdx`..Destructive.dequeue.a
d0e0 74 20 74 68 65 20 71 75 65 75 65 0a 09 09 09 09 2f 2f 20 6c 65 76 65 6c 20 70 72 65 76 65 6e 74 t.the.queue.....//.level.prevent
d100 73 20 74 68 65 20 73 61 6d 65 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 61 70 70 65 61 72 69 6e s.the.same.message.from.appearin
d120 67 20 69 6e 20 73 75 62 73 65 71 75 65 6e 74 0a 09 09 09 09 2f 2f 20 62 61 74 63 68 65 73 2e 0a g.in.subsequent.....//.batches..
d140 09 09 09 09 63 6f 6e 73 74 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 3a ....const.batchPendingInjection:
d160 20 7b 20 69 64 3a 20 73 74 72 69 6e 67 3b 20 6d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 3b 20 .{.id:.string;.message:.string;.
d180 74 69 6d 65 73 74 61 6d 70 3a 20 6e 75 6d 62 65 72 20 7d 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 timestamp:.number.}[].=.[];.....
d1a0 09 2f 2f 20 52 65 73 75 6c 74 73 20 6f 66 20 61 6c 72 65 61 64 79 2d 65 78 65 63 75 74 65 64 20 .//.Results.of.already-executed.
d1c0 63 61 6c 6c 73 20 69 6e 20 74 68 69 73 20 62 61 74 63 68 2c 20 6b 65 79 65 64 20 62 79 0a 09 09 calls.in.this.batch,.keyed.by...
d1e0 09 09 2f 2f 20 60 74 6f 6f 6c 44 65 64 75 70 4b 65 79 60 2e 20 42 79 74 65 2d 69 64 65 6e 74 69 ..//.`toolDedupKey`..Byte-identi
d200 63 61 6c 20 72 65 70 65 61 74 73 20 72 65 75 73 65 20 74 68 65 20 66 69 72 73 74 20 72 65 73 75 cal.repeats.reuse.the.first.resu
d220 6c 74 0a 09 09 09 09 2f 2f 20 69 6e 73 74 65 61 64 20 6f 66 20 72 65 2d 72 75 6e 6e 69 6e 67 20 lt.....//.instead.of.re-running.
d240 74 68 65 20 74 6f 6f 6c 20 28 73 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 63 the.tool.(see.tool-runner-duplic
d260 61 74 69 6f 6e 2d 0a 09 09 09 09 2f 2f 20 69 6e 63 69 64 65 6e 74 2e 6d 64 29 2e 20 4f 6e 6c 79 ation-.....//.incident.md)..Only
d280 20 74 68 65 20 72 61 77 2c 20 70 72 65 2d 69 6e 74 65 72 72 75 70 74 2d 69 6e 6a 65 63 74 69 6f .the.raw,.pre-interrupt-injectio
d2a0 6e 20 72 65 73 75 6c 74 20 69 73 0a 09 09 09 09 2f 2f 20 63 61 63 68 65 64 20 73 6f 20 61 20 72 n.result.is.....//.cached.so.a.r
d2c0 65 75 73 65 64 20 63 6f 70 79 20 6e 65 76 65 72 20 63 61 72 72 69 65 73 20 61 6e 6f 74 68 65 72 eused.copy.never.carries.another
d2e0 20 63 61 6c 6c 27 73 20 69 6e 74 65 72 72 75 70 74 2e 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 64 .call's.interrupt......const.ded
d300 75 70 52 65 73 75 6c 74 73 20 3d 20 6e 65 77 20 4d 61 70 3c 73 74 72 69 6e 67 2c 20 54 6f 6f 6c upResults.=.new.Map<string,.Tool
d320 52 65 73 75 6c 74 3e 28 29 3b 0a 0a 09 09 09 09 66 6f 72 20 28 6c 65 74 20 74 63 49 64 78 20 3d Result>();......for.(let.tcIdx.=
d340 20 30 3b 20 74 63 49 64 78 20 3c 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 .0;.tcIdx.<.stepToolCalls.length
d360 3b 20 74 63 49 64 78 2b 2b 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 20 3d 20 73 74 65 ;.tcIdx++).{......const.tc.=.ste
d380 70 54 6f 6f 6c 43 61 6c 6c 73 5b 74 63 49 64 78 5d 3b 0a 09 09 09 09 09 69 66 20 28 21 74 63 20 pToolCalls[tcIdx];......if.(!tc.
d3a0 7c 7c 20 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 2e 69 64 29 29 20 63 ||.alreadyResolved.has(tc.id)).c
d3c0 6f 6e 74 69 6e 75 65 3b 0a 0a 09 09 09 09 09 63 6f 6e 73 74 20 64 65 64 75 70 4b 65 79 20 3d 20 ontinue;.......const.dedupKey.=.
d3e0 74 6f 6f 6c 44 65 64 75 70 4b 65 79 28 74 63 2e 6e 61 6d 65 2c 20 74 63 2e 61 72 67 75 6d 65 6e toolDedupKey(tc.name,.tc.argumen
d400 74 73 29 3b 0a 0a 09 09 09 09 09 6c 65 74 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 54 6f 6f 6c 52 ts);.......let.toolResult:.ToolR
d420 65 73 75 6c 74 20 7c 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 09 09 63 6f 6e 73 74 20 63 61 esult.|.undefined;......const.ca
d440 63 68 65 64 20 3d 20 64 65 64 75 70 4b 65 79 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 64 65 64 75 70 ched.=.dedupKey.!==.null.?.dedup
d460 52 65 73 75 6c 74 73 2e 67 65 74 28 64 65 64 75 70 4b 65 79 29 20 3a 20 75 6e 64 65 66 69 6e 65 Results.get(dedupKey).:.undefine
d480 64 3b 0a 09 09 09 09 09 69 66 20 28 63 61 63 68 65 64 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 49 d;......if.(cached).{.......//.I
d4a0 64 65 6e 74 69 63 61 6c 20 63 61 6c 6c 20 61 6c 72 65 61 64 79 20 72 61 6e 20 69 6e 20 74 68 69 dentical.call.already.ran.in.thi
d4c0 73 20 62 61 74 63 68 20 e2 80 94 20 72 65 75 73 65 20 69 74 73 0a 09 09 09 09 09 09 2f 2f 20 6f s.batch.....reuse.its.......//.o
d4e0 75 74 70 75 74 20 75 6e 64 65 72 20 74 68 69 73 20 63 61 6c 6c 27 73 20 6f 77 6e 20 69 64 20 28 utput.under.this.call's.own.id.(
d500 6e 6f 20 65 78 65 63 75 74 69 6f 6e 2c 20 6e 6f 20 73 68 65 6c 6c 0a 09 09 09 09 09 09 2f 2f 20 no.execution,.no.shell.......//.
d520 6f 75 74 70 75 74 20 74 6f 20 73 74 72 65 61 6d 29 2e 0a 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 output.to.stream)........toolRes
d540 75 6c 74 20 3d 20 7b 20 2e 2e 2e 63 61 63 68 65 64 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 ult.=.{....cached,.toolCallId:.t
d560 63 2e 69 64 2c 20 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 20 7d 3b 0a 09 09 09 09 09 c.id,.toolName:.tc.name.};......
d580 7d 20 65 6c 73 65 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c 4f 75 74 70 75 74 }.else.{.......const.shellOutput
d5a0 51 75 65 75 65 3a 20 41 72 72 61 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 73 74 72 Queue:.Array<{.data:.string;.str
d5c0 65 61 6d 3a 20 22 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 20 3d 20 5b 5d eam:."stdout".|."stderr".}>.=.[]
d5e0 3b 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 68 69 ;........const.execPromise.=.thi
d600 73 2e 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 74 63 2c 20 73 s.executeToolWithStreaming(tc,.s
d620 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 29 3b 0a 0a 09 09 09 09 09 09 2f 2f 20 50 6f 6c 6c hellOutputQueue);........//.Poll
d640 20 66 6f 72 20 73 68 65 6c 6c 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 74 6f 6f 6c .for.shell.output.while.the.tool
d660 20 69 73 20 72 75 6e 6e 69 6e 67 2c 20 75 73 69 6e 67 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 0a .is.running,.using.Promise.race.
d680 09 09 09 09 09 09 2f 2f 20 73 6f 20 77 65 20 63 61 6e 20 79 69 65 6c 64 20 73 68 65 6c 6c 2d 6f ......//.so.we.can.yield.shell-o
d6a0 75 74 70 75 74 20 65 76 65 6e 74 73 20 61 73 20 74 68 65 79 20 61 72 72 69 76 65 20 72 61 74 68 utput.events.as.they.arrive.rath
d6c0 65 72 20 74 68 61 6e 20 62 75 66 66 65 72 69 6e 67 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 6d 20 er.than.buffering.......//.them.
d6e0 61 6c 6c 20 75 6e 74 69 6c 20 74 6f 6f 6c 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 09 09 09 09 09 all.until.tool.completion.......
d700 09 77 68 69 6c 65 20 28 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 3d 3d 20 75 6e 64 65 66 69 6e 65 64 .while.(toolResult.===.undefined
d720 29 20 7b 0a 09 09 09 09 09 09 09 69 66 20 28 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e ).{........if.(shellOutputQueue.
d740 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 74 65 6d length.>.0).{.........const.item
d760 20 3d 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 28 29 3b 0a 09 09 09 .=.shellOutputQueue.shift();....
d780 09 09 09 09 09 69 66 20 28 69 74 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 .....if.(item).{..........const.
d7a0 73 68 65 6c 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 shellEvent:.AgentEvent.=.{......
d7c0 09 09 09 09 09 74 79 70 65 3a 20 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 09 09 09 09 .....type:."shell-output",......
d7e0 09 09 09 09 09 64 61 74 61 3a 20 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 09 09 09 .....data:.item.data,...........
d800 73 74 72 65 61 6d 3a 20 69 74 65 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 09 7d 3b stream:.item.stream,..........};
d820 0a 09 09 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 ..........appendEventToChunks(ch
d840 75 6e 6b 73 2c 20 73 68 65 6c 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 09 79 69 65 6c unks,.shellEvent);..........yiel
d860 64 20 73 68 65 6c 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 09 d.shellEvent;.........}.........
d880 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 continue;........}........const.
d8a0 72 61 63 65 52 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 28 raceResult.=.await.Promise.race(
d8c0 5b 0a 09 09 09 09 09 09 09 09 65 78 65 63 50 72 6f 6d 69 73 65 2e 74 68 65 6e 28 28 72 29 20 3d [.........execPromise.then((r).=
d8e0 3e 20 28 7b 20 64 6f 6e 65 3a 20 74 72 75 65 20 61 73 20 63 6f 6e 73 74 2c 20 76 61 6c 75 65 3a >.({.done:.true.as.const,.value:
d900 20 72 20 7d 29 29 2c 0a 09 09 09 09 09 09 09 09 6e 65 77 20 50 72 6f 6d 69 73 65 3c 7b 20 64 6f .r.})),.........new.Promise<{.do
d920 6e 65 3a 20 66 61 6c 73 65 20 7d 3e 28 28 72 65 73 6f 6c 76 65 29 20 3d 3e 0a 09 09 09 09 09 09 ne:.false.}>((resolve).=>.......
d940 09 09 09 73 65 74 49 6d 6d 65 64 69 61 74 65 28 28 29 20 3d 3e 20 72 65 73 6f 6c 76 65 28 7b 20 ...setImmediate(().=>.resolve({.
d960 64 6f 6e 65 3a 20 66 61 6c 73 65 20 7d 29 29 2c 0a 09 09 09 09 09 09 09 09 29 2c 0a 09 09 09 09 done:.false.})),.........),.....
d980 09 09 09 5d 29 3b 0a 09 09 09 09 09 09 09 69 66 20 28 72 61 63 65 52 65 73 75 6c 74 2e 64 6f 6e ...]);........if.(raceResult.don
d9a0 65 29 20 7b 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 72 61 63 65 52 65 e).{.........toolResult.=.raceRe
d9c0 73 75 6c 74 2e 76 61 6c 75 65 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 09 sult.value;........}.......}....
d9e0 09 09 09 09 2f 2f 20 44 72 61 69 6e 20 61 6e 79 20 72 65 6d 61 69 6e 69 6e 67 20 73 68 65 6c 6c ....//.Drain.any.remaining.shell
da00 20 6f 75 74 70 75 74 20 65 6d 69 74 74 65 64 20 62 65 66 6f 72 65 20 77 65 20 72 65 61 64 20 74 .output.emitted.before.we.read.t
da20 68 65 20 72 65 73 75 6c 74 0a 09 09 09 09 09 09 77 68 69 6c 65 20 28 73 68 65 6c 6c 4f 75 74 70 he.result.......while.(shellOutp
da40 75 74 51 75 65 75 65 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e utQueue.length.>.0).{........con
da60 73 74 20 69 74 65 6d 20 3d 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 st.item.=.shellOutputQueue.shift
da80 28 29 3b 0a 09 09 09 09 09 09 09 69 66 20 28 69 74 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 63 ();........if.(item).{.........c
daa0 6f 6e 73 74 20 73 68 65 6c 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a onst.shellEvent:.AgentEvent.=.{.
dac0 09 09 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 .........type:."shell-output",..
dae0 09 09 09 09 09 09 09 09 64 61 74 61 3a 20 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 ........data:.item.data,........
db00 09 09 73 74 72 65 61 6d 3a 20 69 74 65 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 7d ..stream:.item.stream,.........}
db20 3b 0a 09 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 ;.........appendEventToChunks(ch
db40 75 6e 6b 73 2c 20 73 68 65 6c 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 79 69 65 6c 64 unks,.shellEvent);.........yield
db60 20 73 68 65 6c 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 .shellEvent;........}.......}...
db80 09 09 09 09 09 2f 2f 20 43 61 63 68 65 20 74 68 65 20 72 61 77 20 72 65 73 75 6c 74 20 73 6f 20 .....//.Cache.the.raw.result.so.
dba0 6c 61 74 65 72 20 69 64 65 6e 74 69 63 61 6c 20 63 61 6c 6c 73 20 69 6e 20 74 68 69 73 0a 09 09 later.identical.calls.in.this...
dbc0 09 09 09 09 2f 2f 20 62 61 74 63 68 20 63 61 6e 20 72 65 75 73 65 20 69 74 2e 0a 09 09 09 09 09 ....//.batch.can.reuse.it.......
dbe0 09 69 66 20 28 64 65 64 75 70 4b 65 79 20 21 3d 3d 20 6e 75 6c 6c 29 20 64 65 64 75 70 52 65 73 .if.(dedupKey.!==.null).dedupRes
dc00 75 6c 74 73 2e 73 65 74 28 64 65 64 75 70 4b 65 79 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 29 3b 0a ults.set(dedupKey,.toolResult);.
dc20 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 2f 2f 20 48 61 72 76 65 73 74 20 61 6e 79 20 71 75 65 75 .....}.......//.Harvest.any.queu
dc40 65 64 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 62 75 74 20 44 45 46 45 52 20 69 6e 6a 65 63 ed.user.messages.but.DEFER.injec
dc60 74 69 6f 6e 20 75 6e 74 69 6c 0a 09 09 09 09 09 2f 2f 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c tion.until......//.the.last.tool
dc80 20 6f 66 20 74 68 65 20 62 61 74 63 68 2e 20 54 68 69 73 20 63 6f 6c 6c 61 70 73 65 73 20 6d 75 .of.the.batch..This.collapses.mu
dca0 6c 74 69 70 6c 65 0a 09 09 09 09 09 2f 2f 20 71 75 65 75 65 64 20 6d 65 73 73 61 67 65 73 20 69 ltiple......//.queued.messages.i
dcc0 6e 74 6f 20 61 20 73 69 6e 67 6c 65 20 69 6e 74 65 72 72 75 70 74 20 62 6c 6f 63 6b 20 6f 6e 20 nto.a.single.interrupt.block.on.
dce0 61 20 73 69 6e 67 6c 65 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 6e 73 a.single......//.tool-result.ins
dd00 74 65 61 64 20 6f 66 20 66 72 61 67 6d 65 6e 74 69 6e 67 20 61 63 72 6f 73 73 20 74 68 65 20 62 tead.of.fragmenting.across.the.b
dd20 61 74 63 68 2e 0a 09 09 09 09 09 69 66 20 28 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 atch.......if.(this.queueCallbac
dd40 6b 73 29 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 71 75 65 75 65 64 4d 73 67 73 20 3d 20 74 ks).{.......const.queuedMsgs.=.t
dd60 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2e 64 65 71 75 65 75 65 4d 65 73 73 61 67 his.queueCallbacks.dequeueMessag
dd80 65 73 28 29 3b 0a 09 09 09 09 09 09 69 66 20 28 71 75 65 75 65 64 4d 73 67 73 2e 6c 65 6e 67 74 es();.......if.(queuedMsgs.lengt
dda0 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 h.>.0).{........batchPendingInje
ddc0 63 74 69 6f 6e 2e 70 75 73 68 28 2e 2e 2e 71 75 65 75 65 64 4d 73 67 73 29 3b 0a 09 09 09 09 09 ction.push(...queuedMsgs);......
dde0 09 7d 0a 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 6c 65 74 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 .}......}.......let.finalToolRes
de00 75 6c 74 20 3d 20 74 6f 6f 6c 52 65 73 75 6c 74 3b 0a 09 09 09 09 09 69 66 20 28 74 63 49 64 78 ult.=.toolResult;......if.(tcIdx
de20 20 3d 3d 3d 20 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 20 26 26 20 62 61 74 63 68 50 .===.lastExecutableIdx.&&.batchP
de40 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 endingInjection.length.>.0).{...
de60 09 09 09 09 63 6f 6e 73 74 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 ....const.userMessages.=.batchPe
de80 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 ndingInjection.map((m).=>.m.mess
dea0 61 67 65 29 2e 6a 6f 69 6e 28 22 5c 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 09 66 69 6e 61 age).join("\n---\n");.......fina
dec0 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 2e 2e 2e 74 6f 6f 6c 52 65 lToolResult.=.{...........toolRe
dee0 73 75 6c 74 2c 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 24 7b 74 6f 6f 6c 52 65 73 75 sult,........result:.`${toolResu
df00 6c 74 2e 72 65 73 75 6c 74 7d 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 5c 6e lt.result}\n\n[USER.INTERRUPT]\n
df20 54 68 65 20 75 73 65 72 20 68 61 73 20 73 65 6e 74 20 79 6f 75 20 6d 65 73 73 61 67 65 28 73 29 The.user.has.sent.you.message(s)
df40 20 77 68 69 6c 65 20 79 6f 75 20 77 65 72 65 20 77 6f 72 6b 69 6e 67 2e 20 59 6f 75 20 4d 55 53 .while.you.were.working..You.MUS
df60 54 20 61 64 64 72 65 73 73 20 74 68 65 73 65 20 62 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 69 6e T.address.these.before.continuin
df80 67 20 77 69 74 68 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 74 61 73 6b 3a 5c 6e 5c 6e 24 7b 75 g.with.your.current.task:\n\n${u
dfa0 73 65 72 4d 65 73 73 61 67 65 73 7d 60 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 62 61 serMessages}`,.......};.......ba
dfc0 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3d 20 30 3b 0a tchPendingInjection.length.=.0;.
dfe0 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e .....}.......const.trEvent:.Agen
e000 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 75 6c 74 22 2c 20 tEvent.=.{.type:."tool-result",.
e020 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 7d 3b 0a 09 toolResult:.finalToolResult.};..
e040 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,.
e060 74 72 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b 0a 09 09 trEvent);......yield.trEvent;...
e080 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 53 61 66 65 74 79 20 6e 65 74 3a 20 69 66 20 60 6c 61 73 74 ..}......//.Safety.net:.if.`last
e0a0 45 78 65 63 75 74 61 62 6c 65 49 64 78 60 20 77 61 73 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 ExecutableIdx`.was.never.reached
e0c0 20 28 65 2e 67 2e 2c 0a 09 09 09 09 2f 2f 20 6e 6f 20 74 6f 6f 6c 73 20 65 78 65 63 75 74 65 64 .(e.g.,.....//.no.tools.executed
e0e0 20 62 65 63 61 75 73 65 20 61 6c 6c 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 72 65 73 6f 6c 76 .because.all.were.already.resolv
e100 65 64 29 20 62 75 74 0a 09 09 09 09 2f 2f 20 6d 65 73 73 61 67 65 73 20 77 65 72 65 20 73 74 69 ed).but.....//.messages.were.sti
e120 6c 6c 20 64 65 71 75 65 75 65 64 2c 20 73 75 72 66 61 63 65 20 74 68 65 6d 20 61 73 20 61 20 75 ll.dequeued,.surface.them.as.a.u
e140 73 65 72 20 6d 65 73 73 61 67 65 0a 09 09 09 09 2f 2f 20 73 6f 20 74 68 65 79 20 61 72 65 6e 27 ser.message.....//.so.they.aren'
e160 74 20 64 72 6f 70 70 65 64 2e 20 49 6e 20 70 72 61 63 74 69 63 65 20 74 68 69 73 20 69 73 20 72 t.dropped..In.practice.this.is.r
e180 61 72 65 20 e2 80 94 20 69 74 20 6f 6e 6c 79 0a 09 09 09 09 2f 2f 20 68 61 70 70 65 6e 73 20 77 are.....it.only.....//.happens.w
e1a0 68 65 6e 20 74 68 65 20 65 6e 74 69 72 65 20 62 61 74 63 68 20 69 73 20 75 6e 61 76 61 69 6c 61 hen.the.entire.batch.is.unavaila
e1c0 62 6c 65 2d 74 6f 6f 6c 20 73 79 6e 74 68 65 73 69 7a 65 64 0a 09 09 09 09 2f 2f 20 65 72 72 6f ble-tool.synthesized.....//.erro
e1e0 72 73 20 77 69 74 68 20 61 20 6d 65 73 73 61 67 65 20 61 72 72 69 76 69 6e 67 20 69 6e 20 74 68 rs.with.a.message.arriving.in.th
e200 61 74 20 6e 61 72 72 6f 77 20 77 69 6e 64 6f 77 2e 0a 09 09 09 09 69 66 20 28 62 61 74 63 68 50 at.narrow.window......if.(batchP
e220 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 endingInjection.length.>.0).{...
e240 09 09 09 63 6f 6e 73 74 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 6e ...const.userMessages.=.batchPen
e260 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 61 dingInjection.map((m).=>.m.messa
e280 67 65 29 2e 6a 6f 69 6e 28 22 5c 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 74 68 69 73 2e 6d ge).join("\n---\n");......this.m
e2a0 65 73 73 61 67 65 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 72 6f 6c 65 3a 20 22 75 73 65 72 essages.push({.......role:."user
e2c0 22 2c 0a 09 09 09 09 09 09 63 68 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 ",.......chunks:.[{.type:."text"
e2e0 2c 20 74 65 78 74 3a 20 75 73 65 72 4d 65 73 73 61 67 65 73 20 7d 5d 2c 0a 09 09 09 09 09 7d 29 ,.text:.userMessages.}],......})
e300 3b 0a 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 6c 65 6e ;......batchPendingInjection.len
e320 67 74 68 20 3d 20 30 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 46 69 6e 61 6c 20 73 61 66 gth.=.0;.....}......//.Final.saf
e340 65 74 79 20 6e 65 74 3a 20 61 66 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 62 61 74 ety.net:.after.executing.the.bat
e360 63 68 2c 20 67 75 61 72 61 6e 74 65 65 20 65 76 65 72 79 0a 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d ch,.guarantee.every.....//.tool-
e380 63 61 6c 6c 20 72 65 63 6f 72 64 65 64 20 69 6e 20 74 68 69 73 20 73 74 65 70 20 68 61 73 20 61 call.recorded.in.this.step.has.a
e3a0 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 20 62 65 66 6f 72 65 20 77 65 0a 09 09 09 09 2f .matching.result.before.we...../
e3c0 2f 20 6c 6f 6f 70 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 41 6e 79 20 74 6f 6f 6c /.loop.back.to.the.LLM..Any.tool
e3e0 2d 63 61 6c 6c 20 49 44 20 74 68 61 74 20 73 6c 69 70 70 65 64 20 74 68 72 6f 75 67 68 0a 09 09 -call.ID.that.slipped.through...
e400 09 09 2f 2f 20 77 69 74 68 6f 75 74 20 61 20 72 65 73 75 6c 74 20 28 61 20 70 61 74 68 20 77 65 ..//.without.a.result.(a.path.we
e420 20 64 69 64 6e 27 74 20 61 6e 74 69 63 69 70 61 74 65 29 20 77 6f 75 6c 64 20 6f 74 68 65 72 77 .didn't.anticipate).would.otherw
e440 69 73 65 0a 09 09 09 09 2f 2f 20 6f 72 70 68 61 6e 20 61 6e 64 20 74 72 69 67 67 65 72 20 4d 69 ise.....//.orphan.and.trigger.Mi
e460 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 6e 65 78 ssingToolResultsError.on.the.nex
e480 74 0a 09 09 09 09 2f 2f 20 72 6f 75 6e 64 2d 74 72 69 70 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 t.....//.round-trip......const.s
e4a0 61 66 65 74 79 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 afetyResidual.=.this.synthesizeR
e4c0 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 73 74 65 70 54 6f 6f esidualToolResults(......stepToo
e4e0 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 09 22 45 72 72 6f 72 lCalls,......chunks,......"Error
e500 3a 20 49 6e 74 65 72 6e 61 6c 20 65 72 72 6f 72 3a 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 77 61 :.Internal.error:.tool.result.wa
e520 73 20 6e 65 76 65 72 20 70 72 6f 64 75 63 65 64 2e 22 2c 0a 09 09 09 09 29 3b 0a 09 09 09 09 66 s.never.produced.",.....);.....f
e540 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 73 61 66 65 74 79 52 65 73 69 64 75 61 6c 29 20 7b or.(const.r.of.safetyResidual).{
e560 0a 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
e580 2c 20 72 29 3b 0a 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 0a ,.r);......yield.r;.....}....}..
e5a0 09 09 09 2f 2f 20 42 75 69 6c 64 20 74 68 65 20 66 69 6e 61 6c 20 61 73 73 69 73 74 61 6e 74 20 ...//.Build.the.final.assistant.
e5c0 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 63 68 75 message.from.the.accumulated.chu
e5e0 6e 6b 73 2e 0a 09 09 09 2f 2f 20 49 66 20 6e 6f 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 20 nks.....//.If.no.assistant.turn.
e600 6d 65 73 73 61 67 65 20 77 61 73 20 65 76 65 72 20 63 72 65 61 74 65 64 20 28 65 2e 67 2e 2c 20 message.was.ever.created.(e.g.,.
e620 74 68 65 20 6d 6f 64 65 6c 0a 09 09 09 2f 2f 20 70 72 6f 64 75 63 65 64 20 6e 6f 74 68 69 6e 67 the.model....//.produced.nothing
e640 20 e2 80 94 20 75 6e 75 73 75 61 6c 20 62 75 74 20 70 6f 73 73 69 62 6c 65 29 2c 20 73 79 6e 74 .....unusual.but.possible),.synt
e660 68 65 73 69 7a 65 20 61 6e 20 65 6d 70 74 79 20 6f 6e 65 2e 0a 09 09 09 63 6f 6e 73 74 20 61 73 hesize.an.empty.one.....const.as
e680 73 69 73 74 61 6e 74 4d 65 73 73 61 67 65 3a 20 43 68 61 74 4d 65 73 73 61 67 65 20 3d 20 61 73 sistantMessage:.ChatMessage.=.as
e6a0 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 20 3f 3f 20 7b 0a 09 09 09 09 72 6f 6c 65 sistantTurnMessage.??.{.....role
e6c0 3a 20 22 61 73 73 69 73 74 61 6e 74 22 2c 0a 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 7d 3b :."assistant",.....chunks,....};
e6e0 0a 09 09 09 2f 2f 20 60 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 60 20 77 61 ....//.`assistantTurnMessage`.wa
e700 73 20 70 75 73 68 65 64 20 69 6e 74 6f 20 60 73 74 65 70 4d 65 73 73 61 67 65 73 60 20 62 75 74 s.pushed.into.`stepMessages`.but
e720 20 6e 6f 74 20 69 6e 74 6f 0a 09 09 09 2f 2f 20 60 74 68 69 73 2e 6d 65 73 73 61 67 65 73 60 20 .not.into....//.`this.messages`.
e740 e2 80 94 20 70 75 73 68 20 69 74 20 6e 6f 77 20 73 6f 20 74 68 65 20 61 67 65 6e 74 27 73 20 6f ....push.it.now.so.the.agent's.o
e760 75 74 77 61 72 64 2d 66 61 63 69 6e 67 0a 09 09 09 2f 2f 20 68 69 73 74 6f 72 79 20 72 65 66 6c utward-facing....//.history.refl
e780 65 63 74 73 20 74 68 65 20 74 75 72 6e 2e 0a 09 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e ects.the.turn.....this.messages.
e7a0 70 75 73 68 28 61 73 73 69 73 74 61 6e 74 4d 65 73 73 61 67 65 29 3b 0a 0a 09 09 09 2f 2f 20 4e push(assistantMessage);.....//.N
e7c0 4f 54 45 3a 20 71 75 65 75 65 64 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 72 72 69 76 65 OTE:.queued.messages.that.arrive
e7e0 20 41 46 54 45 52 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 6f 72 20 77 69 .AFTER.the.last.tool.call.(or.wi
e800 74 68 0a 09 09 09 2f 2f 20 6e 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 74 20 61 6c 6c 29 20 61 th....//.no.tool.calls.at.all).a
e820 72 65 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 20 4e 4f 54 20 64 72 61 69 6e 65 64 20 68 65 72 re.intentionally.NOT.drained.her
e840 65 2e 20 44 72 61 69 6e 69 6e 67 0a 09 09 09 2f 2f 20 74 68 65 6d 20 69 6e 74 6f 20 60 74 68 69 e..Draining....//.them.into.`thi
e860 73 2e 6d 65 73 73 61 67 65 73 60 20 61 73 20 61 20 74 72 61 69 6c 69 6e 67 20 75 73 65 72 20 74 s.messages`.as.a.trailing.user.t
e880 75 72 6e 20 e2 80 94 20 74 68 65 20 6f 6c 64 0a 09 09 09 2f 2f 20 62 65 68 61 76 69 6f 75 72 20 urn.....the.old....//.behaviour.
e8a0 e2 80 94 20 6c 65 66 74 20 74 68 65 6d 20 73 69 74 74 69 6e 67 20 69 6e 20 68 69 73 74 6f 72 79 ....left.them.sitting.in.history
e8c0 20 77 69 74 68 20 6e 6f 20 6d 6f 64 65 6c 20 72 65 73 70 6f 6e 73 65 3a 0a 09 09 09 2f 2f 20 74 .with.no.model.response:....//.t
e8e0 68 65 20 74 75 72 6e 20 65 6e 64 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 73 77 65 72 69 he.turn.ended.instead.of.answeri
e900 6e 67 20 74 68 65 6d 20 28 74 68 65 20 22 71 75 65 75 65 20 6e 6f 74 20 63 6f 6e 73 75 6d 65 64 ng.them.(the."queue.not.consumed
e920 0a 09 09 09 2f 2f 20 61 66 74 65 72 20 74 68 65 20 74 75 72 6e 20 65 6e 64 73 22 20 62 75 67 29 ....//.after.the.turn.ends".bug)
e940 2e 20 54 68 65 79 20 6e 6f 77 20 73 74 61 79 20 6f 6e 20 74 68 65 20 71 75 65 75 65 20 73 6f 20 ..They.now.stay.on.the.queue.so.
e960 74 68 65 0a 09 09 09 2f 2f 20 6f 72 63 68 65 73 74 72 61 74 6f 72 20 28 60 41 67 65 6e 74 4d 61 the....//.orchestrator.(`AgentMa
e980 6e 61 67 65 72 2e 70 72 6f 63 65 73 73 4d 65 73 73 61 67 65 60 29 20 63 61 6e 20 73 74 61 72 74 nager.processMessage`).can.start
e9a0 20 61 20 66 72 65 73 68 20 74 75 72 6e 0a 09 09 09 2f 2f 20 66 6f 72 20 74 68 65 6d 20 6f 6e 63 .a.fresh.turn....//.for.them.onc
e9c0 65 20 74 68 69 73 20 6f 6e 65 20 73 65 74 74 6c 65 73 2e 20 4d 69 64 2d 74 75 72 6e 20 69 6e 74 e.this.one.settles..Mid-turn.int
e9e0 65 72 72 75 70 74 73 20 61 72 65 20 73 74 69 6c 6c 0a 09 09 09 2f 2f 20 69 6e 6a 65 63 74 65 64 errupts.are.still....//.injected
ea00 20 69 6e 74 6f 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 61 62 6f 76 65 .into.the.last.tool.result.above
ea20 20 e2 80 94 20 74 68 61 74 20 70 61 74 68 20 69 73 20 75 6e 63 68 61 6e 67 65 64 2e 0a 0a 09 09 .....that.path.is.unchanged.....
ea40 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 64 6f 6e 65 22 2c 20 6d 65 73 73 61 67 65 3a 20 .yield.{.type:."done",.message:.
ea60 61 73 73 69 73 74 61 6e 74 4d 65 73 73 61 67 65 20 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 assistantMessage.};...}.catch.(e
ea80 72 72 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 3d 20 65 72 72 20 61 rr).{....const.errRecord.=.err.a
eaa0 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 20 75 6e 6b 6e s.unknown.as.Record<string,.unkn
eac0 6f 77 6e 3e 3b 0a 09 09 09 63 6f 6e 73 74 20 73 74 61 74 75 73 43 6f 64 65 20 3d 0a 09 09 09 09 own>;....const.statusCode.=.....
eae0 74 79 70 65 6f 66 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3d 3d 3d 20 typeof.errRecord.statusCode.===.
eb00 22 6e 75 6d 62 65 72 22 20 3f 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 "number".?.errRecord.statusCode.
eb20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d :.undefined;....const.errorMsg.=
eb40 20 66 6f 72 6d 61 74 45 72 72 6f 72 28 65 72 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a .formatError(err,.this.config);.
eb60 09 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a ...yield.{.type:."error",.error:
eb80 20 65 72 72 6f 72 4d 73 67 2c 20 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 21 3d 3d 20 75 6e .errorMsg,....(statusCode.!==.un
eba0 64 65 66 69 6e 65 64 20 3f 20 7b 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a 20 7b 7d 29 20 7d defined.?.{.statusCode.}.:.{}).}
ebc0 3b 0a 09 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 79 ;....this.status.=."error";....y
ebe0 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 ield.{.type:."status",.status:."
ec00 65 72 72 6f 72 22 20 7d 3b 0a 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 7d 0a 0a 09 09 74 68 69 73 error".};....return;...}....this
ec20 2e 73 74 61 74 75 73 20 3d 20 22 69 64 6c 65 22 3b 0a 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 .status.=."idle";...yield.{.type
ec40 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 69 64 6c 65 22 20 7d 3b 0a 09 7d :."status",.status:."idle".};..}
ec60 0a 7d 0a .}.