zidane 7.2.4 → 8.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +34 -6
- package/dist/{acp-D-tVyUjw.js → acp-DQDhi2dj.js} +230 -77
- package/dist/acp-DQDhi2dj.js.map +1 -0
- package/dist/acp-cli.d.ts +1 -1
- package/dist/acp-cli.js +9 -66
- package/dist/acp-cli.js.map +1 -1
- package/dist/acp.d.ts +10 -590
- package/dist/acp.d.ts.map +1 -1
- package/dist/acp.js +3 -3
- package/dist/{agent-D0zZnGbt.js → agent-DSLNmBp0.js} +14401 -13214
- package/dist/agent-DSLNmBp0.js.map +1 -0
- package/dist/agent.d.ts +1 -1
- package/dist/agent.js +3 -2
- package/dist/aliasing-lVFbm81n.js +217 -0
- package/dist/aliasing-lVFbm81n.js.map +1 -0
- package/dist/{anthropic-C2aole0G.js → anthropic-CD00LhUP.js} +1442 -1264
- package/dist/anthropic-CD00LhUP.js.map +1 -0
- package/dist/artifacts-CV2hUKnL.js.map +1 -1
- package/dist/{atomic-write-B7zr1ddF.js → atomic-write-Ijgf2Mhc.js} +13 -3
- package/dist/atomic-write-Ijgf2Mhc.js.map +1 -0
- package/dist/call-tool-dHlbGOIY.js +70 -0
- package/dist/call-tool-dHlbGOIY.js.map +1 -0
- package/dist/chat/pure.d.ts +372 -6
- package/dist/chat/pure.d.ts.map +1 -1
- package/dist/chat/pure.js +35 -244
- package/dist/chat/pure.js.map +1 -1
- package/dist/{approvals-DKaJZYlm.js → chat-JPJJ8uu5.js} +15879 -14631
- package/dist/chat-JPJJ8uu5.js.map +1 -0
- package/dist/chat.d.ts +4 -6
- package/dist/chat.js +23 -12
- package/dist/cli-shared-C-YCaglL.js +159 -0
- package/dist/cli-shared-C-YCaglL.js.map +1 -0
- package/dist/client-core-BQSyDALT.d.ts +2115 -0
- package/dist/client-core-BQSyDALT.d.ts.map +1 -0
- package/dist/codemode-worker.d.ts +1 -0
- package/dist/codemode-worker.js +155 -0
- package/dist/codemode-worker.js.map +1 -0
- package/dist/codemode.d.ts +352 -0
- package/dist/codemode.d.ts.map +1 -0
- package/dist/codemode.js +5 -0
- package/dist/connection-Dr-Js4yZ.d.ts +28 -0
- package/dist/connection-Dr-Js4yZ.d.ts.map +1 -0
- package/dist/connection-loop-gdh22LTI.js +112 -0
- package/dist/connection-loop-gdh22LTI.js.map +1 -0
- package/dist/context-segments-BHKlagL6.js +1016 -0
- package/dist/context-segments-BHKlagL6.js.map +1 -0
- package/dist/{context-transport-T_6AYIvy.js → context-transport-DSMTUsK1.js} +3 -3
- package/dist/{context-transport-T_6AYIvy.js.map → context-transport-DSMTUsK1.js.map} +1 -1
- package/dist/contexts/daytona.d.ts +19 -8
- package/dist/contexts/daytona.d.ts.map +1 -1
- package/dist/contexts/daytona.js +1 -440
- package/dist/contexts/docker.d.ts +36 -7
- package/dist/contexts/docker.d.ts.map +1 -1
- package/dist/contexts/docker.js +1 -456
- package/dist/contexts/e2b.d.ts +68 -13
- package/dist/contexts/e2b.d.ts.map +1 -1
- package/dist/contexts/e2b.js +1 -382
- package/dist/contexts/sandbox.d.ts +1 -1
- package/dist/contexts/sandbox.js +5 -0
- package/dist/contexts/sandbox.js.map +1 -1
- package/dist/{contexts-CRE9pw07.js → contexts-d7UolYot.js} +1059 -524
- package/dist/contexts-d7UolYot.js.map +1 -0
- package/dist/contexts.d.ts +3 -3
- package/dist/contexts.js +1 -1
- package/dist/cred-keys-GpBg71cP.js +105 -0
- package/dist/cred-keys-GpBg71cP.js.map +1 -0
- package/dist/{auth-BG2rVKSt.js → credentials-JttEuRON.js} +55 -206
- package/dist/credentials-JttEuRON.js.map +1 -0
- package/dist/{cursor-iojRXHF9.js → cursor-CdjaQTBW.js} +3 -3
- package/dist/{cursor-iojRXHF9.js.map → cursor-CdjaQTBW.js.map} +1 -1
- package/dist/daemon-cli.d.ts +1 -1
- package/dist/daemon-cli.js +3 -2
- package/dist/daemon-cli.js.map +1 -1
- package/dist/daytona-DG3omipZ.js +513 -0
- package/dist/daytona-DG3omipZ.js.map +1 -0
- package/dist/defaults-Cx3zvDOV.js +23 -0
- package/dist/defaults-Cx3zvDOV.js.map +1 -0
- package/dist/dispatcher-BMlu2BmZ.js +4941 -0
- package/dist/dispatcher-BMlu2BmZ.js.map +1 -0
- package/dist/docker-BZhMMJUp.js +727 -0
- package/dist/docker-BZhMMJUp.js.map +1 -0
- package/dist/e2b-CEVOdRib.js +480 -0
- package/dist/e2b-CEVOdRib.js.map +1 -0
- package/dist/edit-utils-EGosADZq.js +234 -0
- package/dist/edit-utils-EGosADZq.js.map +1 -0
- package/dist/environment-8wsKE2Ln.js +214 -0
- package/dist/environment-8wsKE2Ln.js.map +1 -0
- package/dist/eval-BNcvle_J.js +1595 -0
- package/dist/eval-BNcvle_J.js.map +1 -0
- package/dist/eval.d.ts +2 -2
- package/dist/eval.js +1 -1489
- package/dist/executor-Cx5-8yqi.js +621 -0
- package/dist/executor-Cx5-8yqi.js.map +1 -0
- package/dist/extension-authoring-DyGGmq9V.js +385 -0
- package/dist/extension-authoring-DyGGmq9V.js.map +1 -0
- package/dist/extensions.d.ts +2 -2
- package/dist/extensions.js +3 -3
- package/dist/{fetch-url-DX75gpL0.js → fetch-url-Ct2TjDWt.js} +4 -4
- package/dist/{fetch-url-DX75gpL0.js.map → fetch-url-Ct2TjDWt.js.map} +1 -1
- package/dist/{format-BF745pLL.js → format-C2NQEVUH.js} +39 -2
- package/dist/format-C2NQEVUH.js.map +1 -0
- package/dist/format-bytes-C7tfc3Zm.js +55 -0
- package/dist/format-bytes-C7tfc3Zm.js.map +1 -0
- package/dist/headless-C_rNUuYC.js +960 -0
- package/dist/headless-C_rNUuYC.js.map +1 -0
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +1 -413
- package/dist/{history-search-C4bk1Wz_.js → history-search-CcYzF8-0.js} +7 -3
- package/dist/history-search-CcYzF8-0.js.map +1 -0
- package/dist/history-search-worker.d.ts +1 -1
- package/dist/history-search-worker.js +1 -1
- package/dist/host-D7NrI03V.js +378 -0
- package/dist/host-D7NrI03V.js.map +1 -0
- package/dist/host-signals-BcP5QKUD.js +118 -0
- package/dist/host-signals-BcP5QKUD.js.map +1 -0
- package/dist/identity-CwfO8K-t.js +26 -0
- package/dist/identity-CwfO8K-t.js.map +1 -0
- package/dist/{index-BgN1T3lk.d.ts → index-BGe1fQT7.d.ts} +10987 -9320
- package/dist/index-BGe1fQT7.d.ts.map +1 -0
- package/dist/index-BVQsIKGn.d.ts +448 -0
- package/dist/index-BVQsIKGn.d.ts.map +1 -0
- package/dist/{index-C6NEd5y_.d.ts → index-CHABJd-L.d.ts} +3386 -502
- package/dist/index-CHABJd-L.d.ts.map +1 -0
- package/dist/{index-C37_ppWv.d.ts → index-D6a7qXpg.d.ts} +2 -3
- package/dist/index-D6a7qXpg.d.ts.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +27 -23
- package/dist/{completion-core-BRo86R_L.js → inline-ghost-BVRQeGoL.js} +50 -2
- package/dist/inline-ghost-BVRQeGoL.js.map +1 -0
- package/dist/ipc/remote.d.ts +313 -0
- package/dist/ipc/remote.d.ts.map +1 -0
- package/dist/ipc/remote.js +4 -0
- package/dist/ipc.d.ts +6 -964
- package/dist/ipc.js +403 -4
- package/dist/ipc.js.map +1 -0
- package/dist/{isolation-Kfoof0MM.d.ts → isolation-D9L650W5.d.ts} +100 -15
- package/dist/isolation-D9L650W5.d.ts.map +1 -0
- package/dist/json-rpc--HXQti1E.js +350 -0
- package/dist/json-rpc--HXQti1E.js.map +1 -0
- package/dist/links-j8rED1sR.js +603 -0
- package/dist/links-j8rED1sR.js.map +1 -0
- package/dist/local-terminal-D8QThwo_.js +252 -0
- package/dist/local-terminal-D8QThwo_.js.map +1 -0
- package/dist/{logger--C1VQjwJ.js → logger-Gtqlayx8.js} +199 -173
- package/dist/logger-Gtqlayx8.js.map +1 -0
- package/dist/logs-view-CWG8aUAG.js.map +1 -1
- package/dist/{mcp-CgNd-f3F.js → mcp-_wecH9Qe.js} +608 -562
- package/dist/mcp-_wecH9Qe.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +2 -2
- package/dist/media-sniff-UKijEaiQ.js.map +1 -1
- package/dist/{messages-2jcOA_5R.js → messages-BqiwcD2Q.js} +1017 -1014
- package/dist/messages-BqiwcD2Q.js.map +1 -0
- package/dist/{oauth-DxHO17JE.js → oauth-Px_pBB9W.js} +5 -5
- package/dist/{oauth-DxHO17JE.js.map → oauth-Px_pBB9W.js.map} +1 -1
- package/dist/{openai-compat-Dy56weK8.js → openai-compat-CFrpH7uq.js} +432 -589
- package/dist/openai-compat-CFrpH7uq.js.map +1 -0
- package/dist/orchestration-BCGmB8Ps.js +511 -0
- package/dist/orchestration-BCGmB8Ps.js.map +1 -0
- package/dist/output/stream-json.d.ts +1 -2
- package/dist/output/stream-json.d.ts.map +1 -1
- package/dist/output/stream-json.js +1 -1
- package/dist/output/terminal.d.ts +1 -2
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +13 -7
- package/dist/output/terminal.js.map +1 -1
- package/dist/{plugins-gbI7SBA6.js → plugins-DS7mahzZ.js} +20 -101
- package/dist/plugins-DS7mahzZ.js.map +1 -0
- package/dist/plugins.d.ts +1 -1
- package/dist/plugins.js +1 -2
- package/dist/prelude-Cxo4t74B.js +517 -0
- package/dist/prelude-Cxo4t74B.js.map +1 -0
- package/dist/presets.d.ts +1 -1
- package/dist/presets.js +1 -2
- package/dist/project-root-B8zADr4o.js +167 -0
- package/dist/project-root-B8zADr4o.js.map +1 -0
- package/dist/project-user-paths-BSgtrRxl.js +58 -0
- package/dist/project-user-paths-BSgtrRxl.js.map +1 -0
- package/dist/{prompts-Pqc3JdW_.d.ts → prompts-DYcvqShf.d.ts} +14 -11
- package/dist/prompts-DYcvqShf.d.ts.map +1 -0
- package/dist/protocol-DnhqqSmE.js +13 -0
- package/dist/protocol-DnhqqSmE.js.map +1 -0
- package/dist/providers/anthropic.d.ts +2 -2
- package/dist/providers/anthropic.js +1 -2
- package/dist/providers/arcee.d.ts +1 -1
- package/dist/providers/arcee.js +1 -1
- package/dist/providers/baseten.d.ts +1 -1
- package/dist/providers/baseten.js +1 -1
- package/dist/providers/cerebras.d.ts +1 -1
- package/dist/providers/cerebras.js +3 -2
- package/dist/providers/cerebras.js.map +1 -1
- package/dist/providers/local.d.ts +1 -1
- package/dist/providers/local.js +1 -1
- package/dist/providers/openai-compat.d.ts +1 -1
- package/dist/providers/openai-compat.js +1 -2
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.js +15 -12
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/openrouter.d.ts +1 -1
- package/dist/providers/openrouter.js +3 -2
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/xai.d.ts +1 -1
- package/dist/providers/xai.js +3 -3
- package/dist/{providers-BVhnFyiY.js → providers-XUR7F4Hi.js} +4 -4
- package/dist/{providers-BVhnFyiY.js.map → providers-XUR7F4Hi.js.map} +1 -1
- package/dist/providers.d.ts +1 -1
- package/dist/providers.js +4 -4
- package/dist/registry-D6ShBWJU.js +5234 -0
- package/dist/registry-D6ShBWJU.js.map +1 -0
- package/dist/remote-hosts-BtA_9ZGp.js +97 -0
- package/dist/remote-hosts-BtA_9ZGp.js.map +1 -0
- package/dist/restate.d.ts +2 -3
- package/dist/restate.d.ts.map +1 -1
- package/dist/restate.js +631 -572
- package/dist/restate.js.map +1 -1
- package/dist/run-summary-CklLiZ4y.js +288 -0
- package/dist/run-summary-CklLiZ4y.js.map +1 -0
- package/dist/{sandbox-BH0WQkXn.d.ts → sandbox-C5dR5DwQ.d.ts} +6 -3
- package/dist/sandbox-C5dR5DwQ.d.ts.map +1 -0
- package/dist/session/sqlite.d.ts +1 -2
- package/dist/session/sqlite.d.ts.map +1 -1
- package/dist/session/sqlite.js +1 -616
- package/dist/session-factory-BUGY5P40.js +1576 -0
- package/dist/session-factory-BUGY5P40.js.map +1 -0
- package/dist/{session-BqRP1hS7.js → session-xh9JXu6i.js} +94 -52
- package/dist/session-xh9JXu6i.js.map +1 -0
- package/dist/session.d.ts +1 -1
- package/dist/session.js +2 -2
- package/dist/settings-keys-Ckf29NeM.js +677 -0
- package/dist/settings-keys-Ckf29NeM.js.map +1 -0
- package/dist/shell-path-Dqaoow2J.js +412 -0
- package/dist/shell-path-Dqaoow2J.js.map +1 -0
- package/dist/{skills-BC3dodWp.js → skills-DKqZJm4X.js} +430 -470
- package/dist/skills-DKqZJm4X.js.map +1 -0
- package/dist/skills.d.ts +2 -2
- package/dist/skills.js +1 -2
- package/dist/source-mPExaUm8.js +381 -0
- package/dist/source-mPExaUm8.js.map +1 -0
- package/dist/sqlite-DV1DQzN2.js +698 -0
- package/dist/sqlite-DV1DQzN2.js.map +1 -0
- package/dist/{src-CkNQKFKr.js → src-BRMYRJib.js} +903 -1121
- package/dist/src-BRMYRJib.js.map +1 -0
- package/dist/{stdio-DPpBDPx5.js → stdio-C6YyoW3I.js} +4 -4
- package/dist/{stdio-DPpBDPx5.js.map → stdio-C6YyoW3I.js.map} +1 -1
- package/dist/{stdio-loader-Bbx19dMZ.js → stdio-loader-C830Vg-Z.js} +4 -4
- package/dist/{stdio-loader-Bbx19dMZ.js.map → stdio-loader-C830Vg-Z.js.map} +1 -1
- package/dist/system-prompt-MNVHatSD.d.ts.map +1 -1
- package/dist/timeout-DEaqslLO.d.ts.map +1 -1
- package/dist/todo-edits-Dn251YUP.js +1790 -0
- package/dist/todo-edits-Dn251YUP.js.map +1 -0
- package/dist/{turn-operations-DrbJlpq9.js → tool-formatters-IQFDrdrs.js} +1456 -2120
- package/dist/tool-formatters-IQFDrdrs.js.map +1 -0
- package/dist/tool-state-Dku6YqAB.js +989 -0
- package/dist/tool-state-Dku6YqAB.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +1 -2
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +1 -2
- package/dist/tools/prompts.d.ts +1 -1
- package/dist/tools/prompts.js +7 -7
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/web-search.d.ts +1 -2
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +2 -2
- package/dist/tools/web-search.js.map +1 -1
- package/dist/tools-_DnT3AGM.js +578 -0
- package/dist/tools-_DnT3AGM.js.map +1 -0
- package/dist/tools.d.ts +3 -3
- package/dist/tools.js +4 -2
- package/dist/tui.d.ts +534 -517
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +34933 -27242
- package/dist/tui.js.map +1 -1
- package/dist/turn-operations-B8sokwi5.js +333 -0
- package/dist/turn-operations-B8sokwi5.js.map +1 -0
- package/dist/turn-operations-DQX5ZZni.d.ts +3089 -0
- package/dist/turn-operations-DQX5ZZni.d.ts.map +1 -0
- package/dist/types-C7ZFOztE.d.ts +132 -0
- package/dist/types-C7ZFOztE.d.ts.map +1 -0
- package/dist/types-CH5XpIHw.js +114 -0
- package/dist/types-CH5XpIHw.js.map +1 -0
- package/dist/{types-CWgENVLY.js → types-Cu0ZGDu9.js} +10 -6
- package/dist/types-Cu0ZGDu9.js.map +1 -0
- package/dist/types-IqegbJEE.d.ts +624 -0
- package/dist/types-IqegbJEE.d.ts.map +1 -0
- package/dist/types.d.ts +4 -4
- package/dist/types.js +1 -1
- package/dist/url-D8HCl65b.js +1259 -0
- package/dist/url-D8HCl65b.js.map +1 -0
- package/dist/wasm-BVT-j5cl.js +33 -0
- package/dist/wasm-BVT-j5cl.js.map +1 -0
- package/dist/workspace-exec-stream-SV2R9d5S.js +355 -0
- package/dist/workspace-exec-stream-SV2R9d5S.js.map +1 -0
- package/dist/ws-CIHMvlSh.js +952 -0
- package/dist/ws-CIHMvlSh.js.map +1 -0
- package/dist/ws-client-N7NxzvQp.js +230 -0
- package/dist/ws-client-N7NxzvQp.js.map +1 -0
- package/dist/{xai-CazjStOK.js → xai-CvJTeLrI.js} +165 -5
- package/dist/xai-CvJTeLrI.js.map +1 -0
- package/dist/xdg-zweed0-t.js +117 -0
- package/dist/xdg-zweed0-t.js.map +1 -0
- package/docs/ACP.md +52 -0
- package/docs/ARCHITECTURE.md +103 -6
- package/docs/ARTIFACTS.md +8 -4
- package/docs/CHAT.md +165 -14
- package/docs/EXECUTION_CONTEXT.md +8 -0
- package/docs/EXTENSIONS.md +123 -2
- package/docs/HEADLESS.md +2 -0
- package/docs/IPC.md +775 -64
- package/docs/MACHINES.md +456 -0
- package/docs/PANELS.md +3 -0
- package/docs/README.md +4 -0
- package/docs/RESTATE.md +3 -2
- package/docs/RUN_IN_BACKGROUND.md +10 -2
- package/docs/SERVER.md +1085 -0
- package/docs/SKILL.md +6 -1
- package/docs/TERMINAL.md +75 -0
- package/docs/TUI.md +65 -14
- package/package.json +58 -26
- package/scripts/eval.ts +4 -0
- package/dist/acp-D-tVyUjw.js.map +0 -1
- package/dist/agent-D0zZnGbt.js.map +0 -1
- package/dist/anthropic-C2aole0G.js.map +0 -1
- package/dist/approvals-DKaJZYlm.js.map +0 -1
- package/dist/atomic-write-B7zr1ddF.js.map +0 -1
- package/dist/auth-BG2rVKSt.js.map +0 -1
- package/dist/completion-core-BRo86R_L.js.map +0 -1
- package/dist/contexts/daytona.js.map +0 -1
- package/dist/contexts/docker.js.map +0 -1
- package/dist/contexts/e2b.js.map +0 -1
- package/dist/contexts-CRE9pw07.js.map +0 -1
- package/dist/eval.js.map +0 -1
- package/dist/format-BF745pLL.js.map +0 -1
- package/dist/glob-DluQFSw1.js +0 -270
- package/dist/glob-DluQFSw1.js.map +0 -1
- package/dist/headless.js.map +0 -1
- package/dist/history-search-C4bk1Wz_.js.map +0 -1
- package/dist/index-BgN1T3lk.d.ts.map +0 -1
- package/dist/index-C37_ppWv.d.ts.map +0 -1
- package/dist/index-C6NEd5y_.d.ts.map +0 -1
- package/dist/ipc-zVSyo6K1.js +0 -331
- package/dist/ipc-zVSyo6K1.js.map +0 -1
- package/dist/ipc.d.ts.map +0 -1
- package/dist/isolation-Kfoof0MM.d.ts.map +0 -1
- package/dist/json-rpc-rSWMUh9b.js +0 -192
- package/dist/json-rpc-rSWMUh9b.js.map +0 -1
- package/dist/logger--C1VQjwJ.js.map +0 -1
- package/dist/mcp-CgNd-f3F.js.map +0 -1
- package/dist/messages-2jcOA_5R.js.map +0 -1
- package/dist/openai-compat-Dy56weK8.js.map +0 -1
- package/dist/output-cap-C9zukcCj.js +0 -100
- package/dist/output-cap-C9zukcCj.js.map +0 -1
- package/dist/panels-B6gRk4bf.js +0 -789
- package/dist/panels-B6gRk4bf.js.map +0 -1
- package/dist/plugins-gbI7SBA6.js.map +0 -1
- package/dist/prompts-Pqc3JdW_.d.ts.map +0 -1
- package/dist/run-summary-BU_NgwUT.js +0 -269
- package/dist/run-summary-BU_NgwUT.js.map +0 -1
- package/dist/sandbox-BH0WQkXn.d.ts.map +0 -1
- package/dist/session/sqlite.js.map +0 -1
- package/dist/session-BqRP1hS7.js.map +0 -1
- package/dist/shell-path-h5czzllR.js +0 -1549
- package/dist/shell-path-h5czzllR.js.map +0 -1
- package/dist/skills-BC3dodWp.js.map +0 -1
- package/dist/src-CkNQKFKr.js.map +0 -1
- package/dist/todo-edits-UOwgxGKu.js +0 -528
- package/dist/todo-edits-UOwgxGKu.js.map +0 -1
- package/dist/tool-formatters-DoRLnfuD.d.ts +0 -759
- package/dist/tool-formatters-DoRLnfuD.d.ts.map +0 -1
- package/dist/transcript-anchors-BeudMbXx.d.ts +0 -1762
- package/dist/transcript-anchors-BeudMbXx.d.ts.map +0 -1
- package/dist/turn-operations-C8bMBDl_.d.ts +0 -1258
- package/dist/turn-operations-C8bMBDl_.d.ts.map +0 -1
- package/dist/turn-operations-DrbJlpq9.js.map +0 -1
- package/dist/types-CWgENVLY.js.map +0 -1
- package/dist/xai-CazjStOK.js.map +0 -1
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { i as statsByModel } from "./stats-DAKBEKjc.js";
|
|
2
|
+
//#region src/run-summary-hooks.ts
|
|
3
|
+
function createRunSummaryInstallState() {
|
|
4
|
+
return {
|
|
5
|
+
runId: void 0,
|
|
6
|
+
parentRunId: void 0,
|
|
7
|
+
depth: 0,
|
|
8
|
+
agentName: void 0,
|
|
9
|
+
startedAt: Date.now(),
|
|
10
|
+
aborted: false,
|
|
11
|
+
errors: [],
|
|
12
|
+
blocks: [],
|
|
13
|
+
validationRejects: [],
|
|
14
|
+
budgetEvents: [],
|
|
15
|
+
repeatGuardEvents: [],
|
|
16
|
+
streamRetries: [],
|
|
17
|
+
pairingRepairs: {},
|
|
18
|
+
children: []
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function resetForNewRun(state) {
|
|
22
|
+
const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs, children } = state;
|
|
23
|
+
state.aborted = false;
|
|
24
|
+
errors.length = 0;
|
|
25
|
+
blocks.length = 0;
|
|
26
|
+
validationRejects.length = 0;
|
|
27
|
+
budgetEvents.length = 0;
|
|
28
|
+
repeatGuardEvents.length = 0;
|
|
29
|
+
streamRetries.length = 0;
|
|
30
|
+
for (const k of Object.keys(pairingRepairs)) delete pairingRepairs[k];
|
|
31
|
+
children.length = 0;
|
|
32
|
+
}
|
|
33
|
+
/** Every incident-recording handler, `agent:start` through `pairing:repair`. */
|
|
34
|
+
function installRunSummaryEventHooks(hooks, unregisters, state) {
|
|
35
|
+
const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs } = state;
|
|
36
|
+
unregisters.push(hooks.hook("agent:start", (ctx) => {
|
|
37
|
+
resetForNewRun(state);
|
|
38
|
+
state.runId = ctx.runId;
|
|
39
|
+
state.parentRunId = ctx.parentRunId;
|
|
40
|
+
state.depth = ctx.depth;
|
|
41
|
+
state.agentName = ctx.agentName;
|
|
42
|
+
state.startedAt = ctx.startedAt;
|
|
43
|
+
}));
|
|
44
|
+
unregisters.push(hooks.hook("agent:abort", () => {
|
|
45
|
+
state.aborted = true;
|
|
46
|
+
}));
|
|
47
|
+
unregisters.push(hooks.hook("stream:retry", (ctx) => {
|
|
48
|
+
const msg = ctx.err instanceof Error ? ctx.err.message : String(ctx.err);
|
|
49
|
+
streamRetries.push({
|
|
50
|
+
attempt: ctx.attempt,
|
|
51
|
+
delayMs: ctx.delayMs,
|
|
52
|
+
message: msg,
|
|
53
|
+
...ctx.err instanceof Error ? { errorType: ctx.err.name } : {},
|
|
54
|
+
...ctx.statusCode !== void 0 ? { statusCode: ctx.statusCode } : {},
|
|
55
|
+
...ctx.requestId !== void 0 ? { requestId: ctx.requestId } : {},
|
|
56
|
+
turnId: ctx.turnId
|
|
57
|
+
});
|
|
58
|
+
}));
|
|
59
|
+
unregisters.push(hooks.hook("stream:error", (ctx) => {
|
|
60
|
+
const msg = ctx.err instanceof Error ? ctx.err.message : String(ctx.err);
|
|
61
|
+
const errorType = ctx.err instanceof Error ? ctx.err.name : "unknown";
|
|
62
|
+
errors.push({
|
|
63
|
+
kind: "stream",
|
|
64
|
+
message: msg,
|
|
65
|
+
errorType,
|
|
66
|
+
turnId: ctx.turnId,
|
|
67
|
+
...ctx.statusCode !== void 0 ? { statusCode: ctx.statusCode } : {},
|
|
68
|
+
...ctx.requestId !== void 0 ? { requestId: ctx.requestId } : {}
|
|
69
|
+
});
|
|
70
|
+
}));
|
|
71
|
+
unregisters.push(hooks.hook("tool:error", (ctx) => {
|
|
72
|
+
errors.push({
|
|
73
|
+
kind: "tool",
|
|
74
|
+
message: ctx.error.message,
|
|
75
|
+
errorType: ctx.error.name,
|
|
76
|
+
turnId: ctx.turnId,
|
|
77
|
+
callId: ctx.callId,
|
|
78
|
+
toolName: ctx.name
|
|
79
|
+
});
|
|
80
|
+
}));
|
|
81
|
+
unregisters.push(hooks.hook("mcp:tool:error", (ctx) => {
|
|
82
|
+
errors.push({
|
|
83
|
+
kind: "mcp-tool",
|
|
84
|
+
message: ctx.error.message,
|
|
85
|
+
errorType: ctx.error.name,
|
|
86
|
+
turnId: ctx.turnId,
|
|
87
|
+
callId: ctx.callId,
|
|
88
|
+
server: ctx.server,
|
|
89
|
+
toolName: ctx.displayName
|
|
90
|
+
});
|
|
91
|
+
}));
|
|
92
|
+
unregisters.push(hooks.hook("mcp:error", (ctx) => {
|
|
93
|
+
errors.push({
|
|
94
|
+
kind: "mcp",
|
|
95
|
+
message: ctx.error.message,
|
|
96
|
+
errorType: ctx.error.name,
|
|
97
|
+
server: ctx.name
|
|
98
|
+
});
|
|
99
|
+
}));
|
|
100
|
+
unregisters.push(hooks.hook("spawn:error", (ctx) => {
|
|
101
|
+
errors.push({
|
|
102
|
+
kind: "spawn",
|
|
103
|
+
message: ctx.error.message,
|
|
104
|
+
errorType: ctx.error.name,
|
|
105
|
+
childId: ctx.id
|
|
106
|
+
});
|
|
107
|
+
}));
|
|
108
|
+
unregisters.push(hooks.hook("tool:dispatched", (ctx) => {
|
|
109
|
+
if (ctx.outcome === "gate-block" || ctx.outcome === "unknown" || ctx.outcome === "invalid-input") blocks.push({
|
|
110
|
+
callId: ctx.callId,
|
|
111
|
+
toolName: ctx.name,
|
|
112
|
+
outcome: ctx.outcome,
|
|
113
|
+
...ctx.reason ? { reason: ctx.reason } : {}
|
|
114
|
+
});
|
|
115
|
+
}));
|
|
116
|
+
unregisters.push(hooks.hook("validation:reject", (ctx) => {
|
|
117
|
+
validationRejects.push({
|
|
118
|
+
callId: ctx.callId,
|
|
119
|
+
toolName: ctx.name,
|
|
120
|
+
reason: ctx.reason
|
|
121
|
+
});
|
|
122
|
+
}));
|
|
123
|
+
unregisters.push(hooks.hook("budget:exceeded", (ctx) => {
|
|
124
|
+
budgetEvents.push({
|
|
125
|
+
kind: "bytes",
|
|
126
|
+
observed: ctx.bytes,
|
|
127
|
+
limit: ctx.budget,
|
|
128
|
+
turnId: ctx.turnId
|
|
129
|
+
});
|
|
130
|
+
}));
|
|
131
|
+
unregisters.push(hooks.hook("tool-budget:exceeded", (ctx) => {
|
|
132
|
+
budgetEvents.push({
|
|
133
|
+
kind: "tool-count",
|
|
134
|
+
toolName: ctx.tool,
|
|
135
|
+
mode: ctx.mode,
|
|
136
|
+
observed: ctx.count,
|
|
137
|
+
limit: ctx.max,
|
|
138
|
+
turnId: ctx.turnId
|
|
139
|
+
});
|
|
140
|
+
}));
|
|
141
|
+
unregisters.push(hooks.hook("repeat-guard:exceeded", (ctx) => {
|
|
142
|
+
repeatGuardEvents.push({
|
|
143
|
+
toolName: ctx.tool,
|
|
144
|
+
count: ctx.count,
|
|
145
|
+
threshold: ctx.threshold,
|
|
146
|
+
action: ctx.action,
|
|
147
|
+
turnId: ctx.turnId
|
|
148
|
+
});
|
|
149
|
+
}));
|
|
150
|
+
unregisters.push(hooks.hook("pairing:repair", (ctx) => {
|
|
151
|
+
pairingRepairs[ctx.mode] = (pairingRepairs[ctx.mode] ?? 0) + 1;
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
/** `agent:done` — assemble the {@link RunSummary} and hand it off. */
|
|
155
|
+
function installRunSummaryDoneHook(hooks, unregisters, state, shared, options) {
|
|
156
|
+
const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs, children } = state;
|
|
157
|
+
unregisters.push(hooks.hook("agent:done", (stats) => {
|
|
158
|
+
const { runId, parentRunId, depth, agentName, startedAt, aborted } = state;
|
|
159
|
+
const endedAt = Date.now();
|
|
160
|
+
const byModel = [];
|
|
161
|
+
for (const [modelId, usage] of statsByModel(stats)) byModel.push({
|
|
162
|
+
modelId,
|
|
163
|
+
input: usage.input,
|
|
164
|
+
output: usage.output,
|
|
165
|
+
cacheRead: usage.cacheRead,
|
|
166
|
+
cacheCreation: usage.cacheCreation,
|
|
167
|
+
cost: usage.cost,
|
|
168
|
+
turns: usage.turns
|
|
169
|
+
});
|
|
170
|
+
for (const c of stats.children ?? []) children.push(minimalSummaryFromStats(c.stats, {
|
|
171
|
+
depth: c.depth ?? depth + 1,
|
|
172
|
+
status: c.status === "aborted" ? "aborted" : "completed"
|
|
173
|
+
}));
|
|
174
|
+
const summary = {
|
|
175
|
+
...runId ? { runId } : {},
|
|
176
|
+
...parentRunId ? { parentRunId } : {},
|
|
177
|
+
depth,
|
|
178
|
+
...agentName ? { agentName } : {},
|
|
179
|
+
startedAt,
|
|
180
|
+
endedAt,
|
|
181
|
+
durationMs: endedAt - startedAt,
|
|
182
|
+
status: aborted ? "aborted" : "completed",
|
|
183
|
+
turns: stats.turns,
|
|
184
|
+
totals: buildTotals(stats),
|
|
185
|
+
byModel,
|
|
186
|
+
errors: errors.slice(),
|
|
187
|
+
blocks: blocks.slice(),
|
|
188
|
+
validationRejects: validationRejects.slice(),
|
|
189
|
+
budgetEvents: budgetEvents.slice(),
|
|
190
|
+
streamRetries: streamRetries.slice(),
|
|
191
|
+
repeatGuardEvents: repeatGuardEvents.slice(),
|
|
192
|
+
pairingRepairs: { ...pairingRepairs },
|
|
193
|
+
...children.length > 0 ? { children: children.slice() } : {}
|
|
194
|
+
};
|
|
195
|
+
shared.last = summary;
|
|
196
|
+
try {
|
|
197
|
+
options.onSummary?.(summary);
|
|
198
|
+
} catch {}
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
function buildTotals(stats) {
|
|
202
|
+
return {
|
|
203
|
+
input: stats.totalIn,
|
|
204
|
+
output: stats.totalOut,
|
|
205
|
+
cacheRead: stats.totalCacheRead,
|
|
206
|
+
cacheCreation: stats.totalCacheCreation,
|
|
207
|
+
...typeof stats.cost === "number" ? { cost: stats.cost } : {},
|
|
208
|
+
...typeof stats.timeTillFirstTokenMs === "number" ? { ttftMs: stats.timeTillFirstTokenMs } : {}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function minimalSummaryFromStats(stats, meta) {
|
|
212
|
+
const byModel = [];
|
|
213
|
+
for (const [modelId, usage] of statsByModel(stats)) byModel.push({
|
|
214
|
+
modelId,
|
|
215
|
+
input: usage.input,
|
|
216
|
+
output: usage.output,
|
|
217
|
+
cacheRead: usage.cacheRead,
|
|
218
|
+
cacheCreation: usage.cacheCreation,
|
|
219
|
+
cost: usage.cost,
|
|
220
|
+
turns: usage.turns
|
|
221
|
+
});
|
|
222
|
+
const children = [];
|
|
223
|
+
for (const c of stats.children ?? []) children.push(minimalSummaryFromStats(c.stats, {
|
|
224
|
+
depth: c.depth ?? meta.depth + 1,
|
|
225
|
+
status: c.status === "aborted" ? "aborted" : "completed"
|
|
226
|
+
}));
|
|
227
|
+
return {
|
|
228
|
+
depth: meta.depth,
|
|
229
|
+
startedAt: 0,
|
|
230
|
+
endedAt: 0,
|
|
231
|
+
durationMs: stats.elapsed,
|
|
232
|
+
status: meta.status,
|
|
233
|
+
turns: stats.turns,
|
|
234
|
+
totals: buildTotals(stats),
|
|
235
|
+
byModel,
|
|
236
|
+
errors: [],
|
|
237
|
+
blocks: [],
|
|
238
|
+
validationRejects: [],
|
|
239
|
+
budgetEvents: [],
|
|
240
|
+
streamRetries: [],
|
|
241
|
+
repeatGuardEvents: [],
|
|
242
|
+
pairingRepairs: {},
|
|
243
|
+
...children.length > 0 ? { children } : {}
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
//#endregion
|
|
247
|
+
//#region src/run-summary.ts
|
|
248
|
+
/**
|
|
249
|
+
* Build a run-summary collector. State is created fresh inside each
|
|
250
|
+
* `install()` call, so a single collector instance can be installed
|
|
251
|
+
* across multiple agents without attribution cross-talk. `latest()`
|
|
252
|
+
* returns the most-recent summary across **any** install — install
|
|
253
|
+
* per-agent collectors if you need separate post-run snapshots.
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```ts
|
|
257
|
+
* const collector = createRunSummaryCollector({
|
|
258
|
+
* onSummary: s => console.log(JSON.stringify(s)),
|
|
259
|
+
* })
|
|
260
|
+
* const uninstall = collector.install(agent.hooks)
|
|
261
|
+
* try { await agent.run({ prompt }) }
|
|
262
|
+
* finally { uninstall() }
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
265
|
+
function createRunSummaryCollector(options = {}) {
|
|
266
|
+
const shared = { last: void 0 };
|
|
267
|
+
return {
|
|
268
|
+
latest: () => shared.last,
|
|
269
|
+
install(hooks) {
|
|
270
|
+
const state = createRunSummaryInstallState();
|
|
271
|
+
const unregisters = [];
|
|
272
|
+
installRunSummaryEventHooks(hooks, unregisters, state);
|
|
273
|
+
installRunSummaryDoneHook(hooks, unregisters, state, shared, options);
|
|
274
|
+
let disposed = false;
|
|
275
|
+
return function uninstall() {
|
|
276
|
+
if (disposed) return;
|
|
277
|
+
disposed = true;
|
|
278
|
+
for (const un of unregisters) try {
|
|
279
|
+
un();
|
|
280
|
+
} catch {}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
//#endregion
|
|
286
|
+
export { createRunSummaryCollector as t };
|
|
287
|
+
|
|
288
|
+
//# sourceMappingURL=run-summary-CklLiZ4y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-summary-CklLiZ4y.js","names":[],"sources":["../src/run-summary-hooks.ts","../src/run-summary.ts"],"sourcesContent":["/**\n * Hook-group installers behind {@link createRunSummaryCollector}\n * (`./run-summary`).\n *\n * Each installer registers one contiguous slice of the original\n * registration sequence and pushes its unregister fns onto the shared\n * `unregisters` array, so calling them in order reproduces the exact\n * hook registration order of the single-function original.\n */\n\nimport type { Hookable } from 'hookable'\nimport type { AgentHooks } from './agent'\nimport type {\n RunSummary,\n RunSummaryBlock,\n RunSummaryBudget,\n RunSummaryByModel,\n RunSummaryCollectorOptions,\n RunSummaryError,\n RunSummaryRepeatGuard,\n RunSummaryRetry,\n RunSummaryTokens,\n RunSummaryValidation,\n} from './run-summary'\nimport type { AgentStats } from './types'\nimport { statsByModel } from './stats'\n\n/**\n * Per-run in-progress accumulators. The hookable bus serializes\n * agent.run lifecycles per agent — we reset between runs on\n * `agent:start` and consume on `agent:done`.\n */\nexport interface RunSummaryInstallState {\n runId: string | undefined\n parentRunId: string | undefined\n depth: number\n agentName: string | undefined\n startedAt: number\n aborted: boolean\n readonly errors: RunSummaryError[]\n readonly blocks: RunSummaryBlock[]\n readonly validationRejects: RunSummaryValidation[]\n readonly budgetEvents: RunSummaryBudget[]\n readonly repeatGuardEvents: RunSummaryRepeatGuard[]\n readonly streamRetries: RunSummaryRetry[]\n readonly pairingRepairs: Record<string, number>\n readonly children: RunSummary[]\n}\n\n/** Collector-wide (cross-install) state: the most-recent summary. */\nexport interface RunSummaryShared {\n last: RunSummary | undefined\n}\n\nexport function createRunSummaryInstallState(): RunSummaryInstallState {\n return {\n runId: undefined,\n parentRunId: undefined,\n depth: 0,\n agentName: undefined,\n startedAt: Date.now(),\n aborted: false,\n errors: [],\n blocks: [],\n validationRejects: [],\n budgetEvents: [],\n repeatGuardEvents: [],\n streamRetries: [],\n pairingRepairs: {},\n children: [],\n }\n}\n\nfunction resetForNewRun(state: RunSummaryInstallState): void {\n const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs, children } = state\n state.aborted = false\n errors.length = 0\n blocks.length = 0\n validationRejects.length = 0\n budgetEvents.length = 0\n repeatGuardEvents.length = 0\n streamRetries.length = 0\n for (const k of Object.keys(pairingRepairs))\n delete pairingRepairs[k]\n children.length = 0\n}\n\n/** Every incident-recording handler, `agent:start` through `pairing:repair`. */\nexport function installRunSummaryEventHooks(\n hooks: Hookable<AgentHooks>,\n unregisters: Array<() => void>,\n state: RunSummaryInstallState,\n): void {\n const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs } = state\n\n unregisters.push(hooks.hook('agent:start', (ctx) => {\n resetForNewRun(state)\n state.runId = ctx.runId\n state.parentRunId = ctx.parentRunId\n state.depth = ctx.depth\n state.agentName = ctx.agentName\n state.startedAt = ctx.startedAt\n }))\n\n unregisters.push(hooks.hook('agent:abort', () => {\n state.aborted = true\n }))\n\n unregisters.push(hooks.hook('stream:retry', (ctx) => {\n const msg = ctx.err instanceof Error ? ctx.err.message : String(ctx.err)\n streamRetries.push({\n attempt: ctx.attempt,\n delayMs: ctx.delayMs,\n message: msg,\n ...(ctx.err instanceof Error ? { errorType: ctx.err.name } : {}),\n ...(ctx.statusCode !== undefined ? { statusCode: ctx.statusCode } : {}),\n ...(ctx.requestId !== undefined ? { requestId: ctx.requestId } : {}),\n turnId: ctx.turnId,\n })\n }))\n\n unregisters.push(hooks.hook('stream:error', (ctx) => {\n const msg = ctx.err instanceof Error ? ctx.err.message : String(ctx.err)\n const errorType = ctx.err instanceof Error ? ctx.err.name : 'unknown'\n errors.push({\n kind: 'stream',\n message: msg,\n errorType,\n turnId: ctx.turnId,\n ...(ctx.statusCode !== undefined ? { statusCode: ctx.statusCode } : {}),\n ...(ctx.requestId !== undefined ? { requestId: ctx.requestId } : {}),\n })\n }))\n\n unregisters.push(hooks.hook('tool:error', (ctx) => {\n errors.push({\n kind: 'tool',\n message: ctx.error.message,\n errorType: ctx.error.name,\n turnId: ctx.turnId,\n callId: ctx.callId,\n toolName: ctx.name,\n })\n }))\n\n unregisters.push(hooks.hook('mcp:tool:error', (ctx) => {\n errors.push({\n kind: 'mcp-tool',\n message: ctx.error.message,\n errorType: ctx.error.name,\n turnId: ctx.turnId,\n callId: ctx.callId,\n server: ctx.server,\n toolName: ctx.displayName,\n })\n }))\n\n unregisters.push(hooks.hook('mcp:error', (ctx) => {\n errors.push({\n kind: 'mcp',\n message: ctx.error.message,\n errorType: ctx.error.name,\n server: ctx.name,\n })\n }))\n\n unregisters.push(hooks.hook('spawn:error', (ctx) => {\n errors.push({\n kind: 'spawn',\n message: ctx.error.message,\n errorType: ctx.error.name,\n childId: ctx.id,\n })\n }))\n\n unregisters.push(hooks.hook('tool:dispatched', (ctx) => {\n if (ctx.outcome === 'gate-block' || ctx.outcome === 'unknown' || ctx.outcome === 'invalid-input') {\n blocks.push({\n callId: ctx.callId,\n toolName: ctx.name,\n outcome: ctx.outcome,\n ...(ctx.reason ? { reason: ctx.reason } : {}),\n })\n }\n }))\n\n unregisters.push(hooks.hook('validation:reject', (ctx) => {\n validationRejects.push({\n callId: ctx.callId,\n toolName: ctx.name,\n reason: ctx.reason,\n })\n }))\n\n unregisters.push(hooks.hook('budget:exceeded', (ctx) => {\n budgetEvents.push({\n kind: 'bytes',\n observed: ctx.bytes,\n limit: ctx.budget,\n turnId: ctx.turnId,\n })\n }))\n\n unregisters.push(hooks.hook('tool-budget:exceeded', (ctx) => {\n budgetEvents.push({\n kind: 'tool-count',\n toolName: ctx.tool,\n mode: ctx.mode,\n observed: ctx.count,\n limit: ctx.max,\n turnId: ctx.turnId,\n })\n }))\n\n unregisters.push(hooks.hook('repeat-guard:exceeded', (ctx) => {\n repeatGuardEvents.push({\n toolName: ctx.tool,\n count: ctx.count,\n threshold: ctx.threshold,\n action: ctx.action,\n turnId: ctx.turnId,\n })\n }))\n\n unregisters.push(hooks.hook('pairing:repair', (ctx) => {\n pairingRepairs[ctx.mode] = (pairingRepairs[ctx.mode] ?? 0) + 1\n }))\n}\n\n/** `agent:done` — assemble the {@link RunSummary} and hand it off. */\nexport function installRunSummaryDoneHook(\n hooks: Hookable<AgentHooks>,\n unregisters: Array<() => void>,\n state: RunSummaryInstallState,\n shared: RunSummaryShared,\n options: RunSummaryCollectorOptions,\n): void {\n const { errors, blocks, validationRejects, budgetEvents, repeatGuardEvents, streamRetries, pairingRepairs, children } = state\n\n unregisters.push(hooks.hook('agent:done', (stats) => {\n const { runId, parentRunId, depth, agentName, startedAt, aborted } = state\n const endedAt = Date.now()\n\n // Build per-model rollup via the existing `statsByModel` helper\n // so we stay in lockstep with how the rest of the harness\n // attributes cost and tokens by model id.\n const byModel: RunSummaryByModel[] = []\n for (const [modelId, usage] of statsByModel(stats)) {\n byModel.push({\n modelId,\n input: usage.input,\n output: usage.output,\n cacheRead: usage.cacheRead,\n cacheCreation: usage.cacheCreation,\n cost: usage.cost,\n turns: usage.turns,\n })\n }\n\n // Flatten child stats into nested summaries. We don't have the\n // child's full event lists here (those landed on the child's\n // own hooks), so the nested entry is a minimal totals-only\n // record — enough for a flat per-run audit trail; consumers\n // wanting full per-child event lists install a collector on\n // each subagent.\n for (const c of stats.children ?? []) {\n children.push(minimalSummaryFromStats(c.stats, {\n depth: c.depth ?? depth + 1,\n status: c.status === 'aborted' ? 'aborted' : 'completed',\n }))\n }\n\n const summary: RunSummary = {\n ...(runId ? { runId } : {}),\n ...(parentRunId ? { parentRunId } : {}),\n depth,\n ...(agentName ? { agentName } : {}),\n startedAt,\n endedAt,\n durationMs: endedAt - startedAt,\n status: aborted ? 'aborted' : 'completed',\n turns: stats.turns,\n totals: buildTotals(stats),\n byModel,\n errors: errors.slice(),\n blocks: blocks.slice(),\n validationRejects: validationRejects.slice(),\n budgetEvents: budgetEvents.slice(),\n streamRetries: streamRetries.slice(),\n repeatGuardEvents: repeatGuardEvents.slice(),\n pairingRepairs: { ...pairingRepairs },\n ...(children.length > 0 ? { children: children.slice() } : {}),\n }\n\n shared.last = summary\n try {\n options.onSummary?.(summary)\n }\n catch {\n // Sink errors are not the collector's concern.\n }\n }))\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction buildTotals(stats: AgentStats): RunSummaryTokens {\n return {\n input: stats.totalIn,\n output: stats.totalOut,\n cacheRead: stats.totalCacheRead,\n cacheCreation: stats.totalCacheCreation,\n ...(typeof stats.cost === 'number' ? { cost: stats.cost } : {}),\n ...(typeof stats.timeTillFirstTokenMs === 'number' ? { ttftMs: stats.timeTillFirstTokenMs } : {}),\n }\n}\n\nfunction minimalSummaryFromStats(\n stats: AgentStats,\n meta: { depth: number, status: 'completed' | 'aborted' },\n): RunSummary {\n const byModel: RunSummaryByModel[] = []\n for (const [modelId, usage] of statsByModel(stats)) {\n byModel.push({\n modelId,\n input: usage.input,\n output: usage.output,\n cacheRead: usage.cacheRead,\n cacheCreation: usage.cacheCreation,\n cost: usage.cost,\n turns: usage.turns,\n })\n }\n const children: RunSummary[] = []\n for (const c of stats.children ?? []) {\n children.push(minimalSummaryFromStats(c.stats, {\n depth: c.depth ?? meta.depth + 1,\n status: c.status === 'aborted' ? 'aborted' : 'completed',\n }))\n }\n return {\n depth: meta.depth,\n startedAt: 0,\n endedAt: 0,\n durationMs: stats.elapsed,\n status: meta.status,\n turns: stats.turns,\n totals: buildTotals(stats),\n byModel,\n errors: [],\n blocks: [],\n validationRejects: [],\n budgetEvents: [],\n streamRetries: [],\n repeatGuardEvents: [],\n pairingRepairs: {},\n ...(children.length > 0 ? { children } : {}),\n }\n}\n","/**\n * Run summary collector — one JSON postmortem per `agent.run()`.\n *\n * `AgentStats` is great for billing and per-turn accounting but doesn't\n * carry a record of the *interesting* events that happened during a run\n * (errors, gate blocks, validation rejects, budget hits, MCP failures).\n * Reconstructing that from a hook stream after the fact is exactly the\n * kind of plumbing every consumer ends up re-implementing.\n *\n * This module ships:\n *\n * - {@link RunSummary} — a serializable shape that bundles totals,\n * per-model breakdown, and all the per-run incident lists.\n * - {@link createRunSummaryCollector} — installs hook listeners that\n * build up a {@link RunSummary} during the run and surfaces it on\n * `agent:done`. Calls an optional `onSummary` callback so the host can\n * forward to a log aggregator / DB / postmortem dashboard without\n * touching `agent.run()`'s return value.\n *\n * The collector is purely additive — it doesn't touch the agent loop,\n * doesn't change return shapes, and doesn't suppress any other hook\n * handlers. Drop it in alongside tracing / metrics / logging or use it\n * standalone when you only need the summary.\n */\n\nimport type { Hookable } from 'hookable'\nimport type { AgentHooks } from './agent'\nimport type { RunSummaryShared } from './run-summary-hooks'\nimport { createRunSummaryInstallState, installRunSummaryDoneHook, installRunSummaryEventHooks } from './run-summary-hooks'\n\n// ---------------------------------------------------------------------------\n// Public shape\n// ---------------------------------------------------------------------------\n\nexport interface RunSummaryTokens {\n input: number\n output: number\n cacheRead: number\n cacheCreation: number\n cost?: number\n /** First observable byte from the provider, ms from run start. */\n ttftMs?: number\n}\n\nexport interface RunSummaryByModel {\n modelId: string\n input: number\n output: number\n cacheRead: number\n cacheCreation: number\n cost: number\n turns: number\n}\n\nexport interface RunSummaryError {\n kind: 'stream' | 'tool' | 'mcp-tool' | 'mcp' | 'spawn'\n message: string\n errorType?: string\n turnId?: string\n callId?: string\n server?: string\n toolName?: string\n childId?: string\n statusCode?: number\n requestId?: string\n}\n\nexport interface RunSummaryBlock {\n callId: string\n toolName: string\n outcome: 'gate-block' | 'unknown' | 'invalid-input'\n reason?: string\n}\n\nexport interface RunSummaryValidation {\n callId: string\n toolName: string\n reason: string\n}\n\nexport interface RunSummaryBudget {\n kind: 'bytes' | 'tool-count'\n /** Tool name (for `'tool-count'`); absent for byte budgets. */\n toolName?: string\n /** `mode` for `'tool-count'`; absent for byte budgets. */\n mode?: 'steer' | 'block'\n observed: number\n limit: number\n turnId?: string\n}\n\nexport interface RunSummaryRepeatGuard {\n toolName: string\n /** Observed repeat count that tripped the guard. */\n count: number\n threshold: number\n action: 'block' | 'steer' | 'abort'\n turnId?: string\n}\n\n/**\n * One absorbed provider-stream retry. Retries are invisible in the transcript\n * (no turn, no tool result) yet their backoff is real wall time the user\n * waited — measured in production as unexplained 30-90s gaps before trivial\n * tool calls. Recording them makes \"LLM residual\" stalls attributable.\n */\nexport interface RunSummaryRetry {\n /** 1-based attempt number that failed and triggered this retry. */\n attempt: number\n /** Backoff delay taken before the next attempt (ms, after retry-after/cap). */\n delayMs: number\n message: string\n errorType?: string\n statusCode?: number\n requestId?: string\n turnId?: string\n}\n\n/**\n * Postmortem snapshot of one `agent.run()`. Strictly serializable — every\n * field round-trips through `JSON.stringify` / `JSON.parse` without loss\n * so a log aggregator can ingest it as-is.\n */\nexport interface RunSummary {\n runId?: string\n parentRunId?: string\n depth: number\n agentName?: string\n startedAt: number\n endedAt: number\n durationMs: number\n status: 'completed' | 'aborted'\n turns: number\n totals: RunSummaryTokens\n byModel: RunSummaryByModel[]\n errors: RunSummaryError[]\n blocks: RunSummaryBlock[]\n validationRejects: RunSummaryValidation[]\n budgetEvents: RunSummaryBudget[]\n /**\n * Provider-stream retries the loop absorbed. Empty on healthy runs; on\n * incident runs the summed `delayMs` explains wall time that appears\n * nowhere else (not in turns, not in tool durations).\n */\n streamRetries: RunSummaryRetry[]\n /**\n * Repeat-guard escalations. An `action: 'steer'` entry means the tool still\n * executed and got a steering message appended to its result. An\n * `action: 'abort'` entry means the guard terminated the run via the agent's\n * AbortController (the run finalizes as `'aborted'`).\n */\n repeatGuardEvents: RunSummaryRepeatGuard[]\n /** Counts of pairing repairs, keyed by repair mode. */\n pairingRepairs: Record<string, number>\n /**\n * Postmortem snapshots of child runs that bubbled their stats up via\n * `spawn:complete`. Only present when the run actually spawned.\n */\n children?: RunSummary[]\n}\n\n// ---------------------------------------------------------------------------\n// Collector\n// ---------------------------------------------------------------------------\n\nexport interface RunSummaryCollectorOptions {\n /**\n * Called with the assembled {@link RunSummary} on every `agent:done`.\n * Synchronous — heavy I/O should be deferred (e.g. via `setImmediate`).\n */\n onSummary?: (summary: RunSummary) => void\n}\n\nexport interface RunSummaryCollector {\n /** Install the collector's hook handlers. Returns an uninstall fn. */\n install: (hooks: Hookable<AgentHooks>) => () => void\n /** Most-recent summary; `undefined` until the first `agent:done` fires. */\n latest: () => RunSummary | undefined\n}\n\n/**\n * Build a run-summary collector. State is created fresh inside each\n * `install()` call, so a single collector instance can be installed\n * across multiple agents without attribution cross-talk. `latest()`\n * returns the most-recent summary across **any** install — install\n * per-agent collectors if you need separate post-run snapshots.\n *\n * @example\n * ```ts\n * const collector = createRunSummaryCollector({\n * onSummary: s => console.log(JSON.stringify(s)),\n * })\n * const uninstall = collector.install(agent.hooks)\n * try { await agent.run({ prompt }) }\n * finally { uninstall() }\n * ```\n */\nexport function createRunSummaryCollector(\n options: RunSummaryCollectorOptions = {},\n): RunSummaryCollector {\n const shared: RunSummaryShared = { last: undefined }\n\n return {\n latest: () => shared.last,\n install(hooks: Hookable<AgentHooks>): () => void {\n // Per-run in-progress accumulators. The hookable bus serializes\n // agent.run lifecycles per agent — we reset between runs on\n // `agent:start` and consume on `agent:done`.\n const state = createRunSummaryInstallState()\n\n const unregisters: Array<() => void> = []\n\n installRunSummaryEventHooks(hooks, unregisters, state)\n installRunSummaryDoneHook(hooks, unregisters, state, shared, options)\n\n let disposed = false\n return function uninstall() {\n if (disposed)\n return\n disposed = true\n for (const un of unregisters) {\n try {\n un()\n }\n catch { /* ignore */ }\n }\n }\n },\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { b as
|
|
1
|
+
import { D as TerminalProcess, E as TerminalOptions, b as SpawnConfig, h as ExecutionContext, m as ExecResult, x as StreamHandle, y as ListFilesOptions } from "./isolation-D9L650W5.js";
|
|
2
2
|
import { Buffer } from "node:buffer";
|
|
3
|
-
|
|
4
3
|
//#region src/contexts/sandbox.d.ts
|
|
5
4
|
interface SandboxProvider {
|
|
6
5
|
name: string;
|
|
@@ -29,8 +28,12 @@ interface SandboxProvider {
|
|
|
29
28
|
env?: Record<string, string>;
|
|
30
29
|
signal?: AbortSignal;
|
|
31
30
|
}) => Promise<StreamHandle>;
|
|
31
|
+
/** Optional interactive terminal — see {@link ExecutionContext.openTerminal}. */
|
|
32
|
+
openTerminal?: (sandboxId: string, options: TerminalOptions) => Promise<TerminalProcess>;
|
|
33
|
+
/** Re-attach to a terminal by id — see {@link ExecutionContext.reconnectTerminal}. */
|
|
34
|
+
reconnectTerminal?: (sandboxId: string, id: string, options: TerminalOptions) => Promise<TerminalProcess | null>;
|
|
32
35
|
}
|
|
33
36
|
declare function createSandboxContext(provider: SandboxProvider): ExecutionContext;
|
|
34
37
|
//#endregion
|
|
35
38
|
export { createSandboxContext as n, SandboxProvider as t };
|
|
36
|
-
//# sourceMappingURL=sandbox-
|
|
39
|
+
//# sourceMappingURL=sandbox-C5dR5DwQ.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-C5dR5DwQ.d.ts","names":[],"sources":["../src/contexts/sandbox.ts"],"mappings":";;;UAgBiB;EACf;EACA,QAAQ,QAAQ,gBAAgB;IAAU;IAAY;;EACtD,OAAO,mBAAmB,iBAAiB;IAAY;IAAc,MAAM;IAAwB;QAAuB,QAAQ;EAClI,WAAW,mBAAmB,iBAAiB;EAC/C,YAAY,mBAAmB,cAAc,kBAAkB,QAAQ,WAAW,mBAAmB;EACrG,YAAY,mBAAmB,cAAc,UAAU,qBAAqB;EAC5E,UAAU,sBAAsB;;;;;;;;EAQhC,cACE,mBACA,iBACA;IAAY;IAAc,MAAM;IAAwB,SAAS;QAC9D,QAAQ;;EAEb,gBAAgB,mBAAmB,SAAS,oBAAoB,QAAQ;;EAExE,qBAAqB,mBAAmB,YAAY,SAAS,oBAAoB,QAAQ;;iBAO3E,qBAAqB,UAAU,kBAAkB"}
|
package/dist/session/sqlite.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","names":[],"sources":["../../src/session/sqlite.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","names":[],"sources":["../../src/session/sqlite.ts"],"mappings":";;UA+HiB;;EAEf;;;;;;;iBAQc,iBAAiB;;;;;;;;;;;iBAejB,kBAAkB,cAAc;iBAgBhC,kBAAkB,SAAS,qBAAqB;;;;;;;;;;;iBA8QhD,eAAe,iBAAiB"}
|