| ofs | hex dump | ascii |
|---|
| 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 | .}. |