| 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 20 4c 61 6e 67 75 61 67 65 4d 6f 64 65 6c 55 | s";.import.type.{.LanguageModelU |
| 0080 | 73 61 67 65 2c 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 2c 20 53 79 73 74 65 6d 4d 6f 64 65 6c 4d | sage,.ModelMessage,.SystemModelM |
| 00a0 | 65 73 73 61 67 65 20 7d 20 66 72 6f 6d 20 22 61 69 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 73 74 72 | essage.}.from."ai";.import.{.str |
| 00c0 | 65 61 6d 54 65 78 74 20 7d 20 66 72 6f 6d 20 22 61 69 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 67 65 | eamText.}.from."ai";.import.{.ge |
| 00e0 | 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 61 67 65 6e 74 73 | tAgentDirPaths.}.from."../agents |
| 0100 | 2f 6c 6f 61 64 65 72 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 70 70 65 6e 64 45 76 65 6e | /loader.js";.import.{.appendEven |
| 0120 | 74 54 6f 43 68 75 6e 6b 73 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 63 68 75 6e 6b 73 2f 61 70 70 65 | tToChunks.}.from."../chunks/appe |
| 0140 | 6e 64 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 61 | nd.js";.import.{.buildBillingHea |
| 0160 | 64 65 72 56 61 6c 75 65 2c 20 53 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 59 20 7d 20 66 72 6f 6d | derValue,.SYSTEM_IDENTITY.}.from |
| 0180 | 20 22 2e 2e 2f 63 72 65 64 65 6e 74 69 61 6c 73 2f 63 6c 61 75 64 65 2e 6a 73 22 3b 0a 69 6d 70 | ."../credentials/claude.js";.imp |
| 01a0 | 6f 72 74 20 7b 0a 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 2c 0a 09 6c 6f 67 53 74 65 70 4c 69 66 | ort.{..logAgentLoop,..logStepLif |
| 01c0 | 65 63 79 63 6c 65 2c 0a 09 6c 6f 67 53 74 72 65 61 6d 45 76 65 6e 74 2c 0a 09 6e 65 78 74 44 65 | ecycle,..logStreamEvent,..nextDe |
| 01e0 | 62 75 67 53 65 71 2c 0a 7d 20 66 72 6f 6d 20 22 2e 2e 2f 6c 6c 6d 2f 64 65 62 75 67 2d 6c 6f 67 | bugSeq,.}.from."../llm/debug-log |
| 0200 | 67 65 72 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 63 72 65 61 74 65 50 72 6f 76 69 64 65 72 | ger.js";.import.{.createProvider |
| 0220 | 2c 20 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 2c 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 | ,.prefixToolName,.unprefixToolNa |
| 0240 | 6d 65 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 6c 6c 6d 2f 70 72 6f 76 69 64 65 72 2e 6a 73 22 3b 0a | me.}.from."../llm/provider.js";. |
| 0260 | 69 6d 70 6f 72 74 20 7b 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 20 7d 20 66 72 6f 6d 20 22 2e 2e | import.{.canonicalize.}.from.".. |
| 0280 | 2f 74 6f 6f 6c 73 2f 70 61 74 68 2d 75 74 69 6c 73 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 | /tools/path-utils.js";.import.{. |
| 02a0 | 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f | createToolRegistry.}.from."../to |
| 02c0 | 6f 6c 73 2f 72 65 67 69 73 74 72 79 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 6e 61 6c 79 | ols/registry.js";.import.{.analy |
| 02e0 | 7a 65 43 6f 6d 6d 61 6e 64 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f 6f 6c 73 2f 73 68 65 6c 6c | zeCommand.}.from."../tools/shell |
| 0300 | 2d 61 6e 61 6c 79 7a 65 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 7b 20 61 70 70 6c 79 54 72 75 6e | -analyze.js";.import.{.applyTrun |
| 0320 | 63 61 74 69 6f 6e 2c 20 53 50 49 4c 4c 5f 52 4f 4f 54 20 7d 20 66 72 6f 6d 20 22 2e 2e 2f 74 6f | cation,.SPILL_ROOT.}.from."../to |
| 0340 | 6f 6c 73 2f 74 72 75 6e 63 61 74 65 2e 6a 73 22 3b 0a 69 6d 70 6f 72 74 20 74 79 70 65 20 7b 0a | ols/truncate.js";.import.type.{. |
| 0360 | 09 41 67 65 6e 74 43 6f 6e 66 69 67 2c 0a 09 41 67 65 6e 74 45 76 65 6e 74 2c 0a 09 41 67 65 6e | .AgentConfig,..AgentEvent,..Agen |
| 0380 | 74 53 74 61 74 75 73 2c 0a 09 43 68 61 74 4d 65 73 73 61 67 65 2c 0a 09 43 68 75 6e 6b 2c 0a 09 | tStatus,..ChatMessage,..Chunk,.. |
| 03a0 | 51 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 52 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 | QueueCallbacks,..ReasoningEffort |
| 03c0 | 2c 0a 09 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 54 6f 6f 6c 52 65 73 75 6c 74 2c 0a 7d 20 66 72 6f 6d | ,..ToolCall,..ToolResult,.}.from |
| 03e0 | 20 22 2e 2e 2f 74 79 70 65 73 2f 69 6e 64 65 78 2e 6a 73 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 | ."../types/index.js";../**..*.Re |
| 0400 | 62 75 69 6c 64 20 41 49 20 53 44 4b 20 60 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 60 20 66 72 | build.AI.SDK.`ModelMessage[]`.fr |
| 0420 | 6f 6d 20 6f 75 72 20 69 6e 74 65 72 6e 61 6c 20 60 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 60 2e | om.our.internal.`ChatMessage[]`. |
| 0440 | 0a 20 2a 0a 20 2a 20 53 74 72 69 70 20 72 75 6c 65 73 20 28 73 65 65 20 70 6c 61 6e 2d 63 68 75 | ..*..*.Strip.rules.(see.plan-chu |
| 0460 | 6e 6b 2d 72 65 66 61 63 74 6f 72 2e 6d 64 29 3a 0a 20 2a 20 20 2d 20 60 72 6f 6c 65 3a 20 22 73 | nk-refactor.md):..*..-.`role:."s |
| 0480 | 79 73 74 65 6d 22 60 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 77 68 6f | ystem"`.messages.are.skipped.who |
| 04a0 | 6c 65 73 61 6c 65 20 28 74 68 65 79 27 72 65 20 64 69 73 70 6c 61 79 2d 6f 6e 6c 79 0a 20 2a 20 | lesale.(they're.display-only..*. |
| 04c0 | 20 20 20 73 74 61 6e 64 61 6c 6f 6e 65 2d 73 79 73 74 65 6d 20 62 75 62 62 6c 65 73 20 74 68 61 | ...standalone-system.bubbles.tha |
| 04e0 | 74 20 65 78 69 73 74 20 6f 75 74 73 69 64 65 20 61 6e 79 20 6d 6f 64 65 6c 20 74 75 72 6e 29 2e | t.exist.outside.any.model.turn). |
| 0500 | 0a 20 2a 20 20 2d 20 60 65 72 72 6f 72 60 20 63 68 75 6e 6b 73 20 61 72 65 20 73 6b 69 70 70 65 | ..*..-.`error`.chunks.are.skippe |
| 0520 | 64 20 e2 80 94 20 74 68 65 20 74 75 72 6e 20 65 6e 64 65 64 3b 20 74 68 65 20 4c 4c 4d 20 64 6f | d.....the.turn.ended;.the.LLM.do |
| 0540 | 65 73 6e 27 74 20 6e 65 65 64 20 74 68 65 6d 2e 0a 20 2a 20 20 2d 20 60 73 79 73 74 65 6d 60 20 | esn't.need.them...*..-.`system`. |
| 0560 | 63 68 75 6e 6b 73 20 61 72 65 20 73 6b 69 70 70 65 64 20 e2 80 94 20 64 69 73 70 6c 61 79 2d 6f | chunks.are.skipped.....display-o |
| 0580 | 6e 6c 79 20 6e 6f 74 69 63 65 73 2e 0a 20 2a 20 20 2d 20 60 74 65 78 74 60 20 63 68 75 6e 6b 73 | nly.notices...*..-.`text`.chunks |
| 05a0 | 20 e2 86 92 20 60 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 20 7d 60 20 70 61 | .....`{.type:."text",.text.}`.pa |
| 05c0 | 72 74 73 2e 0a 20 2a 20 20 2d 20 60 74 68 69 6e 6b 69 6e 67 60 20 63 68 75 6e 6b 73 20 e2 86 92 | rts...*..-.`thinking`.chunks.... |
| 05e0 | 20 60 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 20 74 65 78 74 2c 20 70 72 6f | .`{.type:."reasoning",.text,.pro |
| 0600 | 76 69 64 65 72 4f 70 74 69 6f 6e 73 3f 20 7d 60 20 70 61 72 74 73 2e 0a 20 2a 20 20 20 20 54 68 | viderOptions?.}`.parts...*....Th |
| 0620 | 65 20 60 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 60 20 63 61 72 72 69 65 73 20 74 68 65 20 | e.`providerOptions`.carries.the. |
| 0640 | 41 6e 74 68 72 6f 70 69 63 20 73 69 67 6e 61 74 75 72 65 20 62 6c 6f 62 20 28 69 66 20 70 72 65 | Anthropic.signature.blob.(if.pre |
| 0660 | 73 65 6e 74 29 20 73 6f 0a 20 2a 20 20 20 20 41 6e 74 68 72 6f 70 69 63 20 63 61 6e 20 76 61 6c | sent).so..*....Anthropic.can.val |
| 0680 | 69 64 61 74 65 20 65 78 74 65 6e 64 65 64 2d 74 68 69 6e 6b 69 6e 67 20 72 6f 75 6e 64 2d 74 72 | idate.extended-thinking.round-tr |
| 06a0 | 69 70 73 2e 20 4e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 0a 20 2a 20 20 20 20 72 65 61 73 6f 6e 69 | ips..Non-Anthropic..*....reasoni |
| 06c0 | 6e 67 20 68 61 73 20 6e 6f 20 6d 65 74 61 64 61 74 61 20 61 6e 64 20 69 73 20 73 65 6e 74 20 77 | ng.has.no.metadata.and.is.sent.w |
| 06e0 | 69 74 68 6f 75 74 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 61 63 63 65 70 74 65 64 | ithout.providerOptions.(accepted |
| 0700 | 0a 20 2a 20 20 20 20 62 79 20 41 6e 74 68 72 6f 70 69 63 20 e2 80 94 20 69 74 20 6a 75 73 74 20 | ..*....by.Anthropic.....it.just. |
| 0720 | 77 6f 6e 27 74 20 76 65 72 69 66 79 20 61 20 6d 69 73 73 69 6e 67 20 73 69 67 6e 61 74 75 72 65 | won't.verify.a.missing.signature |
| 0740 | 29 2e 0a 20 2a 20 20 2d 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 20 e2 86 92 | )...*..-.`tool-batch`.chunks.... |
| 0760 | 20 6f 6e 65 20 60 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7d 60 20 70 61 72 | .one.`{.type:."tool-call".}`.par |
| 0780 | 74 20 70 65 72 20 65 6e 74 72 79 0a 20 2a 20 20 20 20 69 6e 73 69 64 65 20 74 68 65 20 63 75 72 | t.per.entry..*....inside.the.cur |
| 07a0 | 72 65 6e 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 2c 20 66 6f 6c 6c 6f 77 65 64 | rent.assistant.message,.followed |
| 07c0 | 20 62 79 20 61 20 53 49 4e 47 4c 45 0a 20 2a 20 20 20 20 60 7b 20 72 6f 6c 65 3a 20 22 74 6f 6f | .by.a.SINGLE..*....`{.role:."too |
| 07e0 | 6c 22 2c 20 63 6f 6e 74 65 6e 74 3a 20 5b 2e 2e 2e 61 6c 6c 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 | l",.content:.[...all.tool-result |
| 0800 | 20 70 61 72 74 73 5d 20 7d 60 20 6d 65 73 73 61 67 65 20 68 6f 6c 64 69 6e 67 0a 20 2a 20 20 20 | .parts].}`.message.holding..*... |
| 0820 | 20 65 76 65 72 79 20 65 6e 74 72 79 20 74 68 61 74 20 68 61 73 20 61 20 72 65 73 75 6c 74 2e 20 | .every.entry.that.has.a.result.. |
| 0840 | 47 72 6f 75 70 69 6e 67 20 28 72 61 74 68 65 72 20 74 68 61 6e 20 6f 6e 65 20 6d 65 73 73 61 67 | Grouping.(rather.than.one.messag |
| 0860 | 65 20 70 65 72 0a 20 2a 20 20 20 20 72 65 73 75 6c 74 29 20 6b 65 65 70 73 20 41 6e 74 68 72 6f | e.per..*....result).keeps.Anthro |
| 0880 | 70 69 63 20 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 6c | pic.prompt-caching.breakpoints.l |
| 08a0 | 61 6e 64 69 6e 67 20 6f 6e 20 74 68 65 0a 20 2a 20 20 20 20 61 73 73 69 73 74 61 6e 74 2f 74 6f | anding.on.the..*....assistant/to |
| 08c0 | 6f 6c 20 74 75 72 6e 20 62 6f 75 6e 64 61 72 79 3b 20 74 68 65 20 77 69 72 65 20 66 6f 72 6d 61 | ol.turn.boundary;.the.wire.forma |
| 08e0 | 74 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 66 6f 72 20 62 6f 74 68 20 74 68 65 0a 20 2a 20 20 | t.is.identical.for.both.the..*.. |
| 0900 | 20 20 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c | ..Anthropic.and.OpenAI-compatibl |
| 0920 | 65 20 62 61 63 6b 65 6e 64 73 2e 0a 20 2a 0a 20 2a 20 4d 69 78 65 64 2d 72 65 73 6f 6c 75 74 69 | e.backends...*..*.Mixed-resoluti |
| 0940 | 6f 6e 20 74 6f 6f 6c 20 62 61 74 63 68 65 73 20 28 73 6f 6d 65 20 65 6e 74 72 69 65 73 20 77 69 | on.tool.batches.(some.entries.wi |
| 0960 | 74 68 20 60 72 65 73 75 6c 74 60 2c 20 73 6f 6d 65 20 77 69 74 68 6f 75 74 29 3a 0a 20 2a 20 77 | th.`result`,.some.without):..*.w |
| 0980 | 65 20 65 6d 69 74 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 6f 6e 6c 79 20 66 6f 72 20 74 68 65 | e.emit.tool-results.only.for.the |
| 09a0 | 20 65 6e 74 72 69 65 73 20 74 68 61 74 20 68 61 76 65 20 74 68 65 6d 2e 20 49 6e 20 70 72 61 63 | .entries.that.have.them..In.prac |
| 09c0 | 74 69 63 65 0a 20 2a 20 74 68 65 20 61 67 65 6e 74 20 72 65 73 6f 6c 76 65 73 20 65 76 65 72 79 | tice..*.the.agent.resolves.every |
| 09e0 | 20 74 6f 6f 6c 20 63 61 6c 6c 20 69 6e 20 61 20 73 74 65 70 20 62 65 66 6f 72 65 20 6c 6f 6f 70 | .tool.call.in.a.step.before.loop |
| 0a00 | 69 6e 67 20 62 61 63 6b 20 74 6f 20 74 68 65 0a 20 2a 20 4c 4c 4d 2c 20 73 6f 20 74 68 69 73 20 | ing.back.to.the..*.LLM,.so.this. |
| 0a20 | 63 61 73 65 20 6f 6e 6c 79 20 61 72 69 73 65 73 20 6d 69 64 2d 73 74 65 70 20 28 77 68 65 72 65 | case.only.arises.mid-step.(where |
| 0a40 | 20 74 68 65 20 6d 65 73 73 61 67 65 20 68 61 73 6e 27 74 20 62 65 65 6e 0a 20 2a 20 72 6f 75 6e | .the.message.hasn't.been..*.roun |
| 0a60 | 64 2d 74 72 69 70 70 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 20 79 65 74 29 20 61 6e 64 20 69 73 | d-tripped.to.the.LLM.yet).and.is |
| 0a80 | 20 62 65 6e 69 67 6e 2e 0a 20 2a 2f 0a 2f 2a 2a 0a 20 2a 20 4d 61 72 6b 65 72 20 75 73 65 64 20 | .benign...*/./**..*.Marker.used. |
| 0aa0 | 74 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 60 5b 55 53 45 | to.identify.the.start.of.a.`[USE |
| 0ac0 | 52 20 49 4e 54 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 65 6d 62 65 64 64 65 64 0a 20 2a 20 | R.INTERRUPT]`.block.embedded..*. |
| 0ae0 | 69 6e 20 61 20 74 6f 6f 6c 20 72 65 73 75 6c 74 2e 20 42 6f 74 68 20 74 68 65 20 61 67 65 6e 74 | in.a.tool.result..Both.the.agent |
| 0b00 | 2d 6c 65 76 65 6c 20 69 6e 6a 65 63 74 69 6f 6e 0a 20 2a 20 28 60 70 61 63 6b 61 67 65 73 2f 63 | -level.injection..*.(`packages/c |
| 0b20 | 6f 72 65 2f 73 72 63 2f 61 67 65 6e 74 2f 61 67 65 6e 74 2e 74 73 60 29 20 61 6e 64 20 74 68 65 | ore/src/agent/agent.ts`).and.the |
| 0b40 | 20 74 6f 6f 6c 2d 6c 65 76 65 6c 20 69 6e 6a 65 63 74 69 6f 6e 73 20 69 6e 0a 20 2a 20 60 72 75 | .tool-level.injections.in..*.`ru |
| 0b60 | 6e 2d 73 68 65 6c 6c 60 2c 20 60 79 6f 75 74 75 62 65 2d 74 72 61 6e 73 63 72 69 62 65 60 2c 20 | n-shell`,.`youtube-transcribe`,. |
| 0b80 | 61 6e 64 20 60 72 65 74 72 69 65 76 65 60 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 73 65 70 61 | and.`retrieve`.use.the.same.sepa |
| 0ba0 | 72 61 74 6f 72 0a 20 2a 20 28 60 5c 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 | rator..*.(`\n\n[USER.INTERRUPT]` |
| 0bc0 | 29 20 62 65 66 6f 72 65 20 74 68 65 20 62 6f 69 6c 65 72 70 6c 61 74 65 2c 20 73 6f 20 61 20 73 | ).before.the.boilerplate,.so.a.s |
| 0be0 | 69 6e 67 6c 65 20 73 75 62 73 74 72 69 6e 67 0a 20 2a 20 73 65 61 72 63 68 20 73 75 66 66 69 63 | ingle.substring..*.search.suffic |
| 0c00 | 65 73 20 66 6f 72 20 73 74 72 69 70 70 69 6e 67 2e 0a 20 2a 2f 0a 63 6f 6e 73 74 20 55 53 45 52 | es.for.stripping...*/.const.USER |
| 0c20 | 5f 49 4e 54 45 52 52 55 50 54 5f 4d 41 52 4b 45 52 20 3d 20 22 5c 6e 5c 6e 5b 55 53 45 52 20 49 | _INTERRUPT_MARKER.=."\n\n[USER.I |
| 0c40 | 4e 54 45 52 52 55 50 54 5d 22 3b 0a 0a 2f 2a 2a 0a 20 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 60 | NTERRUPT]";../**..*.Remove.the.` |
| 0c60 | 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 28 61 6e 64 20 65 76 65 | [USER.INTERRUPT]`.block.(and.eve |
| 0c80 | 72 79 74 68 69 6e 67 20 61 66 74 65 72 20 69 74 29 20 66 72 6f 6d 20 61 20 74 6f 6f 6c 0a 20 2a | rything.after.it).from.a.tool..* |
| 0ca0 | 20 72 65 73 75 6c 74 20 73 74 72 69 6e 67 2e 20 55 73 65 64 20 77 68 65 6e 20 61 20 68 69 73 74 | .result.string..Used.when.a.hist |
| 0cc0 | 6f 72 69 63 61 6c 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 73 20 62 65 69 6e 67 20 72 65 2d 73 | orical.tool-result.is.being.re-s |
| 0ce0 | 65 72 69 61 6c 69 7a 65 64 0a 20 2a 20 66 6f 72 20 74 68 65 20 4c 4c 4d 20 61 6e 64 20 74 68 65 | erialized..*.for.the.LLM.and.the |
| 0d00 | 20 6d 6f 64 65 6c 20 68 61 73 20 61 6c 72 65 61 64 79 20 68 61 64 20 61 20 63 68 61 6e 63 65 20 | .model.has.already.had.a.chance. |
| 0d20 | 74 6f 20 61 64 64 72 65 73 73 20 74 68 61 74 0a 20 2a 20 69 6e 74 65 72 72 75 70 74 20 e2 80 94 | to.address.that..*.interrupt.... |
| 0d40 | 20 6c 65 61 76 69 6e 67 20 74 68 65 20 69 6d 70 65 72 61 74 69 76 65 20 22 59 6f 75 20 4d 55 53 | .leaving.the.imperative."You.MUS |
| 0d60 | 54 20 61 64 64 72 65 73 73 20 74 68 65 73 65 22 20 74 65 78 74 20 69 6e 0a 20 2a 20 70 6c 61 63 | T.address.these".text.in..*.plac |
| 0d80 | 65 20 63 61 75 73 65 73 20 74 68 65 20 6d 6f 64 65 6c 20 74 6f 20 72 65 2d 61 63 6b 6e 6f 77 6c | e.causes.the.model.to.re-acknowl |
| 0da0 | 65 64 67 65 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 72 72 75 70 74 20 6f 6e 20 65 76 65 72 79 | edge.the.same.interrupt.on.every |
| 0dc0 | 0a 20 2a 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 65 70 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 69 | ..*.subsequent.step...*..*.The.i |
| 0de0 | 6e 74 65 72 72 75 70 74 20 62 6c 6f 63 6b 20 69 73 20 61 6c 77 61 79 73 20 61 70 70 65 6e 64 65 | nterrupt.block.is.always.appende |
| 0e00 | 64 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 2c | d.to.the.end.of.the.tool.result, |
| 0e20 | 20 73 6f 0a 20 2a 20 77 65 20 73 74 72 69 70 20 66 72 6f 6d 20 74 68 65 20 6d 61 72 6b 65 72 20 | .so..*.we.strip.from.the.marker. |
| 0e40 | 74 6f 20 65 6e 64 2d 6f 66 2d 73 74 72 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 73 | to.end-of-string...*/.function.s |
| 0e60 | 74 72 69 70 55 73 65 72 49 6e 74 65 72 72 75 70 74 42 6c 6f 63 6b 28 72 65 73 75 6c 74 3a 20 73 | tripUserInterruptBlock(result:.s |
| 0e80 | 74 72 69 6e 67 29 3a 20 73 74 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 74 20 69 64 78 20 3d 20 72 65 | tring):.string.{..const.idx.=.re |
| 0ea0 | 73 75 6c 74 2e 69 6e 64 65 78 4f 66 28 55 53 45 52 5f 49 4e 54 45 52 52 55 50 54 5f 4d 41 52 4b | sult.indexOf(USER_INTERRUPT_MARK |
| 0ec0 | 45 52 29 3b 0a 09 69 66 20 28 69 64 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 72 65 73 | ER);..if.(idx.===.-1).return.res |
| 0ee0 | 75 6c 74 3b 0a 09 72 65 74 75 72 6e 20 72 65 73 75 6c 74 2e 73 6c 69 63 65 28 30 2c 20 69 64 78 | ult;..return.result.slice(0,.idx |
| 0f00 | 29 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 53 74 61 62 6c 65 20 6b 65 79 20 66 6f 72 20 63 6f 6c 6c | );.}../**..*.Stable.key.for.coll |
| 0f20 | 61 70 73 69 6e 67 20 62 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 | apsing.byte-identical.tool.calls |
| 0f40 | 20 69 6e 73 69 64 65 20 61 20 73 69 6e 67 6c 65 20 62 61 74 63 68 2e 0a 20 2a 0a 20 2a 20 43 6c | .inside.a.single.batch...*..*.Cl |
| 0f60 | 61 75 64 65 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 64 65 67 65 6e 65 72 61 74 65 73 20 69 6e | aude.occasionally.degenerates.in |
| 0f80 | 74 6f 20 61 20 67 65 6e 65 72 61 74 69 6f 6e 20 6c 6f 6f 70 20 61 6e 64 20 65 6d 69 74 73 20 74 | to.a.generation.loop.and.emits.t |
| 0fa0 | 68 65 20 73 61 6d 65 0a 20 2a 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 73 61 6d 65 20 6e 61 6d 65 20 | he.same..*.tool.call.(same.name. |
| 0fc0 | 2b 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 29 20 64 6f 7a 65 6e 73 20 e2 80 94 20 65 76 65 | +.same.arguments).dozens.....eve |
| 0fe0 | 6e 20 31 35 30 2b 20 e2 80 94 20 74 69 6d 65 73 20 69 6e 20 6f 6e 65 0a 20 2a 20 70 61 72 61 6c | n.150+.....times.in.one..*.paral |
| 1000 | 6c 65 6c 20 62 61 74 63 68 20 28 73 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 | lel.batch.(see.tool-runner-dupli |
| 1020 | 63 61 74 69 6f 6e 2d 69 6e 63 69 64 65 6e 74 2e 6d 64 29 2e 20 45 61 63 68 20 63 6f 70 79 20 63 | cation-incident.md)..Each.copy.c |
| 1040 | 61 72 72 69 65 73 0a 20 2a 20 69 74 73 20 6f 77 6e 20 75 6e 69 71 75 65 20 60 74 6f 6f 6c 43 61 | arries..*.its.own.unique.`toolCa |
| 1060 | 6c 6c 49 64 60 2c 20 73 6f 20 41 6e 74 68 72 6f 70 69 63 20 73 74 69 6c 6c 20 72 65 71 75 69 72 | llId`,.so.Anthropic.still.requir |
| 1080 | 65 73 20 61 20 60 74 6f 6f 6c 5f 72 65 73 75 6c 74 60 20 66 6f 72 0a 20 2a 20 65 76 65 72 79 20 | es.a.`tool_result`.for..*.every. |
| 10a0 | 6f 6e 65 2c 20 62 75 74 20 72 65 2d 65 78 65 63 75 74 69 6e 67 20 69 64 65 6e 74 69 63 61 6c 20 | one,.but.re-executing.identical. |
| 10c0 | 69 64 65 6d 70 6f 74 65 6e 74 20 72 65 61 64 73 20 77 61 73 74 65 73 20 72 65 61 6c 20 77 61 6c | idempotent.reads.wastes.real.wal |
| 10e0 | 6c 2d 63 6c 6f 63 6b 0a 20 2a 20 74 69 6d 65 20 61 6e 64 20 6d 6f 6e 65 79 20 61 6e 64 20 66 6c | l-clock..*.time.and.money.and.fl |
| 1100 | 6f 6f 64 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 64 75 6e 64 61 6e 74 20 | oods.the.context.with.redundant. |
| 1120 | 6f 75 74 70 75 74 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 69 6e 67 20 61 20 6e 6f 6e 2d 6e 75 | output...*..*.Returning.a.non-nu |
| 1140 | 6c 6c 20 6b 65 79 20 68 65 72 65 20 6c 65 74 73 20 74 68 65 20 65 78 65 63 75 74 6f 72 20 72 75 | ll.key.here.lets.the.executor.ru |
| 1160 | 6e 20 74 68 65 20 46 49 52 53 54 20 6f 63 63 75 72 72 65 6e 63 65 20 61 6e 64 0a 20 2a 20 72 65 | n.the.FIRST.occurrence.and..*.re |
| 1180 | 75 73 65 20 69 74 73 20 72 65 73 75 6c 74 20 66 6f 72 20 65 76 65 72 79 20 73 75 62 73 65 71 75 | use.its.result.for.every.subsequ |
| 11a0 | 65 6e 74 20 69 64 65 6e 74 69 63 61 6c 20 63 61 6c 6c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 62 | ent.identical.call.in.the.same.b |
| 11c0 | 61 74 63 68 2e 20 54 68 65 0a 20 2a 20 6b 65 79 20 72 65 6c 69 65 73 20 6f 6e 20 60 4a 53 4f 4e | atch..The..*.key.relies.on.`JSON |
| 11e0 | 2e 73 74 72 69 6e 67 69 66 79 60 20 70 72 65 73 65 72 76 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 | .stringify`.preserving.argument. |
| 1200 | 6f 72 64 65 72 20 e2 80 94 20 74 77 6f 20 69 64 65 6e 74 69 63 61 6c 0a 20 2a 20 67 65 6e 65 72 | order.....two.identical..*.gener |
| 1220 | 61 74 69 6f 6e 73 20 73 65 72 69 61 6c 69 7a 65 20 69 64 65 6e 74 69 63 61 6c 6c 79 20 e2 80 94 | ations.serialize.identically.... |
| 1240 | 20 77 68 69 63 68 20 63 6f 76 65 72 73 20 74 68 65 20 6f 62 73 65 72 76 65 64 20 66 61 69 6c 75 | .which.covers.the.observed.failu |
| 1260 | 72 65 20 6d 6f 64 65 2e 0a 20 2a 20 49 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 63 61 6e | re.mode...*.If.the.arguments.can |
| 1280 | 27 74 20 62 65 20 73 65 72 69 61 6c 69 7a 65 64 20 77 65 20 72 65 74 75 72 6e 20 60 6e 75 6c 6c | 't.be.serialized.we.return.`null |
| 12a0 | 60 2c 20 77 68 69 63 68 20 64 69 73 61 62 6c 65 73 20 64 65 64 75 70 0a 20 2a 20 66 6f 72 20 74 | `,.which.disables.dedup..*.for.t |
| 12c0 | 68 61 74 20 63 61 6c 6c 20 28 69 74 20 61 6c 77 61 79 73 20 65 78 65 63 75 74 65 73 29 2e 0a 20 | hat.call.(it.always.executes)... |
| 12e0 | 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 6f 6c 44 65 64 75 70 4b 65 79 28 6e 61 6d 65 3a 20 73 | */.function.toolDedupKey(name:.s |
| 1300 | 74 72 69 6e 67 2c 20 61 72 67 73 3a 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e | tring,.args:.Record<string,.unkn |
| 1320 | 6f 77 6e 3e 29 3a 20 73 74 72 69 6e 67 20 7c 20 6e 75 6c 6c 20 7b 0a 09 74 72 79 20 7b 0a 09 09 | own>):.string.|.null.{..try.{... |
| 1340 | 72 65 74 75 72 6e 20 60 24 7b 6e 61 6d 65 7d 00 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 | return.`${name}.${JSON.stringify |
| 1360 | 28 61 72 67 73 20 3f 3f 20 7b 7d 29 7d 60 3b 0a 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 72 65 74 | (args.??.{})}`;..}.catch.{...ret |
| 1380 | 75 72 6e 20 6e 75 6c 6c 3b 0a 09 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 4d 6f 64 65 6c | urn.null;..}.}..function.toModel |
| 13a0 | 4d 65 73 73 61 67 65 73 28 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d | Messages(messages:.ChatMessage[] |
| 13c0 | 2c 20 75 73 65 54 6f 6f 6c 50 72 65 66 69 78 3f 3a 20 62 6f 6f 6c 65 61 6e 29 3a 20 4d 6f 64 65 | ,.useToolPrefix?:.boolean):.Mode |
| 13e0 | 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 3a 20 4d 6f 64 65 | lMessage[].{..const.result:.Mode |
| 1400 | 6c 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 2f 2f 20 41 20 60 5b 55 53 45 52 20 49 | lMessage[].=.[];...//.A.`[USER.I |
| 1420 | 4e 54 45 52 52 55 50 54 5d 60 20 62 6c 6f 63 6b 20 69 6e 20 61 20 74 6f 6f 6c 2d 72 65 73 75 6c | NTERRUPT]`.block.in.a.tool-resul |
| 1440 | 74 20 69 73 20 22 66 72 65 73 68 22 20 e2 80 94 20 69 2e 65 2e 2c 20 74 68 65 0a 09 2f 2f 20 6d | t.is."fresh".....i.e.,.the..//.m |
| 1460 | 6f 64 65 6c 20 68 61 73 20 6e 6f 74 20 79 65 74 20 73 65 65 6e 20 61 6e 64 20 72 65 73 70 6f 6e | odel.has.not.yet.seen.and.respon |
| 1480 | 64 65 64 20 74 6f 20 69 74 20 e2 80 94 20 6f 6e 6c 79 20 77 68 65 6e 20 41 4c 4c 20 6f 66 20 74 | ded.to.it.....only.when.ALL.of.t |
| 14a0 | 68 65 73 65 0a 09 2f 2f 20 68 6f 6c 64 3a 0a 09 2f 2f 20 20 20 31 2e 20 54 68 65 20 74 6f 6f 6c | hese..//.hold:..//...1..The.tool |
| 14c0 | 2d 62 61 74 63 68 20 69 73 20 69 6e 20 74 68 65 20 76 65 72 79 20 6c 61 73 74 20 6d 65 73 73 61 | -batch.is.in.the.very.last.messa |
| 14e0 | 67 65 20 6f 66 20 74 68 65 20 68 69 73 74 6f 72 79 2e 0a 09 2f 2f 20 20 20 32 2e 20 54 68 61 74 | ge.of.the.history...//...2..That |
| 1500 | 20 6d 65 73 73 61 67 65 20 69 73 20 61 6e 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 | .message.is.an.assistant.message |
| 1520 | 20 28 61 20 66 6f 6c 6c 6f 77 2d 75 70 20 75 73 65 72 20 6d 65 73 73 61 67 65 0a 09 2f 2f 20 20 | .(a.follow-up.user.message..//.. |
| 1540 | 20 20 20 20 6d 65 61 6e 73 20 74 68 65 20 75 73 65 72 20 6d 6f 76 65 64 20 6f 6e 3b 20 74 68 65 | ....means.the.user.moved.on;.the |
| 1560 | 20 69 6e 74 65 72 72 75 70 74 20 77 61 73 20 61 64 64 72 65 73 73 65 64 29 2e 0a 09 2f 2f 20 20 | .interrupt.was.addressed)...//.. |
| 1580 | 20 33 2e 20 54 68 65 20 74 6f 6f 6c 2d 62 61 74 63 68 20 69 73 20 74 68 65 20 4c 41 53 54 20 63 | .3..The.tool-batch.is.the.LAST.c |
| 15a0 | 68 75 6e 6b 20 69 6e 20 74 68 61 74 20 6d 65 73 73 61 67 65 20 28 61 6e 79 20 6c 61 74 65 72 0a | hunk.in.that.message.(any.later. |
| 15c0 | 09 2f 2f 20 20 20 20 20 20 74 65 78 74 2f 74 68 69 6e 6b 69 6e 67 2f 74 6f 6f 6c 2d 62 61 74 63 | .//......text/thinking/tool-batc |
| 15e0 | 68 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6d 65 73 73 61 67 65 20 72 65 70 72 65 73 65 6e 74 73 | h.in.the.same.message.represents |
| 1600 | 20 74 68 65 0a 09 2f 2f 20 20 20 20 20 20 6d 6f 64 65 6c 27 73 20 72 65 73 70 6f 6e 73 65 20 74 | .the..//......model's.response.t |
| 1620 | 6f 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 29 2e 0a 09 2f 2f 0a 09 2f 2f 20 41 6c 6c | o.the.tool.results)...//..//.All |
| 1640 | 20 6f 74 68 65 72 20 69 6e 74 65 72 72 75 70 74 73 20 67 65 74 20 73 74 72 69 70 70 65 64 20 66 | .other.interrupts.get.stripped.f |
| 1660 | 72 6f 6d 20 68 69 73 74 6f 72 79 20 62 65 63 61 75 73 65 20 74 68 65 20 69 6d 70 65 72 61 74 69 | rom.history.because.the.imperati |
| 1680 | 76 65 0a 09 2f 2f 20 22 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 74 68 65 73 65 22 20 | ve..//."You.MUST.address.these". |
| 16a0 | 6f 74 68 65 72 77 69 73 65 20 67 65 74 73 20 72 65 2d 65 76 61 6c 75 61 74 65 64 20 61 73 20 61 | otherwise.gets.re-evaluated.as.a |
| 16c0 | 20 66 72 65 73 68 0a 09 2f 2f 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6f 6e 20 65 76 65 72 79 20 | .fresh..//.instruction.on.every. |
| 16e0 | 73 75 62 73 65 71 75 65 6e 74 20 4c 4c 4d 20 73 74 65 70 2e 0a 09 6c 65 74 20 66 72 65 73 68 65 | subsequent.LLM.step...let.freshe |
| 1700 | 73 74 54 6f 6f 6c 42 61 74 63 68 4d 73 67 49 64 78 20 3d 20 2d 31 3b 0a 09 6c 65 74 20 66 72 65 | stToolBatchMsgIdx.=.-1;..let.fre |
| 1720 | 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 20 3d 20 2d 31 3b 0a 09 63 6f | shestToolBatchChunkIdx.=.-1;..co |
| 1740 | 6e 73 74 20 6c 61 73 74 4d 73 67 49 64 78 20 3d 20 6d 65 73 73 61 67 65 73 2e 6c 65 6e 67 74 68 | nst.lastMsgIdx.=.messages.length |
| 1760 | 20 2d 20 31 3b 0a 09 63 6f 6e 73 74 20 6c 61 73 74 4d 73 67 20 3d 20 6d 65 73 73 61 67 65 73 5b | .-.1;..const.lastMsg.=.messages[ |
| 1780 | 6c 61 73 74 4d 73 67 49 64 78 5d 3b 0a 09 69 66 20 28 6c 61 73 74 4d 73 67 20 26 26 20 6c 61 73 | lastMsgIdx];..if.(lastMsg.&&.las |
| 17a0 | 74 4d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 26 26 20 6c 61 73 | tMsg.role.===."assistant".&&.las |
| 17c0 | 74 4d 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 63 6f 6e 73 | tMsg.chunks.length.>.0).{...cons |
| 17e0 | 74 20 6c 61 73 74 43 68 75 6e 6b 49 64 78 20 3d 20 6c 61 73 74 4d 73 67 2e 63 68 75 6e 6b 73 2e | t.lastChunkIdx.=.lastMsg.chunks. |
| 1800 | 6c 65 6e 67 74 68 20 2d 20 31 3b 0a 09 09 63 6f 6e 73 74 20 6c 61 73 74 43 68 75 6e 6b 20 3d 20 | length.-.1;...const.lastChunk.=. |
| 1820 | 6c 61 73 74 4d 73 67 2e 63 68 75 6e 6b 73 5b 6c 61 73 74 43 68 75 6e 6b 49 64 78 5d 3b 0a 09 09 | lastMsg.chunks[lastChunkIdx];... |
| 1840 | 69 66 20 28 6c 61 73 74 43 68 75 6e 6b 20 26 26 20 6c 61 73 74 43 68 75 6e 6b 2e 74 79 70 65 20 | if.(lastChunk.&&.lastChunk.type. |
| 1860 | 3d 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 29 20 7b 0a 09 09 09 66 72 65 73 68 65 73 74 54 | ===."tool-batch").{....freshestT |
| 1880 | 6f 6f 6c 42 61 74 63 68 4d 73 67 49 64 78 20 3d 20 6c 61 73 74 4d 73 67 49 64 78 3b 0a 09 09 09 | oolBatchMsgIdx.=.lastMsgIdx;.... |
| 18a0 | 66 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 20 3d 20 6c 61 73 74 | freshestToolBatchChunkIdx.=.last |
| 18c0 | 43 68 75 6e 6b 49 64 78 3b 0a 09 09 7d 0a 09 7d 0a 0a 09 66 6f 72 20 28 6c 65 74 20 6d 73 67 49 | ChunkIdx;...}..}...for.(let.msgI |
| 18e0 | 64 78 20 3d 20 30 3b 20 6d 73 67 49 64 78 20 3c 20 6d 65 73 73 61 67 65 73 2e 6c 65 6e 67 74 68 | dx.=.0;.msgIdx.<.messages.length |
| 1900 | 3b 20 6d 73 67 49 64 78 2b 2b 29 20 7b 0a 09 09 63 6f 6e 73 74 20 6d 73 67 20 3d 20 6d 65 73 73 | ;.msgIdx++).{...const.msg.=.mess |
| 1920 | 61 67 65 73 5b 6d 73 67 49 64 78 5d 3b 0a 09 09 69 66 20 28 21 6d 73 67 20 7c 7c 20 6d 73 67 2e | ages[msgIdx];...if.(!msg.||.msg. |
| 1940 | 72 6f 6c 65 20 3d 3d 3d 20 22 73 79 73 74 65 6d 22 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 09 | role.===."system").continue;.... |
| 1960 | 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 22 75 73 65 72 22 29 20 7b 0a 09 09 09 2f 2f | if.(msg.role.===."user").{....// |
| 1980 | 20 55 73 65 72 20 6d 65 73 73 61 67 65 73 20 69 6e 20 6f 75 72 20 6d 6f 64 65 6c 20 63 61 6e 20 | .User.messages.in.our.model.can. |
| 19a0 | 69 6e 20 74 68 65 6f 72 79 20 63 6f 6e 74 61 69 6e 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b | in.theory.contain.non-text.chunk |
| 19c0 | 73 2c 0a 09 09 09 2f 2f 20 62 75 74 20 69 6e 20 70 72 61 63 74 69 63 65 20 74 68 65 20 55 49 20 | s,....//.but.in.practice.the.UI. |
| 19e0 | 6f 6e 6c 79 20 70 72 6f 64 75 63 65 73 20 74 65 78 74 2e 20 43 6f 6e 63 61 74 65 6e 61 74 65 20 | only.produces.text..Concatenate. |
| 1a00 | 61 6e 79 20 74 65 78 74 0a 09 09 09 2f 2f 20 63 68 75 6e 6b 73 3b 20 69 67 6e 6f 72 65 20 61 6e | any.text....//.chunks;.ignore.an |
| 1a20 | 79 74 68 69 6e 67 20 65 6c 73 65 2e 0a 09 09 09 63 6f 6e 73 74 20 74 65 78 74 20 3d 20 6d 73 67 | ything.else.....const.text.=.msg |
| 1a40 | 2e 63 68 75 6e 6b 73 0a 09 09 09 09 2e 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 78 | .chunks......filter((c):.c.is.Ex |
| 1a60 | 74 72 61 63 74 3c 43 68 75 6e 6b 2c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 3d | tract<Chunk,.{.type:."text".}>.= |
| 1a80 | 3e 20 63 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 29 0a 09 09 09 09 2e 6d 61 70 28 28 63 | >.c.type.===."text")......map((c |
| 1aa0 | 29 20 3d 3e 20 63 2e 74 65 78 74 29 0a 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 09 72 | ).=>.c.text)......join("");....r |
| 1ac0 | 65 73 75 6c 74 2e 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 6f 6e 74 65 | esult.push({.role:."user",.conte |
| 1ae0 | 6e 74 3a 20 74 65 78 74 20 7d 29 3b 0a 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 7d 0a 0a 09 | nt:.text.});....continue;...}... |
| 1b00 | 09 2f 2f 20 72 6f 6c 65 20 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 0a 09 09 2f 2f 0a 09 09 | .//.role.===."assistant"...//... |
| 1b20 | 2f 2f 20 53 65 67 6d 65 6e 74 20 74 68 65 20 74 75 72 6e 27 73 20 63 68 75 6e 6b 73 20 69 6e 74 | //.Segment.the.turn's.chunks.int |
| 1b40 | 6f 20 70 65 72 2d 4c 4c 4d 2d 73 74 65 70 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c | o.per-LLM-step.`[assistant,.tool |
| 1b60 | 5d 60 0a 09 09 2f 2f 20 6d 65 73 73 61 67 65 20 70 61 69 72 73 2c 20 73 70 6c 69 74 74 69 6e 67 | ]`...//.message.pairs,.splitting |
| 1b80 | 20 61 74 20 65 61 63 68 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 62 6f 75 6e 64 61 72 79 2e 20 | .at.each.`tool-batch`.boundary.. |
| 1ba0 | 45 76 65 72 79 0a 09 09 2f 2f 20 72 6f 75 6e 64 2d 74 72 69 70 20 65 6d 69 74 73 20 74 65 78 74 | Every...//.round-trip.emits.text |
| 1bc0 | 2f 74 68 69 6e 6b 69 6e 67 20 74 68 65 6e 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 6f 6e 65 20 | /thinking.then.(optionally).one. |
| 1be0 | 74 6f 6f 6c 2d 62 61 74 63 68 2c 20 73 6f 0a 09 09 2f 2f 20 61 20 74 6f 6f 6c 2d 62 61 74 63 68 | tool-batch,.so...//.a.tool-batch |
| 1c00 | 20 69 73 20 65 78 61 63 74 6c 79 20 61 20 73 74 65 70 20 62 6f 75 6e 64 61 72 79 2e 0a 09 09 2f | .is.exactly.a.step.boundary..../ |
| 1c20 | 2f 0a 09 09 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 63 68 65 20 66 69 78 3a 20 65 61 | /...//.This.is.the.cache.fix:.ea |
| 1c40 | 63 68 20 70 72 69 6f 72 20 73 74 65 70 27 73 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 62 75 69 | ch.prior.step's.messages.are.bui |
| 1c60 | 6c 74 20 66 72 6f 6d 0a 09 09 2f 2f 20 69 6d 6d 75 74 61 62 6c 65 20 63 68 75 6e 6b 73 20 61 74 | lt.from...//.immutable.chunks.at |
| 1c80 | 20 66 69 78 65 64 20 70 6f 73 69 74 69 6f 6e 73 2c 20 73 6f 20 74 68 65 79 20 73 65 72 69 61 6c | .fixed.positions,.so.they.serial |
| 1ca0 | 69 7a 65 0a 09 09 2f 2f 20 62 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 6c 79 20 6f 6e 20 65 76 65 | ize...//.byte-identically.on.eve |
| 1cc0 | 72 79 20 6c 61 74 65 72 20 72 65 71 75 65 73 74 20 e2 86 92 20 73 74 61 62 6c 65 20 41 6e 74 68 | ry.later.request.....stable.Anth |
| 1ce0 | 72 6f 70 69 63 20 70 72 6f 6d 70 74 0a 09 09 2f 2f 20 70 72 65 66 69 78 2e 20 43 6f 6c 6c 61 70 | ropic.prompt...//.prefix..Collap |
| 1d00 | 73 69 6e 67 20 61 6c 6c 20 73 74 65 70 73 20 69 6e 74 6f 20 4f 4e 45 20 61 73 73 69 73 74 61 6e | sing.all.steps.into.ONE.assistan |
| 1d20 | 74 20 2b 20 4f 4e 45 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 0a 09 09 2f 2f 20 28 61 6e 64 20 74 | t.+.ONE.tool.message...//.(and.t |
| 1d40 | 68 65 6e 20 6c 65 74 74 69 6e 67 20 74 68 65 20 73 74 72 75 63 74 75 72 61 6c 2d 6e 6f 72 6d 61 | hen.letting.the.structural-norma |
| 1d60 | 6c 69 73 61 74 69 6f 6e 20 70 61 73 73 20 72 65 2d 62 75 63 6b 65 74 20 74 68 65 0a 09 09 2f 2f | lisation.pass.re-bucket.the...// |
| 1d80 | 20 74 6f 6f 6c 5f 75 73 65 2f 74 6f 6f 6c 5f 72 65 73 75 6c 74 20 62 6c 6f 63 6b 73 29 20 72 65 | .tool_use/tool_result.blocks).re |
| 1da0 | 73 68 75 66 66 6c 65 64 20 65 61 72 6c 69 65 72 20 73 74 65 70 73 27 20 70 6f 73 69 74 69 6f 6e | shuffled.earlier.steps'.position |
| 1dc0 | 73 20 6f 6e 0a 09 09 2f 2f 20 65 76 65 72 79 20 73 74 65 70 20 61 6e 64 20 73 68 61 74 74 65 72 | s.on...//.every.step.and.shatter |
| 1de0 | 65 64 20 74 68 65 20 63 61 63 68 65 20 28 73 65 65 20 63 61 63 68 65 2d 6d 69 73 73 2d 72 65 70 | ed.the.cache.(see.cache-miss-rep |
| 1e00 | 6f 72 74 2e 6d 64 29 2e 0a 09 09 74 79 70 65 20 41 73 73 69 73 74 61 6e 74 50 61 72 74 20 3d 0a | ort.md)....type.AssistantPart.=. |
| 1e20 | 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 3b 20 74 65 78 74 3a 20 73 74 72 69 6e | ...|.{.type:."text";.text:.strin |
| 1e40 | 67 20 7d 0a 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 3b 20 74 65 | g.}....|.{.type:."reasoning";.te |
| 1e60 | 78 74 3a 20 73 74 72 69 6e 67 3b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3f 3a 20 50 72 | xt:.string;.providerOptions?:.Pr |
| 1e80 | 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 7d 0a 09 09 09 7c 20 7b 20 74 79 70 65 3a 20 22 74 6f | oviderOptions.}....|.{.type:."to |
| 1ea0 | 6f 6c 2d 63 61 6c 6c 22 3b 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 20 74 6f | ol-call";.toolCallId:.string;.to |
| 1ec0 | 6f 6c 4e 61 6d 65 3a 20 73 74 72 69 6e 67 3b 20 69 6e 70 75 74 3a 20 75 6e 6b 6e 6f 77 6e 20 7d | olName:.string;.input:.unknown.} |
| 1ee0 | 3b 0a 09 09 74 79 70 65 20 53 74 65 70 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 74 6f 6f 6c 43 | ;...type.StepResult.=.{....toolC |
| 1f00 | 61 6c 6c 49 64 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 73 74 72 69 | allId:.string;....toolName:.stri |
| 1f20 | 6e 67 3b 0a 09 09 09 72 65 73 75 6c 74 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 69 73 45 72 72 6f | ng;....result:.string;....isErro |
| 1f40 | 72 3f 3a 20 62 6f 6f 6c 65 61 6e 3b 0a 09 09 7d 3b 0a 0a 09 09 6c 65 74 20 70 61 72 74 73 3a 20 | r?:.boolean;...};....let.parts:. |
| 1f60 | 41 73 73 69 73 74 61 6e 74 50 61 72 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 6c 65 74 20 73 74 65 70 | AssistantPart[].=.[];...let.step |
| 1f80 | 52 65 73 75 6c 74 73 3a 20 53 74 65 70 52 65 73 75 6c 74 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 63 | Results:.StepResult[].=.[];....c |
| 1fa0 | 6f 6e 73 74 20 66 6c 75 73 68 53 74 65 70 20 3d 20 28 29 3a 20 76 6f 69 64 20 3d 3e 20 7b 0a 09 | onst.flushStep.=.():.void.=>.{.. |
| 1fc0 | 09 09 69 66 20 28 70 61 72 74 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 72 65 | ..if.(parts.length.>.0).{.....re |
| 1fe0 | 73 75 6c 74 2e 70 75 73 68 28 7b 20 72 6f 6c 65 3a 20 22 61 73 73 69 73 74 61 6e 74 22 2c 20 63 | sult.push({.role:."assistant",.c |
| 2000 | 6f 6e 74 65 6e 74 3a 20 70 61 72 74 73 20 7d 29 3b 0a 09 09 09 7d 0a 09 09 09 2f 2f 20 4f 6e 65 | ontent:.parts.});....}....//.One |
| 2020 | 20 67 72 6f 75 70 65 64 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 20 | .grouped.`role:."tool"`.message. |
| 2040 | 70 65 72 20 73 74 65 70 20 68 6f 6c 64 73 20 74 68 61 74 20 73 74 65 70 27 73 0a 09 09 09 2f 2f | per.step.holds.that.step's....// |
| 2060 | 20 72 65 73 75 6c 74 73 20 e2 80 94 20 60 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 | .results.....`applyAnthropicCach |
| 2080 | 69 6e 67 60 20 74 68 65 6e 20 6d 61 72 6b 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 0a 09 09 09 | ing`.then.marks.the.last.two.... |
| 20a0 | 2f 2f 20 6e 6f 6e 2d 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 20 61 73 20 60 5b 61 73 73 69 | //.non-system.messages.as.`[assi |
| 20c0 | 73 74 61 6e 74 28 73 74 65 70 29 2c 20 74 6f 6f 6c 28 73 74 65 70 29 5d 60 2c 20 74 68 65 0a 09 | stant(step),.tool(step)]`,.the.. |
| 20e0 | 09 09 2f 2f 20 63 6f 72 72 65 63 74 20 72 6f 6c 6c 69 6e 67 2d 62 72 65 61 6b 70 6f 69 6e 74 20 | ..//.correct.rolling-breakpoint. |
| 2100 | 70 6c 61 63 65 6d 65 6e 74 2e 0a 09 09 09 69 66 20 28 73 74 65 70 52 65 73 75 6c 74 73 2e 6c 65 | placement.....if.(stepResults.le |
| 2120 | 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 72 65 73 75 6c 74 2e 70 75 73 68 28 7b 0a 09 09 | ngth.>.0).{.....result.push({... |
| 2140 | 09 09 09 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 2c 0a 09 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 73 | ...role:."tool",......content:.s |
| 2160 | 74 65 70 52 65 73 75 6c 74 73 2e 6d 61 70 28 28 74 72 29 20 3d 3e 20 28 7b 0a 09 09 09 09 09 09 | tepResults.map((tr).=>.({....... |
| 2180 | 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 20 61 73 20 63 6f 6e 73 74 2c 0a 09 09 | type:."tool-result".as.const,... |
| 21a0 | 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 72 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 | ....toolCallId:.tr.toolCallId,.. |
| 21c0 | 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 72 2e 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 | .....toolName:.tr.toolName,..... |
| 21e0 | 09 09 2f 2f 20 76 36 3a 20 60 6f 75 74 70 75 74 60 20 28 54 6f 6f 6c 52 65 73 75 6c 74 4f 75 74 | ..//.v6:.`output`.(ToolResultOut |
| 2200 | 70 75 74 29 20 72 65 70 6c 61 63 65 73 20 76 34 27 73 20 72 61 77 20 60 72 65 73 75 6c 74 60 0a | put).replaces.v4's.raw.`result`. |
| 2220 | 09 09 09 09 09 09 6f 75 74 70 75 74 3a 20 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 61 73 20 | ......output:.{.type:."text".as. |
| 2240 | 63 6f 6e 73 74 2c 20 76 61 6c 75 65 3a 20 74 72 2e 72 65 73 75 6c 74 20 7d 2c 0a 09 09 09 09 09 | const,.value:.tr.result.},...... |
| 2260 | 09 2e 2e 2e 28 74 72 2e 69 73 45 72 72 6f 72 20 3f 20 7b 20 69 73 45 72 72 6f 72 3a 20 74 72 75 | ....(tr.isError.?.{.isError:.tru |
| 2280 | 65 20 7d 20 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 29 2c 0a 09 09 09 09 7d 29 3b 0a 09 09 09 | e.}.:.{}),......})),.....});.... |
| 22a0 | 7d 0a 09 09 09 70 61 72 74 73 20 3d 20 5b 5d 3b 0a 09 09 09 73 74 65 70 52 65 73 75 6c 74 73 20 | }....parts.=.[];....stepResults. |
| 22c0 | 3d 20 5b 5d 3b 0a 09 09 7d 3b 0a 0a 09 09 66 6f 72 20 28 6c 65 74 20 63 68 75 6e 6b 49 64 78 20 | =.[];...};....for.(let.chunkIdx. |
| 22e0 | 3d 20 30 3b 20 63 68 75 6e 6b 49 64 78 20 3c 20 6d 73 67 2e 63 68 75 6e 6b 73 2e 6c 65 6e 67 74 | =.0;.chunkIdx.<.msg.chunks.lengt |
| 2300 | 68 3b 20 63 68 75 6e 6b 49 64 78 2b 2b 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 68 75 6e 6b 20 | h;.chunkIdx++).{....const.chunk. |
| 2320 | 3d 20 6d 73 67 2e 63 68 75 6e 6b 73 5b 63 68 75 6e 6b 49 64 78 5d 3b 0a 09 09 09 69 66 20 28 21 | =.msg.chunks[chunkIdx];....if.(! |
| 2340 | 63 68 75 6e 6b 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 73 77 69 74 63 68 20 28 63 68 75 6e | chunk).continue;....switch.(chun |
| 2360 | 6b 2e 74 79 70 65 29 20 7b 0a 09 09 09 09 63 61 73 65 20 22 74 65 78 74 22 3a 0a 09 09 09 09 09 | k.type).{.....case."text":...... |
| 2380 | 70 61 72 74 73 2e 70 75 73 68 28 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 3a | parts.push({.type:."text",.text: |
| 23a0 | 20 63 68 75 6e 6b 2e 74 65 78 74 20 7d 29 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 | .chunk.text.});......break;..... |
| 23c0 | 63 61 73 65 20 22 74 68 69 6e 6b 69 6e 67 22 3a 0a 09 09 09 09 09 2f 2f 20 76 36 3a 20 63 61 72 | case."thinking":......//.v6:.car |
| 23e0 | 72 79 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 28 41 6e 74 68 72 6f 70 69 63 20 73 69 | ry.providerOptions.(Anthropic.si |
| 2400 | 67 6e 61 74 75 72 65 20 62 6c 6f 62 29 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 2f | gnature.blob).if.present......./ |
| 2420 | 2f 20 4e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 20 72 65 61 73 6f 6e 69 6e 67 20 68 61 73 20 6e 6f | /.Non-Anthropic.reasoning.has.no |
| 2440 | 20 6d 65 74 61 64 61 74 61 20 e2 86 92 20 73 65 6e 64 20 77 69 74 68 6f 75 74 20 70 72 6f 76 69 | .metadata.....send.without.provi |
| 2460 | 64 65 72 4f 70 74 69 6f 6e 73 0a 09 09 09 09 09 2f 2f 20 28 41 6e 74 68 72 6f 70 69 63 20 61 63 | derOptions......//.(Anthropic.ac |
| 2480 | 63 65 70 74 73 20 69 74 3b 20 74 68 65 20 72 6f 75 6e 64 2d 74 72 69 70 20 6a 75 73 74 20 77 6f | cepts.it;.the.round-trip.just.wo |
| 24a0 | 6e 27 74 20 63 61 72 72 79 20 61 20 73 69 67 6e 61 74 75 72 65 29 2e 0a 09 09 09 09 09 70 61 72 | n't.carry.a.signature).......par |
| 24c0 | 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 | ts.push({.......type:."reasoning |
| 24e0 | 22 2c 0a 09 09 09 09 09 09 74 65 78 74 3a 20 63 68 75 6e 6b 2e 74 65 78 74 2c 0a 09 09 09 09 09 | ",.......text:.chunk.text,...... |
| 2500 | 09 2e 2e 2e 28 63 68 75 6e 6b 2e 6d 65 74 61 64 61 74 61 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 | ....(chunk.metadata.!==.undefine |
| 2520 | 64 0a 09 09 09 09 09 09 09 3f 20 7b 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 63 68 | d........?.{.providerOptions:.ch |
| 2540 | 75 6e 6b 2e 6d 65 74 61 64 61 74 61 20 61 73 20 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 | unk.metadata.as.ProviderOptions. |
| 2560 | 7d 0a 09 09 09 09 09 09 09 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 62 72 | }........:.{}),......});......br |
| 2580 | 65 61 6b 3b 0a 09 09 09 09 63 61 73 65 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 3a 20 7b 0a 09 09 | eak;.....case."tool-batch":.{... |
| 25a0 | 09 09 09 2f 2f 20 53 74 72 69 70 20 73 74 61 6c 65 20 60 5b 55 53 45 52 20 49 4e 54 45 52 52 55 | ...//.Strip.stale.`[USER.INTERRU |
| 25c0 | 50 54 5d 60 20 62 6c 6f 63 6b 73 20 66 72 6f 6d 20 65 76 65 72 79 0a 09 09 09 09 09 2f 2f 20 74 | PT]`.blocks.from.every......//.t |
| 25e0 | 6f 6f 6c 2d 62 61 74 63 68 20 65 78 63 65 70 74 20 74 68 65 20 66 72 65 73 68 65 73 74 20 6f 6e | ool-batch.except.the.freshest.on |
| 2600 | 65 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 0a 09 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 62 61 74 63 | e.(most.recent......//.tool-batc |
| 2620 | 68 20 69 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 61 73 73 69 73 74 61 6e 74 20 6d | h.in.the.most.recent.assistant.m |
| 2640 | 65 73 73 61 67 65 29 2e 0a 09 09 09 09 09 2f 2f 20 57 69 74 68 6f 75 74 20 74 68 69 73 2c 20 74 | essage).......//.Without.this,.t |
| 2660 | 68 65 20 69 6d 70 65 72 61 74 69 76 65 20 22 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 | he.imperative."You.MUST.address. |
| 2680 | 74 68 65 73 65 22 0a 09 09 09 09 09 2f 2f 20 74 65 78 74 20 70 65 72 73 69 73 74 73 20 69 6e 20 | these"......//.text.persists.in. |
| 26a0 | 68 69 73 74 6f 72 79 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 72 65 2d 61 63 6b 6e 6f 77 6c | history.and.the.model.re-acknowl |
| 26c0 | 65 64 67 65 73 0a 09 09 09 09 09 2f 2f 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 72 72 75 70 74 | edges......//.the.same.interrupt |
| 26e0 | 20 76 65 72 62 61 74 69 6d 20 6f 6e 20 65 76 65 72 79 20 73 75 62 73 65 71 75 65 6e 74 20 73 74 | .verbatim.on.every.subsequent.st |
| 2700 | 65 70 2e 0a 09 09 09 09 09 63 6f 6e 73 74 20 69 73 46 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 | ep.......const.isFreshestToolBat |
| 2720 | 63 68 20 3d 0a 09 09 09 09 09 09 6d 73 67 49 64 78 20 3d 3d 3d 20 66 72 65 73 68 65 73 74 54 6f | ch.=.......msgIdx.===.freshestTo |
| 2740 | 6f 6c 42 61 74 63 68 4d 73 67 49 64 78 20 26 26 20 63 68 75 6e 6b 49 64 78 20 3d 3d 3d 20 66 72 | olBatchMsgIdx.&&.chunkIdx.===.fr |
| 2760 | 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 43 68 75 6e 6b 49 64 78 3b 0a 09 09 09 09 09 66 6f | eshestToolBatchChunkIdx;......fo |
| 2780 | 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 63 68 75 6e 6b 2e 63 61 6c 6c 73 29 20 7b | r.(const.entry.of.chunk.calls).{ |
| 27a0 | 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 75 73 65 54 6f 6f 6c 50 | .......const.toolName.=.useToolP |
| 27c0 | 72 65 66 69 78 20 3f 20 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 65 6e 74 72 79 2e 6e 61 6d | refix.?.prefixToolName(entry.nam |
| 27e0 | 65 29 20 3a 20 65 6e 74 72 79 2e 6e 61 6d 65 3b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 60 69 | e).:.entry.name;.......//.v6:.`i |
| 2800 | 6e 70 75 74 60 20 72 65 70 6c 61 63 65 73 20 76 34 27 73 20 60 61 72 67 73 60 0a 09 09 09 09 09 | nput`.replaces.v4's.`args`...... |
| 2820 | 09 70 61 72 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c | .parts.push({........type:."tool |
| 2840 | 2d 63 61 6c 6c 22 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 65 6e 74 72 79 | -call",........toolCallId:.entry |
| 2860 | 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 69 6e 70 | .id,........toolName,........inp |
| 2880 | 75 74 3a 20 65 6e 74 72 79 2e 61 72 67 75 6d 65 6e 74 73 2c 0a 09 09 09 09 09 09 7d 29 3b 0a 09 | ut:.entry.arguments,.......});.. |
| 28a0 | 09 09 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 | .....if.(entry.result.!==.undefi |
| 28c0 | 6e 65 64 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 54 65 78 74 20 3d | ned).{........const.resultText.= |
| 28e0 | 20 69 73 46 72 65 73 68 65 73 74 54 6f 6f 6c 42 61 74 63 68 0a 09 09 09 09 09 09 09 09 3f 20 65 | .isFreshestToolBatch.........?.e |
| 2900 | 6e 74 72 79 2e 72 65 73 75 6c 74 0a 09 09 09 09 09 09 09 09 3a 20 73 74 72 69 70 55 73 65 72 49 | ntry.result.........:.stripUserI |
| 2920 | 6e 74 65 72 72 75 70 74 42 6c 6f 63 6b 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 29 3b 0a 09 09 09 | nterruptBlock(entry.result);.... |
| 2940 | 09 09 09 09 73 74 65 70 52 65 73 75 6c 74 73 2e 70 75 73 68 28 7b 0a 09 09 09 09 09 09 09 09 74 | ....stepResults.push({.........t |
| 2960 | 6f 6f 6c 43 61 6c 6c 49 64 3a 20 65 6e 74 72 79 2e 69 64 2c 0a 09 09 09 09 09 09 09 09 74 6f 6f | oolCallId:.entry.id,.........too |
| 2980 | 6c 4e 61 6d 65 2c 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 72 65 73 75 6c 74 54 65 78 | lName,.........result:.resultTex |
| 29a0 | 74 2c 0a 09 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 65 6e 74 72 79 2e 69 73 45 72 72 6f | t,.........isError:.entry.isErro |
| 29c0 | 72 2c 0a 09 09 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 7d 0a 09 09 09 | r,........});.......}......}.... |
| 29e0 | 09 09 2f 2f 20 45 6e 64 20 6f 66 20 74 68 69 73 20 4c 4c 4d 20 73 74 65 70 20 e2 86 92 20 65 6d | ..//.End.of.this.LLM.step.....em |
| 2a00 | 69 74 20 69 74 73 20 60 5b 61 73 73 69 73 74 61 6e 74 2c 20 74 6f 6f 6c 5d 60 20 70 61 69 72 20 | it.its.`[assistant,.tool]`.pair. |
| 2a20 | 61 6e 64 0a 09 09 09 09 09 2f 2f 20 73 74 61 72 74 20 61 20 66 72 65 73 68 20 70 61 69 72 20 66 | and......//.start.a.fresh.pair.f |
| 2a40 | 6f 72 20 74 68 65 20 6e 65 78 74 20 73 74 65 70 2e 0a 09 09 09 09 09 66 6c 75 73 68 53 74 65 70 | or.the.next.step.......flushStep |
| 2a60 | 28 29 3b 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 09 7d 0a 09 09 09 09 63 61 73 65 20 22 | ();......break;.....}.....case." |
| 2a80 | 65 72 72 6f 72 22 3a 0a 09 09 09 09 63 61 73 65 20 22 73 79 73 74 65 6d 22 3a 0a 09 09 09 09 09 | error":.....case."system":...... |
| 2aa0 | 2f 2f 20 53 74 72 69 70 20 e2 80 94 20 6e 6f 74 20 73 65 6e 74 20 62 61 63 6b 20 74 6f 20 74 68 | //.Strip.....not.sent.back.to.th |
| 2ac0 | 65 20 4c 4c 4d 2e 0a 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 2f | e.LLM.......break;....}...}..../ |
| 2ae0 | 2f 20 46 69 6e 61 6c 20 73 74 65 70 3a 20 74 72 61 69 6c 69 6e 67 20 74 65 78 74 2f 74 68 69 6e | /.Final.step:.trailing.text/thin |
| 2b00 | 6b 69 6e 67 20 77 69 74 68 20 6e 6f 20 74 6f 6f 6c 2d 62 61 74 63 68 2e 20 60 66 6c 75 73 68 53 | king.with.no.tool-batch..`flushS |
| 2b20 | 74 65 70 60 0a 09 09 2f 2f 20 73 6b 69 70 73 20 65 6d 70 74 69 65 73 2c 20 73 6f 20 61 20 74 75 | tep`...//.skips.empties,.so.a.tu |
| 2b40 | 72 6e 20 6f 66 20 6f 6e 6c 79 20 73 79 73 74 65 6d 2f 65 72 72 6f 72 20 63 68 75 6e 6b 73 20 65 | rn.of.only.system/error.chunks.e |
| 2b60 | 6d 69 74 73 20 6e 6f 74 68 69 6e 67 2e 0a 09 09 66 6c 75 73 68 53 74 65 70 28 29 3b 0a 09 7d 0a | mits.nothing....flushStep();..}. |
| 2b80 | 09 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 | .return.result;.}../**..*.Apply. |
| 2ba0 | 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 72 65 61 73 6f 6e 69 6e 67 20 6e 6f 72 6d | OpenAI-compatible.reasoning.norm |
| 2bc0 | 61 6c 69 73 61 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 | alisation...*..*.Cribbed.from.op |
| 2be0 | 65 6e 63 6f 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 32 31 | encode.`provider/transform.ts:21 |
| 2c00 | 37 2d 32 34 39 60 2e 20 53 6f 6c 76 65 73 20 44 65 65 70 53 65 65 6b 27 73 0a 20 2a 20 22 54 68 | 7-249`..Solves.DeepSeek's..*."Th |
| 2c20 | 65 20 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 20 69 6e 20 74 68 65 20 74 68 69 6e 6b | e.reasoning_content.in.the.think |
| 2c40 | 69 6e 67 20 6d 6f 64 65 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 62 61 63 6b 20 74 6f 20 | ing.mode.must.be.passed.back.to. |
| 2c60 | 74 68 65 0a 20 2a 20 41 50 49 22 20 65 72 72 6f 72 2e 0a 20 2a 0a 20 2a 20 54 68 65 20 76 36 20 | the..*.API".error...*..*.The.v6. |
| 2c80 | 60 40 61 69 2d 73 64 6b 2f 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 40 32 2e 78 60 20 | `@ai-sdk/[email protected]`. |
| 2ca0 | 70 72 6f 76 69 64 65 72 20 65 78 74 72 61 63 74 73 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e | provider.extracts.`reasoning_con |
| 2cc0 | 74 65 6e 74 60 0a 20 2a 20 66 72 6f 6d 20 61 73 73 69 73 74 61 6e 74 20 60 7b 20 74 79 70 65 3a | tent`..*.from.assistant.`{.type: |
| 2ce0 | 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 20 74 65 78 74 20 7d 60 20 70 61 72 74 73 20 6e 61 74 69 | ."reasoning",.text.}`.parts.nati |
| 2d00 | 76 65 6c 79 0a 20 2a 20 28 73 65 65 20 60 6e 6f 64 65 5f 6d 6f 64 75 6c 65 73 2f 40 61 69 2d 73 | vely..*.(see.`node_modules/@ai-s |
| 2d20 | 64 6b 2f 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 2f 64 69 73 74 2f 69 6e 64 65 78 2e | dk/openai-compatible/dist/index. |
| 2d40 | 6d 6a 73 3a 32 31 35 2d 32 31 36 60 20 61 6e 64 20 3a 32 34 35 29 2e 0a 20 2a 20 42 75 74 20 74 | mjs:215-216`.and.:245)...*.But.t |
| 2d60 | 68 61 74 20 6e 61 74 69 76 65 20 70 61 74 68 20 53 4b 49 50 53 20 65 6d 69 73 73 69 6f 6e 20 77 | hat.native.path.SKIPS.emission.w |
| 2d80 | 68 65 6e 20 60 72 65 61 73 6f 6e 69 6e 67 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 30 60 20 e2 80 94 | hen.`reasoning.length.===.0`.... |
| 2da0 | 0a 20 2a 20 22 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 22 20 69 73 20 6f 6d 69 74 74 | ..*."reasoning_content".is.omitt |
| 2dc0 | 65 64 20 66 72 6f 6d 20 74 68 65 20 77 69 72 65 2e 20 44 65 65 70 53 65 65 6b 20 28 61 6e 64 20 | ed.from.the.wire..DeepSeek.(and. |
| 2de0 | 73 69 6d 69 6c 61 72 0a 20 2a 20 22 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 22 20 70 72 6f 76 69 | similar..*."thinking.mode".provi |
| 2e00 | 64 65 72 73 29 20 72 65 71 75 69 72 65 20 74 68 65 20 66 69 65 6c 64 20 74 6f 20 62 65 20 70 72 | ders).require.the.field.to.be.pr |
| 2e20 | 65 73 65 6e 74 20 69 6e 20 65 76 65 72 79 0a 20 2a 20 66 6f 6c 6c 6f 77 2d 75 70 20 74 75 72 6e | esent.in.every..*.follow-up.turn |
| 2e40 | 20 6f 6e 63 65 20 69 74 20 77 61 73 20 65 6d 69 74 74 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e | .once.it.was.emitted.at.least.on |
| 2e60 | 63 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 0a 20 2a 20 74 68 65 20 | ce,.even.if.the.value.is..*.the. |
| 2e80 | 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 0a 20 2a 0a 20 2a 20 53 74 72 61 74 65 67 79 3a 20 66 6f | empty.string...*..*.Strategy:.fo |
| 2ea0 | 72 20 65 76 65 72 79 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 74 68 61 74 20 68 | r.every.assistant.message.that.h |
| 2ec0 | 61 73 20 61 6e 79 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 2c 0a 20 2a 20 63 6f 6e | as.any.`reasoning`.parts,..*.con |
| 2ee0 | 63 61 74 65 6e 61 74 65 20 74 68 65 69 72 20 74 65 78 74 20 69 6e 74 6f 20 60 70 72 6f 76 69 64 | catenate.their.text.into.`provid |
| 2f00 | 65 72 4f 70 74 69 6f 6e 73 2e 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 62 6c 65 2e 72 65 61 73 6f | erOptions.openaiCompatible.reaso |
| 2f20 | 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 20 2a 20 28 70 72 65 73 65 72 76 69 6e 67 20 65 6d 70 | ning_content`..*.(preserving.emp |
| 2f40 | 74 79 20 73 74 72 69 6e 67 73 29 20 41 4e 44 20 73 74 72 69 70 20 74 68 6f 73 65 20 70 61 72 74 | ty.strings).AND.strip.those.part |
| 2f60 | 73 20 66 72 6f 6d 20 63 6f 6e 74 65 6e 74 2e 20 54 68 65 0a 20 2a 20 72 65 73 75 6c 74 69 6e 67 | s.from.content..The..*.resulting |
| 2f80 | 20 70 61 79 6c 6f 61 64 20 68 61 73 20 61 20 73 69 6e 67 6c 65 20 73 6f 75 72 63 65 20 6f 66 20 | .payload.has.a.single.source.of. |
| 2fa0 | 74 72 75 74 68 20 66 6f 72 20 60 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 20 2a | truth.for.`reasoning_content`..* |
| 2fc0 | 20 63 6f 6d 69 6e 67 20 76 69 61 20 74 68 65 20 6d 65 73 73 61 67 65 2d 6c 65 76 65 6c 20 60 70 | .coming.via.the.message-level.`p |
| 2fe0 | 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 60 20 73 70 72 65 61 64 20 61 74 20 6c 69 6e 65 20 32 | roviderOptions`.spread.at.line.2 |
| 3000 | 34 37 20 6f 66 20 74 68 65 0a 20 2a 20 53 44 4b 20 70 72 6f 76 69 64 65 72 2c 20 77 68 69 63 68 | 47.of.the..*.SDK.provider,.which |
| 3020 | 20 66 69 72 65 73 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 65 6d 70 74 79 2d 76 73 2d 6e 6f | .fires.regardless.of.empty-vs-no |
| 3040 | 6e 2d 65 6d 70 74 79 20 74 65 78 74 2e 0a 20 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 | n-empty.text...*..*.Only.applied |
| 3060 | 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 28 6e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 29 | .for.the.default.(non-Anthropic) |
| 3080 | 20 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 70 61 74 68 2e 0a 20 2a 2f 0a 66 75 6e | .openai-compatible.path...*/.fun |
| 30a0 | 63 74 69 6f 6e 20 61 70 70 6c 79 4f 70 65 6e 41 49 43 6f 6d 70 61 74 69 62 6c 65 52 65 61 73 6f | ction.applyOpenAICompatibleReaso |
| 30c0 | 6e 69 6e 67 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 73 | ningNormalisation(msgs:.ModelMes |
| 30e0 | 73 61 67 65 5b 5d 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 72 65 74 75 72 | sage[]):.ModelMessage[].{..retur |
| 3100 | 6e 20 6d 73 67 73 2e 6d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e | n.msgs.map((msg).=>.{...if.(msg. |
| 3120 | 72 6f 6c 65 20 21 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 | role.!==."assistant".||.!Array.i |
| 3140 | 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 6d 73 67 3b | sArray(msg.content)).return.msg; |
| 3160 | 0a 0a 09 09 2f 2f 20 46 69 6e 64 20 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 49 66 20 | ....//.Find.reasoning.parts..If. |
| 3180 | 74 68 65 72 65 20 61 72 65 20 6e 6f 6e 65 2c 20 74 68 69 73 20 6d 65 73 73 61 67 65 20 6e 65 76 | there.are.none,.this.message.nev |
| 31a0 | 65 72 20 68 61 64 0a 09 09 2f 2f 20 61 20 74 68 69 6e 6b 69 6e 67 20 74 75 72 6e 20 e2 80 94 20 | er.had...//.a.thinking.turn..... |
| 31c0 | 44 65 65 70 53 65 65 6b 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 65 20 60 72 65 61 73 6f 6e | DeepSeek.doesn't.require.`reason |
| 31e0 | 69 6e 67 5f 63 6f 6e 74 65 6e 74 60 0a 09 09 2f 2f 20 69 6e 20 74 68 61 74 20 63 61 73 65 2c 20 | ing_content`...//.in.that.case,. |
| 3200 | 73 6f 20 77 65 20 70 61 73 73 20 74 68 72 6f 75 67 68 20 75 6e 63 68 61 6e 67 65 64 2e 0a 09 09 | so.we.pass.through.unchanged.... |
| 3220 | 63 6f 6e 73 74 20 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 | const.reasoningParts.=.msg.conte |
| 3240 | 6e 74 2e 66 69 6c 74 65 72 28 0a 09 09 09 28 70 29 3a 20 70 20 69 73 20 45 78 74 72 61 63 74 3c | nt.filter(....(p):.p.is.Extract< |
| 3260 | 74 79 70 65 6f 66 20 70 2c 20 7b 20 74 79 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 7d 3e | typeof.p,.{.type:."reasoning".}> |
| 3280 | 20 3d 3e 20 70 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 2c 0a 09 09 29 3b | .=>.p.type.===."reasoning",...); |
| 32a0 | 0a 09 09 69 66 20 28 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d | ...if.(reasoningParts.length.=== |
| 32c0 | 20 30 29 20 72 65 74 75 72 6e 20 6d 73 67 3b 0a 0a 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 69 | .0).return.msg;....const.reasoni |
| 32e0 | 6e 67 54 65 78 74 20 3d 20 72 65 61 73 6f 6e 69 6e 67 50 61 72 74 73 2e 6d 61 70 28 28 70 29 20 | ngText.=.reasoningParts.map((p). |
| 3300 | 3d 3e 20 70 2e 74 65 78 74 29 2e 6a 6f 69 6e 28 22 22 29 3b 0a 09 09 63 6f 6e 73 74 20 66 69 6c | =>.p.text).join("");...const.fil |
| 3320 | 74 65 72 65 64 43 6f 6e 74 65 6e 74 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 66 69 6c 74 65 | teredContent.=.msg.content.filte |
| 3340 | 72 28 28 70 29 20 3d 3e 20 70 2e 74 79 70 65 20 21 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 | r((p).=>.p.type.!==."reasoning") |
| 3360 | 3b 0a 0a 09 09 63 6f 6e 73 74 20 65 78 69 73 74 69 6e 67 4f 70 74 73 20 3d 20 6d 73 67 2e 70 72 | ;....const.existingOpts.=.msg.pr |
| 3380 | 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 3f 3f 20 7b 7d 3b 0a 09 09 63 6f 6e 73 74 20 65 78 69 | oviderOptions.??.{};...const.exi |
| 33a0 | 73 74 69 6e 67 43 6f 6d 70 61 74 20 3d 20 28 65 78 69 73 74 69 6e 67 4f 70 74 73 2e 6f 70 65 6e | stingCompat.=.(existingOpts.open |
| 33c0 | 61 69 43 6f 6d 70 61 74 69 62 6c 65 20 3f 3f 20 7b 7d 29 20 61 73 20 52 65 63 6f 72 64 3c 73 74 | aiCompatible.??.{}).as.Record<st |
| 33e0 | 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 0a 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 2e | ring,.unknown>;....return.{..... |
| 3400 | 2e 2e 6d 73 67 2c 0a 09 09 09 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 43 6f 6e 74 65 | ..msg,....content:.filteredConte |
| 3420 | 6e 74 2c 0a 09 09 09 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 3a 20 7b 0a 09 09 09 09 2e 2e | nt,....providerOptions:.{....... |
| 3440 | 2e 65 78 69 73 74 69 6e 67 4f 70 74 73 2c 0a 09 09 09 09 6f 70 65 6e 61 69 43 6f 6d 70 61 74 69 | .existingOpts,.....openaiCompati |
| 3460 | 62 6c 65 3a 20 7b 0a 09 09 09 09 09 2e 2e 2e 65 78 69 73 74 69 6e 67 43 6f 6d 70 61 74 2c 0a 09 | ble:.{.........existingCompat,.. |
| 3480 | 09 09 09 09 2f 2f 20 41 6c 77 61 79 73 20 73 65 74 2c 20 65 76 65 6e 20 77 68 65 6e 20 65 6d 70 | ....//.Always.set,.even.when.emp |
| 34a0 | 74 79 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 6b 65 79 20 66 69 78 20 e2 80 94 0a 09 09 09 09 | ty..This.is.the.key.fix......... |
| 34c0 | 09 2f 2f 20 74 68 65 20 53 44 4b 27 73 20 63 6f 6e 74 65 6e 74 2d 73 69 64 65 20 65 78 74 72 61 | .//.the.SDK's.content-side.extra |
| 34e0 | 63 74 69 6f 6e 20 73 6b 69 70 73 20 65 6d 70 74 79 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e | ction.skips.empty......//.reason |
| 3500 | 69 6e 67 2c 20 62 75 74 20 44 65 65 70 53 65 65 6b 20 72 65 71 75 69 72 65 73 20 74 68 65 20 66 | ing,.but.DeepSeek.requires.the.f |
| 3520 | 69 65 6c 64 20 70 72 65 73 65 6e 74 2e 0a 09 09 09 09 09 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e | ield.present.......reasoning_con |
| 3540 | 74 65 6e 74 3a 20 72 65 61 73 6f 6e 69 6e 67 54 65 78 74 2c 0a 09 09 09 09 7d 2c 0a 09 09 09 7d | tent:.reasoningText,.....},....} |
| 3560 | 2c 0a 09 09 7d 20 61 73 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3b 0a 09 7d 29 3b 0a 7d 0a 0a 2f | ,...}.as.ModelMessage;..});.}../ |
| 3580 | 2a 2a 0a 20 2a 20 41 70 70 6c 79 20 41 6e 74 68 72 6f 70 69 63 20 73 74 72 75 63 74 75 72 61 6c | **..*.Apply.Anthropic.structural |
| 35a0 | 20 6e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 20 74 6f 20 61 20 60 4d 6f 64 65 6c 4d 65 73 73 61 | .normalisations.to.a.`ModelMessa |
| 35c0 | 67 65 5b 5d 60 2e 0a 20 2a 0a 20 2a 20 43 72 69 62 62 65 64 20 66 72 6f 6d 20 6f 70 65 6e 63 6f | ge[]`...*..*.Cribbed.from.openco |
| 35e0 | 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 35 33 2d 31 34 38 | de.`provider/transform.ts:53-148 |
| 3600 | 60 2e 20 54 77 6f 20 70 61 73 73 65 73 3a 0a 20 2a 0a 20 2a 20 31 2e 20 2a 2a 45 6d 70 74 79 2d | `..Two.passes:..*..*.1..**Empty- |
| 3620 | 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 66 69 6c 74 65 72 2a 2a 3a 20 44 72 6f 70 20 60 74 | text/reasoning.filter**:.Drop.`t |
| 3640 | 65 78 74 60 20 2f 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 73 0a 20 2a 20 20 20 20 77 | ext`./.`reasoning`.parts..*....w |
| 3660 | 68 6f 73 65 20 60 74 65 78 74 20 3d 3d 3d 20 22 22 60 2e 20 44 72 6f 70 20 6d 65 73 73 61 67 65 | hose.`text.===.""`..Drop.message |
| 3680 | 73 20 77 68 6f 73 65 20 63 6f 6e 74 65 6e 74 20 61 72 72 61 79 20 62 65 63 6f 6d 65 73 0a 20 2a | s.whose.content.array.becomes..* |
| 36a0 | 20 20 20 20 65 6d 70 74 79 2e 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 73 73 | ....empty..Anthropic.rejects.ass |
| 36c0 | 69 73 74 61 6e 74 20 74 75 72 6e 73 20 77 69 74 68 20 65 6d 70 74 79 20 63 6f 6e 74 65 6e 74 2e | istant.turns.with.empty.content. |
| 36e0 | 0a 20 2a 0a 20 2a 20 32 2e 20 2a 2a 60 74 6f 6f 6c 43 61 6c 6c 49 64 60 20 73 63 72 75 62 62 69 | ..*..*.2..**`toolCallId`.scrubbi |
| 3700 | 6e 67 2a 2a 3a 20 41 6e 74 68 72 6f 70 69 63 20 6f 6e 6c 79 20 61 63 63 65 70 74 73 20 74 6f 6f | ng**:.Anthropic.only.accepts.too |
| 3720 | 6c 20 63 61 6c 6c 20 49 44 73 0a 20 2a 20 20 20 20 74 68 61 74 20 6d 61 74 63 68 20 60 5b 61 2d | l.call.IDs..*....that.match.`[a- |
| 3740 | 7a 41 2d 5a 30 2d 39 5f 2d 5d 60 2e 20 4f 75 72 20 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e | zA-Z0-9_-]`..Our.IDs.are.crypto. |
| 3760 | 72 61 6e 64 6f 6d 55 55 49 44 28 29 20 76 61 6c 75 65 73 0a 20 2a 20 20 20 20 77 68 69 63 68 20 | randomUUID().values..*....which. |
| 3780 | 61 72 65 20 61 6c 72 65 61 64 79 20 73 61 66 65 2c 20 62 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 | are.already.safe,.but.tool-call. |
| 37a0 | 49 44 73 20 61 73 73 69 67 6e 65 64 20 62 79 20 75 70 73 74 72 65 61 6d 0a 20 2a 20 20 20 20 73 | IDs.assigned.by.upstream..*....s |
| 37c0 | 6f 75 72 63 65 73 20 28 70 72 6f 76 69 64 65 72 2d 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 2c | ources.(provider-executed.tools, |
| 37e0 | 20 73 75 62 61 67 65 6e 74 20 72 65 74 72 69 65 76 61 6c 2c 20 65 74 63 2e 29 20 6d 61 79 0a 20 | .subagent.retrieval,.etc.).may.. |
| 3800 | 2a 20 20 20 20 6e 6f 74 20 62 65 2e 20 44 65 66 65 6e 73 69 76 65 6c 79 20 73 63 72 75 62 2e 20 | *....not.be..Defensively.scrub.. |
| 3820 | 4d 69 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 | Mirrors.opencode.`provider/trans |
| 3840 | 66 6f 72 6d 2e 74 73 3a 39 36 2d 31 32 32 60 2e 0a 20 2a 0a 20 2a 20 33 2e 20 2a 2a 60 5b 74 6f | form.ts:96-122`...*..*.3..**`[to |
| 3860 | 6f 6c 2d 63 61 6c 6c 2c 20 74 65 78 74 5d 60 20 73 70 6c 69 74 2a 2a 3a 20 41 6e 74 68 72 6f 70 | ol-call,.text]`.split**:.Anthrop |
| 3880 | 69 63 20 72 65 6a 65 63 74 73 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 73 0a 20 2a 20 20 20 | ic.rejects.assistant.turns..*... |
| 38a0 | 20 77 68 65 72 65 20 60 74 6f 6f 6c 5f 75 73 65 60 20 62 6c 6f 63 6b 73 20 61 72 65 20 66 6f 6c | .where.`tool_use`.blocks.are.fol |
| 38c0 | 6c 6f 77 65 64 20 62 79 20 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 0a 20 | lowed.by.non-tool-call.content.. |
| 38e0 | 2a 20 20 20 20 28 22 60 74 6f 6f 6c 5f 75 73 65 60 20 69 64 73 20 77 65 72 65 20 66 6f 75 6e 64 | *....("`tool_use`.ids.were.found |
| 3900 | 20 77 69 74 68 6f 75 74 20 60 74 6f 6f 6c 5f 72 65 73 75 6c 74 60 20 62 6c 6f 63 6b 73 20 69 6d | .without.`tool_result`.blocks.im |
| 3920 | 6d 65 64 69 61 74 65 6c 79 0a 20 2a 20 20 20 20 61 66 74 65 72 22 29 2e 20 49 66 20 61 6e 20 61 | mediately..*....after")..If.an.a |
| 3940 | 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 68 61 73 20 6d 69 78 65 64 20 6f 72 64 65 72 | ssistant.message.has.mixed.order |
| 3960 | 69 6e 67 2c 20 73 70 6c 69 74 20 69 74 20 69 6e 74 6f 0a 20 2a 20 20 20 20 60 5b 6e 6f 6e 2d 74 | ing,.split.it.into..*....`[non-t |
| 3980 | 6f 6f 6c 20 70 61 72 74 73 5d 20 2b 20 5b 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 5d 60 2e | ool.parts].+.[tool-call.parts]`. |
| 39a0 | 0a 20 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 | ..*..*.Only.applied.for.Anthropi |
| 39c0 | 63 2d 62 61 63 6b 65 64 20 70 72 6f 76 69 64 65 72 73 20 28 43 6c 61 75 64 65 20 4f 41 75 74 68 | c-backed.providers.(Claude.OAuth |
| 39e0 | 20 6f 72 0a 20 2a 20 6f 70 65 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 29 2e 20 53 6b 69 70 | .or..*.opencode-anthropic)..Skip |
| 3a00 | 20 66 6f 72 20 6f 70 65 6e 61 69 2d 63 6f 6d 70 61 74 69 62 6c 65 20 2f 20 4f 70 65 6e 43 6f 64 | .for.openai-compatible./.OpenCod |
| 3a20 | 65 20 5a 65 6e 2e 0a 20 2a 2f 0a 63 6f 6e 73 74 20 53 43 52 55 42 5f 54 4f 4f 4c 5f 43 41 4c 4c | e.Zen...*/.const.SCRUB_TOOL_CALL |
| 3a40 | 5f 49 44 20 3d 20 28 69 64 3a 20 73 74 72 69 6e 67 29 3a 20 73 74 72 69 6e 67 20 3d 3e 20 69 64 | _ID.=.(id:.string):.string.=>.id |
| 3a60 | 2e 72 65 70 6c 61 63 65 28 2f 5b 5e 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2f 67 2c 20 22 5f 22 29 | .replace(/[^a-zA-Z0-9_-]/g,."_") |
| 3a80 | 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 74 | ;..function.applyAnthropicStruct |
| 3aa0 | 75 72 61 6c 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 28 6d 73 67 73 3a 20 4d 6f 64 65 6c 4d 65 | uralNormalisations(msgs:.ModelMe |
| 3ac0 | 73 73 61 67 65 5b 5d 29 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 20 7b 0a 09 2f 2f 20 50 | ssage[]):.ModelMessage[].{..//.P |
| 3ae0 | 61 73 73 20 31 3a 20 46 69 6c 74 65 72 20 65 6d 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 | ass.1:.Filter.empty.text/reasoni |
| 3b00 | 6e 67 20 70 61 72 74 73 3b 20 64 72 6f 70 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 62 65 63 | ng.parts;.drop.messages.that.bec |
| 3b20 | 6f 6d 65 20 65 6d 70 74 79 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 73 0a 09 09 2e 6d 61 70 28 28 | ome.empty...msgs.=.msgs....map(( |
| 3b40 | 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 09 69 66 20 28 74 79 70 65 6f 66 20 6d 73 67 2e 63 6f 6e 74 | msg).=>.{....if.(typeof.msg.cont |
| 3b60 | 65 6e 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 29 20 7b 0a 09 09 09 09 69 66 20 28 6d 73 67 2e | ent.===."string").{.....if.(msg. |
| 3b80 | 63 6f 6e 74 65 6e 74 20 3d 3d 3d 20 22 22 29 20 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 | content.===."").return.undefined |
| 3ba0 | 3b 0a 09 09 09 09 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 09 09 7d 0a 09 09 09 69 66 20 28 21 41 | ;.....return.msg;....}....if.(!A |
| 3bc0 | 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 | rray.isArray(msg.content)).retur |
| 3be0 | 6e 20 6d 73 67 3b 0a 09 09 09 63 6f 6e 73 74 20 66 69 6c 74 65 72 65 64 20 3d 20 6d 73 67 2e 63 | n.msg;....const.filtered.=.msg.c |
| 3c00 | 6f 6e 74 65 6e 74 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 69 66 | ontent.filter((part).=>.{.....if |
| 3c20 | 20 28 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 22 20 7c 7c 20 70 61 72 74 2e 74 | .(part.type.===."text".||.part.t |
| 3c40 | 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 22 29 20 7b 0a 09 09 09 09 09 2f 2f 20 44 | ype.===."reasoning").{......//.D |
| 3c60 | 72 6f 70 20 65 6d 70 74 79 20 74 65 78 74 2f 72 65 61 73 6f 6e 69 6e 67 20 70 61 72 74 73 2e 20 | rop.empty.text/reasoning.parts.. |
| 3c80 | 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 20 65 6d 70 74 79 0a 09 09 09 09 09 | Anthropic.rejects.an.empty...... |
| 3ca0 | 2f 2f 20 60 72 65 61 73 6f 6e 69 6e 67 60 20 70 61 72 74 20 28 22 74 68 69 6e 6b 69 6e 67 20 62 | //.`reasoning`.part.("thinking.b |
| 3cc0 | 6c 6f 63 6b 20 6d 75 73 74 20 68 61 76 65 20 63 6f 6e 74 65 6e 74 22 29 20 65 76 65 6e 0a 09 09 | lock.must.have.content").even... |
| 3ce0 | 09 09 09 2f 2f 20 77 68 65 6e 20 69 74 20 63 61 72 72 69 65 73 20 61 20 73 69 67 6e 61 74 75 72 | ...//.when.it.carries.a.signatur |
| 3d00 | 65 2c 20 73 6f 20 77 65 20 73 74 72 69 70 20 69 74 20 6f 6e 20 74 68 65 20 77 61 79 20 6f 75 74 | e,.so.we.strip.it.on.the.way.out |
| 3d20 | 0a 09 09 09 09 09 2f 2f 20 77 68 69 6c 65 20 73 74 69 6c 6c 20 70 65 72 73 69 73 74 69 6e 67 20 | ......//.while.still.persisting. |
| 3d40 | 74 68 65 20 73 69 67 6e 65 64 20 62 6c 6f 63 6b 20 66 6f 72 20 72 6f 75 6e 64 2d 74 72 69 70 0a | the.signed.block.for.round-trip. |
| 3d60 | 09 09 09 09 09 2f 2f 20 66 69 64 65 6c 69 74 79 20 28 73 65 65 20 74 68 65 20 65 6d 70 74 79 2d | .....//.fidelity.(see.the.empty- |
| 3d80 | 72 65 61 73 6f 6e 69 6e 67 2d 70 61 72 74 20 74 65 73 74 29 2e 0a 09 09 09 09 09 72 65 74 75 72 | reasoning-part.test).......retur |
| 3da0 | 6e 20 28 70 61 72 74 20 61 73 20 7b 20 74 65 78 74 3a 20 73 74 72 69 6e 67 20 7d 29 2e 74 65 78 | n.(part.as.{.text:.string.}).tex |
| 3dc0 | 74 20 21 3d 3d 20 22 22 3b 0a 09 09 09 09 7d 0a 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b | t.!==."";.....}.....return.true; |
| 3de0 | 0a 09 09 09 7d 29 3b 0a 09 09 09 69 66 20 28 66 69 6c 74 65 72 65 64 2e 6c 65 6e 67 74 68 20 3d | ....});....if.(filtered.length.= |
| 3e00 | 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 72 65 74 75 72 | ==.0).return.undefined;....retur |
| 3e20 | 6e 20 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e 74 65 6e 74 3a 20 66 69 6c 74 65 72 65 64 20 7d 3b | n.{....msg,.content:.filtered.}; |
| 3e40 | 0a 09 09 7d 29 0a 09 09 2e 66 69 6c 74 65 72 28 28 6d 73 67 29 3a 20 6d 73 67 20 69 73 20 4d 6f | ...})....filter((msg):.msg.is.Mo |
| 3e60 | 64 65 6c 4d 65 73 73 61 67 65 20 3d 3e 20 6d 73 67 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 | delMessage.=>.msg.!==.undefined. |
| 3e80 | 26 26 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 20 21 3d 3d 20 22 22 29 3b 0a 0a 09 2f 2f 20 50 61 73 | &&.msg.content.!==."");...//.Pas |
| 3ea0 | 73 20 32 3a 20 53 63 72 75 62 20 74 6f 6f 6c 43 61 6c 6c 49 64 20 63 68 61 72 73 20 6f 6e 20 62 | s.2:.Scrub.toolCallId.chars.on.b |
| 3ec0 | 6f 74 68 20 61 73 73 69 73 74 61 6e 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 20 61 6e | oth.assistant.tool-call.parts.an |
| 3ee0 | 64 0a 09 2f 2f 20 74 6f 6f 6c 2d 72 6f 6c 65 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 72 74 | d..//.tool-role.tool-result.part |
| 3f00 | 73 2e 20 41 6e 74 68 72 6f 70 69 63 20 72 65 6a 65 63 74 73 20 61 6e 79 74 68 69 6e 67 20 6f 75 | s..Anthropic.rejects.anything.ou |
| 3f20 | 74 73 69 64 65 0a 09 2f 2f 20 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2e 20 4f 75 72 20 69 6e 74 | tside..//.[a-zA-Z0-9_-]..Our.int |
| 3f40 | 65 72 6e 61 6c 20 49 44 73 20 61 72 65 20 63 72 79 70 74 6f 2e 72 61 6e 64 6f 6d 55 55 49 44 28 | ernal.IDs.are.crypto.randomUUID( |
| 3f60 | 29 20 61 6e 64 20 73 61 66 65 2c 20 62 75 74 0a 09 2f 2f 20 75 70 73 74 72 65 61 6d 20 70 72 6f | ).and.safe,.but..//.upstream.pro |
| 3f80 | 76 69 64 65 72 2d 65 78 65 63 75 74 65 64 20 74 6f 6f 6c 73 20 6f 72 20 65 78 74 65 72 6e 61 6c | vider-executed.tools.or.external |
| 3fa0 | 20 73 6f 75 72 63 65 73 20 6d 61 79 20 6e 6f 74 20 62 65 2e 0a 09 6d 73 67 73 20 3d 20 6d 73 67 | .sources.may.not.be...msgs.=.msg |
| 3fc0 | 73 2e 6d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 | s.map((msg).=>.{...if.(msg.role. |
| 3fe0 | 3d 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 | ===."assistant".&&.Array.isArray |
| 4000 | 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 | (msg.content)).{....return.{.... |
| 4020 | 09 2e 2e 2e 6d 73 67 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e | ....msg,.....content:.msg.conten |
| 4040 | 74 2e 6d 61 70 28 28 70 61 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e | t.map((part).=>.{......if.(part. |
| 4060 | 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 20 7c 7c 20 70 61 72 74 2e 74 79 70 | type.===."tool-call".||.part.typ |
| 4080 | 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 | e.===."tool-result").{.......ret |
| 40a0 | 75 72 6e 20 7b 20 2e 2e 2e 70 61 72 74 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 53 43 52 55 42 | urn.{....part,.toolCallId:.SCRUB |
| 40c0 | 5f 54 4f 4f 4c 5f 43 41 4c 4c 5f 49 44 28 70 61 72 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 29 20 7d | _TOOL_CALL_ID(part.toolCallId).} |
| 40e0 | 3b 0a 09 09 09 09 09 7d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 70 61 72 74 3b 0a 09 09 09 09 7d | ;......}......return.part;.....} |
| 4100 | 29 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 09 69 66 20 28 6d 73 67 2e 72 6f 6c 65 20 3d 3d 3d 20 | ),....};...}...if.(msg.role.===. |
| 4120 | 22 74 6f 6f 6c 22 20 26 26 20 41 72 72 61 79 2e 69 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 | "tool".&&.Array.isArray(msg.cont |
| 4140 | 65 6e 74 29 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 2e 2e 2e 6d 73 67 2c 0a | ent)).{....return.{........msg,. |
| 4160 | 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 2e 6d 61 70 28 28 70 61 | ....content:.msg.content.map((pa |
| 4180 | 72 74 29 20 3d 3e 20 7b 0a 09 09 09 09 09 69 66 20 28 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 | rt).=>.{......if.(part.type.===. |
| 41a0 | 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 20 | "tool-result").{.......return.{. |
| 41c0 | 2e 2e 2e 70 61 72 74 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 53 43 52 55 42 5f 54 4f 4f 4c 5f | ...part,.toolCallId:.SCRUB_TOOL_ |
| 41e0 | 43 41 4c 4c 5f 49 44 28 70 61 72 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 29 20 7d 3b 0a 09 09 09 09 | CALL_ID(part.toolCallId).};..... |
| 4200 | 09 7d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 70 61 72 74 3b 0a 09 09 09 09 7d 29 2c 0a 09 09 09 | .}......return.part;.....}),.... |
| 4220 | 7d 3b 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 6d 73 67 3b 0a 09 7d 29 3b 0a 0a 09 2f 2f 20 50 | };...}...return.msg;..});...//.P |
| 4240 | 61 73 73 20 33 3a 20 53 70 6c 69 74 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 73 20 | ass.3:.Split.assistant.messages. |
| 4260 | 77 68 65 72 65 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 | where.tool-calls.are.followed.by |
| 4280 | 20 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 70 61 72 74 73 2e 0a 09 2f 2f 20 5b 74 65 78 74 2c | .non-tool-call.parts...//.[text, |
| 42a0 | 20 74 6f 6f 6c 2d 63 61 6c 6c 2c 20 74 65 78 74 5d 20 e2 86 92 20 5b 74 65 78 74 2c 20 74 65 78 | .tool-call,.text].....[text,.tex |
| 42c0 | 74 5d 20 2b 20 5b 74 6f 6f 6c 2d 63 61 6c 6c 5d 20 28 74 65 78 74 2d 6f 6e 6c 79 20 66 69 72 73 | t].+.[tool-call].(text-only.firs |
| 42e0 | 74 2c 20 74 6f 6f 6c 73 2d 6f 6e 6c 79 20 73 65 63 6f 6e 64 29 0a 09 6d 73 67 73 20 3d 20 6d 73 | t,.tools-only.second)..msgs.=.ms |
| 4300 | 67 73 2e 66 6c 61 74 4d 61 70 28 28 6d 73 67 29 20 3d 3e 20 7b 0a 09 09 69 66 20 28 6d 73 67 2e | gs.flatMap((msg).=>.{...if.(msg. |
| 4320 | 72 6f 6c 65 20 21 3d 3d 20 22 61 73 73 69 73 74 61 6e 74 22 20 7c 7c 20 21 41 72 72 61 79 2e 69 | role.!==."assistant".||.!Array.i |
| 4340 | 73 41 72 72 61 79 28 6d 73 67 2e 63 6f 6e 74 65 6e 74 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 | sArray(msg.content)).return.[msg |
| 4360 | 5d 3b 0a 09 09 63 6f 6e 73 74 20 70 61 72 74 73 20 3d 20 6d 73 67 2e 63 6f 6e 74 65 6e 74 3b 0a | ];...const.parts.=.msg.content;. |
| 4380 | 09 09 63 6f 6e 73 74 20 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 20 3d 20 70 61 72 74 73 | ..const.firstToolCallIdx.=.parts |
| 43a0 | 2e 66 69 6e 64 49 6e 64 65 78 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d | .findIndex((part).=>.part.type.= |
| 43c0 | 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 69 66 20 28 66 69 72 73 74 54 6f 6f 6c | ==."tool-call");...if.(firstTool |
| 43e0 | 43 61 6c 6c 49 64 78 20 3d 3d 3d 20 2d 31 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 20 2f 2f | CallIdx.===.-1).return.[msg];.// |
| 4400 | 20 6e 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 e2 86 92 20 70 61 73 73 20 74 68 72 6f 75 67 68 0a | .no.tool.calls.....pass.through. |
| 4420 | 09 09 2f 2f 20 49 66 20 65 76 65 72 79 74 68 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 66 69 72 73 | ..//.If.everything.from.the.firs |
| 4440 | 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 6f 6e 77 61 72 64 20 69 73 20 61 6c 73 6f 20 61 20 74 6f 6f | t.tool-call.onward.is.also.a.too |
| 4460 | 6c 2d 63 61 6c 6c 2c 20 69 74 27 73 20 61 6c 72 65 61 64 79 20 76 61 6c 69 64 0a 09 09 69 66 20 | l-call,.it's.already.valid...if. |
| 4480 | 28 21 70 61 72 74 73 2e 73 6c 69 63 65 28 66 69 72 73 74 54 6f 6f 6c 43 61 6c 6c 49 64 78 29 2e | (!parts.slice(firstToolCallIdx). |
| 44a0 | 73 6f 6d 65 28 28 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f | some((part).=>.part.type.!==."to |
| 44c0 | 6f 6c 2d 63 61 6c 6c 22 29 29 20 72 65 74 75 72 6e 20 5b 6d 73 67 5d 3b 0a 09 09 2f 2f 20 48 61 | ol-call")).return.[msg];...//.Ha |
| 44e0 | 73 20 6e 6f 6e 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 63 6f 6e 74 65 6e 74 20 41 46 54 45 52 20 61 20 | s.non-tool-call.content.AFTER.a. |
| 4500 | 74 6f 6f 6c 2d 63 61 6c 6c 20 e2 86 92 20 73 70 6c 69 74 0a 09 09 63 6f 6e 73 74 20 6e 6f 6e 54 | tool-call.....split...const.nonT |
| 4520 | 6f 6f 6c 50 61 72 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 70 61 72 74 29 20 3d | oolParts.=.parts.filter((part).= |
| 4540 | 3e 20 70 61 72 74 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 29 3b 0a 09 09 | >.part.type.!==."tool-call");... |
| 4560 | 63 6f 6e 73 74 20 74 6f 6f 6c 50 61 72 74 73 20 3d 20 70 61 72 74 73 2e 66 69 6c 74 65 72 28 28 | const.toolParts.=.parts.filter(( |
| 4580 | 70 61 72 74 29 20 3d 3e 20 70 61 72 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c | part).=>.part.type.===."tool-cal |
| 45a0 | 6c 22 29 3b 0a 09 09 72 65 74 75 72 6e 20 5b 0a 09 09 09 7b 20 2e 2e 2e 6d 73 67 2c 20 63 6f 6e | l");...return.[....{....msg,.con |
| 45c0 | 74 65 6e 74 3a 20 6e 6f 6e 54 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 09 7b 20 2e 2e 2e 6d 73 | tent:.nonToolParts.},....{....ms |
| 45e0 | 67 2c 20 63 6f 6e 74 65 6e 74 3a 20 74 6f 6f 6c 50 61 72 74 73 20 7d 2c 0a 09 09 5d 3b 0a 09 7d | g,.content:.toolParts.},...];..} |
| 4600 | 29 3b 0a 0a 09 72 65 74 75 72 6e 20 6d 73 67 73 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 41 70 70 6c | );...return.msgs;.}../**..*.Appl |
| 4620 | 79 20 41 6e 74 68 72 6f 70 69 63 20 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 20 62 72 65 61 6b | y.Anthropic.prompt-caching.break |
| 4640 | 70 6f 69 6e 74 73 20 74 6f 20 61 20 6d 65 73 73 61 67 65 20 6c 69 73 74 2e 0a 20 2a 0a 20 2a 20 | points.to.a.message.list...*..*. |
| 4660 | 41 6e 74 68 72 6f 70 69 63 20 63 61 63 68 65 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 65 71 75 | Anthropic.caches.the.entire.requ |
| 4680 | 65 73 74 20 70 72 65 66 69 78 20 75 70 20 74 6f 20 28 61 6e 64 20 69 6e 63 6c 75 64 69 6e 67 29 | est.prefix.up.to.(and.including) |
| 46a0 | 20 61 6e 79 20 62 6c 6f 63 6b 0a 20 2a 20 6d 61 72 6b 65 64 20 77 69 74 68 20 60 63 61 63 68 65 | .any.block..*.marked.with.`cache |
| 46c0 | 5f 63 6f 6e 74 72 6f 6c 60 2e 20 55 70 20 74 6f 20 34 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 70 | _control`..Up.to.4.breakpoints.p |
| 46e0 | 65 72 20 72 65 71 75 65 73 74 3b 20 77 65 20 75 73 65 20 74 68 72 65 65 0a 20 2a 20 28 66 69 72 | er.request;.we.use.three..*.(fir |
| 4700 | 73 74 20 73 79 73 74 65 6d 20 2b 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 74 65 6d 29 2e 0a | st.system.+.last.2.non-system).. |
| 4720 | 20 2a 0a 20 2a 20 53 74 72 61 74 65 67 79 20 28 6d 69 72 72 6f 72 73 20 4f 70 65 6e 43 6f 64 65 | .*..*.Strategy.(mirrors.OpenCode |
| 4740 | 27 73 20 60 61 70 70 6c 79 43 61 63 68 69 6e 67 60 20 69 6e 20 74 72 61 6e 73 66 6f 72 6d 2e 74 | 's.`applyCaching`.in.transform.t |
| 4760 | 73 29 3a 0a 20 2a 20 20 2d 20 4d 61 72 6b 20 74 68 65 20 66 69 72 73 74 20 73 79 73 74 65 6d 20 | s):..*..-.Mark.the.first.system. |
| 4780 | 6d 65 73 73 61 67 65 20 e2 86 92 20 63 61 63 68 65 73 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 | message.....caches.system.prompt |
| 47a0 | 20 28 61 6e 64 20 74 6f 6f 6c 73 2c 20 77 68 69 63 68 0a 20 2a 20 20 20 20 73 69 74 20 62 65 66 | .(and.tools,.which..*....sit.bef |
| 47c0 | 6f 72 65 20 6d 65 73 73 61 67 65 73 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 62 6f 64 79 | ore.messages.in.the.request.body |
| 47e0 | 29 2e 0a 20 2a 20 20 2d 20 4d 61 72 6b 20 74 68 65 20 6c 61 73 74 20 32 20 6e 6f 6e 2d 73 79 73 | )...*..-.Mark.the.last.2.non-sys |
| 4800 | 74 65 6d 20 6d 65 73 73 61 67 65 73 20 e2 86 92 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 74 | tem.messages.....rolling.cache.t |
| 4820 | 68 61 74 20 65 78 74 65 6e 64 73 20 74 68 72 6f 75 67 68 0a 20 2a 20 20 20 20 74 68 65 20 63 6f | hat.extends.through..*....the.co |
| 4840 | 6e 76 65 72 73 61 74 69 6f 6e 20 65 61 63 68 20 74 75 72 6e 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 | nversation.each.turn...*..*.This |
| 4860 | 20 72 65 6c 69 65 73 20 6f 6e 20 60 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 60 20 67 72 6f | .relies.on.`toModelMessages`.gro |
| 4880 | 75 70 69 6e 67 20 61 20 74 75 72 6e 27 73 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 74 6f | uping.a.turn's.tool.results.into |
| 48a0 | 20 6f 6e 65 0a 20 2a 20 60 72 6f 6c 65 3a 20 22 74 6f 6f 6c 22 60 20 6d 65 73 73 61 67 65 3a 20 | .one..*.`role:."tool"`.message:. |
| 48c0 | 74 68 61 74 20 6d 61 6b 65 73 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 6e 6f 6e 2d 73 79 73 74 | that.makes.the.last.two.non-syst |
| 48e0 | 65 6d 20 6d 65 73 73 61 67 65 73 0a 20 2a 20 60 5b 61 73 73 69 73 74 61 6e 74 28 74 6f 6f 6c 2d | em.messages..*.`[assistant(tool- |
| 4900 | 63 61 6c 6c 73 29 2c 20 74 6f 6f 6c 28 72 65 73 75 6c 74 73 29 5d 60 20 6d 69 64 2d 74 75 72 6e | calls),.tool(results)]`.mid-turn |
| 4920 | 2c 20 73 6f 20 74 68 65 20 74 77 6f 20 72 6f 6c 6c 69 6e 67 0a 20 2a 20 62 72 65 61 6b 70 6f 69 | ,.so.the.two.rolling..*.breakpoi |
| 4940 | 6e 74 73 20 73 74 72 61 64 64 6c 65 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 2f 74 6f 6f 6c 20 | nts.straddle.the.assistant/tool. |
| 4960 | 62 6f 75 6e 64 61 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 63 6f 6c 6c 61 70 73 69 6e 67 20 6f | boundary.instead.of.collapsing.o |
| 4980 | 6e 74 6f 0a 20 2a 20 74 77 6f 20 61 64 6a 61 63 65 6e 74 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 | nto..*.two.adjacent.tool-result. |
| 49a0 | 6d 65 73 73 61 67 65 73 20 28 77 68 69 63 68 20 77 61 73 74 65 73 20 61 20 62 72 65 61 6b 70 6f | messages.(which.wastes.a.breakpo |
| 49c0 | 69 6e 74 20 e2 80 94 20 73 65 65 0a 20 2a 20 63 6c 61 75 64 65 2d 72 65 70 6f 72 74 2e 6d 64 2c | int.....see..*.claude-report.md, |
| 49e0 | 20 52 6f 6f 74 20 43 61 75 73 65 20 32 29 2e 20 41 6e 74 68 72 6f 70 69 63 20 63 61 63 68 65 73 | .Root.Cause.2)..Anthropic.caches |
| 4a00 | 20 74 68 65 20 77 68 6f 6c 65 20 70 72 65 66 69 78 20 75 70 20 74 6f 20 61 6e 64 0a 20 2a 20 69 | .the.whole.prefix.up.to.and..*.i |
| 4a20 | 6e 63 6c 75 64 69 6e 67 20 61 20 6d 61 72 6b 65 64 20 62 6c 6f 63 6b 2c 20 73 6f 20 6d 61 72 6b | ncluding.a.marked.block,.so.mark |
| 4a40 | 69 6e 67 20 74 68 65 20 67 72 6f 75 70 65 64 20 74 6f 6f 6c 20 6d 65 73 73 61 67 65 20 65 78 74 | ing.the.grouped.tool.message.ext |
| 4a60 | 65 6e 64 73 20 74 68 65 0a 20 2a 20 63 61 63 68 65 64 20 70 72 65 66 69 78 20 61 63 72 6f 73 73 | ends.the..*.cached.prefix.across |
| 4a80 | 20 65 76 65 72 79 20 72 65 73 75 6c 74 20 74 68 65 20 74 75 72 6e 20 70 72 6f 64 75 63 65 64 2e | .every.result.the.turn.produced. |
| 4aa0 | 0a 20 2a 0a 20 2a 20 4f 6e 6c 79 20 61 70 70 6c 69 65 64 20 66 6f 72 20 74 68 65 20 41 6e 74 68 | ..*..*.Only.applied.for.the.Anth |
| 4ac0 | 72 6f 70 69 63 20 70 72 6f 76 69 64 65 72 2e 20 4f 70 65 6e 43 6f 64 65 20 5a 65 6e 27 73 20 4f | ropic.provider..OpenCode.Zen's.O |
| 4ae0 | 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 0a 20 2a 20 65 6e 64 70 6f 69 6e 74 20 28 60 2f | penAI-compatible..*.endpoint.(`/ |
| 4b00 | 7a 65 6e 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 60 29 20 62 61 63 6b 73 20 | zen/v1/chat/completions`).backs. |
| 4b20 | 6d 6f 64 65 6c 73 20 6c 69 6b 65 20 4d 69 6e 69 4d 61 78 2c 20 47 4c 4d 2c 20 4b 69 6d 69 2c 0a | models.like.MiniMax,.GLM,.Kimi,. |
| 4b40 | 20 2a 20 47 72 6f 6b 2c 20 65 74 63 2e 20 e2 80 94 20 74 68 6f 73 65 20 75 70 73 74 72 65 61 6d | .*.Grok,.etc......those.upstream |
| 4b60 | 73 20 64 6f 20 61 75 74 6f 6d 61 74 69 63 20 70 72 65 66 69 78 20 63 61 63 68 69 6e 67 20 73 65 | s.do.automatic.prefix.caching.se |
| 4b80 | 72 76 65 72 2d 73 69 64 65 20 61 6e 64 0a 20 2a 20 64 6f 6e 27 74 20 61 63 63 65 70 74 20 60 63 | rver-side.and..*.don't.accept.`c |
| 4ba0 | 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 4f 70 65 6e 43 6f 64 65 27 | ache_control`.markers..OpenCode' |
| 4bc0 | 73 20 6f 77 6e 20 74 72 61 6e 73 66 6f 72 6d 2e 74 73 20 67 61 74 65 73 0a 20 2a 20 60 61 70 70 | s.own.transform.ts.gates..*.`app |
| 4be0 | 6c 79 43 61 63 68 69 6e 67 60 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2d 66 61 6d 69 6c 79 20 64 | lyCaching`.on.Anthropic-family.d |
| 4c00 | 65 74 65 63 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 72 65 61 73 6f 6e 2e 20 4d 6f | etection.for.the.same.reason..Mo |
| 4c20 | 64 65 6c 73 0a 20 2a 20 73 65 72 76 65 64 20 76 69 61 20 60 40 61 69 2d 73 64 6b 2f 6f 70 65 6e | dels..*.served.via.`@ai-sdk/open |
| 4c40 | 61 69 60 20 28 47 50 54 29 20 61 6e 64 20 60 40 61 69 2d 73 64 6b 2f 67 6f 6f 67 6c 65 60 20 28 | ai`.(GPT).and.`@ai-sdk/google`.( |
| 4c60 | 47 65 6d 69 6e 69 29 20 6c 69 6b 65 77 69 73 65 0a 20 2a 20 75 73 65 20 73 65 72 76 65 72 2d 73 | Gemini).likewise..*.use.server-s |
| 4c80 | 69 64 65 20 61 75 74 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67 2e 0a 20 2a 2f 0a 66 75 6e 63 74 | ide.automatic.caching...*/.funct |
| 4ca0 | 69 6f 6e 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 6d 73 67 73 3a 20 | ion.applyAnthropicCaching(msgs:. |
| 4cc0 | 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d 29 3a 20 76 6f 69 64 20 7b 0a 09 63 6f 6e 73 74 20 74 | ModelMessage[]):.void.{..const.t |
| 4ce0 | 61 72 67 65 74 73 20 3d 20 6e 65 77 20 53 65 74 3c 4d 6f 64 65 6c 4d 65 73 73 61 67 65 3e 28 29 | argets.=.new.Set<ModelMessage>() |
| 4d00 | 3b 0a 0a 09 63 6f 6e 73 74 20 73 79 73 74 65 6d 4d 73 67 73 20 3d 20 6d 73 67 73 2e 66 69 6c 74 | ;...const.systemMsgs.=.msgs.filt |
| 4d20 | 65 72 28 28 6d 29 20 3d 3e 20 6d 2e 72 6f 6c 65 20 3d 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 | er((m).=>.m.role.===."system").s |
| 4d40 | 6c 69 63 65 28 30 2c 20 32 29 3b 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 20 6f 66 20 73 79 73 | lice(0,.2);..for.(const.m.of.sys |
| 4d60 | 74 65 6d 4d 73 67 73 29 20 74 61 72 67 65 74 73 2e 61 64 64 28 6d 29 3b 0a 0a 09 63 6f 6e 73 74 | temMsgs).targets.add(m);...const |
| 4d80 | 20 6e 6f 6e 53 79 73 74 65 6d 20 3d 20 6d 73 67 73 2e 66 69 6c 74 65 72 28 28 6d 29 20 3d 3e 20 | .nonSystem.=.msgs.filter((m).=>. |
| 4da0 | 6d 2e 72 6f 6c 65 20 21 3d 3d 20 22 73 79 73 74 65 6d 22 29 2e 73 6c 69 63 65 28 2d 32 29 3b 0a | m.role.!==."system").slice(-2);. |
| 4dc0 | 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 20 6f 66 20 6e 6f 6e 53 79 73 74 65 6d 29 20 74 61 72 67 | .for.(const.m.of.nonSystem).targ |
| 4de0 | 65 74 73 2e 61 64 64 28 6d 29 3b 0a 0a 09 66 6f 72 20 28 63 6f 6e 73 74 20 6d 73 67 20 6f 66 20 | ets.add(m);...for.(const.msg.of. |
| 4e00 | 74 61 72 67 65 74 73 29 20 7b 0a 09 09 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 | targets).{...msg.providerOptions |
| 4e20 | 20 3d 20 7b 0a 09 09 09 2e 2e 2e 6d 73 67 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2c 0a | .=.{.......msg.providerOptions,. |
| 4e40 | 09 09 09 61 6e 74 68 72 6f 70 69 63 3a 20 7b 0a 09 09 09 09 2e 2e 2e 28 6d 73 67 2e 70 72 6f 76 | ...anthropic:.{........(msg.prov |
| 4e60 | 69 64 65 72 4f 70 74 69 6f 6e 73 3f 2e 61 6e 74 68 72 6f 70 69 63 20 3f 3f 20 7b 7d 29 2c 0a 09 | iderOptions?.anthropic.??.{}),.. |
| 4e80 | 09 09 09 63 61 63 68 65 43 6f 6e 74 72 6f 6c 3a 20 7b 20 74 79 70 65 3a 20 22 65 70 68 65 6d 65 | ...cacheControl:.{.type:."epheme |
| 4ea0 | 72 61 6c 22 20 7d 2c 0a 09 09 09 7d 2c 0a 09 09 7d 3b 0a 09 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f | ral".},....},...};..}.}..functio |
| 4ec0 | 6e 20 66 6f 72 6d 61 74 45 72 72 6f 72 28 65 72 72 3a 20 75 6e 6b 6e 6f 77 6e 2c 20 63 6f 6e 66 | n.formatError(err:.unknown,.conf |
| 4ee0 | 69 67 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 29 3a 20 73 74 72 69 6e 67 20 7b 0a 09 63 6f 6e 73 | ig:.AgentConfig):.string.{..cons |
| 4f00 | 74 20 63 6f 6e 74 65 78 74 20 3d 20 60 5b 6d 6f 64 65 6c 3d 24 7b 63 6f 6e 66 69 67 2e 6d 6f 64 | t.context.=.`[model=${config.mod |
| 4f20 | 65 6c 7d 2c 20 62 61 73 65 55 52 4c 3d 24 7b 63 6f 6e 66 69 67 2e 62 61 73 65 55 52 4c 7d 5d 60 | el},.baseURL=${config.baseURL}]` |
| 4f40 | 3b 0a 0a 09 69 66 20 28 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 29 20 7b 0a | ;...if.(err.instanceof.Error).{. |
| 4f60 | 09 09 63 6f 6e 73 74 20 63 61 75 73 65 20 3d 20 65 72 72 2e 63 61 75 73 65 20 3f 20 60 20 7c 20 | ..const.cause.=.err.cause.?.`.|. |
| 4f80 | 63 61 75 73 65 3a 20 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 2e 63 61 75 73 | cause:.${JSON.stringify(err.caus |
| 4fa0 | 65 29 7d 60 20 3a 20 22 22 3b 0a 09 09 2f 2f 20 41 49 20 53 44 4b 20 65 72 72 6f 72 73 20 6f 66 | e)}`.:."";...//.AI.SDK.errors.of |
| 4fc0 | 74 65 6e 20 68 61 76 65 20 73 74 61 74 75 73 43 6f 64 65 2c 20 72 65 73 70 6f 6e 73 65 42 6f 64 | ten.have.statusCode,.responseBod |
| 4fe0 | 79 2c 20 6f 72 20 75 72 6c 20 70 72 6f 70 65 72 74 69 65 73 0a 09 09 63 6f 6e 73 74 20 65 78 74 | y,.or.url.properties...const.ext |
| 5000 | 72 61 73 3a 20 73 74 72 69 6e 67 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 6f 6e 73 74 20 65 72 72 52 | ras:.string[].=.[];...const.errR |
| 5020 | 65 63 6f 72 64 20 3d 20 65 72 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 | ecord.=.err.as.unknown.as.Record |
| 5040 | 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 69 66 20 28 22 73 74 61 74 75 73 | <string,.unknown>;...if.("status |
| 5060 | 43 6f 64 65 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 72 61 73 2e 70 75 73 68 28 | Code".in.errRecord).extras.push( |
| 5080 | 60 73 74 61 74 75 73 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 7d 60 | `status=${errRecord.statusCode}` |
| 50a0 | 29 3b 0a 09 09 69 66 20 28 22 75 72 6c 22 20 69 6e 20 65 72 72 52 65 63 6f 72 64 29 20 65 78 74 | );...if.("url".in.errRecord).ext |
| 50c0 | 72 61 73 2e 70 75 73 68 28 60 75 72 6c 3d 24 7b 65 72 72 52 65 63 6f 72 64 2e 75 72 6c 7d 60 29 | ras.push(`url=${errRecord.url}`) |
| 50e0 | 3b 0a 09 09 69 66 20 28 22 72 65 73 70 6f 6e 73 65 42 6f 64 79 22 20 69 6e 20 65 72 72 52 65 63 | ;...if.("responseBody".in.errRec |
| 5100 | 6f 72 64 29 20 65 78 74 72 61 73 2e 70 75 73 68 28 60 62 6f 64 79 3d 24 7b 4a 53 4f 4e 2e 73 74 | ord).extras.push(`body=${JSON.st |
| 5120 | 72 69 6e 67 69 66 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 70 6f 6e 73 65 42 6f 64 79 29 7d | ringify(errRecord.responseBody)} |
| 5140 | 60 29 3b 0a 09 09 69 66 20 28 22 72 65 73 70 6f 6e 73 65 48 65 61 64 65 72 73 22 20 69 6e 20 65 | `);...if.("responseHeaders".in.e |
| 5160 | 72 72 52 65 63 6f 72 64 29 0a 09 09 09 65 78 74 72 61 73 2e 70 75 73 68 28 60 68 65 61 64 65 72 | rrRecord)....extras.push(`header |
| 5180 | 73 3d 24 7b 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 65 72 72 52 65 63 6f 72 64 2e 72 65 73 | s=${JSON.stringify(errRecord.res |
| 51a0 | 70 6f 6e 73 65 48 65 61 64 65 72 73 29 7d 60 29 3b 0a 0a 09 09 63 6f 6e 73 74 20 64 65 74 61 69 | ponseHeaders)}`);....const.detai |
| 51c0 | 6c 20 3d 20 65 78 74 72 61 73 2e 6c 65 6e 67 74 68 20 3e 20 30 20 3f 20 60 20 28 24 7b 65 78 74 | l.=.extras.length.>.0.?.`.(${ext |
| 51e0 | 72 61 73 2e 6a 6f 69 6e 28 22 2c 20 22 29 7d 29 60 20 3a 20 22 22 3b 0a 09 09 72 65 74 75 72 6e | ras.join(",.")})`.:."";...return |
| 5200 | 20 60 24 7b 65 72 72 2e 6d 65 73 73 61 67 65 7d 24 7b 64 65 74 61 69 6c 7d 24 7b 63 61 75 73 65 | .`${err.message}${detail}${cause |
| 5220 | 7d 20 24 7b 63 6f 6e 74 65 78 74 7d 60 3b 0a 09 7d 0a 0a 09 72 65 74 75 72 6e 20 60 24 7b 53 74 | }.${context}`;..}...return.`${St |
| 5240 | 72 69 6e 67 28 65 72 72 29 7d 20 24 7b 63 6f 6e 74 65 78 74 7d 60 3b 0a 7d 0a 0a 2f 2a 2a 0a 20 | ring(err)}.${context}`;.}../**.. |
| 5260 | 2a 20 42 75 69 6c 64 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 60 70 72 6f 76 69 64 65 72 4f | *.Build.the.Anthropic.`providerO |
| 5280 | 70 74 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 60 20 74 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 | ptions.anthropic`.thinking.confi |
| 52a0 | 67 20 66 6f 72 20 61 20 67 69 76 65 6e 0a 20 2a 20 6d 6f 64 65 6c 20 2b 20 72 65 61 73 6f 6e 69 | g.for.a.given..*.model.+.reasoni |
| 52c0 | 6e 67 20 65 66 66 6f 72 74 2e 20 44 65 74 65 63 74 69 6f 6e 20 6d 69 72 72 6f 72 73 20 6f 70 65 | ng.effort..Detection.mirrors.ope |
| 52e0 | 6e 63 6f 64 65 27 73 20 60 70 72 6f 76 69 64 65 72 2f 74 72 61 6e 73 66 6f 72 6d 2e 74 73 60 0a | ncode's.`provider/transform.ts`. |
| 5300 | 20 2a 20 28 60 61 6e 74 68 72 6f 70 69 63 4f 70 75 73 34 37 4f 72 4c 61 74 65 72 60 20 2b 20 60 | .*.(`anthropicOpus47OrLater`.+.` |
| 5320 | 61 6e 74 68 72 6f 70 69 63 41 64 61 70 74 69 76 65 45 66 66 6f 72 74 73 60 29 3a 0a 20 2a 0a 20 | anthropicAdaptiveEfforts`):..*.. |
| 5340 | 2a 20 20 2d 20 41 44 41 50 54 49 56 45 20 6d 6f 64 65 6c 73 20 65 6d 69 74 20 60 7b 20 74 68 69 | *..-.ADAPTIVE.models.emit.`{.thi |
| 5360 | 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 61 64 61 70 74 69 76 65 22 20 7d 2c 20 65 66 66 | nking:.{.type:."adaptive".},.eff |
| 5380 | 6f 72 74 20 7d 60 20 61 6e 64 20 70 69 63 6b 0a 20 2a 20 20 20 20 74 68 65 69 72 20 6f 77 6e 20 | ort.}`.and.pick..*....their.own. |
| 53a0 | 74 68 69 6e 6b 69 6e 67 20 62 75 64 67 65 74 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 75 | thinking.budget.within.`maxOutpu |
| 53c0 | 74 54 6f 6b 65 6e 73 60 2e 20 41 20 6d 6f 64 65 6c 20 69 73 20 61 64 61 70 74 69 76 65 20 77 68 | tTokens`..A.model.is.adaptive.wh |
| 53e0 | 65 6e 0a 20 2a 20 20 20 20 69 74 20 69 73 20 4f 70 75 73 20 34 2e 37 2b 20 28 70 61 72 73 65 64 | en..*....it.is.Opus.4.7+.(parsed |
| 5400 | 20 66 72 6f 6d 20 74 68 65 20 69 64 29 20 4f 52 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 | .from.the.id).OR.Opus/Sonnet.4.6 |
| 5420 | 20 28 6d 61 74 63 68 65 64 20 62 79 20 69 64 0a 20 2a 20 20 20 20 73 75 62 73 74 72 69 6e 67 20 | .(matched.by.id..*....substring. |
| 5440 | e2 80 94 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65 77 65 72 20 53 6f 6e 6e 65 74 20 74 6f 20 | ....there.is.no.newer.Sonnet.to. |
| 5460 | 67 65 6e 65 72 61 6c 69 73 65 20 79 65 74 29 2e 0a 20 2a 20 20 20 20 20 20 2d 20 60 64 69 73 70 | generalise.yet)...*......-.`disp |
| 5480 | 6c 61 79 3a 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 69 73 20 61 64 64 65 64 20 4f 4e 4c 59 | lay:."summarized"`.is.added.ONLY |
| 54a0 | 20 66 6f 72 20 4f 70 75 73 20 34 2e 37 2b 2e 20 54 68 6f 73 65 20 6d 6f 64 65 6c 73 0a 20 2a 20 | .for.Opus.4.7+..Those.models..*. |
| 54c0 | 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 20 74 6f 20 60 64 69 73 70 6c 61 79 3a 20 22 6f 6d 69 | .......default.to.`display:."omi |
| 54e0 | 74 74 65 64 22 60 20 28 4e 4f 20 74 68 69 6e 6b 69 6e 67 20 73 74 72 65 61 6d 65 64 20 74 6f 20 | tted"`.(NO.thinking.streamed.to. |
| 5500 | 75 73 29 2c 20 73 6f 20 74 68 65 0a 20 2a 20 20 20 20 20 20 20 20 66 6c 61 67 20 6d 75 73 74 20 | us),.so.the..*........flag.must. |
| 5520 | 62 65 20 66 6f 72 63 65 64 20 74 6f 20 73 75 72 66 61 63 65 20 74 68 69 6e 6b 69 6e 67 20 69 6e | be.forced.to.surface.thinking.in |
| 5540 | 20 74 68 65 20 55 49 2e 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 0a 20 2a 20 20 20 20 20 | .the.UI..Opus/Sonnet.4.6..*..... |
| 5560 | 20 20 20 73 74 72 65 61 6d 20 74 68 69 6e 6b 69 6e 67 20 77 69 74 68 6f 75 74 20 69 74 20 28 6f | ...stream.thinking.without.it.(o |
| 5580 | 70 65 6e 63 6f 64 65 20 6f 6d 69 74 73 20 60 64 69 73 70 6c 61 79 60 20 74 68 65 72 65 20 74 6f | pencode.omits.`display`.there.to |
| 55a0 | 6f 29 2e 0a 20 2a 20 20 20 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 69 62 6c 69 6e 67 20 | o)...*......-.`effort`.(sibling. |
| 55c0 | 6f 66 20 60 74 68 69 6e 6b 69 6e 67 60 29 20 74 65 6c 6c 73 20 61 64 61 70 74 69 76 65 20 68 6f | of.`thinking`).tells.adaptive.ho |
| 55e0 | 77 20 68 61 72 64 20 74 6f 20 74 68 69 6e 6b 2e 0a 20 2a 20 20 2d 20 41 6c 6c 20 4f 54 48 45 52 | w.hard.to.think...*..-.All.OTHER |
| 5600 | 20 43 6c 61 75 64 65 20 6d 6f 64 65 6c 73 20 75 73 65 20 63 6c 61 73 73 69 63 20 60 7b 20 74 68 | .Claude.models.use.classic.`{.th |
| 5620 | 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 2c 0a 20 2a 20 20 20 | inking:.{.type:."enabled",..*... |
| 5640 | 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 60 2e 20 54 68 65 20 62 75 64 67 65 74 20 69 | .budgetTokens.}.}`..The.budget.i |
| 5660 | 73 20 61 20 63 65 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 20 e2 | s.a.ceiling,.not.a.requirement.. |
| 5680 | 80 94 20 74 68 65 20 6d 6f 64 65 6c 0a 20 2a 20 20 20 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 | ...the.model..*....self-regulate |
| 56a0 | 73 20 74 68 69 6e 6b 69 6e 67 20 76 73 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 60 6d | s.thinking.vs.response.within.`m |
| 56c0 | 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 60 2e 0a 20 2a 0a 20 2a 20 52 65 74 75 72 6e 65 64 20 | axOutputTokens`...*..*.Returned. |
| 56e0 | 61 73 20 63 6f 6e 63 72 65 74 65 20 6f 62 6a 65 63 74 20 73 68 61 70 65 73 20 28 6e 6f 20 6f 70 | as.concrete.object.shapes.(no.op |
| 5700 | 74 69 6f 6e 61 6c 2f 60 75 6e 64 65 66 69 6e 65 64 60 20 70 72 6f 70 65 72 74 69 65 73 29 20 73 | tional/`undefined`.properties).s |
| 5720 | 6f 20 74 68 65 0a 20 2a 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6c 65 61 6e 20 60 52 65 63 6f | o.the..*.result.is.a.clean.`Reco |
| 5740 | 72 64 3c 73 74 72 69 6e 67 2c 20 4a 53 4f 4e 56 61 6c 75 65 3e 60 20 66 6f 72 20 60 70 72 6f 76 | rd<string,.JSONValue>`.for.`prov |
| 5760 | 69 64 65 72 4f 70 74 69 6f 6e 73 2e 61 6e 74 68 72 6f 70 69 63 60 2e 0a 20 2a 20 43 61 6c 6c 65 | iderOptions.anthropic`...*.Calle |
| 5780 | 72 73 20 6f 6e 6c 79 20 69 6e 76 6f 6b 65 20 74 68 69 73 20 77 68 65 6e 20 60 65 66 66 6f 72 74 | rs.only.invoke.this.when.`effort |
| 57a0 | 20 21 3d 3d 20 22 6e 6f 6e 65 22 60 2e 0a 20 2a 2f 0a 65 78 70 6f 72 74 20 66 75 6e 63 74 69 6f | .!==."none"`...*/.export.functio |
| 57c0 | 6e 20 61 6e 74 68 72 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f | n.anthropicThinkingProviderOptio |
| 57e0 | 6e 73 28 6d 6f 64 65 6c 3a 20 73 74 72 69 6e 67 2c 20 65 66 66 6f 72 74 3a 20 52 65 61 73 6f 6e | ns(model:.string,.effort:.Reason |
| 5800 | 69 6e 67 45 66 66 6f 72 74 29 20 7b 0a 09 63 6f 6e 73 74 20 6f 70 75 73 56 65 72 73 69 6f 6e 20 | ingEffort).{..const.opusVersion. |
| 5820 | 3d 20 2f 6f 70 75 73 2d 28 5c 64 2b 29 5b 2e 2d 5d 28 5c 64 2b 29 28 3f 3a 5b 2e 40 2d 5d 7c 24 | =./opus-(\d+)[.-](\d+)(?:[.@-]|$ |
| 5840 | 29 2f 69 2e 65 78 65 63 28 6d 6f 64 65 6c 29 3b 0a 09 63 6f 6e 73 74 20 69 73 4f 70 75 73 34 37 | )/i.exec(model);..const.isOpus47 |
| 5860 | 4f 72 4c 61 74 65 72 20 3d 20 6f 70 75 73 56 65 72 73 69 6f 6e 0a 09 09 3f 20 4e 75 6d 62 65 72 | OrLater.=.opusVersion...?.Number |
| 5880 | 28 6f 70 75 73 56 65 72 73 69 6f 6e 5b 31 5d 29 20 3e 20 34 20 7c 7c 20 28 4e 75 6d 62 65 72 28 | (opusVersion[1]).>.4.||.(Number( |
| 58a0 | 6f 70 75 73 56 65 72 73 69 6f 6e 5b 31 5d 29 20 3d 3d 3d 20 34 20 26 26 20 4e 75 6d 62 65 72 28 | opusVersion[1]).===.4.&&.Number( |
| 58c0 | 6f 70 75 73 56 65 72 73 69 6f 6e 5b 32 5d 29 20 3e 3d 20 37 29 0a 09 09 3a 20 66 61 6c 73 65 3b | opusVersion[2]).>=.7)...:.false; |
| 58e0 | 0a 09 63 6f 6e 73 74 20 69 73 41 64 61 70 74 69 76 65 20 3d 0a 09 09 69 73 4f 70 75 73 34 37 4f | ..const.isAdaptive.=...isOpus47O |
| 5900 | 72 4c 61 74 65 72 20 7c 7c 0a 09 09 5b 22 6f 70 75 73 2d 34 2d 36 22 2c 20 22 6f 70 75 73 2d 34 | rLater.||...["opus-4-6",."opus-4 |
| 5920 | 2e 36 22 2c 20 22 73 6f 6e 6e 65 74 2d 34 2d 36 22 2c 20 22 73 6f 6e 6e 65 74 2d 34 2e 36 22 5d | .6",."sonnet-4-6",."sonnet-4.6"] |
| 5940 | 2e 73 6f 6d 65 28 28 73 29 20 3d 3e 20 6d 6f 64 65 6c 2e 69 6e 63 6c 75 64 65 73 28 73 29 29 3b | .some((s).=>.model.includes(s)); |
| 5960 | 0a 0a 09 69 66 20 28 69 73 41 64 61 70 74 69 76 65 29 20 7b 0a 09 09 72 65 74 75 72 6e 20 69 73 | ...if.(isAdaptive).{...return.is |
| 5980 | 4f 70 75 73 34 37 4f 72 4c 61 74 65 72 0a 09 09 09 3f 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b | Opus47OrLater....?.{.thinking:.{ |
| 59a0 | 20 74 79 70 65 3a 20 22 61 64 61 70 74 69 76 65 22 20 61 73 20 63 6f 6e 73 74 2c 20 64 69 73 70 | .type:."adaptive".as.const,.disp |
| 59c0 | 6c 61 79 3a 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 | lay:."summarized".as.const.},.ef |
| 59e0 | 66 6f 72 74 20 7d 0a 09 09 09 3a 20 7b 20 74 68 69 6e 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 | fort.}....:.{.thinking:.{.type:. |
| 5a00 | 22 61 64 61 70 74 69 76 65 22 20 61 73 20 63 6f 6e 73 74 20 7d 2c 20 65 66 66 6f 72 74 20 7d 3b | "adaptive".as.const.},.effort.}; |
| 5a20 | 0a 09 7d 0a 0a 09 63 6f 6e 73 74 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 3d 0a 09 09 65 66 66 | ..}...const.budgetTokens.=...eff |
| 5a40 | 6f 72 74 20 3d 3d 3d 20 22 6d 61 78 22 0a 09 09 09 3f 20 33 31 39 39 39 0a 09 09 09 3a 20 65 66 | ort.===."max"....?.31999....:.ef |
| 5a60 | 66 6f 72 74 20 3d 3d 3d 20 22 68 69 67 68 22 0a 09 09 09 09 3f 20 31 36 30 30 30 0a 09 09 09 09 | fort.===."high".....?.16000..... |
| 5a80 | 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6d 65 64 69 75 6d 22 0a 09 09 09 09 09 3f 20 35 30 30 | :.effort.===."medium"......?.500 |
| 5aa0 | 30 0a 09 09 09 09 09 3a 20 65 66 66 6f 72 74 20 3d 3d 3d 20 22 6c 6f 77 22 0a 09 09 09 09 09 09 | 0......:.effort.===."low"....... |
| 5ac0 | 3f 20 32 30 30 30 0a 09 09 09 09 09 09 3a 20 30 3b 0a 09 72 65 74 75 72 6e 20 7b 20 74 68 69 6e | ?.2000.......:.0;..return.{.thin |
| 5ae0 | 6b 69 6e 67 3a 20 7b 20 74 79 70 65 3a 20 22 65 6e 61 62 6c 65 64 22 20 61 73 20 63 6f 6e 73 74 | king:.{.type:."enabled".as.const |
| 5b00 | 2c 20 62 75 64 67 65 74 54 6f 6b 65 6e 73 20 7d 20 7d 3b 0a 7d 0a 0a 63 6f 6e 73 74 20 4d 41 58 | ,.budgetTokens.}.};.}..const.MAX |
| 5b20 | 5f 53 54 45 50 53 20 3d 20 35 30 3b 0a 0a 65 78 70 6f 72 74 20 63 6c 61 73 73 20 41 67 65 6e 74 | _STEPS.=.50;..export.class.Agent |
| 5b40 | 20 7b 0a 09 73 74 61 74 75 73 3a 20 41 67 65 6e 74 53 74 61 74 75 73 20 3d 20 22 69 64 6c 65 22 | .{..status:.AgentStatus.=."idle" |
| 5b60 | 3b 0a 09 6d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b 5d 3b | ;..messages:.ChatMessage[].=.[]; |
| 5b80 | 0a 0a 09 70 72 69 76 61 74 65 20 63 6f 6e 66 69 67 3a 20 41 67 65 6e 74 43 6f 6e 66 69 67 3b 0a | ...private.config:.AgentConfig;. |
| 5ba0 | 09 70 72 69 76 61 74 65 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3f 3a 20 51 75 65 75 65 43 | .private.queueCallbacks?:.QueueC |
| 5bc0 | 61 6c 6c 62 61 63 6b 73 3b 0a 0a 09 63 6f 6e 73 74 72 75 63 74 6f 72 28 63 6f 6e 66 69 67 3a 20 | allbacks;...constructor(config:. |
| 5be0 | 41 67 65 6e 74 43 6f 6e 66 69 67 2c 20 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3f 3a 20 51 75 | AgentConfig,.queueCallbacks?:.Qu |
| 5c00 | 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 09 09 74 68 69 73 2e 63 6f 6e 66 69 67 20 3d 20 | eueCallbacks).{...this.config.=. |
| 5c20 | 63 6f 6e 66 69 67 3b 0a 09 09 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 20 3d 20 | config;...this.queueCallbacks.=. |
| 5c40 | 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3b 0a 09 7d 0a 0a 09 70 72 69 76 61 74 65 20 61 73 79 | queueCallbacks;..}...private.asy |
| 5c60 | 6e 63 20 65 78 65 63 75 74 65 54 6f 6f 6c 57 69 74 68 53 74 72 65 61 6d 69 6e 67 28 0a 09 09 74 | nc.executeToolWithStreaming(...t |
| 5c80 | 63 3a 20 54 6f 6f 6c 43 61 6c 6c 2c 0a 09 09 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 3a | c:.ToolCall,...shellOutputQueue: |
| 5ca0 | 20 41 72 72 61 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 73 74 72 65 61 6d 3a 20 22 | .Array<{.data:.string;.stream:." |
| 5cc0 | 73 74 64 6f 75 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 2c 0a 09 29 3a 20 50 72 6f 6d 69 | stdout".|."stderr".}>,..):.Promi |
| 5ce0 | 73 65 3c 54 6f 6f 6c 52 65 73 75 6c 74 3e 20 7b 0a 09 09 63 6f 6e 73 74 20 72 65 67 69 73 74 72 | se<ToolResult>.{...const.registr |
| 5d00 | 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 65 67 69 73 74 72 79 28 74 68 69 73 2e 63 6f 6e 66 | y.=.createToolRegistry(this.conf |
| 5d20 | 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 20 3d 20 72 65 67 69 73 74 | ig.tools);...const.tool.=.regist |
| 5d40 | 72 79 2e 67 65 74 54 6f 6f 6c 28 74 63 2e 6e 61 6d 65 29 3b 0a 09 09 69 66 20 28 21 74 6f 6f 6c | ry.getTool(tc.name);...if.(!tool |
| 5d60 | 29 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 | ).{....return.{.....toolCallId:. |
| 5d80 | 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 | tc.id,.....toolName:.tc.name,... |
| 5da0 | 09 09 72 65 73 75 6c 74 3a 20 60 55 6e 6b 6e 6f 77 6e 20 74 6f 6f 6c 3a 20 24 7b 74 63 2e 6e 61 | ..result:.`Unknown.tool:.${tc.na |
| 5dc0 | 6d 65 7d 60 2c 0a 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 | me}`,.....isError:.true,....};.. |
| 5de0 | 09 7d 0a 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 66 6f 72 20 73 68 | .}....//.Permission.check.for.sh |
| 5e00 | 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 e2 80 94 20 6f 6e 6c 79 20 70 72 6f 6d 70 74 20 66 6f 72 | ell.commands.....only.prompt.for |
| 5e20 | 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 2e 0a 09 09 2f 2f | .external.directory.access....// |
| 5e40 | 20 43 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 73 74 61 79 20 77 69 74 68 69 6e 20 74 68 65 20 77 | .Commands.that.stay.within.the.w |
| 5e60 | 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 61 72 65 20 61 75 74 6f 2d 61 6c 6c 6f 77 65 | orking.directory.are.auto-allowe |
| 5e80 | 64 2e 0a 09 09 69 66 20 28 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 75 6e 5f 73 68 65 6c 6c 22 | d....if.(tc.name.===."run_shell" |
| 5ea0 | 20 26 26 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 | .&&.this.config.permissionChecke |
| 5ec0 | 72 29 20 7b 0a 09 09 09 63 6f 6e 73 74 20 63 6f 6d 6d 61 6e 64 20 3d 20 74 79 70 65 6f 66 20 74 | r).{....const.command.=.typeof.t |
| 5ee0 | 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 | c.arguments.command.===."string" |
| 5f00 | 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 2e 63 6f 6d 6d 61 6e 64 20 3a 20 22 22 3b 0a 09 09 | .?.tc.arguments.command.:."";... |
| 5f20 | 09 63 6f 6e 73 74 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 20 3d 20 74 68 69 73 2e 63 | .const.workingDirectory.=.this.c |
| 5f40 | 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 3b 0a 09 09 09 63 6f 6e 73 74 | onfig.workingDirectory;....const |
| 5f60 | 20 61 6e 61 6c 79 73 69 73 20 3d 20 61 77 61 69 74 20 61 6e 61 6c 79 7a 65 43 6f 6d 6d 61 6e 64 | .analysis.=.await.analyzeCommand |
| 5f80 | 28 63 6f 6d 6d 61 6e 64 2c 20 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 | (command,.workingDirectory);.... |
| 5fa0 | 63 6f 6e 73 74 20 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 72 75 6c 65 | const.ruleset.=.this.config.rule |
| 5fc0 | 73 65 74 20 3f 3f 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 65 78 74 65 | set.??.[];.....//.Check.for.exte |
| 5fe0 | 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 63 63 65 73 73 20 66 72 6f 6d 20 73 68 65 6c 6c | rnal.directory.access.from.shell |
| 6000 | 20 63 6f 6d 6d 61 6e 64 0a 09 09 09 69 66 20 28 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6c 65 | .command....if.(analysis.dirs.le |
| 6020 | 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 64 69 72 52 65 71 75 65 73 74 | ngth.>.0).{.....const.dirRequest |
| 6040 | 20 3d 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 74 65 72 6e 61 6c 5f | .=.{......permission:."external_ |
| 6060 | 64 69 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 3a 20 61 6e 61 6c 79 | directory",......patterns:.analy |
| 6080 | 73 69 73 2e 64 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a 60 29 2c 0a 09 | sis.dirs.map((d).=>.`${d}/*`),.. |
| 60a0 | 09 09 09 09 61 6c 77 61 79 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6d 61 70 28 28 64 | ....always:.analysis.dirs.map((d |
| 60c0 | 29 20 3d 3e 20 60 24 7b 64 7d 2f 2a 60 29 2c 0a 09 09 09 09 09 64 65 73 63 72 69 70 74 69 6f 6e | ).=>.`${d}/*`),......description |
| 60e0 | 3a 20 60 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 61 63 63 65 73 73 65 73 20 65 78 74 65 72 6e | :.`Shell.command.accesses.extern |
| 6100 | 61 6c 20 64 69 72 65 63 74 6f 72 79 3a 20 24 7b 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 2e 6a 6f | al.directory:.${analysis.dirs.jo |
| 6120 | 69 6e 28 22 2c 20 22 29 7d 60 2c 0a 09 09 09 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 63 6f 6d | in(",.")}`,......metadata:.{.com |
| 6140 | 6d 61 6e 64 2c 20 64 69 72 73 3a 20 61 6e 61 6c 79 73 69 73 2e 64 69 72 73 20 7d 2c 0a 09 09 09 | mand,.dirs:.analysis.dirs.},.... |
| 6160 | 09 7d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 64 69 72 52 65 70 6c | .};.....try.{......const.dirRepl |
| 6180 | 79 20 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e | y.=.await.this.config.permission |
| 61a0 | 43 68 65 63 6b 65 72 2e 61 73 6b 28 64 69 72 52 65 71 75 65 73 74 2c 20 5b 72 75 6c 65 73 65 74 | Checker.ask(dirRequest,.[ruleset |
| 61c0 | 5d 29 3b 0a 09 09 09 09 09 69 66 20 28 64 69 72 52 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 63 | ]);......if.(dirReply.===."rejec |
| 61e0 | 74 22 29 20 7b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f 6c | t").{.......return.{........tool |
| 6200 | 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 | CallId:.tc.id,........toolName:. |
| 6220 | 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 | tc.name,........result:.`Permiss |
| 6240 | 69 6f 6e 20 64 65 6e 69 65 64 3a 20 61 63 63 65 73 73 20 74 6f 20 65 78 74 65 72 6e 61 6c 20 64 | ion.denied:.access.to.external.d |
| 6260 | 69 72 65 63 74 6f 72 69 65 73 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 09 09 09 09 09 09 69 73 45 | irectories.rejected`,........isE |
| 6280 | 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 7d 0a 09 09 09 09 | rror:.true,.......};......}..... |
| 62a0 | 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 74 6f | }.catch.{......return.{.......to |
| 62c0 | 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a | olCallId:.tc.id,.......toolName: |
| 62e0 | 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 | .tc.name,.......result:.`Permiss |
| 6300 | 69 6f 6e 20 64 65 6e 69 65 64 3a 20 65 78 74 65 72 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 61 | ion.denied:.external.directory.a |
| 6320 | 63 63 65 73 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 73 45 72 72 6f | ccess.not.allowed`,.......isErro |
| 6340 | 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09 7d 0a | r:.true,......};.....}....}...}. |
| 6360 | 0a 09 09 2f 2f 20 50 65 72 6d 69 73 73 69 6f 6e 20 63 68 65 63 6b 20 66 6f 72 20 66 69 6c 65 20 | ...//.Permission.check.for.file. |
| 6380 | 74 6f 6f 6c 73 20 61 63 63 65 73 73 69 6e 67 20 70 61 74 68 73 20 6f 75 74 73 69 64 65 20 77 6f | tools.accessing.paths.outside.wo |
| 63a0 | 72 6b 73 70 61 63 65 0a 09 09 69 66 20 28 0a 09 09 09 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 | rkspace...if.(....this.config.pe |
| 63c0 | 72 6d 69 73 73 69 6f 6e 43 68 65 63 6b 65 72 20 26 26 0a 09 09 09 28 74 63 2e 6e 61 6d 65 20 3d | rmissionChecker.&&....(tc.name.= |
| 63e0 | 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d | ==."read_file".||.....tc.name.== |
| 6400 | 3d 20 22 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 | =."read_file_slice".||.....tc.na |
| 6420 | 6d 65 20 3d 3d 3d 20 22 77 72 69 74 65 5f 66 69 6c 65 22 20 7c 7c 0a 09 09 09 09 74 63 2e 6e 61 | me.===."write_file".||.....tc.na |
| 6440 | 6d 65 20 3d 3d 3d 20 22 6c 69 73 74 5f 66 69 6c 65 73 22 29 0a 09 09 29 20 7b 0a 09 09 09 63 6f | me.===."list_files")...).{....co |
| 6460 | 6e 73 74 20 70 61 74 68 41 72 67 20 3d 20 74 79 70 65 6f 66 20 74 63 2e 61 72 67 75 6d 65 6e 74 | nst.pathArg.=.typeof.tc.argument |
| 6480 | 73 2e 70 61 74 68 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 74 63 2e 61 72 67 75 6d 65 6e | s.path.===."string".?.tc.argumen |
| 64a0 | 74 73 2e 70 61 74 68 20 3a 20 22 2e 22 3b 0a 0a 09 09 09 2f 2f 20 43 61 6e 6f 6e 69 63 61 6c 69 | ts.path.:.".";.....//.Canonicali |
| 64c0 | 7a 65 20 61 6c 6c 20 74 68 72 65 65 20 73 6f 20 73 79 6d 6c 69 6e 6b 2d 69 6e 2d 77 6f 72 6b 64 | ze.all.three.so.symlink-in-workd |
| 64e0 | 69 72 20 65 73 63 61 70 65 73 20 61 72 65 20 64 65 74 65 63 74 65 64 0a 09 09 09 2f 2f 20 61 74 | ir.escapes.are.detected....//.at |
| 6500 | 20 74 68 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 67 61 74 65 20 28 6e 6f 74 20 6a 75 73 74 20 72 | .the.permission.gate.(not.just.r |
| 6520 | 65 6c 61 74 69 76 65 20 60 2e 2e 2f 60 20 74 72 61 76 65 72 73 61 6c 29 2e 20 54 68 65 0a 09 09 | elative.`../`.traversal)..The... |
| 6540 | 09 2f 2f 20 68 65 6c 70 65 72 20 77 61 6c 6b 73 20 75 70 20 74 6f 20 74 68 65 20 6e 65 61 72 65 | .//.helper.walks.up.to.the.neare |
| 6560 | 73 74 20 65 78 69 73 74 69 6e 67 20 61 6e 63 65 73 74 6f 72 20 77 68 65 6e 20 74 68 65 20 6c 65 | st.existing.ancestor.when.the.le |
| 6580 | 61 66 0a 09 09 09 2f 2f 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 28 77 72 69 74 65 5f 66 69 | af....//.doesn't.exist.(write_fi |
| 65a0 | 6c 65 20 63 72 65 61 74 69 6e 67 20 6e 65 77 20 66 69 6c 65 73 29 2c 20 73 6f 20 61 20 70 61 72 | le.creating.new.files),.so.a.par |
| 65c0 | 65 6e 74 0a 09 09 09 2f 2f 20 73 79 6d 6c 69 6e 6b 20 70 6f 69 6e 74 69 6e 67 20 6f 75 74 73 69 | ent....//.symlink.pointing.outsi |
| 65e0 | 64 65 20 74 68 65 20 77 6f 72 6b 64 69 72 20 69 73 20 73 74 69 6c 6c 20 63 61 75 67 68 74 2e 20 | de.the.workdir.is.still.caught.. |
| 6600 | 54 68 65 20 73 61 6d 65 0a 09 09 09 2f 2f 20 68 65 6c 70 65 72 20 69 73 20 75 73 65 64 20 69 6e | The.same....//.helper.is.used.in |
| 6620 | 73 69 64 65 20 74 68 65 20 74 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 e2 80 | side.the.tool.implementations... |
| 6640 | 94 20 6b 65 65 70 69 6e 67 20 74 68 65 0a 09 09 09 2f 2f 20 74 77 6f 20 6c 61 79 65 72 73 20 63 | ..keeping.the....//.two.layers.c |
| 6660 | 6f 6e 73 69 73 74 65 6e 74 20 73 6f 20 61 20 70 61 74 68 20 74 68 61 74 20 6c 6f 6f 6b 73 20 65 | onsistent.so.a.path.that.looks.e |
| 6680 | 78 74 65 72 6e 61 6c 20 68 65 72 65 20 61 6c 73 6f 0a 09 09 09 2f 2f 20 6c 6f 6f 6b 73 20 65 78 | xternal.here.also....//.looks.ex |
| 66a0 | 74 65 72 6e 61 6c 20 69 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 61 6e 64 20 76 69 63 65 20 76 65 72 | ternal.in.the.tool,.and.vice.ver |
| 66c0 | 73 61 2e 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 20 61 77 61 69 | sa.....const.resolvedPath.=.awai |
| 66e0 | 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 | t.canonicalize(this.config.worki |
| 6700 | 6e 67 44 69 72 65 63 74 6f 72 79 2c 20 70 61 74 68 41 72 67 29 3b 0a 09 09 09 63 6f 6e 73 74 20 | ngDirectory,.pathArg);....const. |
| 6720 | 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 20 3d 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 | resolvedWorkDir.=.await.canonica |
| 6740 | 6c 69 7a 65 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 | lize(this.config.workingDirector |
| 6760 | 79 29 3b 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 3d | y);....const.resolvedSpillRoot.= |
| 6780 | 20 61 77 61 69 74 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 28 53 50 49 4c 4c 5f 52 4f 4f 54 29 3b | .await.canonicalize(SPILL_ROOT); |
| 67a0 | 0a 0a 09 09 09 63 6f 6e 73 74 20 69 73 55 6e 64 65 72 57 6f 72 6b 64 69 72 20 3d 0a 09 09 09 09 | .....const.isUnderWorkdir.=..... |
| 67c0 | 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 72 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 | resolvedPath.===.resolvedWorkDir |
| 67e0 | 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 28 60 24 7b 72 | .||.resolvedPath.startsWith(`${r |
| 6800 | 65 73 6f 6c 76 65 64 57 6f 72 6b 44 69 72 7d 2f 60 29 3b 0a 09 09 09 2f 2f 20 44 69 73 70 61 74 | esolvedWorkDir}/`);....//.Dispat |
| 6820 | 63 68 27 73 20 6f 77 6e 20 74 6f 6f 6c 2d 6f 75 74 70 75 74 20 73 70 69 6c 6c 20 64 69 72 65 63 | ch's.own.tool-output.spill.direc |
| 6840 | 74 6f 72 79 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 6c 6c 6f 77 65 64 20 e2 80 94 0a 09 | tory.is.implicitly.allowed...... |
| 6860 | 09 09 2f 2f 20 74 68 65 20 41 49 20 72 65 63 65 69 76 65 73 20 61 20 74 72 75 6e 63 61 74 69 6f | ..//.the.AI.receives.a.truncatio |
| 6880 | 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 69 6e 67 20 68 65 72 65 20 61 6e 64 20 69 73 20 65 78 | n.notice.pointing.here.and.is.ex |
| 68a0 | 70 65 63 74 65 64 0a 09 09 09 2f 2f 20 74 6f 20 72 65 61 64 20 69 74 20 77 69 74 68 6f 75 74 20 | pected....//.to.read.it.without. |
| 68c0 | 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 2e 20 42 79 70 61 73 73 69 6e 67 20 74 68 | prompting.the.user..Bypassing.th |
| 68e0 | 65 20 65 78 74 65 72 6e 61 6c 2d 0a 09 09 09 2f 2f 20 64 69 72 65 63 74 6f 72 79 20 63 68 65 63 | e.external-....//.directory.chec |
| 6900 | 6b 20 68 65 72 65 20 6b 65 65 70 73 20 74 68 65 20 69 6e 73 70 65 63 74 69 6f 6e 20 66 6c 6f 77 | k.here.keeps.the.inspection.flow |
| 6920 | 20 66 72 69 63 74 69 6f 6e 6c 65 73 73 2e 0a 09 09 09 63 6f 6e 73 74 20 69 73 53 70 69 6c 6c 50 | .frictionless.....const.isSpillP |
| 6940 | 61 74 68 20 3d 0a 09 09 09 09 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 72 65 73 6f 6c | ath.=.....resolvedPath.===.resol |
| 6960 | 76 65 64 53 70 69 6c 6c 52 6f 6f 74 20 7c 7c 20 72 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 | vedSpillRoot.||.resolvedPath.sta |
| 6980 | 72 74 73 57 69 74 68 28 60 24 7b 72 65 73 6f 6c 76 65 64 53 70 69 6c 6c 52 6f 6f 74 7d 2f 60 29 | rtsWith(`${resolvedSpillRoot}/`) |
| 69a0 | 3b 0a 0a 09 09 09 2f 2f 20 41 67 65 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 6c 69 76 65 20 | ;.....//.Agent.definitions.live. |
| 69c0 | 69 6e 20 77 65 6c 6c 2d 6b 6e 6f 77 6e 20 64 69 72 65 63 74 6f 72 69 65 73 0a 09 09 09 2f 2f 20 | in.well-known.directories....//. |
| 69e0 | 28 60 7e 2f 2e 63 6f 6e 66 69 67 2f 64 69 73 70 61 74 63 68 2f 61 67 65 6e 74 73 2f 60 20 61 6e | (`~/.config/dispatch/agents/`.an |
| 6a00 | 64 0a 09 09 09 2f 2f 20 60 3c 77 6f 72 6b 64 69 72 3e 2f 2e 64 69 73 70 61 74 63 68 2f 61 67 65 | d....//.`<workdir>/.dispatch/age |
| 6a20 | 6e 74 73 2f 60 29 2e 20 52 65 61 64 69 6e 67 20 74 68 6f 73 65 20 69 73 20 61 0a 09 09 09 2f 2f | nts/`)..Reading.those.is.a....// |
| 6a40 | 20 70 72 65 72 65 71 75 69 73 69 74 65 20 66 6f 72 20 74 68 65 20 73 75 6d 6d 6f 6e 20 74 6f 6f | .prerequisite.for.the.summon.too |
| 6a60 | 6c 27 73 20 22 73 70 65 63 69 66 79 20 77 68 69 63 68 20 73 75 62 61 67 65 6e 74 22 0a 09 09 09 | l's."specify.which.subagent".... |
| 6a80 | 2f 2f 20 66 6c 6f 77 20 e2 80 94 20 74 68 65 20 4c 4c 4d 20 6e 65 65 64 73 20 74 6f 20 69 6e 73 | //.flow.....the.LLM.needs.to.ins |
| 6aa0 | 70 65 63 74 20 74 68 65 20 54 4f 4d 4c 20 74 6f 20 6b 6e 6f 77 20 77 68 61 74 20 65 61 63 68 0a | pect.the.TOML.to.know.what.each. |
| 6ac0 | 09 09 09 2f 2f 20 61 67 65 6e 74 20 64 6f 65 73 2e 20 57 65 20 61 75 74 6f 2d 61 6c 6c 6f 77 20 | ...//.agent.does..We.auto-allow. |
| 6ae0 | 52 45 41 44 2d 4f 4e 4c 59 20 74 6f 6f 6c 73 20 75 6e 64 65 72 20 74 68 6f 73 65 20 70 61 74 68 | READ-ONLY.tools.under.those.path |
| 6b00 | 73 0a 09 09 09 2f 2f 20 77 69 74 68 6f 75 74 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 | s....//.without.prompting.the.us |
| 6b20 | 65 72 2e 20 57 72 69 74 65 73 20 28 60 77 72 69 74 65 5f 66 69 6c 65 60 29 20 73 74 69 6c 6c 20 | er..Writes.(`write_file`).still. |
| 6b40 | 67 6f 0a 09 09 09 2f 2f 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 6f 72 6d 61 6c 20 65 78 74 65 | go....//.through.the.normal.exte |
| 6b60 | 72 6e 61 6c 5f 64 69 72 65 63 74 6f 72 79 20 67 61 74 65 20 73 6f 20 61 6e 20 61 67 65 6e 74 20 | rnal_directory.gate.so.an.agent. |
| 6b80 | 63 61 6e 27 74 0a 09 09 09 2f 2f 20 71 75 69 65 74 6c 79 20 6f 76 65 72 77 72 69 74 65 20 61 6e | can't....//.quietly.overwrite.an |
| 6ba0 | 6f 74 68 65 72 20 61 67 65 6e 74 27 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 09 09 09 63 6f 6e | other.agent's.definition.....con |
| 6bc0 | 73 74 20 69 73 52 65 61 64 4f 6e 6c 79 54 6f 6f 6c 20 3d 0a 09 09 09 09 74 63 2e 6e 61 6d 65 20 | st.isReadOnlyTool.=.....tc.name. |
| 6be0 | 3d 3d 3d 20 22 72 65 61 64 5f 66 69 6c 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 | ===."read_file".||.tc.name.===." |
| 6c00 | 72 65 61 64 5f 66 69 6c 65 5f 73 6c 69 63 65 22 20 7c 7c 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 | read_file_slice".||.tc.name.===. |
| 6c20 | 22 6c 69 73 74 5f 66 69 6c 65 73 22 3b 0a 09 09 09 6c 65 74 20 69 73 41 67 65 6e 74 73 44 69 72 | "list_files";....let.isAgentsDir |
| 6c40 | 52 65 61 64 4f 6e 6c 79 20 3d 20 66 61 6c 73 65 3b 0a 09 09 09 69 66 20 28 69 73 52 65 61 64 4f | ReadOnly.=.false;....if.(isReadO |
| 6c60 | 6e 6c 79 54 6f 6f 6c 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 61 67 65 6e 74 44 69 72 73 20 3d | nlyTool).{.....const.agentDirs.= |
| 6c80 | 20 67 65 74 41 67 65 6e 74 44 69 72 50 61 74 68 73 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 77 6f | .getAgentDirPaths(this.config.wo |
| 6ca0 | 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 63 61 6e 6f 6e | rkingDirectory);.....const.canon |
| 6cc0 | 69 63 61 6c 41 67 65 6e 74 44 69 72 73 20 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 73 65 2e 61 6c | icalAgentDirs.=.await.Promise.al |
| 6ce0 | 6c 28 61 67 65 6e 74 44 69 72 73 2e 6d 61 70 28 28 64 29 20 3d 3e 20 63 61 6e 6f 6e 69 63 61 6c | l(agentDirs.map((d).=>.canonical |
| 6d00 | 69 7a 65 28 64 29 29 29 3b 0a 09 09 09 09 69 73 41 67 65 6e 74 73 44 69 72 52 65 61 64 4f 6e 6c | ize(d)));.....isAgentsDirReadOnl |
| 6d20 | 79 20 3d 20 63 61 6e 6f 6e 69 63 61 6c 41 67 65 6e 74 44 69 72 73 2e 73 6f 6d 65 28 0a 09 09 09 | y.=.canonicalAgentDirs.some(.... |
| 6d40 | 09 09 28 64 29 20 3d 3e 20 72 65 73 6f 6c 76 65 64 50 61 74 68 20 3d 3d 3d 20 64 20 7c 7c 20 72 | ..(d).=>.resolvedPath.===.d.||.r |
| 6d60 | 65 73 6f 6c 76 65 64 50 61 74 68 2e 73 74 61 72 74 73 57 69 74 68 28 60 24 7b 64 7d 2f 60 29 2c | esolvedPath.startsWith(`${d}/`), |
| 6d80 | 0a 09 09 09 09 29 3b 0a 09 09 09 7d 0a 0a 09 09 09 69 66 20 28 21 69 73 55 6e 64 65 72 57 6f 72 | .....);....}.....if.(!isUnderWor |
| 6da0 | 6b 64 69 72 20 26 26 20 21 69 73 53 70 69 6c 6c 50 61 74 68 20 26 26 20 21 69 73 41 67 65 6e 74 | kdir.&&.!isSpillPath.&&.!isAgent |
| 6dc0 | 73 44 69 72 52 65 61 64 4f 6e 6c 79 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 70 65 72 6d 69 73 | sDirReadOnly).{.....const.permis |
| 6de0 | 73 69 6f 6e 54 79 70 65 20 3d 0a 09 09 09 09 09 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 72 65 61 | sionType.=......tc.name.===."rea |
| 6e00 | 64 5f 66 69 6c 65 22 20 3f 20 22 72 65 61 64 22 20 3a 20 74 63 2e 6e 61 6d 65 20 3d 3d 3d 20 22 | d_file".?."read".:.tc.name.===." |
| 6e20 | 77 72 69 74 65 5f 66 69 6c 65 22 20 3f 20 22 65 64 69 74 22 20 3a 20 22 6c 69 73 74 22 3b 0a 0a | write_file".?."edit".:."list";.. |
| 6e40 | 09 09 09 09 63 6f 6e 73 74 20 70 61 72 65 6e 74 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 72 65 | ....const.parentDir.=.dirname(re |
| 6e60 | 73 6f 6c 76 65 64 50 61 74 68 29 3b 0a 09 09 09 09 63 6f 6e 73 74 20 72 65 71 75 65 73 74 20 3d | solvedPath);.....const.request.= |
| 6e80 | 20 7b 0a 09 09 09 09 09 70 65 72 6d 69 73 73 69 6f 6e 3a 20 22 65 78 74 65 72 6e 61 6c 5f 64 69 | .{......permission:."external_di |
| 6ea0 | 72 65 63 74 6f 72 79 22 2c 0a 09 09 09 09 09 70 61 74 74 65 72 6e 73 3a 20 5b 60 24 7b 70 61 72 | rectory",......patterns:.[`${par |
| 6ec0 | 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 61 6c 77 61 79 73 3a 20 5b 60 24 7b 70 61 | entDir}/*`],......always:.[`${pa |
| 6ee0 | 72 65 6e 74 44 69 72 7d 2f 2a 60 5d 2c 0a 09 09 09 09 09 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 | rentDir}/*`],......description:. |
| 6f00 | 60 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 66 69 6c 65 20 6f 75 74 73 69 64 65 20 | `${permissionType}.file.outside. |
| 6f20 | 77 6f 72 6b 73 70 61 63 65 3a 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 60 2c 0a 09 09 09 | workspace:.${resolvedPath}`,.... |
| 6f40 | 09 09 6d 65 74 61 64 61 74 61 3a 20 7b 20 66 69 6c 65 70 61 74 68 3a 20 72 65 73 6f 6c 76 65 64 | ..metadata:.{.filepath:.resolved |
| 6f60 | 50 61 74 68 2c 20 70 61 72 65 6e 74 44 69 72 2c 20 6f 70 65 72 61 74 69 6f 6e 3a 20 70 65 72 6d | Path,.parentDir,.operation:.perm |
| 6f80 | 69 73 73 69 6f 6e 54 79 70 65 20 7d 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 63 6f 6e 73 74 20 | issionType.},.....};......const. |
| 6fa0 | 72 75 6c 65 73 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 72 75 6c 65 73 65 74 20 3f 3f | ruleset.=.this.config.ruleset.?? |
| 6fc0 | 20 5b 5d 3b 0a 09 09 09 09 74 72 79 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 72 65 70 6c 79 20 | .[];.....try.{......const.reply. |
| 6fe0 | 3d 20 61 77 61 69 74 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 65 72 6d 69 73 73 69 6f 6e 43 68 | =.await.this.config.permissionCh |
| 7000 | 65 63 6b 65 72 2e 61 73 6b 28 72 65 71 75 65 73 74 2c 20 5b 72 75 6c 65 73 65 74 5d 29 3b 0a 09 | ecker.ask(request,.[ruleset]);.. |
| 7020 | 09 09 09 09 69 66 20 28 72 65 70 6c 79 20 3d 3d 3d 20 22 72 65 6a 65 63 74 22 29 20 7b 0a 09 09 | ....if.(reply.===."reject").{... |
| 7040 | 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 | ....return.{........toolCallId:. |
| 7060 | 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c | tc.id,........toolName:.tc.name, |
| 7080 | 0a 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 | ........result:.`Permission.deni |
| 70a0 | 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 65 7d 20 61 63 63 65 73 73 20 74 6f 20 | ed:.${permissionType}.access.to. |
| 70c0 | 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 20 72 65 6a 65 63 74 65 64 60 2c 0a 09 09 09 09 09 | ${resolvedPath}.rejected`,...... |
| 70e0 | 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 7d | ..isError:.true,.......};......} |
| 7100 | 0a 09 09 09 09 7d 20 63 61 74 63 68 20 7b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 | .....}.catch.{......return.{.... |
| 7120 | 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 0a 09 09 09 09 09 09 74 6f 6f 6c | ...toolCallId:.tc.id,.......tool |
| 7140 | 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 50 65 | Name:.tc.name,.......result:.`Pe |
| 7160 | 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 3a 20 24 7b 70 65 72 6d 69 73 73 69 6f 6e 54 79 70 | rmission.denied:.${permissionTyp |
| 7180 | 65 7d 20 61 63 63 65 73 73 20 74 6f 20 24 7b 72 65 73 6f 6c 76 65 64 50 61 74 68 7d 20 6e 6f 74 | e}.access.to.${resolvedPath}.not |
| 71a0 | 20 61 6c 6c 6f 77 65 64 60 2c 0a 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a | .allowed`,.......isError:.true,. |
| 71c0 | 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09 7d 0a 0a 09 09 74 72 79 20 7b 0a | .....};.....}....}...}....try.{. |
| 71e0 | 09 09 09 63 6f 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 6f 6f 6c 2e 65 78 65 63 | ...const.execPromise.=.tool.exec |
| 7200 | 75 74 65 28 74 63 2e 61 72 67 75 6d 65 6e 74 73 2c 20 7b 0a 09 09 09 09 6f 6e 4f 75 74 70 75 74 | ute(tc.arguments,.{.....onOutput |
| 7220 | 3a 20 28 64 61 74 61 3a 20 73 74 72 69 6e 67 2c 20 73 74 72 65 61 6d 3a 20 22 73 74 64 6f 75 74 | :.(data:.string,.stream:."stdout |
| 7240 | 22 20 7c 20 22 73 74 64 65 72 72 22 29 20 3d 3e 20 7b 0a 09 09 09 09 09 73 68 65 6c 6c 4f 75 74 | ".|."stderr").=>.{......shellOut |
| 7260 | 70 75 74 51 75 65 75 65 2e 70 75 73 68 28 7b 20 64 61 74 61 2c 20 73 74 72 65 61 6d 20 7d 29 3b | putQueue.push({.data,.stream.}); |
| 7280 | 0a 09 09 09 09 7d 2c 0a 09 09 09 09 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 3a 20 74 68 69 73 | .....},.....queueCallbacks:.this |
| 72a0 | 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 2c 0a 09 09 09 7d 29 3b 0a 0a 09 09 09 63 6f 6e 73 | .queueCallbacks,....});.....cons |
| 72c0 | 74 20 72 61 77 52 65 73 75 6c 74 20 3d 20 61 77 61 69 74 20 65 78 65 63 50 72 6f 6d 69 73 65 3b | t.rawResult.=.await.execPromise; |
| 72e0 | 0a 09 09 09 63 6f 6e 73 74 20 72 65 73 75 6c 74 53 74 72 20 3d 20 74 79 70 65 6f 66 20 72 61 77 | ....const.resultStr.=.typeof.raw |
| 7300 | 52 65 73 75 6c 74 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 20 3f 20 72 61 77 52 65 73 75 6c 74 20 | Result.===."string".?.rawResult. |
| 7320 | 3a 20 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 72 61 77 52 65 73 75 6c 74 29 3b 0a 0a 09 09 | :.JSON.stringify(rawResult);.... |
| 7340 | 09 2f 2f 20 43 6f 6d 70 75 74 65 20 69 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 72 61 77 20 28 | .//.Compute.isError.on.the.raw.( |
| 7360 | 75 6e 74 72 75 6e 63 61 74 65 64 29 20 73 74 72 69 6e 67 20 73 6f 20 61 6e 20 60 45 72 72 6f 72 | untruncated).string.so.an.`Error |
| 7380 | 3a 60 20 70 72 65 66 69 78 0a 09 09 09 2f 2f 20 74 68 61 74 20 6c 69 76 65 73 20 61 6e 79 77 68 | :`.prefix....//.that.lives.anywh |
| 73a0 | 65 72 65 20 e2 80 94 20 69 6e 63 6c 75 64 69 6e 67 20 62 65 79 6f 6e 64 20 74 68 65 20 68 65 61 | ere.....including.beyond.the.hea |
| 73c0 | 64 20 65 78 63 65 72 70 74 20 e2 80 94 20 69 73 20 73 74 69 6c 6c 0a 09 09 09 2f 2f 20 64 65 74 | d.excerpt.....is.still....//.det |
| 73e0 | 65 63 74 65 64 2e 20 54 68 65 20 64 69 73 70 6c 61 79 20 72 65 73 75 6c 74 20 67 6f 65 73 20 74 | ected..The.display.result.goes.t |
| 7400 | 68 72 6f 75 67 68 20 75 6e 69 76 65 72 73 61 6c 20 74 72 75 6e 63 61 74 69 6f 6e 20 73 6f 0a 09 | hrough.universal.truncation.so.. |
| 7420 | 09 09 2f 2f 20 6f 76 65 72 73 69 7a 65 64 20 6f 75 74 70 75 74 73 20 64 6f 6e 27 74 20 62 6c 6f | ..//.oversized.outputs.don't.blo |
| 7440 | 77 20 63 6f 6e 74 65 78 74 2e 20 54 68 65 20 66 75 6c 6c 20 63 6f 6e 74 65 6e 74 20 6c 69 76 65 | w.context..The.full.content.live |
| 7460 | 73 20 69 6e 20 74 68 65 0a 09 09 09 2f 2f 20 73 70 69 6c 6c 20 66 69 6c 65 20 74 68 65 20 74 72 | s.in.the....//.spill.file.the.tr |
| 7480 | 75 6e 63 61 74 69 6f 6e 20 6e 6f 74 69 63 65 20 70 6f 69 6e 74 73 20 74 6f 2e 0a 09 09 09 63 6f | uncation.notice.points.to.....co |
| 74a0 | 6e 73 74 20 69 73 45 72 72 6f 72 20 3d 20 72 65 73 75 6c 74 53 74 72 2e 73 74 61 72 74 73 57 69 | nst.isError.=.resultStr.startsWi |
| 74c0 | 74 68 28 22 45 72 72 6f 72 3a 22 29 3b 0a 09 09 09 63 6f 6e 73 74 20 7b 20 64 69 73 70 6c 61 79 | th("Error:");....const.{.display |
| 74e0 | 52 65 73 75 6c 74 20 7d 20 3d 20 61 70 70 6c 79 54 72 75 6e 63 61 74 69 6f 6e 28 72 65 73 75 6c | Result.}.=.applyTruncation(resul |
| 7500 | 74 53 74 72 2c 20 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 | tStr,.{.....tabId:.this.config.t |
| 7520 | 61 62 49 64 20 3f 3f 20 22 64 65 66 61 75 6c 74 22 2c 0a 09 09 09 09 63 61 6c 6c 49 64 3a 20 74 | abId.??."default",.....callId:.t |
| 7540 | 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 | c.id,.....toolName:.tc.name,.... |
| 7560 | 7d 29 3b 0a 0a 09 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a | });.....return.{.....toolCallId: |
| 7580 | 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 | .tc.id,.....toolName:.tc.name,.. |
| 75a0 | 09 09 09 72 65 73 75 6c 74 3a 20 64 69 73 70 6c 61 79 52 65 73 75 6c 74 2c 0a 09 09 09 09 69 73 | ...result:.displayResult,.....is |
| 75c0 | 45 72 72 6f 72 2c 0a 09 09 09 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 72 72 29 20 7b 0a 09 | Error,....};...}.catch.(err).{.. |
| 75e0 | 09 09 72 65 74 75 72 6e 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 | ..return.{.....toolCallId:.tc.id |
| 7600 | 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 09 09 09 72 65 73 | ,.....toolName:.tc.name,.....res |
| 7620 | 75 6c 74 3a 20 65 72 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f 20 65 72 72 2e | ult:.err.instanceof.Error.?.err. |
| 7640 | 6d 65 73 73 61 67 65 20 3a 20 53 74 72 69 6e 67 28 65 72 72 29 2c 0a 09 09 09 09 69 73 45 72 72 | message.:.String(err),.....isErr |
| 7660 | 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 7d 0a 09 7d 0a 0a 09 2f 2a 2a 0a 09 20 2a | or:.true,....};...}..}.../**...* |
| 7680 | 20 42 75 69 6c 64 20 73 79 6e 74 68 65 74 69 63 20 60 74 6f 6f 6c 2d 72 65 73 75 6c 74 60 20 65 | .Build.synthetic.`tool-result`.e |
| 76a0 | 72 72 6f 72 20 65 76 65 6e 74 73 20 66 6f 72 20 65 76 65 72 79 20 74 6f 6f 6c 20 63 61 6c 6c 20 | rror.events.for.every.tool.call. |
| 76c0 | 69 6e 0a 09 20 2a 20 60 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 60 20 74 68 61 74 20 64 6f 65 73 | in...*.`stepToolCalls`.that.does |
| 76e0 | 20 6e 6f 74 20 79 65 74 20 68 61 76 65 20 61 20 72 65 63 6f 72 64 65 64 20 72 65 73 75 6c 74 20 | .not.yet.have.a.recorded.result. |
| 7700 | 69 6e 20 60 63 68 75 6e 6b 73 60 2e 0a 09 20 2a 0a 09 20 2a 20 57 68 65 6e 20 61 20 74 6f 6f 6c | in.`chunks`....*...*.When.a.tool |
| 7720 | 20 62 61 74 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 72 65 73 6f 6c 76 65 64 20 e2 80 94 | .batch.is.partially.resolved.... |
| 7740 | 20 65 2e 67 2e 20 6f 6e 65 20 74 6f 6f 6c 20 65 6d 69 74 74 65 64 20 61 0a 09 20 2a 20 60 74 6f | .e.g..one.tool.emitted.a...*.`to |
| 7760 | 6f 6c 2d 65 72 72 6f 72 60 20 77 68 69 6c 65 20 69 74 73 20 73 69 62 6c 69 6e 67 73 20 77 65 72 | ol-error`.while.its.siblings.wer |
| 7780 | 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2c 20 6f 72 20 74 68 65 20 73 74 72 65 61 6d 0a | e.never.executed,.or.the.stream. |
| 77a0 | 09 20 2a 20 61 62 6f 72 74 65 64 20 6d 69 64 2d 62 61 74 63 68 20 e2 80 94 20 74 68 65 20 75 6e | ..*.aborted.mid-batch.....the.un |
| 77c0 | 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 61 72 65 20 72 65 67 69 73 | resolved.tool-call.IDs.are.regis |
| 77e0 | 74 65 72 65 64 20 69 6e 20 74 68 65 0a 09 20 2a 20 68 69 73 74 6f 72 79 20 28 69 6e 73 69 64 65 | tered.in.the...*.history.(inside |
| 7800 | 20 60 74 6f 6f 6c 2d 62 61 74 63 68 60 20 63 68 75 6e 6b 73 29 20 62 75 74 20 68 61 76 65 20 6e | .`tool-batch`.chunks).but.have.n |
| 7820 | 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 2e 20 4f 6e 20 74 68 65 0a 09 20 2a 20 6e 65 | o.matching.result..On.the...*.ne |
| 7840 | 78 74 20 4c 4c 4d 20 72 6f 75 6e 64 2d 74 72 69 70 20 74 68 65 20 41 49 20 53 44 4b 20 74 68 72 | xt.LLM.round-trip.the.AI.SDK.thr |
| 7860 | 6f 77 73 20 60 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 60 2e 20 46 | ows.`MissingToolResultsError`..F |
| 7880 | 69 6c 6c 69 6e 67 0a 09 20 2a 20 69 6e 20 60 69 73 45 72 72 6f 72 3a 20 74 72 75 65 60 20 72 65 | illing...*.in.`isError:.true`.re |
| 78a0 | 73 75 6c 74 73 20 66 6f 72 20 74 68 6f 73 65 20 6f 72 70 68 61 6e 65 64 20 49 44 73 20 6b 65 65 | sults.for.those.orphaned.IDs.kee |
| 78c0 | 70 73 20 74 68 65 20 6f 6e 2d 74 68 65 2d 77 69 72 65 0a 09 20 2a 20 74 6f 6f 6c 2d 63 61 6c 6c | ps.the.on-the-wire...*.tool-call |
| 78e0 | 2f 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 70 61 69 72 69 6e 67 20 63 6f 6d 70 6c 65 74 65 2e 0a 09 | /tool-result.pairing.complete... |
| 7900 | 20 2a 0a 09 20 2a 20 43 61 6c 6c 65 72 20 69 73 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 | .*...*.Caller.is.responsible.for |
| 7920 | 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 65 76 | .`appendEventToChunks(chunks,.ev |
| 7940 | 74 29 60 20 2b 20 60 79 69 65 6c 64 60 69 6e 67 0a 09 20 2a 20 65 61 63 68 20 72 65 74 75 72 6e | t)`.+.`yield`ing...*.each.return |
| 7960 | 65 64 20 65 76 65 6e 74 2e 0a 09 20 2a 2f 0a 09 70 72 69 76 61 74 65 20 73 79 6e 74 68 65 73 69 | ed.event....*/..private.synthesi |
| 7980 | 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 73 74 65 70 54 6f 6f | zeResidualToolResults(...stepToo |
| 79a0 | 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c 43 61 6c 6c 5b 5d 2c 0a 09 09 63 68 75 6e 6b 73 3a 20 43 68 | lCalls:.ToolCall[],...chunks:.Ch |
| 79c0 | 75 6e 6b 5b 5d 2c 0a 09 09 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 2c | unk[],...defaultMessage:.string, |
| 79e0 | 0a 09 29 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 7b 0a 09 09 63 6f 6e 73 74 20 72 65 73 75 | ..):.AgentEvent[].{...const.resu |
| 7a00 | 6c 74 73 3a 20 41 67 65 6e 74 45 76 65 6e 74 5b 5d 20 3d 20 5b 5d 3b 0a 09 09 63 6f 6e 73 74 20 | lts:.AgentEvent[].=.[];...const. |
| 7a20 | 72 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 6e 67 3e 28 29 3b 0a 09 09 | resolved.=.new.Set<string>();... |
| 7a40 | 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 20 7b 0a 09 09 09 69 66 20 | for.(const.c.of.chunks).{....if. |
| 7a60 | 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 29 20 63 6f 6e 74 69 6e | (c.type.!==."tool-batch").contin |
| 7a80 | 75 65 3b 0a 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f 66 20 63 2e 63 61 6c | ue;....for.(const.entry.of.c.cal |
| 7aa0 | 6c 73 29 20 7b 0a 09 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 75 6c 74 20 21 3d 3d 20 75 | ls).{.....if.(entry.result.!==.u |
| 7ac0 | 6e 64 65 66 69 6e 65 64 29 20 72 65 73 6f 6c 76 65 64 2e 61 64 64 28 65 6e 74 72 79 2e 69 64 29 | ndefined).resolved.add(entry.id) |
| 7ae0 | 3b 0a 09 09 09 7d 0a 09 09 7d 0a 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 74 63 20 6f 66 20 73 74 | ;....}...}...for.(const.tc.of.st |
| 7b00 | 65 70 54 6f 6f 6c 43 61 6c 6c 73 29 20 7b 0a 09 09 09 69 66 20 28 72 65 73 6f 6c 76 65 64 2e 68 | epToolCalls).{....if.(resolved.h |
| 7b20 | 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 63 6f 6e 73 74 20 74 72 | as(tc.id)).continue;....const.tr |
| 7b40 | 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 0a 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a | :.ToolResult.=.{.....toolCallId: |
| 7b60 | 20 74 63 2e 69 64 2c 0a 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 2c 0a 09 | .tc.id,.....toolName:.tc.name,.. |
| 7b80 | 09 09 09 72 65 73 75 6c 74 3a 20 64 65 66 61 75 6c 74 4d 65 73 73 61 67 65 2c 0a 09 09 09 09 69 | ...result:.defaultMessage,.....i |
| 7ba0 | 73 45 72 72 6f 72 3a 20 74 72 75 65 2c 0a 09 09 09 7d 3b 0a 09 09 09 63 6f 6e 73 74 20 65 76 74 | sError:.true,....};....const.evt |
| 7bc0 | 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 | :.AgentEvent.=.{.type:."tool-res |
| 7be0 | 75 6c 74 22 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 74 72 20 7d 3b 0a 09 09 09 72 65 73 75 6c | ult",.toolResult:.tr.};....resul |
| 7c00 | 74 73 2e 70 75 73 68 28 65 76 74 29 3b 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 72 65 73 75 6c | ts.push(evt);...}...return.resul |
| 7c20 | 74 73 3b 0a 09 7d 0a 0a 09 61 73 79 6e 63 20 2a 72 75 6e 28 0a 09 09 75 73 65 72 4d 65 73 73 61 | ts;..}...async.*run(...userMessa |
| 7c40 | 67 65 3a 20 73 74 72 69 6e 67 2c 0a 09 09 6f 70 74 69 6f 6e 73 3f 3a 20 7b 0a 09 09 09 72 65 61 | ge:.string,...options?:.{....rea |
| 7c60 | 73 6f 6e 69 6e 67 45 66 66 6f 72 74 3f 3a 20 22 6e 6f 6e 65 22 20 7c 20 22 6c 6f 77 22 20 7c 20 | soningEffort?:."none".|."low".|. |
| 7c80 | 22 6d 65 64 69 75 6d 22 20 7c 20 22 68 69 67 68 22 20 7c 20 22 6d 61 78 22 3b 0a 09 09 09 61 62 | "medium".|."high".|."max";....ab |
| 7ca0 | 6f 72 74 53 69 67 6e 61 6c 3f 3a 20 41 62 6f 72 74 53 69 67 6e 61 6c 3b 0a 09 09 7d 2c 0a 09 29 | ortSignal?:.AbortSignal;...},..) |
| 7cc0 | 3a 20 41 73 79 6e 63 47 65 6e 65 72 61 74 6f 72 3c 41 67 65 6e 74 45 76 65 6e 74 3e 20 7b 0a 09 | :.AsyncGenerator<AgentEvent>.{.. |
| 7ce0 | 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 72 75 6e 6e 69 6e 67 22 3b 0a 09 09 79 69 65 6c | .this.status.=."running";...yiel |
| 7d00 | 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 72 75 6e | d.{.type:."status",.status:."run |
| 7d20 | 6e 69 6e 67 22 20 7d 3b 0a 0a 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 70 75 73 68 28 7b | ning".};....this.messages.push({ |
| 7d40 | 20 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 20 63 68 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 | .role:."user",.chunks:.[{.type:. |
| 7d60 | 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 75 73 65 72 4d 65 73 73 61 67 65 20 7d 5d 20 7d 29 3b | "text",.text:.userMessage.}].}); |
| 7d80 | 0a 0a 09 09 63 6f 6e 73 74 20 72 65 67 69 73 74 72 79 20 3d 20 63 72 65 61 74 65 54 6f 6f 6c 52 | ....const.registry.=.createToolR |
| 7da0 | 65 67 69 73 74 72 79 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6f 6c 73 29 3b 0a 09 09 2f 2f | egistry(this.config.tools);...// |
| 7dc0 | 20 60 69 73 43 6c 61 75 64 65 4f 41 75 74 68 60 20 67 61 74 65 73 20 43 6c 61 75 64 65 2d 43 6f | .`isClaudeOAuth`.gates.Claude-Co |
| 7de0 | 64 65 2d 43 4c 49 2d 73 70 65 63 69 66 69 63 20 62 65 68 61 76 69 6f 72 3a 20 62 69 6c 6c 69 6e | de-CLI-specific.behavior:.billin |
| 7e00 | 67 2d 68 65 61 64 65 72 0a 09 09 2f 2f 20 69 6e 6a 65 63 74 69 6f 6e 2c 20 69 64 65 6e 74 69 74 | g-header...//.injection,.identit |
| 7e20 | 79 20 70 72 65 61 6d 62 6c 65 2c 20 60 6d 63 70 5f 2a 60 20 74 6f 6f 6c 20 6e 61 6d 65 20 70 72 | y.preamble,.`mcp_*`.tool.name.pr |
| 7e40 | 65 66 69 78 2c 20 61 6e 64 20 65 78 74 65 6e 64 65 64 0a 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 | efix,.and.extended...//.thinking |
| 7e60 | 20 63 6f 6e 66 69 67 2e 20 4f 6e 6c 79 20 74 68 65 20 4f 41 75 74 68 20 66 6c 6f 77 20 28 70 72 | .config..Only.the.OAuth.flow.(pr |
| 7e80 | 6f 76 69 64 65 72 3d 22 61 6e 74 68 72 6f 70 69 63 22 29 20 6e 65 65 64 73 20 74 68 65 73 65 2e | ovider="anthropic").needs.these. |
| 7ea0 | 0a 09 09 2f 2f 20 60 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 60 20 69 73 20 74 68 65 20 | ...//.`usesAnthropicSDK`.is.the. |
| 7ec0 | 62 72 6f 61 64 65 72 20 63 61 74 65 67 6f 72 79 20 e2 80 94 20 61 6e 79 20 70 72 6f 76 69 64 65 | broader.category.....any.provide |
| 7ee0 | 72 20 77 68 6f 73 65 0a 09 09 2f 2f 20 72 65 71 75 65 73 74 73 20 61 72 65 20 73 65 72 69 61 6c | r.whose...//.requests.are.serial |
| 7f00 | 69 7a 65 64 20 62 79 20 60 40 61 69 2d 73 64 6b 2f 61 6e 74 68 72 6f 70 69 63 60 20 61 6e 64 20 | ized.by.`@ai-sdk/anthropic`.and. |
| 7f20 | 74 68 65 72 65 66 6f 72 65 20 65 78 70 65 63 74 0a 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 2d | therefore.expect...//.Anthropic- |
| 7f40 | 73 74 79 6c 65 20 60 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 60 20 6d 61 72 6b 65 72 73 2e 20 54 | style.`cache_control`.markers..T |
| 7f60 | 6f 64 61 79 20 74 68 61 74 27 73 20 43 6c 61 75 64 65 20 4f 41 75 74 68 0a 09 09 2f 2f 20 70 6c | oday.that's.Claude.OAuth...//.pl |
| 7f80 | 75 73 20 4f 70 65 6e 43 6f 64 65 20 47 6f 27 73 20 4d 69 6e 69 4d 61 78 2f 51 77 65 6e 20 72 6f | us.OpenCode.Go's.MiniMax/Qwen.ro |
| 7fa0 | 75 74 65 73 2e 0a 09 09 63 6f 6e 73 74 20 69 73 43 6c 61 75 64 65 4f 41 75 74 68 20 3d 20 74 68 | utes....const.isClaudeOAuth.=.th |
| 7fc0 | 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 22 61 6e 74 68 72 6f 70 69 | is.config.provider.===."anthropi |
| 7fe0 | 63 22 3b 0a 09 09 63 6f 6e 73 74 20 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 20 3d 20 69 | c";...const.usesAnthropicSDK.=.i |
| 8000 | 73 43 6c 61 75 64 65 4f 41 75 74 68 20 7c 7c 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 | sClaudeOAuth.||.this.config.prov |
| 8020 | 69 64 65 72 20 3d 3d 3d 20 22 6f 70 65 6e 63 6f 64 65 2d 61 6e 74 68 72 6f 70 69 63 22 3b 0a 09 | ider.===."opencode-anthropic";.. |
| 8040 | 09 63 6f 6e 73 74 20 70 72 6f 76 69 64 65 72 46 61 63 74 6f 72 79 20 3d 20 63 72 65 61 74 65 50 | .const.providerFactory.=.createP |
| 8060 | 72 6f 76 69 64 65 72 28 7b 0a 09 09 09 61 70 69 4b 65 79 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 | rovider({....apiKey:.this.config |
| 8080 | 2e 61 70 69 4b 65 79 2c 0a 09 09 09 62 61 73 65 55 52 4c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 | .apiKey,....baseURL:.this.config |
| 80a0 | 2e 62 61 73 65 55 52 4c 2c 0a 09 09 09 70 72 6f 76 69 64 65 72 3a 20 74 68 69 73 2e 63 6f 6e 66 | .baseURL,....provider:.this.conf |
| 80c0 | 69 67 2e 70 72 6f 76 69 64 65 72 2c 0a 09 09 09 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c | ig.provider,....claudeCredential |
| 80e0 | 73 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 63 6c 61 75 64 65 43 72 65 64 65 6e 74 69 61 6c 73 | s:.this.config.claudeCredentials |
| 8100 | 2c 0a 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 | ,....tabId:.this.config.tabId,.. |
| 8120 | 09 7d 29 3b 0a 0a 09 09 2f 2f 20 4f 6e 6c 79 20 74 68 65 20 43 6c 61 75 64 65 20 4f 41 75 74 68 | .});....//.Only.the.Claude.OAuth |
| 8140 | 20 66 6c 6f 77 20 65 78 70 65 63 74 73 20 60 6d 63 70 5f 2a 60 20 70 72 65 66 69 78 65 64 20 74 | .flow.expects.`mcp_*`.prefixed.t |
| 8160 | 6f 6f 6c 20 6e 61 6d 65 73 2e 20 54 68 65 0a 09 09 2f 2f 20 4f 70 65 6e 43 6f 64 65 20 47 6f 20 | ool.names..The...//.OpenCode.Go. |
| 8180 | 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 20 65 6e 64 70 6f 69 6e 74 20 70 61 73 73 65 73 | anthropic-format.endpoint.passes |
| 81a0 | 20 74 6f 6f 6c 73 20 74 68 72 6f 75 67 68 20 74 6f 20 4d 69 6e 69 4d 61 78 0a 09 09 2f 2f 20 6f | .tools.through.to.MiniMax...//.o |
| 81c0 | 72 20 51 77 65 6e 2c 20 77 68 69 63 68 20 65 78 70 65 63 74 20 72 61 77 20 6e 61 6d 65 73 2e 0a | r.Qwen,.which.expect.raw.names.. |
| 81e0 | 09 09 63 6f 6e 73 74 20 61 69 54 6f 6f 6c 73 20 3d 20 72 65 67 69 73 74 72 79 2e 67 65 74 41 49 | ..const.aiTools.=.registry.getAI |
| 8200 | 53 44 4b 54 6f 6f 6c 73 28 29 3b 0a 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 73 20 3d 20 69 73 43 6c | SDKTools();...const.tools.=.isCl |
| 8220 | 61 75 64 65 4f 41 75 74 68 0a 09 09 09 3f 20 4f 62 6a 65 63 74 2e 66 72 6f 6d 45 6e 74 72 69 65 | audeOAuth....?.Object.fromEntrie |
| 8240 | 73 28 0a 09 09 09 09 09 4f 62 6a 65 63 74 2e 65 6e 74 72 69 65 73 28 61 69 54 6f 6f 6c 73 29 2e | s(......Object.entries(aiTools). |
| 8260 | 6d 61 70 28 28 5b 6e 61 6d 65 2c 20 74 6f 6f 6c 5d 29 20 3d 3e 20 5b 70 72 65 66 69 78 54 6f 6f | map(([name,.tool]).=>.[prefixToo |
| 8280 | 6c 4e 61 6d 65 28 6e 61 6d 65 29 2c 20 74 6f 6f 6c 5d 29 2c 0a 09 09 09 09 29 0a 09 09 09 3a 20 | lName(name),.tool]),.....)....:. |
| 82a0 | 61 69 54 6f 6f 6c 73 3b 0a 0a 09 09 2f 2f 20 42 75 69 6c 64 20 73 79 73 74 65 6d 20 70 72 6f 6d | aiTools;....//.Build.system.prom |
| 82c0 | 70 74 20 e2 80 94 20 43 6c 61 75 64 65 20 4f 41 75 74 68 20 72 65 71 75 65 73 74 73 20 65 6d 62 | pt.....Claude.OAuth.requests.emb |
| 82e0 | 65 64 20 61 20 62 69 6c 6c 69 6e 67 20 68 65 61 64 65 72 0a 09 09 2f 2f 20 61 6e 64 20 74 68 65 | ed.a.billing.header...//.and.the |
| 8300 | 20 43 6c 61 75 64 65 20 43 6f 64 65 20 69 64 65 6e 74 69 74 79 20 70 72 65 61 6d 62 6c 65 20 73 | .Claude.Code.identity.preamble.s |
| 8320 | 6f 20 41 6e 74 68 72 6f 70 69 63 20 72 65 63 6f 67 6e 69 7a 65 73 20 74 68 65 0a 09 09 2f 2f 20 | o.Anthropic.recognizes.the...//. |
| 8340 | 72 65 71 75 65 73 74 20 61 73 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 6f 66 66 69 63 | request.as.coming.from.the.offic |
| 8360 | 69 61 6c 20 43 4c 49 2e 0a 09 09 6c 65 74 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 20 3d 20 74 68 | ial.CLI....let.systemPrompt.=.th |
| 8380 | 69 73 2e 63 6f 6e 66 69 67 2e 73 79 73 74 65 6d 50 72 6f 6d 70 74 3b 0a 09 09 69 66 20 28 69 73 | is.config.systemPrompt;...if.(is |
| 83a0 | 43 6c 61 75 64 65 4f 41 75 74 68 29 20 7b 0a 09 09 09 2f 2f 20 60 62 75 69 6c 64 42 69 6c 6c 69 | ClaudeOAuth).{....//.`buildBilli |
| 83c0 | 6e 67 48 65 61 64 65 72 56 61 6c 75 65 60 20 68 69 73 74 6f 72 69 63 61 6c 6c 79 20 74 6f 6f 6b | ngHeaderValue`.historically.took |
| 83e0 | 20 60 7b 20 72 6f 6c 65 2c 20 63 6f 6e 74 65 6e 74 3a 20 73 74 72 69 6e 67 20 7d 5b 5d 60 2e 0a | .`{.role,.content:.string.}[]`.. |
| 8400 | 09 09 09 2f 2f 20 50 72 6f 6a 65 63 74 20 74 68 65 20 6e 65 77 20 63 68 75 6e 6b 2d 62 61 73 65 | ...//.Project.the.new.chunk-base |
| 8420 | 64 20 43 68 61 74 4d 65 73 73 61 67 65 20 73 68 61 70 65 20 6f 6e 74 6f 20 74 68 61 74 20 6c 65 | d.ChatMessage.shape.onto.that.le |
| 8440 | 67 61 63 79 20 73 68 61 70 65 0a 09 09 09 2f 2f 20 62 79 20 73 74 72 69 6e 67 69 66 79 69 6e 67 | gacy.shape....//.by.stringifying |
| 8460 | 20 74 65 78 74 20 63 68 75 6e 6b 73 2e 20 4f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 75 73 65 | .text.chunks..Only.the.first.use |
| 8480 | 72 20 6d 65 73 73 61 67 65 27 73 20 74 65 78 74 20 69 73 0a 09 09 09 2f 2f 20 61 63 74 75 61 6c | r.message's.text.is....//.actual |
| 84a0 | 6c 79 20 75 73 65 64 20 28 73 65 65 20 65 78 74 72 61 63 74 46 69 72 73 74 55 73 65 72 4d 65 73 | ly.used.(see.extractFirstUserMes |
| 84c0 | 73 61 67 65 54 65 78 74 29 20 e2 80 94 20 6e 6f 6e 2d 74 65 78 74 20 63 68 75 6e 6b 73 0a 09 09 | sageText).....non-text.chunks... |
| 84e0 | 09 2f 2f 20 73 61 66 65 6c 79 20 63 6f 6e 74 72 69 62 75 74 65 20 6e 6f 74 68 69 6e 67 2e 0a 09 | .//.safely.contribute.nothing... |
| 8500 | 09 09 63 6f 6e 73 74 20 6c 65 67 61 63 79 53 68 61 70 65 20 3d 20 74 68 69 73 2e 6d 65 73 73 61 | ..const.legacyShape.=.this.messa |
| 8520 | 67 65 73 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 28 7b 0a 09 09 09 09 72 6f 6c 65 3a 20 6d 2e 72 6f | ges.map((m).=>.({.....role:.m.ro |
| 8540 | 6c 65 2c 0a 09 09 09 09 63 6f 6e 74 65 6e 74 3a 20 6d 2e 63 68 75 6e 6b 73 0a 09 09 09 09 09 2e | le,.....content:.m.chunks....... |
| 8560 | 66 69 6c 74 65 72 28 28 63 29 3a 20 63 20 69 73 20 45 78 74 72 61 63 74 3c 43 68 75 6e 6b 2c 20 | filter((c):.c.is.Extract<Chunk,. |
| 8580 | 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 20 7d 3e 20 3d 3e 20 63 2e 74 79 70 65 20 3d 3d 3d 20 | {.type:."text".}>.=>.c.type.===. |
| 85a0 | 22 74 65 78 74 22 29 0a 09 09 09 09 09 2e 6d 61 70 28 28 63 29 20 3d 3e 20 63 2e 74 65 78 74 29 | "text").......map((c).=>.c.text) |
| 85c0 | 0a 09 09 09 09 09 2e 6a 6f 69 6e 28 22 22 29 2c 0a 09 09 09 7d 29 29 3b 0a 09 09 09 63 6f 6e 73 | .......join(""),....}));....cons |
| 85e0 | 74 20 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 20 3d 20 62 75 69 6c 64 42 69 6c 6c 69 6e 67 48 65 | t.billingHeader.=.buildBillingHe |
| 8600 | 61 64 65 72 56 61 6c 75 65 28 6c 65 67 61 63 79 53 68 61 70 65 29 3b 0a 09 09 09 73 79 73 74 65 | aderValue(legacyShape);....syste |
| 8620 | 6d 50 72 6f 6d 70 74 20 3d 20 60 24 7b 62 69 6c 6c 69 6e 67 48 65 61 64 65 72 7d 5c 6e 24 7b 53 | mPrompt.=.`${billingHeader}\n${S |
| 8640 | 59 53 54 45 4d 5f 49 44 45 4e 54 49 54 59 7d 5c 6e 5c 6e 24 7b 73 79 73 74 65 6d 50 72 6f 6d 70 | YSTEM_IDENTITY}\n\n${systemPromp |
| 8660 | 74 7d 60 3b 0a 09 09 7d 0a 0a 09 09 74 72 79 20 7b 0a 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f | t}`;...}....try.{....logAgentLoo |
| 8680 | 70 28 7b 0a 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 | p({.....tabId:.this.config.tabId |
| 86a0 | 2c 0a 09 09 09 09 65 76 65 6e 74 3a 20 22 72 75 6e 2d 73 74 61 72 74 22 2c 0a 09 09 09 09 64 65 | ,.....event:."run-start",.....de |
| 86c0 | 74 61 69 6c 3a 20 7b 20 6d 6f 64 65 6c 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 6c | tail:.{.model:.this.config.model |
| 86e0 | 2c 20 70 72 6f 76 69 64 65 72 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 70 72 6f 76 69 64 65 72 | ,.provider:.this.config.provider |
| 8700 | 20 7d 2c 0a 09 09 09 7d 29 3b 0a 09 09 09 2f 2f 20 53 69 6e 67 6c 65 20 63 68 75 6e 6b 20 61 63 | .},....});....//.Single.chunk.ac |
| 8720 | 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 74 68 65 20 65 6e 74 69 72 65 20 61 73 73 69 73 74 61 | cumulator.for.the.entire.assista |
| 8740 | 6e 74 20 74 75 72 6e 20 28 61 6c 6c 20 73 74 65 70 73 29 2e 0a 09 09 09 2f 2f 20 41 6c 6c 20 65 | nt.turn.(all.steps).....//.All.e |
| 8760 | 76 65 6e 74 2d 64 72 69 76 65 6e 20 6d 75 74 61 74 69 6f 6e 73 20 67 6f 20 74 68 72 6f 75 67 68 | vent-driven.mutations.go.through |
| 8780 | 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 60 2e 0a 09 09 09 63 6f 6e 73 74 | .`appendEventToChunks`.....const |
| 87a0 | 20 63 68 75 6e 6b 73 3a 20 43 68 75 6e 6b 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 2f 2f 20 57 65 | .chunks:.Chunk[].=.[];.....//.We |
| 87c0 | 20 62 75 69 6c 64 20 75 70 20 61 20 6c 6f 63 61 6c 20 6d 65 73 73 61 67 65 20 6c 69 73 74 20 66 | .build.up.a.local.message.list.f |
| 87e0 | 6f 72 20 6d 75 6c 74 69 2d 74 75 72 6e 20 77 69 74 68 69 6e 20 6f 6e 65 20 72 75 6e 28 29 20 63 | or.multi-turn.within.one.run().c |
| 8800 | 61 6c 6c 0a 09 09 09 2f 2f 20 74 68 61 74 20 69 6e 63 6c 75 64 65 73 20 74 6f 6f 6c 20 72 65 73 | all....//.that.includes.tool.res |
| 8820 | 75 6c 74 73 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 45 61 63 68 20 73 | ults.fed.back.to.the.LLM..Each.s |
| 8840 | 74 65 70 20 61 70 70 65 6e 64 73 0a 09 09 09 2f 2f 20 74 68 65 20 61 73 73 69 73 74 61 6e 74 27 | tep.appends....//.the.assistant' |
| 8860 | 73 20 65 76 6f 6c 76 69 6e 67 20 63 68 75 6e 6b 20 6c 69 73 74 20 61 73 20 6f 6e 65 20 43 68 61 | s.evolving.chunk.list.as.one.Cha |
| 8880 | 74 4d 65 73 73 61 67 65 3b 20 73 75 62 73 65 71 75 65 6e 74 0a 09 09 09 2f 2f 20 73 74 65 70 73 | tMessage;.subsequent....//.steps |
| 88a0 | 20 73 65 65 20 70 72 69 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 6e 64 20 74 68 65 69 72 20 | .see.prior.tool.calls.and.their. |
| 88c0 | 72 65 73 75 6c 74 73 20 76 69 61 20 74 68 65 20 63 68 75 6e 6b 73 2e 0a 09 09 09 63 6f 6e 73 74 | results.via.the.chunks.....const |
| 88e0 | 20 73 74 65 70 4d 65 73 73 61 67 65 73 3a 20 43 68 61 74 4d 65 73 73 61 67 65 5b 5d 20 3d 20 5b | .stepMessages:.ChatMessage[].=.[ |
| 8900 | 2e 2e 2e 74 68 69 73 2e 6d 65 73 73 61 67 65 73 5d 3b 0a 09 09 09 2f 2f 20 54 68 65 20 61 73 73 | ...this.messages];....//.The.ass |
| 8920 | 69 73 74 61 6e 74 20 43 68 61 74 4d 65 73 73 61 67 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 | istant.ChatMessage.for.the.curre |
| 8940 | 6e 74 20 74 75 72 6e 2c 20 73 68 61 72 65 64 20 61 63 72 6f 73 73 20 73 74 65 70 73 0a 09 09 09 | nt.turn,.shared.across.steps.... |
| 8960 | 2f 2f 20 73 6f 20 69 74 73 20 60 63 68 75 6e 6b 73 60 20 72 65 66 65 72 65 6e 63 65 20 6d 61 74 | //.so.its.`chunks`.reference.mat |
| 8980 | 63 68 65 73 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 61 62 6f 76 65 2e 20 57 65 20 70 | ches.the.accumulator.above..We.p |
| 89a0 | 75 73 68 0a 09 09 09 2f 2f 20 69 74 20 6f 6e 63 65 20 77 68 65 6e 20 74 68 65 20 66 69 72 73 74 | ush....//.it.once.when.the.first |
| 89c0 | 20 73 74 65 70 20 68 61 73 20 61 63 74 75 61 6c 20 6f 75 74 70 75 74 20 74 6f 20 72 65 63 6f 72 | .step.has.actual.output.to.recor |
| 89e0 | 64 2e 0a 09 09 09 6c 65 74 20 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 3a 20 | d.....let.assistantTurnMessage:. |
| 8a00 | 43 68 61 74 4d 65 73 73 61 67 65 20 7c 20 6e 75 6c 6c 20 3d 20 6e 75 6c 6c 3b 0a 0a 09 09 09 66 | ChatMessage.|.null.=.null;.....f |
| 8a20 | 6f 72 20 28 6c 65 74 20 73 74 65 70 20 3d 20 30 3b 20 73 74 65 70 20 3c 20 4d 41 58 5f 53 54 45 | or.(let.step.=.0;.step.<.MAX_STE |
| 8a40 | 50 53 3b 20 73 74 65 70 2b 2b 29 20 7b 0a 09 09 09 09 63 6f 6e 73 74 20 65 66 66 6f 72 74 20 3d | PS;.step++).{.....const.effort.= |
| 8a60 | 20 6f 70 74 69 6f 6e 73 3f 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 74 68 69 | .options?.reasoningEffort.??.thi |
| 8a80 | 73 2e 63 6f 6e 66 69 67 2e 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 20 3f 3f 20 22 6d 61 78 | s.config.reasoningEffort.??."max |
| 8aa0 | 22 3b 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 62 75 67 52 65 71 49 64 20 3d 20 6e 65 78 74 44 65 | ";.....const.debugReqId.=.nextDe |
| 8ac0 | 62 75 67 53 65 71 28 29 3b 0a 09 09 09 09 6c 6f 67 53 74 65 70 4c 69 66 65 63 79 63 6c 65 28 7b | bugSeq();.....logStepLifecycle({ |
| 8ae0 | 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a | ......tabId:.this.config.tabId,. |
| 8b00 | 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 76 65 6e 74 3a 20 22 73 74 65 70 2d 73 74 61 | .....step,......event:."step-sta |
| 8b20 | 72 74 22 2c 0a 09 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 65 66 66 6f 72 74 2c 20 68 69 73 74 | rt",......detail:.{.effort,.hist |
| 8b40 | 6f 72 79 4d 65 73 73 61 67 65 73 3a 20 73 74 65 70 4d 65 73 73 61 67 65 73 2e 6c 65 6e 67 74 68 | oryMessages:.stepMessages.length |
| 8b60 | 20 7d 2c 0a 09 09 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 75 69 6c 64 20 73 74 72 65 61 6d | .},.....});......//.Build.stream |
| 8b80 | 20 74 65 78 74 20 6f 70 74 69 6f 6e 73 0a 09 09 09 09 63 6f 6e 73 74 20 6d 6f 64 65 6c 20 3d 20 | .text.options.....const.model.=. |
| 8ba0 | 70 72 6f 76 69 64 65 72 46 61 63 74 6f 72 79 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6d 6f 64 65 | providerFactory(this.config.mode |
| 8bc0 | 6c 29 3b 0a 0a 09 09 09 09 2f 2f 20 42 75 69 6c 64 20 74 68 65 20 6d 65 73 73 61 67 65 20 6c 69 | l);......//.Build.the.message.li |
| 8be0 | 73 74 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 70 72 65 70 65 6e | st.with.the.system.prompt.prepen |
| 8c00 | 64 65 64 20 61 73 20 61 20 73 79 73 74 65 6d 0a 09 09 09 09 2f 2f 20 72 6f 6c 65 20 6d 65 73 73 | ded.as.a.system.....//.role.mess |
| 8c20 | 61 67 65 2e 20 54 68 69 73 20 69 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 41 6e 74 68 72 6f | age..This.is.required.for.Anthro |
| 8c40 | 70 69 63 20 70 72 6f 6d 70 74 20 63 61 63 68 69 6e 67 3a 20 74 68 65 0a 09 09 09 09 2f 2f 20 60 | pic.prompt.caching:.the.....//.` |
| 8c60 | 73 79 73 74 65 6d 60 20 73 68 6f 72 74 63 75 74 20 70 61 72 61 6d 65 74 65 72 20 74 61 6b 65 73 | system`.shortcut.parameter.takes |
| 8c80 | 20 61 20 70 6c 61 69 6e 20 73 74 72 69 6e 67 20 77 69 74 68 20 6e 6f 77 68 65 72 65 20 74 6f 0a | .a.plain.string.with.nowhere.to. |
| 8ca0 | 09 09 09 09 2f 2f 20 61 74 74 61 63 68 20 60 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2e 61 | ....//.attach.`providerOptions.a |
| 8cc0 | 6e 74 68 72 6f 70 69 63 2e 63 61 63 68 65 43 6f 6e 74 72 6f 6c 60 2e 20 4d 6f 76 69 6e 67 20 69 | nthropic.cacheControl`..Moving.i |
| 8ce0 | 74 20 69 6e 6c 69 6e 65 0a 09 09 09 09 2f 2f 20 61 6c 73 6f 20 6c 65 74 73 20 75 73 20 61 70 70 | t.inline.....//.also.lets.us.app |
| 8d00 | 6c 79 20 72 6f 6c 6c 69 6e 67 20 63 61 63 68 65 20 62 72 65 61 6b 70 6f 69 6e 74 73 20 74 6f 20 | ly.rolling.cache.breakpoints.to. |
| 8d20 | 74 68 65 20 6c 61 73 74 20 6d 65 73 73 61 67 65 73 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 79 73 | the.last.messages......const.sys |
| 8d40 | 74 65 6d 4d 65 73 73 61 67 65 3a 20 53 79 73 74 65 6d 4d 6f 64 65 6c 4d 65 73 73 61 67 65 20 3d | temMessage:.SystemModelMessage.= |
| 8d60 | 20 7b 0a 09 09 09 09 09 72 6f 6c 65 3a 20 22 73 79 73 74 65 6d 22 2c 0a 09 09 09 09 09 63 6f 6e | .{......role:."system",......con |
| 8d80 | 74 65 6e 74 3a 20 73 79 73 74 65 6d 50 72 6f 6d 70 74 2c 0a 09 09 09 09 7d 3b 0a 0a 09 09 09 09 | tent:.systemPrompt,.....};...... |
| 8da0 | 6c 65 74 20 63 6f 72 65 4d 65 73 73 61 67 65 73 3a 20 4d 6f 64 65 6c 4d 65 73 73 61 67 65 5b 5d | let.coreMessages:.ModelMessage[] |
| 8dc0 | 20 3d 20 5b 0a 09 09 09 09 09 73 79 73 74 65 6d 4d 65 73 73 61 67 65 2c 0a 09 09 09 09 09 2e 2e | .=.[......systemMessage,........ |
| 8de0 | 2e 74 6f 4d 6f 64 65 6c 4d 65 73 73 61 67 65 73 28 73 74 65 70 4d 65 73 73 61 67 65 73 2c 20 69 | .toModelMessages(stepMessages,.i |
| 8e00 | 73 43 6c 61 75 64 65 4f 41 75 74 68 29 2c 0a 09 09 09 09 5d 3b 0a 0a 09 09 09 09 2f 2f 20 41 70 | sClaudeOAuth),.....];......//.Ap |
| 8e20 | 70 6c 79 20 70 72 6f 76 69 64 65 72 2d 73 70 65 63 69 66 69 63 20 73 74 72 75 63 74 75 72 61 6c | ply.provider-specific.structural |
| 8e40 | 20 6e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 73 20 62 65 66 6f 72 65 0a 09 09 09 09 2f 2f 20 73 65 | .normalisations.before.....//.se |
| 8e60 | 6e 64 69 6e 67 2e 20 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 6f 70 65 6e 61 69 2d 63 6f 6d 70 | nding..Anthropic.and.openai-comp |
| 8e80 | 61 74 69 62 6c 65 20 70 61 74 68 73 20 65 61 63 68 20 68 61 76 65 0a 09 09 09 09 2f 2f 20 74 68 | atible.paths.each.have.....//.th |
| 8ea0 | 65 69 72 20 6f 77 6e 20 6d 65 73 73 61 67 65 2d 73 68 61 70 65 20 72 65 71 75 69 72 65 6d 65 6e | eir.own.message-shape.requiremen |
| 8ec0 | 74 73 3b 20 74 68 65 20 74 77 6f 20 70 61 73 73 65 73 20 61 72 65 0a 09 09 09 09 2f 2f 20 6d 75 | ts;.the.two.passes.are.....//.mu |
| 8ee0 | 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 2e 0a 09 09 09 09 69 66 20 28 75 73 65 73 41 6e | tually.exclusive......if.(usesAn |
| 8f00 | 74 68 72 6f 70 69 63 53 44 4b 29 20 7b 0a 09 09 09 09 09 63 6f 72 65 4d 65 73 73 61 67 65 73 20 | thropicSDK).{......coreMessages. |
| 8f20 | 3d 20 61 70 70 6c 79 41 6e 74 68 72 6f 70 69 63 53 74 72 75 63 74 75 72 61 6c 4e 6f 72 6d 61 6c | =.applyAnthropicStructuralNormal |
| 8f40 | 69 73 61 74 69 6f 6e 73 28 63 6f 72 65 4d 65 73 73 61 67 65 73 29 3b 0a 09 09 09 09 09 61 70 70 | isations(coreMessages);......app |
| 8f60 | 6c 79 41 6e 74 68 72 6f 70 69 63 43 61 63 68 69 6e 67 28 63 6f 72 65 4d 65 73 73 61 67 65 73 29 | lyAnthropicCaching(coreMessages) |
| 8f80 | 3b 0a 09 09 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 09 09 09 63 6f 72 65 4d 65 73 73 61 67 65 73 | ;.....}.else.{......coreMessages |
| 8fa0 | 20 3d 20 61 70 70 6c 79 4f 70 65 6e 41 49 43 6f 6d 70 61 74 69 62 6c 65 52 65 61 73 6f 6e 69 6e | .=.applyOpenAICompatibleReasonin |
| 8fc0 | 67 4e 6f 72 6d 61 6c 69 73 61 74 69 6f 6e 28 63 6f 72 65 4d 65 73 73 61 67 65 73 29 3b 0a 09 09 | gNormalisation(coreMessages);... |
| 8fe0 | 09 09 7d 0a 0a 09 09 09 09 63 6f 6e 73 74 20 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 3a 20 50 61 | ..}......const.streamOptions:.Pa |
| 9000 | 72 61 6d 65 74 65 72 73 3c 74 79 70 65 6f 66 20 73 74 72 65 61 6d 54 65 78 74 3e 5b 30 5d 20 3d | rameters<typeof.streamText>[0].= |
| 9020 | 20 7b 0a 09 09 09 09 09 6d 6f 64 65 6c 2c 0a 09 09 09 09 09 6d 65 73 73 61 67 65 73 3a 20 63 6f | .{......model,......messages:.co |
| 9040 | 72 65 4d 65 73 73 61 67 65 73 2c 0a 09 09 09 09 09 74 6f 6f 6c 73 2c 0a 09 09 09 09 09 61 62 6f | reMessages,......tools,......abo |
| 9060 | 72 74 53 69 67 6e 61 6c 3a 20 6f 70 74 69 6f 6e 73 3f 2e 61 62 6f 72 74 53 69 67 6e 61 6c 2c 0a | rtSignal:.options?.abortSignal,. |
| 9080 | 09 09 09 09 7d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 63 6f 75 72 61 67 65 20 74 6f 6f 6c 20 75 73 | ....};......//.Encourage.tool.us |
| 90a0 | 65 20 6f 6e 20 41 6e 74 68 72 6f 70 69 63 2e 20 57 69 74 68 6f 75 74 20 61 6e 20 65 78 70 6c 69 | e.on.Anthropic..Without.an.expli |
| 90c0 | 63 69 74 0a 09 09 09 09 2f 2f 20 60 74 6f 6f 6c 43 68 6f 69 63 65 60 2c 20 43 6c 61 75 64 65 20 | cit.....//.`toolChoice`,.Claude. |
| 90e0 | 28 65 73 70 65 63 69 61 6c 6c 79 20 4f 70 75 73 20 34 2e 37 20 77 69 74 68 20 61 64 61 70 74 69 | (especially.Opus.4.7.with.adapti |
| 9100 | 76 65 0a 09 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 29 20 63 61 6e 20 64 65 63 69 64 65 20 74 | ve.....//.thinking).can.decide.t |
| 9120 | 6f 20 22 74 68 69 6e 6b 20 66 6f 72 65 76 65 72 22 20 69 6e 73 74 65 61 64 20 6f 66 20 63 61 6c | o."think.forever".instead.of.cal |
| 9140 | 6c 69 6e 67 0a 09 09 09 09 2f 2f 20 74 68 65 20 74 6f 6f 6c 73 20 69 74 20 68 61 73 20 62 65 65 | ling.....//.the.tools.it.has.bee |
| 9160 | 6e 20 67 69 76 65 6e 2e 20 60 22 61 75 74 6f 22 60 20 6b 65 65 70 73 20 43 6c 61 75 64 65 20 66 | n.given..`"auto"`.keeps.Claude.f |
| 9180 | 72 65 65 20 74 6f 0a 09 09 09 09 2f 2f 20 61 6e 73 77 65 72 20 77 69 74 68 20 74 65 78 74 20 77 | ree.to.....//.answer.with.text.w |
| 91a0 | 68 65 6e 20 6e 6f 20 74 6f 6f 6c 20 69 73 20 6e 65 65 64 65 64 2c 20 77 68 69 6c 65 20 6d 61 6b | hen.no.tool.is.needed,.while.mak |
| 91c0 | 69 6e 67 20 74 68 65 0a 09 09 09 09 2f 2f 20 61 76 61 69 6c 61 62 69 6c 69 74 79 20 6f 66 20 74 | ing.the.....//.availability.of.t |
| 91e0 | 6f 6f 6c 73 20 61 6e 20 65 78 70 6c 69 63 69 74 20 73 69 67 6e 61 6c 20 69 6e 20 74 68 65 20 72 | ools.an.explicit.signal.in.the.r |
| 9200 | 65 71 75 65 73 74 2e 0a 09 09 09 09 69 66 20 28 69 73 43 6c 61 75 64 65 4f 41 75 74 68 29 20 7b | equest......if.(isClaudeOAuth).{ |
| 9220 | 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 74 6f 6f 6c 43 68 6f 69 63 65 20 3d | ......streamOptions.toolChoice.= |
| 9240 | 20 22 61 75 74 6f 22 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 69 66 20 28 69 73 43 6c 61 75 64 65 | ."auto";.....}......if.(isClaude |
| 9260 | 4f 41 75 74 68 20 26 26 20 65 66 66 6f 72 74 20 21 3d 3d 20 22 6e 6f 6e 65 22 29 20 7b 0a 09 09 | OAuth.&&.effort.!==."none").{... |
| 9280 | 09 09 09 2f 2f 20 76 36 20 6e 61 74 69 76 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 6e 74 68 | ...//.v6.native.support.for.Anth |
| 92a0 | 72 6f 70 69 63 20 61 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 20 76 69 61 0a 09 09 09 09 | ropic.adaptive.thinking.via..... |
| 92c0 | 09 2f 2f 20 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 2e 20 4e 6f 20 6d 6f 72 65 20 72 65 77 | .//.providerOptions..No.more.rew |
| 92e0 | 72 69 74 65 42 6f 64 79 46 6f 72 4f 70 75 73 34 37 20 62 6f 64 79 2d 0a 09 09 09 09 09 2f 2f 20 | riteBodyForOpus47.body-......//. |
| 9300 | 69 6e 6a 65 63 74 69 6f 6e 20 68 61 63 6b 20 6e 65 65 64 65 64 2e 0a 09 09 09 09 09 2f 2f 0a 09 | injection.hack.needed.......//.. |
| 9320 | 09 09 09 09 2f 2f 20 42 75 64 67 65 74 73 20 6d 69 72 72 6f 72 20 6f 70 65 6e 63 6f 64 65 20 74 | ....//.Budgets.mirror.opencode.t |
| 9340 | 72 61 6e 73 66 6f 72 6d 2e 74 73 3a 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 6d 61 78 20 20 62 75 | ransform.ts:......//...-.max..bu |
| 9360 | 64 67 65 74 20 3d 20 33 31 39 39 39 20 28 41 6e 74 68 72 6f 70 69 63 27 73 20 64 6f 63 75 6d 65 | dget.=.31999.(Anthropic's.docume |
| 9380 | 6e 74 65 64 20 63 65 69 6c 69 6e 67 3b 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 60 4d 61 74 68 2e | nted.ceiling;......//.....`Math. |
| 93a0 | 6d 69 6e 28 33 31 5f 39 39 39 2c 20 6d 6f 64 65 6c 2e 6c 69 6d 69 74 2e 6f 75 74 70 75 74 20 2d | min(31_999,.model.limit.output.- |
| 93c0 | 20 31 29 60 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6f 70 65 6e 63 6f 64 65 20 6c 69 6e | .1)`.in......//.....opencode.lin |
| 93e0 | 65 20 36 36 38 29 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 68 69 67 68 20 62 75 64 67 65 74 20 3d | e.668)......//...-.high.budget.= |
| 9400 | 20 31 36 30 30 30 20 28 6f 70 65 6e 63 6f 64 65 20 6c 69 6e 65 20 36 36 32 3a 0a 09 09 09 09 09 | .16000.(opencode.line.662:...... |
| 9420 | 2f 2f 20 20 20 20 20 60 4d 61 74 68 2e 6d 69 6e 28 31 36 5f 30 30 30 2c 20 4d 61 74 68 2e 66 6c | //.....`Math.min(16_000,.Math.fl |
| 9440 | 6f 6f 72 28 6d 6f 64 65 6c 2e 6c 69 6d 69 74 2e 6f 75 74 70 75 74 2f 32 2d 31 29 29 60 29 0a 09 | oor(model.limit.output/2-1))`).. |
| 9460 | 09 09 09 09 2f 2f 20 20 20 2d 20 6d 65 64 69 75 6d 2f 6c 6f 77 3a 20 6e 6f 20 6f 70 65 6e 63 6f | ....//...-.medium/low:.no.openco |
| 9480 | 64 65 20 65 71 75 69 76 61 6c 65 6e 74 20 e2 80 94 20 73 65 6e 73 69 62 6c 65 0a 09 09 09 09 09 | de.equivalent.....sensible...... |
| 94a0 | 2f 2f 20 20 20 20 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 64 65 66 61 75 6c 74 73 2e 0a 09 09 | //.....intermediate.defaults.... |
| 94c0 | 09 09 09 2f 2f 0a 09 09 09 09 09 2f 2f 20 60 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 60 20 | ...//......//.`maxOutputTokens`. |
| 94e0 | 69 73 20 74 68 65 20 54 4f 54 41 4c 20 6f 75 74 70 75 74 20 63 61 70 20 28 74 68 69 6e 6b 69 6e | is.the.TOTAL.output.cap.(thinkin |
| 9500 | 67 20 2b 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 63 6f 6d 62 69 6e 65 64 29 2e 20 | g.+......//.response.combined).. |
| 9520 | 41 6e 74 68 72 6f 70 69 63 27 73 20 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 20 6d 61 78 20 | Anthropic's.standard.output.max. |
| 9540 | 69 73 0a 09 09 09 09 09 2f 2f 20 33 32 4b 20 66 6f 72 20 43 6c 61 75 64 65 20 34 2e 78 3b 20 6d | is......//.32K.for.Claude.4.x;.m |
| 9560 | 61 74 63 68 69 6e 67 20 6f 70 65 6e 63 6f 64 65 27 73 20 4f 55 54 50 55 54 5f 54 4f 4b 45 4e 5f | atching.opencode's.OUTPUT_TOKEN_ |
| 9580 | 4d 41 58 0a 09 09 09 09 09 2f 2f 20 63 6f 6e 73 74 61 6e 74 2e 20 54 68 65 20 60 62 75 64 67 65 | MAX......//.constant..The.`budge |
| 95a0 | 74 5f 74 6f 6b 65 6e 73 60 20 66 69 65 6c 64 20 69 73 20 61 20 74 68 69 6e 6b 69 6e 67 0a 09 09 | t_tokens`.field.is.a.thinking... |
| 95c0 | 09 09 09 2f 2f 20 63 65 69 6c 69 6e 67 2c 20 6e 6f 74 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 | ...//.ceiling,.not.a.requirement |
| 95e0 | 2c 20 73 6f 20 74 68 65 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 0a 09 09 | ,.so.the.model.self-regulates... |
| 9600 | 09 09 09 2f 2f 20 74 68 69 6e 6b 69 6e 67 20 76 73 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 | ...//.thinking.vs.response.withi |
| 9620 | 6e 20 74 68 69 73 20 74 6f 74 61 6c 20 62 75 64 67 65 74 2e 0a 09 09 09 09 09 2f 2f 0a 09 09 09 | n.this.total.budget.......//.... |
| 9640 | 09 09 2f 2f 20 41 64 61 70 74 69 76 65 20 74 68 69 6e 6b 69 6e 67 20 73 70 65 63 69 66 69 63 73 | ..//.Adaptive.thinking.specifics |
| 9660 | 20 28 4f 70 75 73 20 34 2e 37 2b 2c 20 4f 70 75 73 2f 53 6f 6e 6e 65 74 20 34 2e 36 3b 20 6d 69 | .(Opus.4.7+,.Opus/Sonnet.4.6;.mi |
| 9680 | 72 72 6f 72 73 20 6f 70 65 6e 63 6f 64 65 0a 09 09 09 09 09 2f 2f 20 74 72 61 6e 73 66 6f 72 6d | rrors.opencode......//.transform |
| 96a0 | 2e 74 73 3a 36 34 32 2d 36 35 35 29 3a 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 74 68 69 6e 6b | .ts:642-655):......//...-.`think |
| 96c0 | 69 6e 67 2e 74 79 70 65 20 3d 20 22 61 64 61 70 74 69 76 65 22 60 20 e2 80 94 20 74 68 65 20 6d | ing.type.=."adaptive"`.....the.m |
| 96e0 | 6f 64 65 6c 20 64 65 63 69 64 65 73 20 68 6f 77 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6d 75 63 | odel.decides.how......//.....muc |
| 9700 | 68 20 74 6f 20 74 68 69 6e 6b 20 77 69 74 68 69 6e 20 60 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 | h.to.think.within.`maxOutputToke |
| 9720 | 6e 73 60 2e 0a 09 09 09 09 09 2f 2f 20 20 20 2d 20 60 74 68 69 6e 6b 69 6e 67 2e 64 69 73 70 6c | ns`.......//...-.`thinking.displ |
| 9740 | 61 79 20 3d 20 22 73 75 6d 6d 61 72 69 7a 65 64 22 60 20 e2 80 94 20 61 64 61 70 74 69 76 65 20 | ay.=."summarized"`.....adaptive. |
| 9760 | 74 68 69 6e 6b 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 66 6f 72 20 4f 70 75 73 20 34 2e | thinking......//.....for.Opus.4. |
| 9780 | 37 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 64 69 73 70 6c 61 79 3a 20 22 6f 6d 69 74 74 65 64 | 7.defaults.to.`display:."omitted |
| 97a0 | 22 60 2c 20 77 68 69 63 68 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 6d 65 61 6e 73 20 4e 4f 20 74 | "`,.which......//.....means.NO.t |
| 97c0 | 68 69 6e 6b 69 6e 67 20 63 6f 6e 74 65 6e 74 20 69 73 20 73 74 72 65 61 6d 65 64 20 74 6f 20 75 | hinking.content.is.streamed.to.u |
| 97e0 | 73 2e 20 53 65 74 74 69 6e 67 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 60 73 75 6d 6d 61 72 69 7a | s..Setting......//.....`summariz |
| 9800 | 65 64 60 20 69 73 20 77 68 61 74 20 6d 61 6b 65 73 20 74 68 65 20 74 68 69 6e 6b 69 6e 67 20 76 | ed`.is.what.makes.the.thinking.v |
| 9820 | 69 73 69 62 6c 65 20 69 6e 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 74 68 65 20 55 49 2e 0a 09 09 | isible.in......//.....the.UI.... |
| 9840 | 09 09 09 2f 2f 20 20 20 2d 20 60 65 66 66 6f 72 74 60 20 28 73 69 62 6c 69 6e 67 20 6f 66 20 60 | ...//...-.`effort`.(sibling.of.` |
| 9860 | 74 68 69 6e 6b 69 6e 67 60 29 20 e2 80 94 20 61 64 61 70 74 69 76 65 20 6e 65 65 64 73 20 61 6e | thinking`).....adaptive.needs.an |
| 9880 | 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 65 78 70 6c 69 63 69 74 20 65 66 66 6f 72 74 20 6c 65 76 | ......//.....explicit.effort.lev |
| 98a0 | 65 6c 2e 20 57 69 74 68 6f 75 74 20 69 74 2c 20 41 6e 74 68 72 6f 70 69 63 20 75 73 65 73 20 61 | el..Without.it,.Anthropic.uses.a |
| 98c0 | 0a 09 09 09 09 09 2f 2f 20 20 20 20 20 63 6f 6e 73 65 72 76 61 74 69 76 65 20 64 65 66 61 75 6c | ......//.....conservative.defaul |
| 98e0 | 74 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 62 61 72 65 6c 79 20 74 68 69 6e 6b 73 2e 0a 09 | t.and.the.model.barely.thinks... |
| 9900 | 09 09 09 09 2f 2f 20 43 61 70 20 61 74 20 41 6e 74 68 72 6f 70 69 63 27 73 20 73 74 61 6e 64 61 | ....//.Cap.at.Anthropic's.standa |
| 9920 | 72 64 20 33 32 4b 20 6f 75 74 70 75 74 20 28 6d 61 74 63 68 65 73 20 6f 70 65 6e 63 6f 64 65 27 | rd.32K.output.(matches.opencode' |
| 9940 | 73 0a 09 09 09 09 09 2f 2f 20 4f 55 54 50 55 54 5f 54 4f 4b 45 4e 5f 4d 41 58 29 3b 20 74 68 65 | s......//.OUTPUT_TOKEN_MAX);.the |
| 9960 | 20 6d 6f 64 65 6c 20 73 65 6c 66 2d 72 65 67 75 6c 61 74 65 73 20 74 68 69 6e 6b 69 6e 67 20 76 | .model.self-regulates.thinking.v |
| 9980 | 73 0a 09 09 09 09 09 2f 2f 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 69 6e 20 74 68 69 73 20 74 | s......//.response.within.this.t |
| 99a0 | 6f 74 61 6c 20 62 75 64 67 65 74 2e 20 54 68 69 6e 6b 69 6e 67 20 63 6f 6e 66 69 67 20 28 61 64 | otal.budget..Thinking.config.(ad |
| 99c0 | 61 70 74 69 76 65 0a 09 09 09 09 09 2f 2f 20 76 73 20 65 6e 61 62 6c 65 64 2c 20 70 6c 75 73 20 | aptive......//.vs.enabled,.plus. |
| 99e0 | 64 69 73 70 6c 61 79 3a 22 73 75 6d 6d 61 72 69 7a 65 64 22 20 66 6f 72 20 4f 70 75 73 20 34 2e | display:"summarized".for.Opus.4. |
| 9a00 | 37 2b 29 20 69 73 0a 09 09 09 09 09 2f 2f 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 | 7+).is......//.derived.from.the. |
| 9a20 | 6d 6f 64 65 6c 20 69 64 20 28 73 65 65 20 61 6e 74 68 72 6f 70 69 63 54 68 69 6e 6b 69 6e 67 50 | model.id.(see.anthropicThinkingP |
| 9a40 | 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 29 2e 0a 09 09 09 09 09 73 74 72 65 61 6d 4f 70 74 69 | roviderOptions).......streamOpti |
| 9a60 | 6f 6e 73 2e 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 20 3d 20 33 32 30 30 30 3b 0a 09 09 09 | ons.maxOutputTokens.=.32000;.... |
| 9a80 | 09 09 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 | ..streamOptions.providerOptions. |
| 9aa0 | 3d 20 7b 0a 09 09 09 09 09 09 61 6e 74 68 72 6f 70 69 63 3a 20 61 6e 74 68 72 6f 70 69 63 54 68 | =.{.......anthropic:.anthropicTh |
| 9ac0 | 69 6e 6b 69 6e 67 50 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 28 74 68 69 73 2e 63 6f 6e 66 69 | inkingProviderOptions(this.confi |
| 9ae0 | 67 2e 6d 6f 64 65 6c 2c 20 65 66 66 6f 72 74 29 2c 0a 09 09 09 09 09 7d 3b 0a 09 09 09 09 7d 20 | g.model,.effort),......};.....}. |
| 9b00 | 65 6c 73 65 20 69 66 20 28 21 75 73 65 73 41 6e 74 68 72 6f 70 69 63 53 44 4b 20 26 26 20 65 66 | else.if.(!usesAnthropicSDK.&&.ef |
| 9b20 | 66 6f 72 74 20 21 3d 3d 20 22 6e 6f 6e 65 22 29 20 7b 0a 09 09 09 09 09 2f 2f 20 4f 70 65 6e 41 | fort.!==."none").{......//.OpenA |
| 9b40 | 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 6d 6f 64 65 6c 73 20 28 4f 70 65 6e 43 6f 64 65 20 5a 65 | I-compatible.models.(OpenCode.Ze |
| 9b60 | 6e 3a 20 44 65 65 70 53 65 65 6b 2c 20 47 4c 4d 2c 0a 09 09 09 09 09 2f 2f 20 4b 69 6d 69 2c 20 | n:.DeepSeek,.GLM,......//.Kimi,. |
| 9b80 | 65 74 63 2e 29 2e 20 54 68 65 20 60 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 60 20 66 69 65 | etc.)..The.`reasoningEffort`.fie |
| 9ba0 | 6c 64 20 69 73 20 66 6f 72 77 61 72 64 65 64 0a 09 09 09 09 09 2f 2f 20 76 65 72 62 61 74 69 6d | ld.is.forwarded......//.verbatim |
| 9bc0 | 20 74 6f 20 70 72 6f 76 69 64 65 72 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 20 69 74 2e 20 60 | .to.providers.that.support.it..` |
| 9be0 | 22 6d 61 78 22 60 20 69 73 20 74 68 65 0a 09 09 09 09 09 2f 2f 20 73 74 72 6f 6e 67 65 73 74 20 | "max"`.is.the......//.strongest. |
| 9c00 | 6c 65 76 65 6c 20 77 65 20 65 78 70 6f 73 65 3b 20 74 68 65 20 70 72 6f 76 69 64 65 72 20 6d 61 | level.we.expose;.the.provider.ma |
| 9c20 | 79 20 6d 61 70 20 69 74 0a 09 09 09 09 09 2f 2f 20 69 6e 74 65 72 6e 61 6c 6c 79 20 28 65 2e 67 | y.map.it......//.internally.(e.g |
| 9c40 | 2e 20 44 65 65 70 53 65 65 6b 20 69 6e 74 65 72 70 72 65 74 73 20 69 74 20 61 73 20 64 65 65 70 | ..DeepSeek.interprets.it.as.deep |
| 9c60 | 0a 09 09 09 09 09 2f 2f 20 72 65 61 73 6f 6e 69 6e 67 29 2e 0a 09 09 09 09 09 73 74 72 65 61 6d | ......//.reasoning).......stream |
| 9c80 | 4f 70 74 69 6f 6e 73 2e 70 72 6f 76 69 64 65 72 4f 70 74 69 6f 6e 73 20 3d 20 7b 20 6f 70 65 6e | Options.providerOptions.=.{.open |
| 9ca0 | 61 69 43 6f 6d 70 61 74 69 62 6c 65 3a 20 7b 20 72 65 61 73 6f 6e 69 6e 67 45 66 66 6f 72 74 3a | aiCompatible:.{.reasoningEffort: |
| 9cc0 | 20 65 66 66 6f 72 74 20 7d 20 7d 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 63 6f 6e 73 74 20 72 65 | .effort.}.};.....}......const.re |
| 9ce0 | 73 75 6c 74 20 3d 20 73 74 72 65 61 6d 54 65 78 74 28 73 74 72 65 61 6d 4f 70 74 69 6f 6e 73 29 | sult.=.streamText(streamOptions) |
| 9d00 | 3b 0a 0a 09 09 09 09 2f 2f 20 50 65 72 2d 73 74 65 70 20 74 6f 6f 6c 2d 63 61 6c 6c 20 74 72 61 | ;......//.Per-step.tool-call.tra |
| 9d20 | 63 6b 69 6e 67 20 e2 80 94 20 6e 65 65 64 65 64 20 62 65 63 61 75 73 65 20 77 65 20 6f 6e 6c 79 | cking.....needed.because.we.only |
| 9d40 | 20 6c 6f 6f 70 20 62 61 63 6b 0a 09 09 09 09 2f 2f 20 74 6f 20 74 68 65 20 4c 4c 4d 20 69 66 20 | .loop.back.....//.to.the.LLM.if. |
| 9d60 | 74 68 69 73 20 73 74 65 70 20 70 72 6f 64 75 63 65 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e 20 54 | this.step.produced.tool.calls..T |
| 9d80 | 68 65 20 61 63 74 75 61 6c 20 63 68 75 6e 6b 0a 09 09 09 09 2f 2f 20 73 74 61 74 65 20 66 6f 72 | he.actual.chunk.....//.state.for |
| 9da0 | 20 74 68 65 20 74 75 72 6e 20 6c 69 76 65 73 20 69 6e 20 60 63 68 75 6e 6b 73 60 2e 0a 09 09 09 | .the.turn.lives.in.`chunks`..... |
| 9dc0 | 09 63 6f 6e 73 74 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 3a 20 54 6f 6f 6c 43 61 6c 6c 5b 5d | .const.stepToolCalls:.ToolCall[] |
| 9de0 | 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 2f 2f 20 45 6e 73 75 72 65 20 77 65 20 68 61 76 65 20 61 6e | .=.[];......//.Ensure.we.have.an |
| 9e00 | 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 69 6e 20 73 74 65 70 4d 65 73 73 61 67 | .assistant.message.in.stepMessag |
| 9e20 | 65 73 20 77 68 6f 73 65 0a 09 09 09 09 2f 2f 20 60 63 68 75 6e 6b 73 60 20 72 65 66 65 72 65 6e | es.whose.....//.`chunks`.referen |
| 9e40 | 63 65 20 69 73 20 73 68 61 72 65 64 20 77 69 74 68 20 6f 75 72 20 61 63 63 75 6d 75 6c 61 74 6f | ce.is.shared.with.our.accumulato |
| 9e60 | 72 2e 20 4f 6e 6c 79 20 70 75 73 68 0a 09 09 09 09 2f 2f 20 6f 6e 63 65 3b 20 73 75 62 73 65 71 | r..Only.push.....//.once;.subseq |
| 9e80 | 75 65 6e 74 20 73 74 65 70 73 20 6d 75 74 61 74 65 20 74 68 65 20 73 61 6d 65 20 63 68 75 6e 6b | uent.steps.mutate.the.same.chunk |
| 9ea0 | 73 20 61 72 72 61 79 2e 0a 09 09 09 09 69 66 20 28 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 | s.array......if.(assistantTurnMe |
| 9ec0 | 73 73 61 67 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 09 09 09 09 09 61 73 73 69 73 74 61 6e 74 | ssage.===.null).{......assistant |
| 9ee0 | 54 75 72 6e 4d 65 73 73 61 67 65 20 3d 20 7b 20 72 6f 6c 65 3a 20 22 61 73 73 69 73 74 61 6e 74 | TurnMessage.=.{.role:."assistant |
| 9f00 | 22 2c 20 63 68 75 6e 6b 73 20 7d 3b 0a 09 09 09 09 09 73 74 65 70 4d 65 73 73 61 67 65 73 2e 70 | ",.chunks.};......stepMessages.p |
| 9f20 | 75 73 68 28 61 73 73 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 29 3b 0a 09 09 09 09 7d | ush(assistantTurnMessage);.....} |
| 9f40 | 0a 0a 09 09 09 09 2f 2f 20 55 6e 65 78 70 65 63 74 65 64 20 73 74 72 65 61 6d 20 65 72 72 6f 72 | ......//.Unexpected.stream.error |
| 9f60 | 73 20 70 72 6f 70 61 67 61 74 65 20 75 70 20 74 6f 20 74 68 65 20 6f 75 74 65 72 20 74 72 79 2f | s.propagate.up.to.the.outer.try/ |
| 9f80 | 63 61 74 63 68 0a 09 09 09 09 2f 2f 20 69 6e 20 60 72 75 6e 28 29 60 2c 20 77 68 69 63 68 20 66 | catch.....//.in.`run()`,.which.f |
| 9fa0 | 6f 72 6d 61 74 73 20 74 68 65 6d 20 61 6e 64 20 74 72 61 6e 73 69 74 69 6f 6e 73 20 74 68 65 20 | ormats.them.and.transitions.the. |
| 9fc0 | 61 67 65 6e 74 20 74 6f 0a 09 09 09 09 2f 2f 20 74 68 65 20 22 65 72 72 6f 72 22 20 73 74 61 74 | agent.to.....//.the."error".stat |
| 9fe0 | 75 73 2e 20 54 68 65 20 41 49 20 53 44 4b 20 76 36 20 73 75 72 66 61 63 65 73 20 75 6e 61 76 61 | us..The.AI.SDK.v6.surfaces.unava |
| a000 | 69 6c 61 62 6c 65 2d 74 6f 6f 6c 0a 09 09 09 09 2f 2f 20 63 61 6c 6c 73 20 61 73 20 6e 61 74 69 | ilable-tool.....//.calls.as.nati |
| a020 | 76 65 20 60 74 6f 6f 6c 2d 65 72 72 6f 72 60 20 73 74 72 65 61 6d 20 65 76 65 6e 74 73 20 28 68 | ve.`tool-error`.stream.events.(h |
| a040 | 61 6e 64 6c 65 64 20 62 65 6c 6f 77 29 2c 0a 09 09 09 09 2f 2f 20 73 6f 20 74 68 65 72 65 27 73 | andled.below),.....//.so.there's |
| a060 | 20 6e 6f 20 4e 6f 53 75 63 68 54 6f 6f 6c 45 72 72 6f 72 20 74 6f 20 63 61 74 63 68 20 68 65 72 | .no.NoSuchToolError.to.catch.her |
| a080 | 65 2e 0a 09 09 09 09 66 6f 72 20 61 77 61 69 74 20 28 63 6f 6e 73 74 20 65 76 65 6e 74 20 6f 66 | e......for.await.(const.event.of |
| a0a0 | 20 72 65 73 75 6c 74 2e 66 75 6c 6c 53 74 72 65 61 6d 29 20 7b 0a 09 09 09 09 09 6c 6f 67 53 74 | .result.fullStream).{......logSt |
| a0c0 | 72 65 61 6d 45 76 65 6e 74 28 7b 0a 09 09 09 09 09 09 72 65 71 75 65 73 74 49 64 3a 20 64 65 62 | reamEvent({.......requestId:.deb |
| a0e0 | 75 67 52 65 71 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 09 65 76 65 6e 74 | ugReqId,.......step,.......event |
| a100 | 54 79 70 65 3a 20 65 76 65 6e 74 2e 74 79 70 65 2c 0a 09 09 09 09 09 09 74 61 62 49 64 3a 20 74 | Type:.event.type,.......tabId:.t |
| a120 | 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 | his.config.tabId,......});...... |
| a140 | 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 65 78 74 2d 64 65 6c 74 61 22 29 | if.(event.type.===."text-delta") |
| a160 | 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 65 78 74 2d 64 65 6c 74 61 20 63 61 72 72 69 | .{.......//.v6:.text-delta.carri |
| a180 | 65 73 20 60 74 65 78 74 60 20 28 6e 6f 74 20 60 74 65 78 74 44 65 6c 74 61 60 29 0a 09 09 09 09 | es.`text`.(not.`textDelta`)..... |
| a1a0 | 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e | ..const.internalEvent:.AgentEven |
| a1c0 | 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 74 65 78 74 2d 64 65 6c 74 61 22 2c | t.=.{........type:."text-delta", |
| a1e0 | 0a 09 09 09 09 09 09 09 64 65 6c 74 61 3a 20 65 76 65 6e 74 2e 74 65 78 74 2c 0a 09 09 09 09 09 | ........delta:.event.text,...... |
| a200 | 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 | .};.......appendEventToChunks(ch |
| a220 | 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c | unks,.internalEvent);.......yiel |
| a240 | 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 | d.internalEvent;......}.else.if. |
| a260 | 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 | (event.type.===."reasoning-delta |
| a280 | 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 20 6e 65 77 20 65 76 65 6e 74 3a 20 72 65 61 73 | ").{.......//.v6.new.event:.reas |
| a2a0 | 6f 6e 69 6e 67 2d 64 65 6c 74 61 20 63 61 72 72 69 65 73 20 60 74 65 78 74 60 20 28 6e 6f 74 20 | oning-delta.carries.`text`.(not. |
| a2c0 | 60 74 65 78 74 44 65 6c 74 61 60 29 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 | `textDelta`).......const.interna |
| a2e0 | 6c 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 | lEvent:.AgentEvent.=.{........ty |
| a300 | 70 65 3a 20 22 72 65 61 73 6f 6e 69 6e 67 2d 64 65 6c 74 61 22 2c 0a 09 09 09 09 09 09 09 64 65 | pe:."reasoning-delta",........de |
| a320 | 6c 74 61 3a 20 65 76 65 6e 74 2e 74 65 78 74 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 | lta:.event.text,.......};....... |
| a340 | 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 | appendEventToChunks(chunks,.inte |
| a360 | 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c | rnalEvent);.......yield.internal |
| a380 | 45 76 65 6e 74 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 | Event;......}.else.if.(event.typ |
| a3a0 | 65 20 3d 3d 3d 20 22 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 29 20 7b 0a 09 09 09 09 09 09 2f | e.===."reasoning-end").{......./ |
| a3c0 | 2f 20 4f 6e 6c 79 20 65 6d 69 74 20 77 68 65 6e 20 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 | /.Only.emit.when.providerMetadat |
| a3e0 | 61 20 69 73 20 70 72 65 73 65 6e 74 20 e2 80 94 20 6e 6f 6e 2d 41 6e 74 68 72 6f 70 69 63 0a 09 | a.is.present.....non-Anthropic.. |
| a400 | 09 09 09 09 09 2f 2f 20 6d 6f 64 65 6c 73 20 73 65 6e 64 20 72 65 61 73 6f 6e 69 6e 67 2d 65 6e | .....//.models.send.reasoning-en |
| a420 | 64 20 77 69 74 68 6f 75 74 20 61 6e 79 20 6d 65 74 61 64 61 74 61 20 74 6f 20 72 6f 75 6e 64 2d | d.without.any.metadata.to.round- |
| a440 | 74 72 69 70 2e 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 27 73 20 73 69 67 6e 61 | trip........//.Anthropic's.signa |
| a460 | 74 75 72 65 20 6c 69 76 65 73 20 69 6e 73 69 64 65 20 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 | ture.lives.inside.providerMetada |
| a480 | 74 61 20 61 73 0a 09 09 09 09 09 09 2f 2f 20 7b 20 61 6e 74 68 72 6f 70 69 63 3a 20 7b 20 73 69 | ta.as.......//.{.anthropic:.{.si |
| a4a0 | 67 6e 61 74 75 72 65 3a 20 22 2e 2e 2e 22 20 7d 20 7d 2e 0a 09 09 09 09 09 09 69 66 20 28 65 76 | gnature:."...".}.}........if.(ev |
| a4c0 | 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 21 3d 3d 20 75 6e 64 65 66 69 6e | ent.providerMetadata.!==.undefin |
| a4e0 | 65 64 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 | ed).{........const.internalEvent |
| a500 | 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 | :.AgentEvent.=.{.........type:." |
| a520 | 72 65 61 73 6f 6e 69 6e 67 2d 65 6e 64 22 2c 0a 09 09 09 09 09 09 09 09 6d 65 74 61 64 61 74 61 | reasoning-end",.........metadata |
| a540 | 3a 20 65 76 65 6e 74 2e 70 72 6f 76 69 64 65 72 4d 65 74 61 64 61 74 61 20 61 73 20 52 65 63 6f | :.event.providerMetadata.as.Reco |
| a560 | 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 2c 0a 09 09 09 09 09 09 09 7d 3b 0a 09 | rd<string,.unknown>,........};.. |
| a580 | 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 | ......appendEventToChunks(chunks |
| a5a0 | 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 69 | ,.internalEvent);........yield.i |
| a5c0 | 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 7d 20 65 6c 73 | nternalEvent;.......}......}.els |
| a5e0 | 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 74 6f 6f 6c 2d 63 61 6c 6c 22 | e.if.(event.type.===."tool-call" |
| a600 | 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 76 36 3a 20 74 6f 6f 6c 20 63 61 6c 6c 20 69 6e 70 75 74 | ).{.......//.v6:.tool.call.input |
| a620 | 20 69 73 20 69 6e 20 60 69 6e 70 75 74 60 20 28 6e 6f 74 20 60 61 72 67 73 60 29 0a 09 09 09 09 | .is.in.`input`.(not.`args`)..... |
| a640 | 09 09 63 6f 6e 73 74 20 72 61 77 4e 61 6d 65 20 3d 20 65 76 65 6e 74 2e 74 6f 6f 6c 4e 61 6d 65 | ..const.rawName.=.event.toolName |
| a660 | 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 69 73 43 6c 61 75 64 | ;.......const.toolName.=.isClaud |
| a680 | 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 72 61 77 4e 61 6d | eOAuth.?.unprefixToolName(rawNam |
| a6a0 | 65 29 20 3a 20 72 61 77 4e 61 6d 65 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 43 61 | e).:.rawName;.......const.toolCa |
| a6c0 | 6c 6c 3a 20 54 6f 6f 6c 43 61 6c 6c 20 3d 20 7b 0a 09 09 09 09 09 09 09 69 64 3a 20 65 76 65 6e | ll:.ToolCall.=.{........id:.even |
| a6e0 | 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 09 6e 61 6d 65 3a 20 74 6f 6f 6c 4e | t.toolCallId,........name:.toolN |
| a700 | 61 6d 65 2c 0a 09 09 09 09 09 09 09 61 72 67 75 6d 65 6e 74 73 3a 20 65 76 65 6e 74 2e 69 6e 70 | ame,........arguments:.event.inp |
| a720 | 75 74 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 2c 0a 09 | ut.as.Record<string,.unknown>,.. |
| a740 | 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 70 75 73 68 | .....};.......stepToolCalls.push |
| a760 | 28 74 6f 6f 6c 43 61 6c 6c 29 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c | (toolCall);.......const.internal |
| a780 | 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 74 6f 6f | Event:.AgentEvent.=.{.type:."too |
| a7a0 | 6c 2d 63 61 6c 6c 22 2c 20 74 6f 6f 6c 43 61 6c 6c 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e | l-call",.toolCall.};.......appen |
| a7c0 | 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 | dEventToChunks(chunks,.internalE |
| a7e0 | 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 | vent);.......yield.internalEvent |
| a800 | 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d | ;......}.else.if.(event.type.=== |
| a820 | 20 22 74 6f 6f 6c 2d 65 72 72 6f 72 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 54 68 65 20 6d 6f | ."tool-error").{.......//.The.mo |
| a840 | 64 65 6c 20 63 61 6c 6c 65 64 20 61 20 74 6f 6f 6c 20 74 68 61 74 20 64 6f 65 73 6e 27 74 20 65 | del.called.a.tool.that.doesn't.e |
| a860 | 78 69 73 74 20 28 6f 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 70 72 6f 76 69 64 65 72 2d 65 78 65 | xist.(or.a.......//.provider-exe |
| a880 | 63 75 74 65 64 20 2f 20 73 65 72 76 65 72 20 74 6f 6f 6c 20 66 61 69 6c 65 64 29 2e 20 54 68 65 | cuted./.server.tool.failed)..The |
| a8a0 | 20 41 49 20 53 44 4b 20 76 36 0a 09 09 09 09 09 09 2f 2f 20 65 6d 69 74 73 20 74 68 69 73 20 61 | .AI.SDK.v6.......//.emits.this.a |
| a8c0 | 73 20 61 20 6e 61 74 69 76 65 20 73 74 72 65 61 6d 20 65 76 65 6e 74 20 63 61 72 72 79 69 6e 67 | s.a.native.stream.event.carrying |
| a8e0 | 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 6f 72 69 67 69 6e 61 6c 20 74 6f 6f 6c 20 6e 61 6d 65 | .the.......//.original.tool.name |
| a900 | 2e 20 46 6f 72 77 61 72 64 20 62 6f 74 68 20 61 20 73 79 6e 74 68 65 74 69 63 0a 09 09 09 09 09 | ..Forward.both.a.synthetic...... |
| a920 | 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 73 6f 20 74 68 65 20 74 6f 6f 6c 2d 62 61 74 | .//.tool-result.(so.the.tool-bat |
| a940 | 63 68 20 65 6e 74 72 79 20 74 68 65 20 6d 6f 64 65 6c 20 65 78 70 65 63 74 73 0a 09 09 09 09 09 | ch.entry.the.model.expects...... |
| a960 | 09 2f 2f 20 68 61 73 20 61 6e 20 60 69 73 45 72 72 6f 72 3a 20 74 72 75 65 60 20 72 65 73 75 6c | .//.has.an.`isError:.true`.resul |
| a980 | 74 29 20 61 6e 64 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b 20 66 6f 72 0a 09 09 09 09 09 09 | t).and.an.error.chunk.for....... |
| a9a0 | 2f 2f 20 76 69 73 69 62 69 6c 69 74 79 20 e2 80 94 20 77 69 74 68 6f 75 74 20 74 68 65 20 72 65 | //.visibility.....without.the.re |
| a9c0 | 73 75 6c 74 20 74 68 65 20 6d 6f 64 65 6c 20 77 6f 75 6c 64 0a 09 09 09 09 09 09 2f 2f 20 73 69 | sult.the.model.would.......//.si |
| a9e0 | 6c 65 6e 74 6c 79 20 77 61 69 74 20 66 6f 72 20 6f 6e 65 20 74 68 61 74 20 6e 65 76 65 72 20 61 | lently.wait.for.one.that.never.a |
| aa00 | 72 72 69 76 65 73 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 65 76 74 20 3d 20 65 76 65 6e 74 20 | rrives........const.evt.=.event. |
| aa20 | 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 7b 0a 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 | as.unknown.as.{........toolCallI |
| aa40 | 64 3a 20 73 74 72 69 6e 67 3b 0a 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 3a 20 73 74 72 69 | d:.string;........toolName:.stri |
| aa60 | 6e 67 3b 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 75 6e 6b 6e 6f 77 6e 3b 0a 09 09 09 09 09 | ng;........error:.unknown;...... |
| aa80 | 09 7d 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 74 6f 6f 6c 4e 61 6d 65 20 3d 20 69 73 43 6c 61 | .};.......const.toolName.=.isCla |
| aaa0 | 75 64 65 4f 41 75 74 68 20 3f 20 75 6e 70 72 65 66 69 78 54 6f 6f 6c 4e 61 6d 65 28 65 76 74 2e | udeOAuth.?.unprefixToolName(evt. |
| aac0 | 74 6f 6f 6c 4e 61 6d 65 29 20 3a 20 65 76 74 2e 74 6f 6f 6c 4e 61 6d 65 3b 0a 09 09 09 09 09 09 | toolName).:.evt.toolName;....... |
| aae0 | 63 6f 6e 73 74 20 65 72 72 4d 65 73 73 61 67 65 20 3d 20 65 76 74 2e 65 72 72 6f 72 20 69 6e 73 | const.errMessage.=.evt.error.ins |
| ab00 | 74 61 6e 63 65 6f 66 20 45 72 72 6f 72 20 3f 20 65 76 74 2e 65 72 72 6f 72 2e 6d 65 73 73 61 67 | tanceof.Error.?.evt.error.messag |
| ab20 | 65 20 3a 20 53 74 72 69 6e 67 28 65 76 74 2e 65 72 72 6f 72 29 3b 0a 0a 09 09 09 09 09 09 63 6f | e.:.String(evt.error);........co |
| ab40 | 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 | nst.trEvent:.AgentEvent.=.{..... |
| ab60 | 09 09 09 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 2c 0a 09 09 09 09 09 09 09 74 | ...type:."tool-result",........t |
| ab80 | 6f 6f 6c 52 65 73 75 6c 74 3a 20 7b 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 43 61 6c 6c 49 64 3a | oolResult:.{.........toolCallId: |
| aba0 | 20 65 76 74 2e 74 6f 6f 6c 43 61 6c 6c 49 64 2c 0a 09 09 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d | .evt.toolCallId,.........toolNam |
| abc0 | 65 2c 0a 09 09 09 09 09 09 09 09 72 65 73 75 6c 74 3a 20 60 45 72 72 6f 72 3a 20 24 7b 65 72 72 | e,.........result:.`Error:.${err |
| abe0 | 4d 65 73 73 61 67 65 7d 60 2c 0a 09 09 09 09 09 09 09 09 69 73 45 72 72 6f 72 3a 20 74 72 75 65 | Message}`,.........isError:.true |
| ac00 | 2c 0a 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e | ,........},.......};.......appen |
| ac20 | 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 74 72 45 76 65 6e 74 29 3b | dEventToChunks(chunks,.trEvent); |
| ac40 | 0a 09 09 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b 0a 0a 09 09 09 09 09 09 2f 2f 20 | .......yield.trEvent;........//. |
| ac60 | 45 6d 69 74 20 61 6e 20 65 72 72 6f 72 20 63 68 75 6e 6b 20 66 6f 72 20 76 69 73 69 62 69 6c 69 | Emit.an.error.chunk.for.visibili |
| ac80 | 74 79 2c 20 62 75 74 20 64 6f 20 4e 4f 54 20 73 65 74 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 | ty,.but.do.NOT.set.the.......//. |
| aca0 | 61 67 65 6e 74 20 73 74 61 74 75 73 20 74 6f 20 22 65 72 72 6f 72 22 20 e2 80 94 20 74 68 65 20 | agent.status.to."error".....the. |
| acc0 | 73 74 65 70 20 63 6f 6e 74 69 6e 75 65 73 20 61 6e 64 20 6c 6f 6f 70 73 0a 09 09 09 09 09 09 2f | step.continues.and.loops......./ |
| ace0 | 2f 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 20 6e 6f 72 6d 61 6c 6c 79 2e 0a 09 09 09 09 | /.back.to.the.LLM.normally...... |
| ad00 | 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 72 72 6f 72 28 65 | ..const.errorMsg.=.formatError(e |
| ad20 | 76 74 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 09 09 09 63 6f | vt.error,.this.config);.......co |
| ad40 | 6e 73 74 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 | nst.errChunkEvent:.AgentEvent.=. |
| ad60 | 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a 20 65 72 72 6f 72 4d 73 67 | {.type:."error",.error:.errorMsg |
| ad80 | 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 | .};.......appendEventToChunks(ch |
| ada0 | 75 6e 6b 73 2c 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c | unks,.errChunkEvent);.......yiel |
| adc0 | 64 20 65 72 72 43 68 75 6e 6b 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 | d.errChunkEvent;.......break;... |
| ade0 | 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 61 62 | ...}.else.if.(event.type.===."ab |
| ae00 | 6f 72 74 22 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 53 74 72 65 61 6d 20 61 62 6f 72 74 65 64 20 | ort").{.......//.Stream.aborted. |
| ae20 | 75 70 73 74 72 65 61 6d 2e 20 53 75 72 66 61 63 65 20 61 73 20 61 6e 20 65 72 72 6f 72 20 73 6f | upstream..Surface.as.an.error.so |
| ae40 | 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 66 72 6f 6e 74 65 6e 64 20 74 61 62 20 74 72 61 6e 73 | .the.......//.frontend.tab.trans |
| ae60 | 69 74 69 6f 6e 73 20 6f 75 74 20 6f 66 20 60 72 75 6e 6e 69 6e 67 60 2e 20 57 65 20 64 6f 6e 27 | itions.out.of.`running`..We.don' |
| ae80 | 74 0a 09 09 09 09 09 09 2f 2f 20 63 75 72 72 65 6e 74 6c 79 20 63 61 6c 6c 20 61 62 6f 72 74 43 | t.......//.currently.call.abortC |
| aea0 | 6f 6e 74 72 6f 6c 6c 65 72 2e 61 62 6f 72 74 28 29 20 6f 75 72 73 65 6c 76 65 73 2c 20 73 6f 0a | ontroller.abort().ourselves,.so. |
| aec0 | 09 09 09 09 09 09 2f 2f 20 74 68 69 73 20 77 6f 75 6c 64 20 6f 6e 6c 79 20 66 69 72 65 20 66 72 | ......//.this.would.only.fire.fr |
| aee0 | 6f 6d 20 65 78 74 65 72 6e 61 6c 20 73 69 67 6e 61 6c 20 70 72 6f 70 61 67 61 74 69 6f 6e 2e 0a | om.external.signal.propagation.. |
| af00 | 09 09 09 09 09 09 63 6f 6e 73 74 20 72 65 61 73 6f 6e 20 3d 0a 09 09 09 09 09 09 09 74 79 70 65 | ......const.reason.=........type |
| af20 | 6f 66 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e 3f 3a 20 75 6e 6b 6e 6f 77 6e 20 | of.(event.as.{.reason?:.unknown. |
| af40 | 7d 29 2e 72 65 61 73 6f 6e 20 3d 3d 3d 20 22 73 74 72 69 6e 67 22 0a 09 09 09 09 09 09 09 09 3f | }).reason.===."string".........? |
| af60 | 20 28 65 76 65 6e 74 20 61 73 20 7b 20 72 65 61 73 6f 6e 3a 20 73 74 72 69 6e 67 20 7d 29 2e 72 | .(event.as.{.reason:.string.}).r |
| af80 | 65 61 73 6f 6e 0a 09 09 09 09 09 09 09 09 3a 20 22 73 74 72 65 61 6d 20 61 62 6f 72 74 65 64 22 | eason.........:."stream.aborted" |
| afa0 | 3b 0a 09 09 09 09 09 09 2f 2f 20 46 69 6c 6c 20 69 6e 20 65 72 72 6f 72 20 72 65 73 75 6c 74 73 | ;.......//.Fill.in.error.results |
| afc0 | 20 66 6f 72 20 61 6e 79 20 75 6e 72 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 | .for.any.unresolved.tool.calls.s |
| afe0 | 6f 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 20 6f 72 70 68 61 6e 65 64 20 74 6f 6f 6c 2d 63 61 6c | o.......//.the.orphaned.tool-cal |
| b000 | 6c 20 49 44 73 20 64 6f 6e 27 74 20 74 72 69 67 67 65 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 4d | l.IDs.don't.trigger.a.......//.M |
| b020 | 69 73 73 69 6e 67 54 6f 6f 6c 52 65 73 75 6c 74 73 45 72 72 6f 72 20 69 66 20 74 68 69 73 20 68 | issingToolResultsError.if.this.h |
| b040 | 69 73 74 6f 72 79 20 69 73 20 65 76 65 72 20 72 65 70 6c 61 79 65 64 2e 0a 09 09 09 09 09 09 63 | istory.is.ever.replayed........c |
| b060 | 6f 6e 73 74 20 61 62 6f 72 74 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e 74 68 65 | onst.abortResidual.=.this.synthe |
| b080 | 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 09 09 09 09 09 | sizeResidualToolResults(........ |
| b0a0 | 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 | stepToolCalls,........chunks,... |
| b0c0 | 09 09 09 09 09 60 45 72 72 6f 72 3a 20 53 74 72 65 61 6d 20 77 61 73 20 61 62 6f 72 74 65 64 3a | .....`Error:.Stream.was.aborted: |
| b0e0 | 20 24 7b 72 65 61 73 6f 6e 7d 60 2c 0a 09 09 09 09 09 09 29 3b 0a 09 09 09 09 09 09 66 6f 72 20 | .${reason}`,.......);.......for. |
| b100 | 28 63 6f 6e 73 74 20 72 20 6f 66 20 61 62 6f 72 74 52 65 73 69 64 75 61 6c 29 20 7b 0a 09 09 09 | (const.r.of.abortResidual).{.... |
| b120 | 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 | ....appendEventToChunks(chunks,. |
| b140 | 72 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 | r);........yield.r;.......}..... |
| b160 | 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 72 72 6f 72 28 | ...const.errorMsg.=.formatError( |
| b180 | 6e 65 77 20 45 72 72 6f 72 28 72 65 61 73 6f 6e 29 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b | new.Error(reason),.this.config); |
| b1a0 | 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3a 20 41 67 65 6e | .......const.internalEvent:.Agen |
| b1c0 | 74 45 76 65 6e 74 20 3d 20 7b 20 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a | tEvent.=.{.type:."error",.error: |
| b1e0 | 20 65 72 72 6f 72 4d 73 67 20 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f | .errorMsg.};.......appendEventTo |
| b200 | 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 | Chunks(chunks,.internalEvent);.. |
| b220 | 09 09 09 09 09 79 69 65 6c 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 | .....yield.internalEvent;....... |
| b240 | 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 09 09 09 79 69 65 | this.status.=."error";.......yie |
| b260 | 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 65 72 | ld.{.type:."status",.status:."er |
| b280 | 72 6f 72 22 20 7d 3b 0a 09 09 09 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 09 09 09 7d 20 65 6c 73 | ror".};.......return;......}.els |
| b2a0 | 65 20 69 66 20 28 65 76 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 65 72 72 6f 72 22 29 20 7b 0a | e.if.(event.type.===."error").{. |
| b2c0 | 09 09 09 09 09 09 63 6f 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 3d 20 65 76 65 6e 74 2e 65 72 | ......const.errRecord.=.event.er |
| b2e0 | 72 6f 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c | ror.as.unknown.as.Record<string, |
| b300 | 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 74 61 74 75 73 43 6f 64 | .unknown>;.......const.statusCod |
| b320 | 65 20 3d 0a 09 09 09 09 09 09 09 74 79 70 65 6f 66 20 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 | e.=........typeof.errRecord.stat |
| b340 | 75 73 43 6f 64 65 20 3d 3d 3d 20 22 6e 75 6d 62 65 72 22 20 3f 20 65 72 72 52 65 63 6f 72 64 2e | usCode.===."number".?.errRecord. |
| b360 | 73 74 61 74 75 73 43 6f 64 65 20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 09 09 09 63 6f | statusCode.:.undefined;.......co |
| b380 | 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 72 72 6f 72 28 65 76 65 6e 74 | nst.errorMsg.=.formatError(event |
| b3a0 | 2e 65 72 72 6f 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 09 09 09 2f 2f 20 46 | .error,.this.config);.......//.F |
| b3c0 | 69 6c 6c 20 69 6e 20 65 72 72 6f 72 20 72 65 73 75 6c 74 73 20 66 6f 72 20 61 6e 79 20 75 6e 72 | ill.in.error.results.for.any.unr |
| b3e0 | 65 73 6f 6c 76 65 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 6f 0a 09 09 09 09 09 09 2f 2f 20 74 | esolved.tool.calls.so.......//.t |
| b400 | 68 65 20 6f 72 70 68 61 6e 65 64 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 73 20 64 6f 6e 27 74 20 | he.orphaned.tool-call.IDs.don't. |
| b420 | 74 72 69 67 67 65 72 20 61 0a 09 09 09 09 09 09 2f 2f 20 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 | trigger.a.......//.MissingToolRe |
| b440 | 73 75 6c 74 73 45 72 72 6f 72 20 69 66 20 74 68 69 73 20 68 69 73 74 6f 72 79 20 69 73 20 65 76 | sultsError.if.this.history.is.ev |
| b460 | 65 72 20 72 65 70 6c 61 79 65 64 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 73 74 72 65 61 6d 45 | er.replayed........const.streamE |
| b480 | 72 72 52 65 73 69 64 75 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e 74 68 65 73 69 7a 65 52 65 73 69 | rrResidual.=.this.synthesizeResi |
| b4a0 | 64 75 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 73 28 0a 09 09 09 09 09 09 09 73 74 65 70 54 6f 6f 6c | dualToolResults(........stepTool |
| b4c0 | 43 61 6c 6c 73 2c 0a 09 09 09 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 09 09 09 60 45 72 | Calls,........chunks,........`Er |
| b4e0 | 72 6f 72 3a 20 24 7b 65 72 72 6f 72 4d 73 67 7d 60 2c 0a 09 09 09 09 09 09 29 3b 0a 09 09 09 09 | ror:.${errorMsg}`,.......);..... |
| b500 | 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 20 6f 66 20 73 74 72 65 61 6d 45 72 72 52 65 73 69 64 | ..for.(const.r.of.streamErrResid |
| b520 | 75 61 6c 29 20 7b 0a 09 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b | ual).{........appendEventToChunk |
| b540 | 73 28 63 68 75 6e 6b 73 2c 20 72 29 3b 0a 09 09 09 09 09 09 09 79 69 65 6c 64 20 72 3b 0a 09 09 | s(chunks,.r);........yield.r;... |
| b560 | 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 | ....}........const.internalEvent |
| b580 | 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 74 79 70 65 3a 20 22 65 | :.AgentEvent.=.{........type:."e |
| b5a0 | 72 72 6f 72 22 2c 0a 09 09 09 09 09 09 09 65 72 72 6f 72 3a 20 65 72 72 6f 72 4d 73 67 2c 0a 09 | rror",........error:.errorMsg,.. |
| b5c0 | 09 09 09 09 09 09 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 21 3d 3d 20 75 6e 64 65 66 69 6e | .........(statusCode.!==.undefin |
| b5e0 | 65 64 20 3f 20 7b 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a 20 7b 7d 29 2c 0a 09 09 09 09 09 | ed.?.{.statusCode.}.:.{}),...... |
| b600 | 09 7d 3b 0a 09 09 09 09 09 09 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 | .};.......appendEventToChunks(ch |
| b620 | 75 6e 6b 73 2c 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 79 69 65 6c | unks,.internalEvent);.......yiel |
| b640 | 64 20 69 6e 74 65 72 6e 61 6c 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 74 68 69 73 2e 73 74 61 74 | d.internalEvent;.......this.stat |
| b660 | 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 09 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 | us.=."error";.......yield.{.type |
| b680 | 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 65 72 72 6f 72 22 20 7d 3b 0a 09 | :."status",.status:."error".};.. |
| b6a0 | 09 09 09 09 09 72 65 74 75 72 6e 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 69 66 20 28 65 76 65 | .....return;......}.else.if.(eve |
| b6c0 | 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 22 66 69 6e 69 73 68 2d 73 74 65 70 22 29 20 7b 0a 09 09 09 | nt.type.===."finish-step").{.... |
| b6e0 | 09 09 09 2f 2f 20 4f 6e 65 20 60 66 69 6e 69 73 68 2d 73 74 65 70 60 20 70 65 72 20 60 73 74 72 | ...//.One.`finish-step`.per.`str |
| b700 | 65 61 6d 54 65 78 74 60 20 73 74 65 70 2e 20 54 68 69 73 20 e2 80 94 20 4e 4f 54 20 74 68 65 0a | eamText`.step..This.....NOT.the. |
| b720 | 09 09 09 09 09 09 2f 2f 20 74 65 72 6d 69 6e 61 6c 20 60 66 69 6e 69 73 68 60 20 70 61 72 74 20 | ......//.terminal.`finish`.part. |
| b740 | e2 80 94 20 69 73 20 77 68 65 72 65 20 74 68 65 20 41 49 20 53 44 4b 20 70 75 74 73 20 74 68 65 | ....is.where.the.AI.SDK.puts.the |
| b760 | 0a 09 09 09 09 09 09 2f 2f 20 70 65 72 2d 73 74 65 70 20 60 75 73 61 67 65 60 20 28 74 68 65 20 | .......//.per-step.`usage`.(the. |
| b780 | 60 66 69 6e 69 73 68 60 20 70 61 72 74 20 6f 6e 6c 79 20 63 61 72 72 69 65 73 20 74 68 65 0a 09 | `finish`.part.only.carries.the.. |
| b7a0 | 09 09 09 09 09 2f 2f 20 61 67 67 72 65 67 61 74 65 20 60 74 6f 74 61 6c 55 73 61 67 65 60 29 2e | .....//.aggregate.`totalUsage`). |
| b7c0 | 20 60 75 73 61 67 65 2e 69 6e 70 75 74 54 6f 6b 65 6e 44 65 74 61 69 6c 73 60 20 68 6f 6c 64 73 | .`usage.inputTokenDetails`.holds |
| b7e0 | 0a 09 09 09 09 09 09 2f 2f 20 41 6e 74 68 72 6f 70 69 63 27 73 20 70 72 6f 6d 70 74 2d 63 61 63 | .......//.Anthropic's.prompt-cac |
| b800 | 68 65 20 72 65 61 64 2f 77 72 69 74 65 20 73 70 6c 69 74 2c 20 77 68 69 63 68 20 70 6f 77 65 72 | he.read/write.split,.which.power |
| b820 | 73 20 74 68 65 0a 09 09 09 09 09 09 2f 2f 20 43 61 63 68 65 20 52 61 74 65 20 76 69 65 77 2e 20 | s.the.......//.Cache.Rate.view.. |
| b840 | 60 69 6e 70 75 74 54 6f 6b 65 6e 73 60 20 69 73 20 74 68 65 20 54 4f 54 41 4c 20 70 72 6f 6d 70 | `inputTokens`.is.the.TOTAL.promp |
| b860 | 74 20 28 63 61 63 68 65 64 20 2b 0a 09 09 09 09 09 09 2f 2f 20 66 72 65 73 68 29 2e 20 53 6b 69 | t.(cached.+.......//.fresh)..Ski |
| b880 | 70 20 65 6d 69 73 73 69 6f 6e 20 77 68 65 6e 20 6e 6f 20 75 73 61 67 65 20 69 73 20 61 74 74 61 | p.emission.when.no.usage.is.atta |
| b8a0 | 63 68 65 64 20 28 65 2e 67 2e 20 74 65 73 74 0a 09 09 09 09 09 09 2f 2f 20 6d 6f 63 6b 73 29 20 | ched.(e.g..test.......//.mocks). |
| b8c0 | 73 6f 20 77 65 20 6e 65 76 65 72 20 62 72 6f 61 64 63 61 73 74 20 61 6e 20 61 6c 6c 2d 7a 65 72 | so.we.never.broadcast.an.all-zer |
| b8e0 | 6f 20 75 73 61 67 65 20 65 76 65 6e 74 2e 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 75 20 3d 20 28 | o.usage.event........const.u.=.( |
| b900 | 65 76 65 6e 74 20 61 73 20 7b 20 75 73 61 67 65 3f 3a 20 4c 61 6e 67 75 61 67 65 4d 6f 64 65 6c | event.as.{.usage?:.LanguageModel |
| b920 | 55 73 61 67 65 20 7d 29 2e 75 73 61 67 65 3b 0a 09 09 09 09 09 09 69 66 20 28 75 29 20 7b 0a 09 | Usage.}).usage;.......if.(u).{.. |
| b940 | 09 09 09 09 09 09 63 6f 6e 73 74 20 64 65 74 61 69 6c 73 20 3d 20 75 2e 69 6e 70 75 74 54 6f 6b | ......const.details.=.u.inputTok |
| b960 | 65 6e 44 65 74 61 69 6c 73 3b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 75 73 61 67 65 45 76 65 | enDetails;........const.usageEve |
| b980 | 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 74 79 70 65 3a | nt:.AgentEvent.=.{.........type: |
| b9a0 | 20 22 75 73 61 67 65 22 2c 0a 09 09 09 09 09 09 09 09 75 73 61 67 65 3a 20 7b 0a 09 09 09 09 09 | ."usage",.........usage:.{...... |
| b9c0 | 09 09 09 09 69 6e 70 75 74 54 6f 6b 65 6e 73 3a 20 75 2e 69 6e 70 75 74 54 6f 6b 65 6e 73 20 3f | ....inputTokens:.u.inputTokens.? |
| b9e0 | 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 6f 75 74 70 75 74 54 6f 6b 65 6e 73 3a 20 75 2e 6f 75 | ?.0,..........outputTokens:.u.ou |
| ba00 | 74 70 75 74 54 6f 6b 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 63 61 63 68 65 52 | tputTokens.??.0,..........cacheR |
| ba20 | 65 61 64 54 6f 6b 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 61 63 68 65 52 65 61 64 54 6f 6b | eadTokens:.details?.cacheReadTok |
| ba40 | 65 6e 73 20 3f 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 09 63 61 63 68 65 57 72 69 74 65 54 6f 6b | ens.??.0,..........cacheWriteTok |
| ba60 | 65 6e 73 3a 20 64 65 74 61 69 6c 73 3f 2e 63 61 63 68 65 57 72 69 74 65 54 6f 6b 65 6e 73 20 3f | ens:.details?.cacheWriteTokens.? |
| ba80 | 3f 20 30 2c 0a 09 09 09 09 09 09 09 09 7d 2c 0a 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 | ?.0,.........},........};....... |
| baa0 | 09 2f 2f 20 53 65 74 20 44 49 53 50 41 54 43 48 5f 44 45 42 55 47 5f 55 53 41 47 45 3d 31 20 74 | .//.Set.DISPATCH_DEBUG_USAGE=1.t |
| bac0 | 6f 20 70 72 69 6e 74 20 74 68 65 20 72 61 77 20 70 65 72 2d 73 74 65 70 0a 09 09 09 09 09 09 09 | o.print.the.raw.per-step........ |
| bae0 | 2f 2f 20 75 73 61 67 65 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 20 6c 6f 67 20 e2 80 94 20 6c | //.usage.to.the.server.log.....l |
| bb00 | 65 74 73 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 63 61 63 68 65 20 72 65 61 64 73 0a 09 09 09 09 | ets.you.confirm.cache.reads..... |
| bb20 | 09 09 09 2f 2f 20 61 72 65 20 6e 6f 6e 2d 7a 65 72 6f 20 77 69 74 68 6f 75 74 20 74 68 65 20 55 | ...//.are.non-zero.without.the.U |
| bb40 | 49 2e 0a 09 09 09 09 09 09 09 69 66 20 28 70 72 6f 63 65 73 73 2e 65 6e 76 2e 44 49 53 50 41 54 | I.........if.(process.env.DISPAT |
| bb60 | 43 48 5f 44 45 42 55 47 5f 55 53 41 47 45 29 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 6f 6c | CH_DEBUG_USAGE).{.........consol |
| bb80 | 65 2e 65 72 72 6f 72 28 22 5b 64 69 73 70 61 74 63 68 20 75 73 61 67 65 5d 22 2c 20 4a 53 4f 4e | e.error("[dispatch.usage]",.JSON |
| bba0 | 2e 73 74 72 69 6e 67 69 66 79 28 75 73 61 67 65 45 76 65 6e 74 2e 75 73 61 67 65 29 29 3b 0a 09 | .stringify(usageEvent.usage));.. |
| bbc0 | 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 2f 2f 20 4e 6f 74 20 61 70 70 65 6e 64 65 64 20 74 | ......}........//.Not.appended.t |
| bbe0 | 6f 20 63 68 75 6e 6b 73 20 e2 80 94 20 75 73 61 67 65 20 69 73 20 74 65 6c 65 6d 65 74 72 79 2c | o.chunks.....usage.is.telemetry, |
| bc00 | 20 6e 6f 74 0a 09 09 09 09 09 09 09 2f 2f 20 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 6e 74 20 28 | .not........//.message.content.( |
| bc20 | 73 65 65 20 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 29 2e 0a 09 09 09 09 09 09 | see.appendEventToChunks)........ |
| bc40 | 09 79 69 65 6c 64 20 75 73 61 67 65 45 76 65 6e 74 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 | .yield.usageEvent;.......}...... |
| bc60 | 7d 0a 09 09 09 09 09 2f 2f 20 49 67 6e 6f 72 65 64 20 65 76 65 6e 74 73 20 28 69 6e 74 65 6e 74 | }......//.Ignored.events.(intent |
| bc80 | 69 6f 6e 61 6c 29 3a 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 72 74 2c 20 74 65 78 74 2d 73 74 | ional):......//...start,.text-st |
| bca0 | 61 72 74 2c 20 74 65 78 74 2d 65 6e 64 2c 20 72 65 61 73 6f 6e 69 6e 67 2d 73 74 61 72 74 2c 0a | art,.text-end,.reasoning-start,. |
| bcc0 | 09 09 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 73 74 61 72 74 2c 20 74 6f 6f 6c | .....//...tool-input-start,.tool |
| bce0 | 2d 69 6e 70 75 74 2d 64 65 6c 74 61 2c 20 74 6f 6f 6c 2d 69 6e 70 75 74 2d 65 6e 64 2c 0a 09 09 | -input-delta,.tool-input-end,... |
| bd00 | 09 09 09 2f 2f 20 20 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 28 6f 6e 6c 79 20 66 69 72 65 73 20 | ...//...tool-result.(only.fires. |
| bd20 | 69 66 20 74 6f 6f 6c 20 68 61 73 20 65 78 65 63 75 74 65 3b 20 6f 75 72 73 20 64 6f 6e 27 74 29 | if.tool.has.execute;.ours.don't) |
| bd40 | 2c 0a 09 09 09 09 09 2f 2f 20 20 20 73 74 61 72 74 2d 73 74 65 70 2c 20 66 69 6e 69 73 68 20 28 | ,......//...start-step,.finish.( |
| bd60 | 61 67 67 72 65 67 61 74 65 20 74 6f 74 61 6c 55 73 61 67 65 20 6f 6e 6c 79 29 2c 20 72 61 77 2c | aggregate.totalUsage.only),.raw, |
| bd80 | 0a 09 09 09 09 09 2f 2f 20 20 20 73 6f 75 72 63 65 2c 20 66 69 6c 65 2c 20 74 6f 6f 6c 2d 6f 75 | ......//...source,.file,.tool-ou |
| bda0 | 74 70 75 74 2d 64 65 6e 69 65 64 2c 20 74 6f 6f 6c 2d 61 70 70 72 6f 76 61 6c 2d 2a 0a 09 09 09 | tput-denied,.tool-approval-*.... |
| bdc0 | 09 7d 0a 0a 09 09 09 09 2f 2f 20 4e 6f 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6d 65 61 6e 73 20 74 | .}......//.No.tool.calls.means.t |
| bde0 | 68 65 20 61 67 65 6e 74 20 69 73 20 64 6f 6e 65 20 e2 80 94 20 74 68 65 20 61 73 73 69 73 74 61 | he.agent.is.done.....the.assista |
| be00 | 6e 74 20 6d 65 73 73 61 67 65 0a 09 09 09 09 2f 2f 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 | nt.message.....//.already.exists |
| be20 | 20 69 6e 20 73 74 65 70 4d 65 73 73 61 67 65 73 20 77 69 74 68 20 75 70 2d 74 6f 2d 64 61 74 65 | .in.stepMessages.with.up-to-date |
| be40 | 20 63 68 75 6e 6b 73 2e 0a 09 09 09 09 69 66 20 28 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c | .chunks......if.(stepToolCalls.l |
| be60 | 65 6e 67 74 68 20 3d 3d 3d 20 30 29 20 7b 0a 09 09 09 09 09 6c 6f 67 53 74 65 70 4c 69 66 65 63 | ength.===.0).{......logStepLifec |
| be80 | 79 63 6c 65 28 7b 0a 09 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e | ycle({.......tabId:.this.config. |
| bea0 | 74 61 62 49 64 2c 0a 09 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 09 65 76 65 6e 74 3a 20 | tabId,.......step,.......event:. |
| bec0 | 22 73 74 65 70 2d 65 6e 64 2d 6e 6f 2d 74 6f 6f 6c 73 22 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 | "step-end-no-tools",......});... |
| bee0 | 09 09 09 6c 6f 67 41 67 65 6e 74 4c 6f 6f 70 28 7b 0a 09 09 09 09 09 09 74 61 62 49 64 3a 20 74 | ...logAgentLoop({.......tabId:.t |
| bf00 | 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 49 64 2c 0a 09 09 09 09 09 09 65 76 65 6e 74 3a 20 22 | his.config.tabId,.......event:." |
| bf20 | 72 75 6e 2d 65 6e 64 2d 63 6c 65 61 6e 22 2c 0a 09 09 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 20 | run-end-clean",.......detail:.{. |
| bf40 | 73 74 65 70 73 3a 20 73 74 65 70 20 2b 20 31 20 7d 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 | steps:.step.+.1.},......});..... |
| bf60 | 09 62 72 65 61 6b 3b 0a 09 09 09 09 7d 0a 09 09 09 09 6c 6f 67 53 74 65 70 4c 69 66 65 63 79 63 | .break;.....}.....logStepLifecyc |
| bf80 | 6c 65 28 7b 0a 09 09 09 09 09 74 61 62 49 64 3a 20 74 68 69 73 2e 63 6f 6e 66 69 67 2e 74 61 62 | le({......tabId:.this.config.tab |
| bfa0 | 49 64 2c 0a 09 09 09 09 09 73 74 65 70 2c 0a 09 09 09 09 09 65 76 65 6e 74 3a 20 22 73 74 65 70 | Id,......step,......event:."step |
| bfc0 | 2d 68 61 73 2d 74 6f 6f 6c 73 22 2c 0a 09 09 09 09 09 64 65 74 61 69 6c 3a 20 7b 0a 09 09 09 09 | -has-tools",......detail:.{..... |
| bfe0 | 09 09 74 6f 6f 6c 43 6f 75 6e 74 3a 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 | ..toolCount:.stepToolCalls.lengt |
| c000 | 68 2c 0a 09 09 09 09 09 09 74 6f 6f 6c 4e 61 6d 65 73 3a 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c | h,.......toolNames:.stepToolCall |
| c020 | 73 2e 6d 61 70 28 28 74 29 20 3d 3e 20 74 2e 6e 61 6d 65 29 2c 0a 09 09 09 09 09 7d 2c 0a 09 09 | s.map((t).=>.t.name),......},... |
| c040 | 09 09 7d 29 3b 0a 0a 09 09 09 09 2f 2f 20 45 78 65 63 75 74 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 | ..});......//.Execute.tool.calls |
| c060 | 20 6d 61 6e 75 61 6c 6c 79 2e 20 54 68 65 69 72 20 72 65 73 75 6c 74 73 20 6d 65 72 67 65 20 62 | .manually..Their.results.merge.b |
| c080 | 61 63 6b 20 69 6e 74 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 60 63 68 75 6e 6b 73 60 20 61 63 63 | ack.into.the.....//.`chunks`.acc |
| c0a0 | 75 6d 75 6c 61 74 6f 72 20 76 69 61 20 60 61 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b | umulator.via.`appendEventToChunk |
| c0c0 | 73 60 2c 20 77 68 69 63 68 20 72 6f 75 74 65 73 0a 09 09 09 09 2f 2f 20 65 61 63 68 20 72 65 73 | s`,.which.routes.....//.each.res |
| c0e0 | 75 6c 74 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 65 6e 74 72 79 20 69 6e 73 69 64 65 20 | ult.to.the.correct.entry.inside. |
| c100 | 69 74 73 20 74 6f 6f 6c 2d 62 61 74 63 68 20 63 68 75 6e 6b 2e 0a 09 09 09 09 2f 2f 20 54 72 61 | its.tool-batch.chunk......//.Tra |
| c120 | 63 6b 20 77 68 69 63 68 20 63 61 6c 6c 73 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 61 20 72 65 | ck.which.calls.already.have.a.re |
| c140 | 63 6f 72 64 65 64 20 72 65 73 75 6c 74 20 28 66 72 6f 6d 20 74 68 65 0a 09 09 09 09 2f 2f 20 73 | corded.result.(from.the.....//.s |
| c160 | 79 6e 74 68 65 74 69 63 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 6f 6f 6c 20 65 72 72 6f 72 20 | ynthetic.unavailable-tool.error. |
| c180 | 70 61 74 68 20 61 62 6f 76 65 29 20 73 6f 20 77 65 20 64 6f 6e 27 74 0a 09 09 09 09 2f 2f 20 72 | path.above).so.we.don't.....//.r |
| c1a0 | 65 2d 65 78 65 63 75 74 65 20 74 68 65 6d 2e 0a 09 09 09 09 63 6f 6e 73 74 20 61 6c 72 65 61 64 | e-execute.them......const.alread |
| c1c0 | 79 52 65 73 6f 6c 76 65 64 20 3d 20 6e 65 77 20 53 65 74 3c 73 74 72 69 6e 67 3e 28 29 3b 0a 09 | yResolved.=.new.Set<string>();.. |
| c1e0 | 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 63 20 6f 66 20 63 68 75 6e 6b 73 29 20 7b 0a 09 09 09 | ...for.(const.c.of.chunks).{.... |
| c200 | 09 09 69 66 20 28 63 2e 74 79 70 65 20 21 3d 3d 20 22 74 6f 6f 6c 2d 62 61 74 63 68 22 29 20 63 | ..if.(c.type.!==."tool-batch").c |
| c220 | 6f 6e 74 69 6e 75 65 3b 0a 09 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 65 6e 74 72 79 20 6f | ontinue;......for.(const.entry.o |
| c240 | 66 20 63 2e 63 61 6c 6c 73 29 20 7b 0a 09 09 09 09 09 09 69 66 20 28 65 6e 74 72 79 2e 72 65 73 | f.c.calls).{.......if.(entry.res |
| c260 | 75 6c 74 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 61 6c 72 65 61 64 79 52 65 73 6f 6c 76 | ult.!==.undefined).alreadyResolv |
| c280 | 65 64 2e 61 64 64 28 65 6e 74 72 79 2e 69 64 29 3b 0a 09 09 09 09 09 7d 0a 09 09 09 09 7d 0a 0a | ed.add(entry.id);......}.....}.. |
| c2a0 | 09 09 09 09 2f 2f 20 49 64 65 6e 74 69 66 79 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 | ....//.Identify.the.index.of.the |
| c2c0 | 20 6c 61 73 74 20 74 6f 6f 6c 20 69 6e 20 74 68 69 73 20 62 61 74 63 68 20 74 68 61 74 20 77 69 | .last.tool.in.this.batch.that.wi |
| c2e0 | 6c 6c 0a 09 09 09 09 2f 2f 20 61 63 74 75 61 6c 6c 79 20 65 78 65 63 75 74 65 2e 20 51 75 65 75 | ll.....//.actually.execute..Queu |
| c300 | 65 64 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 62 75 66 66 65 72 65 64 20 61 63 | ed.user.messages.are.buffered.ac |
| c320 | 72 6f 73 73 0a 09 09 09 09 2f 2f 20 74 68 69 73 20 62 61 74 63 68 20 61 6e 64 20 69 6e 6a 65 63 | ross.....//.this.batch.and.injec |
| c340 | 74 65 64 20 69 6e 74 6f 20 4f 4e 4c 59 20 74 68 61 74 20 74 6f 6f 6c 27 73 20 72 65 73 75 6c 74 | ted.into.ONLY.that.tool's.result |
| c360 | 2c 20 73 6f 20 74 68 65 0a 09 09 09 09 2f 2f 20 69 6e 74 65 72 72 75 70 74 20 61 70 70 65 61 72 | ,.so.the.....//.interrupt.appear |
| c380 | 73 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 20 70 65 72 20 73 74 65 70 20 72 61 74 68 65 72 20 74 | s.exactly.once.per.step.rather.t |
| c3a0 | 68 61 6e 20 66 72 61 67 6d 65 6e 74 65 64 0a 09 09 09 09 2f 2f 20 61 63 72 6f 73 73 20 77 68 69 | han.fragmented.....//.across.whi |
| c3c0 | 63 68 65 76 65 72 20 74 6f 6f 6c 20 68 61 70 70 65 6e 65 64 20 74 6f 20 64 65 71 75 65 75 65 20 | chever.tool.happened.to.dequeue. |
| c3e0 | 66 69 72 73 74 2e 20 54 6f 6f 6c 2d 6c 65 76 65 6c 0a 09 09 09 09 2f 2f 20 69 6e 74 65 72 72 75 | first..Tool-level.....//.interru |
| c400 | 70 74 20 68 61 6e 64 6c 65 72 73 20 69 6e 20 72 75 6e 2d 73 68 65 6c 6c 2f 79 6f 75 74 75 62 65 | pt.handlers.in.run-shell/youtube |
| c420 | 2d 74 72 61 6e 73 63 72 69 62 65 2f 72 65 74 72 69 65 76 65 0a 09 09 09 09 2f 2f 20 73 74 69 6c | -transcribe/retrieve.....//.stil |
| c440 | 6c 20 65 6d 62 65 64 20 74 68 65 69 72 20 6f 77 6e 20 69 6e 74 65 72 72 75 70 74 20 74 65 78 74 | l.embed.their.own.interrupt.text |
| c460 | 20 69 6e 20 74 68 65 69 72 20 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20 e2 80 94 0a 09 09 09 09 | .in.their.return.values......... |
| c480 | 2f 2f 20 74 68 61 74 20 70 61 74 68 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 61 6e 64 20 | //.that.path.is.independent.and. |
| c4a0 | 72 65 6d 61 69 6e 73 20 63 6f 72 72 65 63 74 2e 0a 09 09 09 09 6c 65 74 20 6c 61 73 74 45 78 65 | remains.correct......let.lastExe |
| c4c0 | 63 75 74 61 62 6c 65 49 64 78 20 3d 20 2d 31 3b 0a 09 09 09 09 66 6f 72 20 28 6c 65 74 20 69 20 | cutableIdx.=.-1;.....for.(let.i. |
| c4e0 | 3d 20 30 3b 20 69 20 3c 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 3b 20 69 | =.0;.i.<.stepToolCalls.length;.i |
| c500 | 2b 2b 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 41 74 20 3d 20 73 74 65 70 54 6f 6f 6c | ++).{......const.tcAt.=.stepTool |
| c520 | 43 61 6c 6c 73 5b 69 5d 3b 0a 09 09 09 09 09 69 66 20 28 74 63 41 74 20 26 26 20 21 61 6c 72 65 | Calls[i];......if.(tcAt.&&.!alre |
| c540 | 61 64 79 52 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 41 74 2e 69 64 29 29 20 6c 61 73 74 45 78 | adyResolved.has(tcAt.id)).lastEx |
| c560 | 65 63 75 74 61 62 6c 65 49 64 78 20 3d 20 69 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 41 | ecutableIdx.=.i;.....}......//.A |
| c580 | 63 63 75 6d 75 6c 61 74 6f 72 20 66 6f 72 20 6d 65 73 73 61 67 65 73 20 64 65 71 75 65 75 65 64 | ccumulator.for.messages.dequeued |
| c5a0 | 20 64 75 72 69 6e 67 20 74 68 69 73 20 62 61 74 63 68 2e 20 44 72 61 69 6e 65 64 0a 09 09 09 09 | .during.this.batch..Drained..... |
| c5c0 | 2f 2f 20 6f 6e 6c 79 20 61 74 20 60 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 64 78 60 2e 20 | //.only.at.`lastExecutableIdx`.. |
| c5e0 | 44 65 73 74 72 75 63 74 69 76 65 20 64 65 71 75 65 75 65 20 61 74 20 74 68 65 20 71 75 65 75 65 | Destructive.dequeue.at.the.queue |
| c600 | 0a 09 09 09 09 2f 2f 20 6c 65 76 65 6c 20 70 72 65 76 65 6e 74 73 20 74 68 65 20 73 61 6d 65 20 | .....//.level.prevents.the.same. |
| c620 | 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 61 70 70 65 61 72 69 6e 67 20 69 6e 20 73 75 62 73 65 71 | message.from.appearing.in.subseq |
| c640 | 75 65 6e 74 0a 09 09 09 09 2f 2f 20 62 61 74 63 68 65 73 2e 0a 09 09 09 09 63 6f 6e 73 74 20 62 | uent.....//.batches......const.b |
| c660 | 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 3a 20 7b 20 69 64 3a 20 73 74 72 69 | atchPendingInjection:.{.id:.stri |
| c680 | 6e 67 3b 20 6d 65 73 73 61 67 65 3a 20 73 74 72 69 6e 67 3b 20 74 69 6d 65 73 74 61 6d 70 3a 20 | ng;.message:.string;.timestamp:. |
| c6a0 | 6e 75 6d 62 65 72 20 7d 5b 5d 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 2f 2f 20 52 65 73 75 6c 74 73 | number.}[].=.[];......//.Results |
| c6c0 | 20 6f 66 20 61 6c 72 65 61 64 79 2d 65 78 65 63 75 74 65 64 20 63 61 6c 6c 73 20 69 6e 20 74 68 | .of.already-executed.calls.in.th |
| c6e0 | 69 73 20 62 61 74 63 68 2c 20 6b 65 79 65 64 20 62 79 0a 09 09 09 09 2f 2f 20 60 74 6f 6f 6c 44 | is.batch,.keyed.by.....//.`toolD |
| c700 | 65 64 75 70 4b 65 79 60 2e 20 42 79 74 65 2d 69 64 65 6e 74 69 63 61 6c 20 72 65 70 65 61 74 73 | edupKey`..Byte-identical.repeats |
| c720 | 20 72 65 75 73 65 20 74 68 65 20 66 69 72 73 74 20 72 65 73 75 6c 74 0a 09 09 09 09 2f 2f 20 69 | .reuse.the.first.result.....//.i |
| c740 | 6e 73 74 65 61 64 20 6f 66 20 72 65 2d 72 75 6e 6e 69 6e 67 20 74 68 65 20 74 6f 6f 6c 20 28 73 | nstead.of.re-running.the.tool.(s |
| c760 | 65 65 20 74 6f 6f 6c 2d 72 75 6e 6e 65 72 2d 64 75 70 6c 69 63 61 74 69 6f 6e 2d 0a 09 09 09 09 | ee.tool-runner-duplication-..... |
| c780 | 2f 2f 20 69 6e 63 69 64 65 6e 74 2e 6d 64 29 2e 20 4f 6e 6c 79 20 74 68 65 20 72 61 77 2c 20 70 | //.incident.md)..Only.the.raw,.p |
| c7a0 | 72 65 2d 69 6e 74 65 72 72 75 70 74 2d 69 6e 6a 65 63 74 69 6f 6e 20 72 65 73 75 6c 74 20 69 73 | re-interrupt-injection.result.is |
| c7c0 | 0a 09 09 09 09 2f 2f 20 63 61 63 68 65 64 20 73 6f 20 61 20 72 65 75 73 65 64 20 63 6f 70 79 20 | .....//.cached.so.a.reused.copy. |
| c7e0 | 6e 65 76 65 72 20 63 61 72 72 69 65 73 20 61 6e 6f 74 68 65 72 20 63 61 6c 6c 27 73 20 69 6e 74 | never.carries.another.call's.int |
| c800 | 65 72 72 75 70 74 2e 0a 09 09 09 09 63 6f 6e 73 74 20 64 65 64 75 70 52 65 73 75 6c 74 73 20 3d | errupt......const.dedupResults.= |
| c820 | 20 6e 65 77 20 4d 61 70 3c 73 74 72 69 6e 67 2c 20 54 6f 6f 6c 52 65 73 75 6c 74 3e 28 29 3b 0a | .new.Map<string,.ToolResult>();. |
| c840 | 0a 09 09 09 09 66 6f 72 20 28 6c 65 74 20 74 63 49 64 78 20 3d 20 30 3b 20 74 63 49 64 78 20 3c | .....for.(let.tcIdx.=.0;.tcIdx.< |
| c860 | 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2e 6c 65 6e 67 74 68 3b 20 74 63 49 64 78 2b 2b 29 20 | .stepToolCalls.length;.tcIdx++). |
| c880 | 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 74 63 20 3d 20 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 5b | {......const.tc.=.stepToolCalls[ |
| c8a0 | 74 63 49 64 78 5d 3b 0a 09 09 09 09 09 69 66 20 28 21 74 63 20 7c 7c 20 61 6c 72 65 61 64 79 52 | tcIdx];......if.(!tc.||.alreadyR |
| c8c0 | 65 73 6f 6c 76 65 64 2e 68 61 73 28 74 63 2e 69 64 29 29 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 | esolved.has(tc.id)).continue;... |
| c8e0 | 09 09 09 09 63 6f 6e 73 74 20 64 65 64 75 70 4b 65 79 20 3d 20 74 6f 6f 6c 44 65 64 75 70 4b 65 | ....const.dedupKey.=.toolDedupKe |
| c900 | 79 28 74 63 2e 6e 61 6d 65 2c 20 74 63 2e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 09 09 09 09 09 | y(tc.name,.tc.arguments);....... |
| c920 | 6c 65 74 20 74 6f 6f 6c 52 65 73 75 6c 74 3a 20 54 6f 6f 6c 52 65 73 75 6c 74 20 7c 20 75 6e 64 | let.toolResult:.ToolResult.|.und |
| c940 | 65 66 69 6e 65 64 3b 0a 09 09 09 09 09 63 6f 6e 73 74 20 63 61 63 68 65 64 20 3d 20 64 65 64 75 | efined;......const.cached.=.dedu |
| c960 | 70 4b 65 79 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 64 65 64 75 70 52 65 73 75 6c 74 73 2e 67 65 74 | pKey.!==.null.?.dedupResults.get |
| c980 | 28 64 65 64 75 70 4b 65 79 29 20 3a 20 75 6e 64 65 66 69 6e 65 64 3b 0a 09 09 09 09 09 69 66 20 | (dedupKey).:.undefined;......if. |
| c9a0 | 28 63 61 63 68 65 64 29 20 7b 0a 09 09 09 09 09 09 2f 2f 20 49 64 65 6e 74 69 63 61 6c 20 63 61 | (cached).{.......//.Identical.ca |
| c9c0 | 6c 6c 20 61 6c 72 65 61 64 79 20 72 61 6e 20 69 6e 20 74 68 69 73 20 62 61 74 63 68 20 e2 80 94 | ll.already.ran.in.this.batch.... |
| c9e0 | 20 72 65 75 73 65 20 69 74 73 0a 09 09 09 09 09 09 2f 2f 20 6f 75 74 70 75 74 20 75 6e 64 65 72 | .reuse.its.......//.output.under |
| ca00 | 20 74 68 69 73 20 63 61 6c 6c 27 73 20 6f 77 6e 20 69 64 20 28 6e 6f 20 65 78 65 63 75 74 69 6f | .this.call's.own.id.(no.executio |
| ca20 | 6e 2c 20 6e 6f 20 73 68 65 6c 6c 0a 09 09 09 09 09 09 2f 2f 20 6f 75 74 70 75 74 20 74 6f 20 73 | n,.no.shell.......//.output.to.s |
| ca40 | 74 72 65 61 6d 29 2e 0a 09 09 09 09 09 09 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 7b 20 2e 2e 2e | tream)........toolResult.=.{.... |
| ca60 | 63 61 63 68 65 64 2c 20 74 6f 6f 6c 43 61 6c 6c 49 64 3a 20 74 63 2e 69 64 2c 20 74 6f 6f 6c 4e | cached,.toolCallId:.tc.id,.toolN |
| ca80 | 61 6d 65 3a 20 74 63 2e 6e 61 6d 65 20 7d 3b 0a 09 09 09 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 | ame:.tc.name.};......}.else.{... |
| caa0 | 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 3a 20 41 72 72 61 | ....const.shellOutputQueue:.Arra |
| cac0 | 79 3c 7b 20 64 61 74 61 3a 20 73 74 72 69 6e 67 3b 20 73 74 72 65 61 6d 3a 20 22 73 74 64 6f 75 | y<{.data:.string;.stream:."stdou |
| cae0 | 74 22 20 7c 20 22 73 74 64 65 72 72 22 20 7d 3e 20 3d 20 5b 5d 3b 0a 0a 09 09 09 09 09 09 63 6f | t".|."stderr".}>.=.[];........co |
| cb00 | 6e 73 74 20 65 78 65 63 50 72 6f 6d 69 73 65 20 3d 20 74 68 69 73 2e 65 78 65 63 75 74 65 54 6f | nst.execPromise.=.this.executeTo |
| cb20 | 6f 6c 57 69 74 68 53 74 72 65 61 6d 69 6e 67 28 74 63 2c 20 73 68 65 6c 6c 4f 75 74 70 75 74 51 | olWithStreaming(tc,.shellOutputQ |
| cb40 | 75 65 75 65 29 3b 0a 0a 09 09 09 09 09 09 2f 2f 20 50 6f 6c 6c 20 66 6f 72 20 73 68 65 6c 6c 20 | ueue);........//.Poll.for.shell. |
| cb60 | 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 74 6f 6f 6c 20 69 73 20 72 75 6e 6e 69 6e 67 | output.while.the.tool.is.running |
| cb80 | 2c 20 75 73 69 6e 67 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 0a 09 09 09 09 09 09 2f 2f 20 73 6f | ,.using.Promise.race.......//.so |
| cba0 | 20 77 65 20 63 61 6e 20 79 69 65 6c 64 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 20 65 76 65 6e 74 | .we.can.yield.shell-output.event |
| cbc0 | 73 20 61 73 20 74 68 65 79 20 61 72 72 69 76 65 20 72 61 74 68 65 72 20 74 68 61 6e 20 62 75 66 | s.as.they.arrive.rather.than.buf |
| cbe0 | 66 65 72 69 6e 67 0a 09 09 09 09 09 09 2f 2f 20 74 68 65 6d 20 61 6c 6c 20 75 6e 74 69 6c 20 74 | fering.......//.them.all.until.t |
| cc00 | 6f 6f 6c 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 09 09 09 09 09 09 77 68 69 6c 65 20 28 74 6f 6f | ool.completion........while.(too |
| cc20 | 6c 52 65 73 75 6c 74 20 3d 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 7b 0a 09 09 09 09 09 09 09 | lResult.===.undefined).{........ |
| cc40 | 69 66 20 28 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 6c 65 6e 67 74 68 20 3e 20 30 29 | if.(shellOutputQueue.length.>.0) |
| cc60 | 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 74 65 6d 20 3d 20 73 68 65 6c 6c 4f 75 74 | .{.........const.item.=.shellOut |
| cc80 | 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 28 29 3b 0a 09 09 09 09 09 09 09 09 69 66 20 28 69 74 | putQueue.shift();.........if.(it |
| cca0 | 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c 45 76 65 6e 74 3a | em).{..........const.shellEvent: |
| ccc0 | 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 09 09 74 79 70 65 3a 20 | .AgentEvent.=.{...........type:. |
| cce0 | 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 09 09 09 09 09 09 09 09 09 64 61 74 61 3a 20 | "shell-output",...........data:. |
| cd00 | 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 09 09 09 73 74 72 65 61 6d 3a 20 69 74 65 | item.data,...........stream:.ite |
| cd20 | 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 09 09 09 61 | m.stream,..........};..........a |
| cd40 | 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 73 68 65 6c 6c | ppendEventToChunks(chunks,.shell |
| cd60 | 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 09 79 69 65 6c 64 20 73 68 65 6c 6c 45 76 65 6e | Event);..........yield.shellEven |
| cd80 | 74 3b 0a 09 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 | t;.........}.........continue;.. |
| cda0 | 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 72 61 63 65 52 65 73 75 6c 74 20 | ......}........const.raceResult. |
| cdc0 | 3d 20 61 77 61 69 74 20 50 72 6f 6d 69 73 65 2e 72 61 63 65 28 5b 0a 09 09 09 09 09 09 09 09 65 | =.await.Promise.race([.........e |
| cde0 | 78 65 63 50 72 6f 6d 69 73 65 2e 74 68 65 6e 28 28 72 29 20 3d 3e 20 28 7b 20 64 6f 6e 65 3a 20 | xecPromise.then((r).=>.({.done:. |
| ce00 | 74 72 75 65 20 61 73 20 63 6f 6e 73 74 2c 20 76 61 6c 75 65 3a 20 72 20 7d 29 29 2c 0a 09 09 09 | true.as.const,.value:.r.})),.... |
| ce20 | 09 09 09 09 09 6e 65 77 20 50 72 6f 6d 69 73 65 3c 7b 20 64 6f 6e 65 3a 20 66 61 6c 73 65 20 7d | .....new.Promise<{.done:.false.} |
| ce40 | 3e 28 28 72 65 73 6f 6c 76 65 29 20 3d 3e 0a 09 09 09 09 09 09 09 09 09 73 65 74 49 6d 6d 65 64 | >((resolve).=>..........setImmed |
| ce60 | 69 61 74 65 28 28 29 20 3d 3e 20 72 65 73 6f 6c 76 65 28 7b 20 64 6f 6e 65 3a 20 66 61 6c 73 65 | iate(().=>.resolve({.done:.false |
| ce80 | 20 7d 29 29 2c 0a 09 09 09 09 09 09 09 09 29 2c 0a 09 09 09 09 09 09 09 5d 29 3b 0a 09 09 09 09 | .})),.........),........]);..... |
| cea0 | 09 09 09 69 66 20 28 72 61 63 65 52 65 73 75 6c 74 2e 64 6f 6e 65 29 20 7b 0a 09 09 09 09 09 09 | ...if.(raceResult.done).{....... |
| cec0 | 09 09 74 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 72 61 63 65 52 65 73 75 6c 74 2e 76 61 6c 75 65 3b | ..toolResult.=.raceResult.value; |
| cee0 | 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 2f 2f 20 44 72 61 69 | ........}.......}........//.Drai |
| cf00 | 6e 20 61 6e 79 20 72 65 6d 61 69 6e 69 6e 67 20 73 68 65 6c 6c 20 6f 75 74 70 75 74 20 65 6d 69 | n.any.remaining.shell.output.emi |
| cf20 | 74 74 65 64 20 62 65 66 6f 72 65 20 77 65 20 72 65 61 64 20 74 68 65 20 72 65 73 75 6c 74 0a 09 | tted.before.we.read.the.result.. |
| cf40 | 09 09 09 09 09 77 68 69 6c 65 20 28 73 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 6c 65 6e | .....while.(shellOutputQueue.len |
| cf60 | 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 09 63 6f 6e 73 74 20 69 74 65 6d 20 3d 20 73 | gth.>.0).{........const.item.=.s |
| cf80 | 68 65 6c 6c 4f 75 74 70 75 74 51 75 65 75 65 2e 73 68 69 66 74 28 29 3b 0a 09 09 09 09 09 09 09 | hellOutputQueue.shift();........ |
| cfa0 | 69 66 20 28 69 74 65 6d 29 20 7b 0a 09 09 09 09 09 09 09 09 63 6f 6e 73 74 20 73 68 65 6c 6c 45 | if.(item).{.........const.shellE |
| cfc0 | 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 0a 09 09 09 09 09 09 09 09 09 74 79 | vent:.AgentEvent.=.{..........ty |
| cfe0 | 70 65 3a 20 22 73 68 65 6c 6c 2d 6f 75 74 70 75 74 22 2c 0a 09 09 09 09 09 09 09 09 09 64 61 74 | pe:."shell-output",..........dat |
| d000 | 61 3a 20 69 74 65 6d 2e 64 61 74 61 2c 0a 09 09 09 09 09 09 09 09 09 73 74 72 65 61 6d 3a 20 69 | a:.item.data,..........stream:.i |
| d020 | 74 65 6d 2e 73 74 72 65 61 6d 2c 0a 09 09 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 09 09 61 | tem.stream,.........};.........a |
| d040 | 70 70 65 6e 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 73 68 65 6c 6c | ppendEventToChunks(chunks,.shell |
| d060 | 45 76 65 6e 74 29 3b 0a 09 09 09 09 09 09 09 09 79 69 65 6c 64 20 73 68 65 6c 6c 45 76 65 6e 74 | Event);.........yield.shellEvent |
| d080 | 3b 0a 09 09 09 09 09 09 09 7d 0a 09 09 09 09 09 09 7d 0a 0a 09 09 09 09 09 09 2f 2f 20 43 61 63 | ;........}.......}........//.Cac |
| d0a0 | 68 65 20 74 68 65 20 72 61 77 20 72 65 73 75 6c 74 20 73 6f 20 6c 61 74 65 72 20 69 64 65 6e 74 | he.the.raw.result.so.later.ident |
| d0c0 | 69 63 61 6c 20 63 61 6c 6c 73 20 69 6e 20 74 68 69 73 0a 09 09 09 09 09 09 2f 2f 20 62 61 74 63 | ical.calls.in.this.......//.batc |
| d0e0 | 68 20 63 61 6e 20 72 65 75 73 65 20 69 74 2e 0a 09 09 09 09 09 09 69 66 20 28 64 65 64 75 70 4b | h.can.reuse.it........if.(dedupK |
| d100 | 65 79 20 21 3d 3d 20 6e 75 6c 6c 29 20 64 65 64 75 70 52 65 73 75 6c 74 73 2e 73 65 74 28 64 65 | ey.!==.null).dedupResults.set(de |
| d120 | 64 75 70 4b 65 79 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 29 3b 0a 09 09 09 09 09 7d 0a 0a 09 09 09 | dupKey,.toolResult);......}..... |
| d140 | 09 09 2f 2f 20 48 61 72 76 65 73 74 20 61 6e 79 20 71 75 65 75 65 64 20 75 73 65 72 20 6d 65 73 | ..//.Harvest.any.queued.user.mes |
| d160 | 73 61 67 65 73 20 62 75 74 20 44 45 46 45 52 20 69 6e 6a 65 63 74 69 6f 6e 20 75 6e 74 69 6c 0a | sages.but.DEFER.injection.until. |
| d180 | 09 09 09 09 09 2f 2f 20 74 68 65 20 6c 61 73 74 20 74 6f 6f 6c 20 6f 66 20 74 68 65 20 62 61 74 | .....//.the.last.tool.of.the.bat |
| d1a0 | 63 68 2e 20 54 68 69 73 20 63 6f 6c 6c 61 70 73 65 73 20 6d 75 6c 74 69 70 6c 65 0a 09 09 09 09 | ch..This.collapses.multiple..... |
| d1c0 | 09 2f 2f 20 71 75 65 75 65 64 20 6d 65 73 73 61 67 65 73 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c | .//.queued.messages.into.a.singl |
| d1e0 | 65 20 69 6e 74 65 72 72 75 70 74 20 62 6c 6f 63 6b 20 6f 6e 20 61 20 73 69 6e 67 6c 65 0a 09 09 | e.interrupt.block.on.a.single... |
| d200 | 09 09 09 2f 2f 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 6e 73 74 65 61 64 20 6f 66 20 66 72 61 | ...//.tool-result.instead.of.fra |
| d220 | 67 6d 65 6e 74 69 6e 67 20 61 63 72 6f 73 73 20 74 68 65 20 62 61 74 63 68 2e 0a 09 09 09 09 09 | gmenting.across.the.batch....... |
| d240 | 69 66 20 28 74 68 69 73 2e 71 75 65 75 65 43 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 09 09 09 09 09 | if.(this.queueCallbacks).{...... |
| d260 | 09 63 6f 6e 73 74 20 71 75 65 75 65 64 4d 73 67 73 20 3d 20 74 68 69 73 2e 71 75 65 75 65 43 61 | .const.queuedMsgs.=.this.queueCa |
| d280 | 6c 6c 62 61 63 6b 73 2e 64 65 71 75 65 75 65 4d 65 73 73 61 67 65 73 28 29 3b 0a 09 09 09 09 09 | llbacks.dequeueMessages();...... |
| d2a0 | 09 69 66 20 28 71 75 65 75 65 64 4d 73 67 73 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 | .if.(queuedMsgs.length.>.0).{... |
| d2c0 | 09 09 09 09 09 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 70 75 73 68 28 | .....batchPendingInjection.push( |
| d2e0 | 2e 2e 2e 71 75 65 75 65 64 4d 73 67 73 29 3b 0a 09 09 09 09 09 09 7d 0a 09 09 09 09 09 7d 0a 0a | ...queuedMsgs);.......}......}.. |
| d300 | 09 09 09 09 09 6c 65 74 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 3d 20 74 6f 6f 6c 52 | .....let.finalToolResult.=.toolR |
| d320 | 65 73 75 6c 74 3b 0a 09 09 09 09 09 69 66 20 28 74 63 49 64 78 20 3d 3d 3d 20 6c 61 73 74 45 78 | esult;......if.(tcIdx.===.lastEx |
| d340 | 65 63 75 74 61 62 6c 65 49 64 78 20 26 26 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 | ecutableIdx.&&.batchPendingInjec |
| d360 | 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 09 63 6f 6e 73 74 20 75 | tion.length.>.0).{.......const.u |
| d380 | 73 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 | serMessages.=.batchPendingInject |
| d3a0 | 69 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 61 67 65 29 2e 6a 6f 69 6e 28 22 | ion.map((m).=>.m.message).join(" |
| d3c0 | 5c 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 09 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 | \n---\n");.......finalToolResult |
| d3e0 | 20 3d 20 7b 0a 09 09 09 09 09 09 09 2e 2e 2e 74 6f 6f 6c 52 65 73 75 6c 74 2c 0a 09 09 09 09 09 | .=.{...........toolResult,...... |
| d400 | 09 09 72 65 73 75 6c 74 3a 20 60 24 7b 74 6f 6f 6c 52 65 73 75 6c 74 2e 72 65 73 75 6c 74 7d 5c | ..result:.`${toolResult.result}\ |
| d420 | 6e 5c 6e 5b 55 53 45 52 20 49 4e 54 45 52 52 55 50 54 5d 5c 6e 54 68 65 20 75 73 65 72 20 68 61 | n\n[USER.INTERRUPT]\nThe.user.ha |
| d440 | 73 20 73 65 6e 74 20 79 6f 75 20 6d 65 73 73 61 67 65 28 73 29 20 77 68 69 6c 65 20 79 6f 75 20 | s.sent.you.message(s).while.you. |
| d460 | 77 65 72 65 20 77 6f 72 6b 69 6e 67 2e 20 59 6f 75 20 4d 55 53 54 20 61 64 64 72 65 73 73 20 74 | were.working..You.MUST.address.t |
| d480 | 68 65 73 65 20 62 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 69 6e 67 20 77 69 74 68 20 79 6f 75 72 | hese.before.continuing.with.your |
| d4a0 | 20 63 75 72 72 65 6e 74 20 74 61 73 6b 3a 5c 6e 5c 6e 24 7b 75 73 65 72 4d 65 73 73 61 67 65 73 | .current.task:\n\n${userMessages |
| d4c0 | 7d 60 2c 0a 09 09 09 09 09 09 7d 3b 0a 09 09 09 09 09 09 62 61 74 63 68 50 65 6e 64 69 6e 67 49 | }`,.......};.......batchPendingI |
| d4e0 | 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3d 20 30 3b 0a 09 09 09 09 09 7d 0a 0a 09 09 09 | njection.length.=.0;......}..... |
| d500 | 09 09 63 6f 6e 73 74 20 74 72 45 76 65 6e 74 3a 20 41 67 65 6e 74 45 76 65 6e 74 20 3d 20 7b 20 | ..const.trEvent:.AgentEvent.=.{. |
| d520 | 74 79 70 65 3a 20 22 74 6f 6f 6c 2d 72 65 73 75 6c 74 22 2c 20 74 6f 6f 6c 52 65 73 75 6c 74 3a | type:."tool-result",.toolResult: |
| d540 | 20 66 69 6e 61 6c 54 6f 6f 6c 52 65 73 75 6c 74 20 7d 3b 0a 09 09 09 09 09 61 70 70 65 6e 64 45 | .finalToolResult.};......appendE |
| d560 | 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 74 72 45 76 65 6e 74 29 3b 0a 09 | ventToChunks(chunks,.trEvent);.. |
| d580 | 09 09 09 09 79 69 65 6c 64 20 74 72 45 76 65 6e 74 3b 0a 09 09 09 09 7d 0a 0a 09 09 09 09 2f 2f | ....yield.trEvent;.....}......// |
| d5a0 | 20 53 61 66 65 74 79 20 6e 65 74 3a 20 69 66 20 60 6c 61 73 74 45 78 65 63 75 74 61 62 6c 65 49 | .Safety.net:.if.`lastExecutableI |
| d5c0 | 64 78 60 20 77 61 73 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 20 28 65 2e 67 2e 2c 0a 09 09 09 | dx`.was.never.reached.(e.g.,.... |
| d5e0 | 09 2f 2f 20 6e 6f 20 74 6f 6f 6c 73 20 65 78 65 63 75 74 65 64 20 62 65 63 61 75 73 65 20 61 6c | .//.no.tools.executed.because.al |
| d600 | 6c 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 72 65 73 6f 6c 76 65 64 29 20 62 75 74 0a 09 09 09 | l.were.already.resolved).but.... |
| d620 | 09 2f 2f 20 6d 65 73 73 61 67 65 73 20 77 65 72 65 20 73 74 69 6c 6c 20 64 65 71 75 65 75 65 64 | .//.messages.were.still.dequeued |
| d640 | 2c 20 73 75 72 66 61 63 65 20 74 68 65 6d 20 61 73 20 61 20 75 73 65 72 20 6d 65 73 73 61 67 65 | ,.surface.them.as.a.user.message |
| d660 | 0a 09 09 09 09 2f 2f 20 73 6f 20 74 68 65 79 20 61 72 65 6e 27 74 20 64 72 6f 70 70 65 64 2e 20 | .....//.so.they.aren't.dropped.. |
| d680 | 49 6e 20 70 72 61 63 74 69 63 65 20 74 68 69 73 20 69 73 20 72 61 72 65 20 e2 80 94 20 69 74 20 | In.practice.this.is.rare.....it. |
| d6a0 | 6f 6e 6c 79 0a 09 09 09 09 2f 2f 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 74 68 65 20 65 6e 74 | only.....//.happens.when.the.ent |
| d6c0 | 69 72 65 20 62 61 74 63 68 20 69 73 20 75 6e 61 76 61 69 6c 61 62 6c 65 2d 74 6f 6f 6c 20 73 79 | ire.batch.is.unavailable-tool.sy |
| d6e0 | 6e 74 68 65 73 69 7a 65 64 0a 09 09 09 09 2f 2f 20 65 72 72 6f 72 73 20 77 69 74 68 20 61 20 6d | nthesized.....//.errors.with.a.m |
| d700 | 65 73 73 61 67 65 20 61 72 72 69 76 69 6e 67 20 69 6e 20 74 68 61 74 20 6e 61 72 72 6f 77 20 77 | essage.arriving.in.that.narrow.w |
| d720 | 69 6e 64 6f 77 2e 0a 09 09 09 09 69 66 20 28 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 | indow......if.(batchPendingInjec |
| d740 | 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b 0a 09 09 09 09 09 63 6f 6e 73 74 20 75 73 | tion.length.>.0).{......const.us |
| d760 | 65 72 4d 65 73 73 61 67 65 73 20 3d 20 62 61 74 63 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 | erMessages.=.batchPendingInjecti |
| d780 | 6f 6e 2e 6d 61 70 28 28 6d 29 20 3d 3e 20 6d 2e 6d 65 73 73 61 67 65 29 2e 6a 6f 69 6e 28 22 5c | on.map((m).=>.m.message).join("\ |
| d7a0 | 6e 2d 2d 2d 5c 6e 22 29 3b 0a 09 09 09 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 70 75 73 | n---\n");......this.messages.pus |
| d7c0 | 68 28 7b 0a 09 09 09 09 09 09 72 6f 6c 65 3a 20 22 75 73 65 72 22 2c 0a 09 09 09 09 09 09 63 68 | h({.......role:."user",.......ch |
| d7e0 | 75 6e 6b 73 3a 20 5b 7b 20 74 79 70 65 3a 20 22 74 65 78 74 22 2c 20 74 65 78 74 3a 20 75 73 65 | unks:.[{.type:."text",.text:.use |
| d800 | 72 4d 65 73 73 61 67 65 73 20 7d 5d 2c 0a 09 09 09 09 09 7d 29 3b 0a 09 09 09 09 09 62 61 74 63 | rMessages.}],......});......batc |
| d820 | 68 50 65 6e 64 69 6e 67 49 6e 6a 65 63 74 69 6f 6e 2e 6c 65 6e 67 74 68 20 3d 20 30 3b 0a 09 09 | hPendingInjection.length.=.0;... |
| d840 | 09 09 7d 0a 0a 09 09 09 09 2f 2f 20 46 69 6e 61 6c 20 73 61 66 65 74 79 20 6e 65 74 3a 20 61 66 | ..}......//.Final.safety.net:.af |
| d860 | 74 65 72 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 62 61 74 63 68 2c 20 67 75 61 72 61 6e 74 | ter.executing.the.batch,.guarant |
| d880 | 65 65 20 65 76 65 72 79 0a 09 09 09 09 2f 2f 20 74 6f 6f 6c 2d 63 61 6c 6c 20 72 65 63 6f 72 64 | ee.every.....//.tool-call.record |
| d8a0 | 65 64 20 69 6e 20 74 68 69 73 20 73 74 65 70 20 68 61 73 20 61 20 6d 61 74 63 68 69 6e 67 20 72 | ed.in.this.step.has.a.matching.r |
| d8c0 | 65 73 75 6c 74 20 62 65 66 6f 72 65 20 77 65 0a 09 09 09 09 2f 2f 20 6c 6f 6f 70 20 62 61 63 6b | esult.before.we.....//.loop.back |
| d8e0 | 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 41 6e 79 20 74 6f 6f 6c 2d 63 61 6c 6c 20 49 44 20 74 68 | .to.the.LLM..Any.tool-call.ID.th |
| d900 | 61 74 20 73 6c 69 70 70 65 64 20 74 68 72 6f 75 67 68 0a 09 09 09 09 2f 2f 20 77 69 74 68 6f 75 | at.slipped.through.....//.withou |
| d920 | 74 20 61 20 72 65 73 75 6c 74 20 28 61 20 70 61 74 68 20 77 65 20 64 69 64 6e 27 74 20 61 6e 74 | t.a.result.(a.path.we.didn't.ant |
| d940 | 69 63 69 70 61 74 65 29 20 77 6f 75 6c 64 20 6f 74 68 65 72 77 69 73 65 0a 09 09 09 09 2f 2f 20 | icipate).would.otherwise.....//. |
| d960 | 6f 72 70 68 61 6e 20 61 6e 64 20 74 72 69 67 67 65 72 20 4d 69 73 73 69 6e 67 54 6f 6f 6c 52 65 | orphan.and.trigger.MissingToolRe |
| d980 | 73 75 6c 74 73 45 72 72 6f 72 20 6f 6e 20 74 68 65 20 6e 65 78 74 0a 09 09 09 09 2f 2f 20 72 6f | sultsError.on.the.next.....//.ro |
| d9a0 | 75 6e 64 2d 74 72 69 70 2e 0a 09 09 09 09 63 6f 6e 73 74 20 73 61 66 65 74 79 52 65 73 69 64 75 | und-trip......const.safetyResidu |
| d9c0 | 61 6c 20 3d 20 74 68 69 73 2e 73 79 6e 74 68 65 73 69 7a 65 52 65 73 69 64 75 61 6c 54 6f 6f 6c | al.=.this.synthesizeResidualTool |
| d9e0 | 52 65 73 75 6c 74 73 28 0a 09 09 09 09 09 73 74 65 70 54 6f 6f 6c 43 61 6c 6c 73 2c 0a 09 09 09 | Results(......stepToolCalls,.... |
| da00 | 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 09 09 22 45 72 72 6f 72 3a 20 49 6e 74 65 72 6e 61 6c 20 | ..chunks,......"Error:.Internal. |
| da20 | 65 72 72 6f 72 3a 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 77 61 73 20 6e 65 76 65 72 20 70 72 6f | error:.tool.result.was.never.pro |
| da40 | 64 75 63 65 64 2e 22 2c 0a 09 09 09 09 29 3b 0a 09 09 09 09 66 6f 72 20 28 63 6f 6e 73 74 20 72 | duced.",.....);.....for.(const.r |
| da60 | 20 6f 66 20 73 61 66 65 74 79 52 65 73 69 64 75 61 6c 29 20 7b 0a 09 09 09 09 09 61 70 70 65 6e | .of.safetyResidual).{......appen |
| da80 | 64 45 76 65 6e 74 54 6f 43 68 75 6e 6b 73 28 63 68 75 6e 6b 73 2c 20 72 29 3b 0a 09 09 09 09 09 | dEventToChunks(chunks,.r);...... |
| daa0 | 79 69 65 6c 64 20 72 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 0a 09 09 09 2f 2f 20 42 75 69 6c 64 | yield.r;.....}....}.....//.Build |
| dac0 | 20 74 68 65 20 66 69 6e 61 6c 20 61 73 73 69 73 74 61 6e 74 20 6d 65 73 73 61 67 65 20 66 72 6f | .the.final.assistant.message.fro |
| dae0 | 6d 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 63 68 75 6e 6b 73 2e 0a 09 09 09 2f 2f 20 | m.the.accumulated.chunks.....//. |
| db00 | 49 66 20 6e 6f 20 61 73 73 69 73 74 61 6e 74 20 74 75 72 6e 20 6d 65 73 73 61 67 65 20 77 61 73 | If.no.assistant.turn.message.was |
| db20 | 20 65 76 65 72 20 63 72 65 61 74 65 64 20 28 65 2e 67 2e 2c 20 74 68 65 20 6d 6f 64 65 6c 0a 09 | .ever.created.(e.g.,.the.model.. |
| db40 | 09 09 2f 2f 20 70 72 6f 64 75 63 65 64 20 6e 6f 74 68 69 6e 67 20 e2 80 94 20 75 6e 75 73 75 61 | ..//.produced.nothing.....unusua |
| db60 | 6c 20 62 75 74 20 70 6f 73 73 69 62 6c 65 29 2c 20 73 79 6e 74 68 65 73 69 7a 65 20 61 6e 20 65 | l.but.possible),.synthesize.an.e |
| db80 | 6d 70 74 79 20 6f 6e 65 2e 0a 09 09 09 63 6f 6e 73 74 20 61 73 73 69 73 74 61 6e 74 4d 65 73 73 | mpty.one.....const.assistantMess |
| dba0 | 61 67 65 3a 20 43 68 61 74 4d 65 73 73 61 67 65 20 3d 20 61 73 73 69 73 74 61 6e 74 54 75 72 6e | age:.ChatMessage.=.assistantTurn |
| dbc0 | 4d 65 73 73 61 67 65 20 3f 3f 20 7b 0a 09 09 09 09 72 6f 6c 65 3a 20 22 61 73 73 69 73 74 61 6e | Message.??.{.....role:."assistan |
| dbe0 | 74 22 2c 0a 09 09 09 09 63 68 75 6e 6b 73 2c 0a 09 09 09 7d 3b 0a 09 09 09 2f 2f 20 60 61 73 73 | t",.....chunks,....};....//.`ass |
| dc00 | 69 73 74 61 6e 74 54 75 72 6e 4d 65 73 73 61 67 65 60 20 77 61 73 20 70 75 73 68 65 64 20 69 6e | istantTurnMessage`.was.pushed.in |
| dc20 | 74 6f 20 60 73 74 65 70 4d 65 73 73 61 67 65 73 60 20 62 75 74 20 6e 6f 74 20 69 6e 74 6f 0a 09 | to.`stepMessages`.but.not.into.. |
| dc40 | 09 09 2f 2f 20 60 74 68 69 73 2e 6d 65 73 73 61 67 65 73 60 20 e2 80 94 20 70 75 73 68 20 69 74 | ..//.`this.messages`.....push.it |
| dc60 | 20 6e 6f 77 20 73 6f 20 74 68 65 20 61 67 65 6e 74 27 73 20 6f 75 74 77 61 72 64 2d 66 61 63 69 | .now.so.the.agent's.outward-faci |
| dc80 | 6e 67 0a 09 09 09 2f 2f 20 68 69 73 74 6f 72 79 20 72 65 66 6c 65 63 74 73 20 74 68 65 20 74 75 | ng....//.history.reflects.the.tu |
| dca0 | 72 6e 2e 0a 09 09 09 74 68 69 73 2e 6d 65 73 73 61 67 65 73 2e 70 75 73 68 28 61 73 73 69 73 74 | rn.....this.messages.push(assist |
| dcc0 | 61 6e 74 4d 65 73 73 61 67 65 29 3b 0a 0a 09 09 09 2f 2f 20 4e 4f 54 45 3a 20 71 75 65 75 65 64 | antMessage);.....//.NOTE:.queued |
| dce0 | 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 72 72 69 76 65 20 41 46 54 45 52 20 74 68 65 20 | .messages.that.arrive.AFTER.the. |
| dd00 | 6c 61 73 74 20 74 6f 6f 6c 20 63 61 6c 6c 20 28 6f 72 20 77 69 74 68 0a 09 09 09 2f 2f 20 6e 6f | last.tool.call.(or.with....//.no |
| dd20 | 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 74 20 61 6c 6c 29 20 61 72 65 20 69 6e 74 65 6e 74 69 6f | .tool.calls.at.all).are.intentio |
| dd40 | 6e 61 6c 6c 79 20 4e 4f 54 20 64 72 61 69 6e 65 64 20 68 65 72 65 2e 20 44 72 61 69 6e 69 6e 67 | nally.NOT.drained.here..Draining |
| dd60 | 0a 09 09 09 2f 2f 20 74 68 65 6d 20 69 6e 74 6f 20 60 74 68 69 73 2e 6d 65 73 73 61 67 65 73 60 | ....//.them.into.`this.messages` |
| dd80 | 20 61 73 20 61 20 74 72 61 69 6c 69 6e 67 20 75 73 65 72 20 74 75 72 6e 20 e2 80 94 20 74 68 65 | .as.a.trailing.user.turn.....the |
| dda0 | 20 6f 6c 64 0a 09 09 09 2f 2f 20 62 65 68 61 76 69 6f 75 72 20 e2 80 94 20 6c 65 66 74 20 74 68 | .old....//.behaviour.....left.th |
| ddc0 | 65 6d 20 73 69 74 74 69 6e 67 20 69 6e 20 68 69 73 74 6f 72 79 20 77 69 74 68 20 6e 6f 20 6d 6f | em.sitting.in.history.with.no.mo |
| dde0 | 64 65 6c 20 72 65 73 70 6f 6e 73 65 3a 0a 09 09 09 2f 2f 20 74 68 65 20 74 75 72 6e 20 65 6e 64 | del.response:....//.the.turn.end |
| de00 | 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 73 77 65 72 69 6e 67 20 74 68 65 6d 20 28 74 68 | ed.instead.of.answering.them.(th |
| de20 | 65 20 22 71 75 65 75 65 20 6e 6f 74 20 63 6f 6e 73 75 6d 65 64 0a 09 09 09 2f 2f 20 61 66 74 65 | e."queue.not.consumed....//.afte |
| de40 | 72 20 74 68 65 20 74 75 72 6e 20 65 6e 64 73 22 20 62 75 67 29 2e 20 54 68 65 79 20 6e 6f 77 20 | r.the.turn.ends".bug)..They.now. |
| de60 | 73 74 61 79 20 6f 6e 20 74 68 65 20 71 75 65 75 65 20 73 6f 20 74 68 65 0a 09 09 09 2f 2f 20 6f | stay.on.the.queue.so.the....//.o |
| de80 | 72 63 68 65 73 74 72 61 74 6f 72 20 28 60 41 67 65 6e 74 4d 61 6e 61 67 65 72 2e 70 72 6f 63 65 | rchestrator.(`AgentManager.proce |
| dea0 | 73 73 4d 65 73 73 61 67 65 60 29 20 63 61 6e 20 73 74 61 72 74 20 61 20 66 72 65 73 68 20 74 75 | ssMessage`).can.start.a.fresh.tu |
| dec0 | 72 6e 0a 09 09 09 2f 2f 20 66 6f 72 20 74 68 65 6d 20 6f 6e 63 65 20 74 68 69 73 20 6f 6e 65 20 | rn....//.for.them.once.this.one. |
| dee0 | 73 65 74 74 6c 65 73 2e 20 4d 69 64 2d 74 75 72 6e 20 69 6e 74 65 72 72 75 70 74 73 20 61 72 65 | settles..Mid-turn.interrupts.are |
| df00 | 20 73 74 69 6c 6c 0a 09 09 09 2f 2f 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f 20 74 68 65 20 6c | .still....//.injected.into.the.l |
| df20 | 61 73 74 20 74 6f 6f 6c 20 72 65 73 75 6c 74 20 61 62 6f 76 65 20 e2 80 94 20 74 68 61 74 20 70 | ast.tool.result.above.....that.p |
| df40 | 61 74 68 20 69 73 20 75 6e 63 68 61 6e 67 65 64 2e 0a 0a 09 09 09 79 69 65 6c 64 20 7b 20 74 79 | ath.is.unchanged......yield.{.ty |
| df60 | 70 65 3a 20 22 64 6f 6e 65 22 2c 20 6d 65 73 73 61 67 65 3a 20 61 73 73 69 73 74 61 6e 74 4d 65 | pe:."done",.message:.assistantMe |
| df80 | 73 73 61 67 65 20 7d 3b 0a 09 09 7d 20 63 61 74 63 68 20 28 65 72 72 29 20 7b 0a 09 09 09 63 6f | ssage.};...}.catch.(err).{....co |
| dfa0 | 6e 73 74 20 65 72 72 52 65 63 6f 72 64 20 3d 20 65 72 72 20 61 73 20 75 6e 6b 6e 6f 77 6e 20 61 | nst.errRecord.=.err.as.unknown.a |
| dfc0 | 73 20 52 65 63 6f 72 64 3c 73 74 72 69 6e 67 2c 20 75 6e 6b 6e 6f 77 6e 3e 3b 0a 09 09 09 63 6f | s.Record<string,.unknown>;....co |
| dfe0 | 6e 73 74 20 73 74 61 74 75 73 43 6f 64 65 20 3d 0a 09 09 09 09 74 79 70 65 6f 66 20 65 72 72 52 | nst.statusCode.=.....typeof.errR |
| e000 | 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3d 3d 3d 20 22 6e 75 6d 62 65 72 22 20 3f 20 | ecord.statusCode.===."number".?. |
| e020 | 65 72 72 52 65 63 6f 72 64 2e 73 74 61 74 75 73 43 6f 64 65 20 3a 20 75 6e 64 65 66 69 6e 65 64 | errRecord.statusCode.:.undefined |
| e040 | 3b 0a 09 09 09 63 6f 6e 73 74 20 65 72 72 6f 72 4d 73 67 20 3d 20 66 6f 72 6d 61 74 45 72 72 6f | ;....const.errorMsg.=.formatErro |
| e060 | 72 28 65 72 72 2c 20 74 68 69 73 2e 63 6f 6e 66 69 67 29 3b 0a 09 09 09 79 69 65 6c 64 20 7b 20 | r(err,.this.config);....yield.{. |
| e080 | 74 79 70 65 3a 20 22 65 72 72 6f 72 22 2c 20 65 72 72 6f 72 3a 20 65 72 72 6f 72 4d 73 67 2c 20 | type:."error",.error:.errorMsg,. |
| e0a0 | 2e 2e 2e 28 73 74 61 74 75 73 43 6f 64 65 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 64 20 3f 20 7b | ...(statusCode.!==.undefined.?.{ |
| e0c0 | 20 73 74 61 74 75 73 43 6f 64 65 20 7d 20 3a 20 7b 7d 29 20 7d 3b 0a 09 09 09 74 68 69 73 2e 73 | .statusCode.}.:.{}).};....this.s |
| e0e0 | 74 61 74 75 73 20 3d 20 22 65 72 72 6f 72 22 3b 0a 09 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 | tatus.=."error";....yield.{.type |
| e100 | 3a 20 22 73 74 61 74 75 73 22 2c 20 73 74 61 74 75 73 3a 20 22 65 72 72 6f 72 22 20 7d 3b 0a 09 | :."status",.status:."error".};.. |
| e120 | 09 09 72 65 74 75 72 6e 3b 0a 09 09 7d 0a 0a 09 09 74 68 69 73 2e 73 74 61 74 75 73 20 3d 20 22 | ..return;...}....this.status.=." |
| e140 | 69 64 6c 65 22 3b 0a 09 09 79 69 65 6c 64 20 7b 20 74 79 70 65 3a 20 22 73 74 61 74 75 73 22 2c | idle";...yield.{.type:."status", |
| e160 | 20 73 74 61 74 75 73 3a 20 22 69 64 6c 65 22 20 7d 3b 0a 09 7d 0a 7d 0a | .status:."idle".};..}.}. |