@markusylisiurunen/tau 0.3.32 → 0.3.34
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/README.md +15 -20
- package/dist/core/agent/agent_runtime.js +1551 -0
- package/dist/core/agent/agent_runtime.js.map +1 -0
- package/dist/core/agent/events.js +2 -0
- package/dist/core/agent/events.js.map +1 -0
- package/dist/core/commands/registry.js +0 -42
- package/dist/core/commands/registry.js.map +1 -1
- package/dist/core/config/content_loader.js +7 -3
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/models/catalog.js +7 -1
- package/dist/core/models/catalog.js.map +1 -1
- package/dist/core/models/tau_model_overrides.js +10 -0
- package/dist/core/models/tau_model_overrides.js.map +1 -0
- package/dist/core/modes/index.js.map +1 -1
- package/dist/core/personas.js +4 -2
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/agent_model.js +50 -0
- package/dist/core/runtime/agent_model.js.map +1 -0
- package/dist/core/runtime/chat_runtime.js +175 -63
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/runtime/model_executor.js +2 -0
- package/dist/core/runtime/model_executor.js.map +1 -0
- package/dist/core/runtime/model_sampler.js +21 -0
- package/dist/core/runtime/model_sampler.js.map +1 -0
- package/dist/core/session/auto_compaction_archive.js +239 -0
- package/dist/core/session/auto_compaction_archive.js.map +1 -0
- package/dist/core/session/compaction.js +97 -29
- package/dist/core/session/compaction.js.map +1 -1
- package/dist/core/session/direct_bash.js.map +1 -1
- package/dist/core/session/message_accumulator.js +3 -5
- package/dist/core/session/message_accumulator.js.map +1 -1
- package/dist/core/session/runner.js +274 -102
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/subagents/agent_supervisor.js +378 -0
- package/dist/core/subagents/agent_supervisor.js.map +1 -0
- package/dist/core/subagents/format.js +101 -0
- package/dist/core/subagents/format.js.map +1 -0
- package/dist/core/subagents/registry.js +3 -1
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/types.js +1 -0
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/tools/activity.js +2 -0
- package/dist/core/tools/activity.js.map +1 -0
- package/dist/core/tools/bash.js +64 -67
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/catalog.js +49 -25
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/code_mode.js +65 -58
- package/dist/core/tools/code_mode.js.map +1 -1
- package/dist/core/tools/edit.js +11 -12
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/interrupt_agent.js +119 -0
- package/dist/core/tools/interrupt_agent.js.map +1 -0
- package/dist/core/tools/list_agents.js +64 -0
- package/dist/core/tools/list_agents.js.map +1 -0
- package/dist/core/tools/nook.js +3 -2
- package/dist/core/tools/nook.js.map +1 -1
- package/dist/core/tools/registry.js +27 -13
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +77 -93
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +94 -114
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/tool_names.js +4 -2
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/tools/view_image.js +11 -16
- package/dist/core/tools/view_image.js.map +1 -1
- package/dist/core/tools/wait_for_agents.js +76 -137
- package/dist/core/tools/wait_for_agents.js.map +1 -1
- package/dist/core/tools/web.js +3 -3
- package/dist/core/tools/web.js.map +1 -1
- package/dist/core/tools/write.js +10 -11
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/usage/logs.js.map +1 -1
- package/dist/core/utils/compact.js +19 -10
- package/dist/core/utils/compact.js.map +1 -1
- package/dist/core/utils/subagent_utils.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/diff_tool/app/dist/assets/actionscript-3-Cs6JJXT5.js +1 -0
- package/dist/diff_tool/app/dist/assets/ahk-CA9gdOdF.js +1 -0
- package/dist/diff_tool/app/dist/assets/ahk2-_6rzW9BS.js +1 -0
- package/dist/diff_tool/app/dist/assets/{angular-html-DbgxQryr.js → angular-html-vSIwre92.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{angular-ts-Dzjq8SvI.js → angular-ts-B9yWa-IT.js} +1 -1
- package/dist/diff_tool/app/dist/assets/apex-KFGFyKwG.js +1 -0
- package/dist/diff_tool/app/dist/assets/{apl-6AmEMJr-.js → apl-CBg9ewu1.js} +1 -1
- package/dist/diff_tool/app/dist/assets/asciidoc-SCjQUq34.js +1 -0
- package/dist/diff_tool/app/dist/assets/{astro-BM8EbfIg.js → astro-BVjxSYjj.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{bat-Bo4NYOV-.js → bat-qdxAdBWQ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/bird2-CYIUgYqB.js +1 -0
- package/dist/diff_tool/app/dist/assets/{blade-DiKMnN3e.js → blade-jvqV5kiv.js} +1 -1
- package/dist/diff_tool/app/dist/assets/bsl-_VjlB9mv.js +1 -0
- package/dist/diff_tool/app/dist/assets/{c-DMT5X-u9.js → c-DDAfW08c.js} +1 -1
- package/dist/diff_tool/app/dist/assets/c3-D0apG41V.js +1 -0
- package/dist/diff_tool/app/dist/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
- package/dist/diff_tool/app/dist/assets/catppuccin-latte-CtsyrtPq.js +1 -0
- package/dist/diff_tool/app/dist/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
- package/dist/diff_tool/app/dist/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
- package/dist/diff_tool/app/dist/assets/chapel-Qflwfgbt.js +1 -0
- package/dist/diff_tool/app/dist/assets/clarity-CtfBBspg.js +1 -0
- package/dist/diff_tool/app/dist/assets/{cobol-CACNMc1O.js → cobol-4iJI1LUg.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{coffee-D_WUFE0g.js → coffee-C9LbGGO3.js} +1 -1
- package/dist/diff_tool/app/dist/assets/coq-DuBRPxYg.js +1 -0
- package/dist/diff_tool/app/dist/assets/cpp-B-x6veTx.js +1 -0
- package/dist/diff_tool/app/dist/assets/{crystal-wh93mtUe.js → crystal-S06EUmKn.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{css-CCfuUqEr.js → css-DA4RYriG.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{edge-DP-spcJf.js → edge-7dx6BjGp.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elixir-BXBkaEtJ.js → elixir-DPywG97a.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elm-BXr8OwKP.js → elm-Dgo_WnqC.js} +1 -1
- package/dist/diff_tool/app/dist/assets/emacs-lisp-c_oH4hRZ.js +1 -0
- package/dist/diff_tool/app/dist/assets/{erb-Cu5Zacs_.js → erb-CVW4PjFl.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{gdresource-C0sCabJj.js → gdresource-xMC7jr7x.js} +1 -1
- package/dist/diff_tool/app/dist/assets/gdscript-DYvRD3hg.js +1 -0
- package/dist/diff_tool/app/dist/assets/{git-rebase-DO8LWld4.js → git-rebase-CtU0gmBJ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-js-Bh-OAIDW.js → glimmer-js-twAYiPP2.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-ts-DI9lHU4q.js → glimmer-ts-BfNoXayN.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glsl--zoY4RCO.js → glsl-D_XrtFF7.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{graphql-C8h2T_SC.js → graphql-B_GeapzM.js} +1 -1
- package/dist/diff_tool/app/dist/assets/hack-BCaCVoSX.js +1 -0
- package/dist/diff_tool/app/dist/assets/{haml-C2BBBsDW.js → haml-z9Mz7I1O.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{handlebars-cZMztphK.js → handlebars-D0FVYagc.js} +1 -1
- package/dist/diff_tool/app/dist/assets/haxe-C8oCnwJJ.js +1 -0
- package/dist/diff_tool/app/dist/assets/{html-BtccomkJ.js → html-BOM4tb7u.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{html-derivative-qjeUe52-.js → html-derivative-CsSlhJgr.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{http-Dv8OQO33.js → http-Cjy9oaQn.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{hurl-B6Fnr2ae.js → hurl-CjLQ7ql5.js} +1 -1
- package/dist/diff_tool/app/dist/assets/hxml-Dcm88srW.js +1 -0
- package/dist/diff_tool/app/dist/assets/index-QO81yN6b.js +1550 -0
- package/dist/diff_tool/app/dist/assets/{java-BuadWMcp.js → java-cn8DiFD8.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{javascript-BIKxmHeL.js → javascript-CEnHZaZM.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jinja-Cm_guvgu.js → jinja-DIp6kVk7.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jison-Sst29gJb.js → jison-Dx116ito.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{json-Bg6l2vym.js → json-C6B9h0n5.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jsx-BiREAxkr.js → jsx-CDEGT2B2.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{julia-DAhrWFzr.js → julia-CsIJA3Km.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{just-xBwbf5aT.js → just-DZRYvkQw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/kanagawa-dragon-Bozd7klA.js +1 -0
- package/dist/diff_tool/app/dist/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
- package/dist/diff_tool/app/dist/assets/kanagawa-wave-BML5mF2J.js +1 -0
- package/dist/diff_tool/app/dist/assets/latex-CeR-RQOI.js +1 -0
- package/dist/diff_tool/app/dist/assets/{liquid-BTsCzVvF.js → liquid-Dhf8N4mn.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{llvm-Cm23YOpf.js → llvm-DqHOMS-s.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{lua-BJt9x0JP.js → lua-zVTVaJzn.js} +1 -1
- package/dist/diff_tool/app/dist/assets/luau-C2pBCSgt.js +1 -0
- package/dist/diff_tool/app/dist/assets/{marko-CWdJkbvC.js → marko-BGPq5r3o.js} +1 -1
- package/dist/diff_tool/app/dist/assets/mdc-D8K78bym.js +1 -0
- package/dist/diff_tool/app/dist/assets/mermaid-BxpfTIzt.js +1 -0
- package/dist/diff_tool/app/dist/assets/mojo-CFuIV2fl.js +1 -0
- package/dist/diff_tool/app/dist/assets/monokai-B_bV9PQ9.js +1 -0
- package/dist/diff_tool/app/dist/assets/moonbit-DgjMoLWr.js +1 -0
- package/dist/diff_tool/app/dist/assets/move-BYnGhZoM.js +1 -0
- package/dist/diff_tool/app/dist/assets/{nginx-BwS0G4IK.js → nginx-Bo-bEa75.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{nim-B2VFbcs9.js → nim-Bfy5M54r.js} +1 -1
- package/dist/diff_tool/app/dist/assets/nsis-CjNLYCLg.js +1 -0
- package/dist/diff_tool/app/dist/assets/nushell-DHYfO66s.js +1 -0
- package/dist/diff_tool/app/dist/assets/org-BKetN7sT.js +1 -0
- package/dist/diff_tool/app/dist/assets/{perl-BTeqR-l8.js → perl-WiwTOQTV.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{php-Crua7nbA.js → php-CM2FzhGV.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{powershell-DshXNtvi.js → powershell-CCSX75yM.js} +1 -1
- package/dist/diff_tool/app/dist/assets/prisma-DMgNhnYS.js +1 -0
- package/dist/diff_tool/app/dist/assets/{pug-CUlgPjMU.js → pug-D2WvUHZ-.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{qml-DI0IjNUw.js → qml-DGPbc6TL.js} +1 -1
- package/dist/diff_tool/app/dist/assets/r-CCFYJ_KM.js +1 -0
- package/dist/diff_tool/app/dist/assets/{razor-DrkKtFm5.js → razor-D1JuQWQz.js} +1 -1
- package/dist/diff_tool/app/dist/assets/rbs-C0MpOrj4.js +1 -0
- package/dist/diff_tool/app/dist/assets/red-DX1BQOs8.js +1 -0
- package/dist/diff_tool/app/dist/assets/{regexp-DRmxJil7.js → regexp-zTiHwMow.js} +1 -1
- package/dist/diff_tool/app/dist/assets/rose-pine-aMsaMD1D.js +1 -0
- package/dist/diff_tool/app/dist/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
- package/dist/diff_tool/app/dist/assets/rose-pine-moon-DO-qXg-I.js +1 -0
- package/dist/diff_tool/app/dist/assets/{rst-DiRke36z.js → rst-CuUAArfH.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{ruby-t7r9jzAg.js → ruby-DznrLCoG.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sas-CR7Z4kg-.js → sas-D2hJmLva.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{scala-DKOlJaKm.js → scala-BiFt_7mu.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{scss--CnPWaDv.js → scss-Cjb3p_6n.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellscript-Bz7H5174.js → shellscript-BtwI-tfX.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellsession-mlKnHJfN.js → shellsession-BYirS1xP.js} +1 -1
- package/dist/diff_tool/app/dist/assets/smalltalk-BHpQb5nM.js +1 -0
- package/dist/diff_tool/app/dist/assets/smithy-Dgaz7aur.js +1 -0
- package/dist/diff_tool/app/dist/assets/solarized-dark-UdsmMDCL.js +1 -0
- package/dist/diff_tool/app/dist/assets/solarized-light-C1IUL_tW.js +1 -0
- package/dist/diff_tool/app/dist/assets/solidity-Bj7E1mRn.js +1 -0
- package/dist/diff_tool/app/dist/assets/{soy-CKu9y9G1.js → soy-D4Ndk7-j.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sql-DcvKi3Jj.js → sql-DbLQ5SJl.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{stata-Yo25QZyV.js → stata-BXoNBosJ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/surrealql-toyTYnAL.js +1 -0
- package/dist/diff_tool/app/dist/assets/{svelte-BIhEVbnP.js → svelte-BEpa7pAW.js} +1 -1
- package/dist/diff_tool/app/dist/assets/swift-CyEgAFGc.js +1 -0
- package/dist/diff_tool/app/dist/assets/system-verilog-Dh5ihWbf.js +1 -0
- package/dist/diff_tool/app/dist/assets/{templ-D6FrV4mZ.js → templ-CZfW_RJI.js} +1 -1
- package/dist/diff_tool/app/dist/assets/tex-COemmIIu.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-B5HubD5i.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BTK0wyKj.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BTUlzJFw.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BURFlYfV.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BVZjihoZ.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BWSkzMBn.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-BchIqPOb.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-CeLfRn2P.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-DMjwMSwU.js +1 -0
- package/dist/diff_tool/app/dist/assets/theming-QWGGdlwd.js +1 -0
- package/dist/diff_tool/app/dist/assets/{ts-tags-Kqn1PP6m.js → ts-tags-CMVUY_BA.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{tsx-L3TEJWGL.js → tsx-BTvP6uzd.js} +1 -1
- package/dist/diff_tool/app/dist/assets/twig-DzP5RjJc.js +1 -0
- package/dist/diff_tool/app/dist/assets/{typescript-Dvc5RX4H.js → typescript-CQaGlMoX.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{v-DETTlOr0.js → v-DBj4K9d_.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vb-Djn5o6TS.js → vb-DOwzaHZ0.js} +1 -1
- package/dist/diff_tool/app/dist/assets/verilog-B2gwz-sJ.js +1 -0
- package/dist/diff_tool/app/dist/assets/{vue-X1uI3I2A.js → vue-DaVWTtvb.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-html-BMpHEoeQ.js → vue-html-BA_OH0Xt.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-vine-DnTGaA4r.js → vue-vine-C_H4XbNR.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xml-QlPQXP0d.js → xml-1JLzpunp.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xsl-JpRU16Li.js → xsl-GtZi0Erj.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{yaml-Djukn3_s.js → yaml-LueTtDDo.js} +1 -1
- package/dist/diff_tool/app/dist/index.html +1 -1
- package/dist/execution/execution_environment.js.map +1 -1
- package/dist/execution/tool_backend_execution_environment.js +1 -7
- package/dist/execution/tool_backend_execution_environment.js.map +1 -1
- package/dist/host/client_tool_broker.js +28 -21
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js +109 -167
- package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
- package/dist/host/local_session_host.js +340 -248
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +125 -105
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/main.js +10 -2
- package/dist/main.js.map +1 -1
- package/dist/protocol/index.d.ts +1 -1
- package/dist/protocol/session_protocol.d.ts +70 -36
- package/dist/protocol/session_protocol.js +235 -80
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/session.js +8 -25
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +4 -9
- package/dist/starter/prompts/approval-review-branch.md +7 -0
- package/dist/starter/prompts/approval-review-current-changes.md +7 -0
- package/dist/starter/prompts/approval-review-last-commit.md +7 -0
- package/dist/starter/skills/approval-review/SKILL.md +219 -0
- package/dist/store/file_session_store.js +13 -9
- package/dist/store/file_session_store.js.map +1 -1
- package/dist/store/session_snapshot_migrations.js +152 -0
- package/dist/store/session_snapshot_migrations.js.map +1 -0
- package/dist/tui/chat_controller/command_hints.js +0 -6
- package/dist/tui/chat_controller/command_hints.js.map +1 -1
- package/dist/tui/chat_view.js +19 -12
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/session_chat_app.js +0 -8
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +122 -178
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/tool_ui_router.js +12 -226
- package/dist/tui/tool_ui_router.js.map +1 -1
- package/dist/tui/ui/bash_execution.js +3 -3
- package/dist/tui/ui/bash_execution.js.map +1 -1
- package/dist/tui/ui/chat_message_model.js +2 -2
- package/dist/tui/ui/chat_message_model.js.map +1 -1
- package/dist/tui/ui/subagent_panel.js +59 -26
- package/dist/tui/ui/subagent_panel.js.map +1 -1
- package/dist/tui/ui/tool_ui_model.js +2 -0
- package/dist/tui/ui/tool_ui_model.js.map +1 -0
- package/dist/tui/ui/tool_ui_registry.js +310 -36
- package/dist/tui/ui/tool_ui_registry.js.map +1 -1
- package/package.json +4 -4
- package/dist/core/events/types.js +0 -2
- package/dist/core/events/types.js.map +0 -1
- package/dist/core/modes/mode_adapter.js +0 -2
- package/dist/core/modes/mode_adapter.js.map +0 -1
- package/dist/core/runtime/conversation_turn_runtime.js +0 -88
- package/dist/core/runtime/conversation_turn_runtime.js.map +0 -1
- package/dist/core/session/core_session.js +0 -86
- package/dist/core/session/core_session.js.map +0 -1
- package/dist/core/session/pruning.js +0 -587
- package/dist/core/session/pruning.js.map +0 -1
- package/dist/core/session/session_engine.js +0 -1246
- package/dist/core/session/session_engine.js.map +0 -1
- package/dist/core/subagents/control_plane.js +0 -339
- package/dist/core/subagents/control_plane.js.map +0 -1
- package/dist/core/subagents/subagent_engine.js +0 -258
- package/dist/core/subagents/subagent_engine.js.map +0 -1
- package/dist/core/tools/terminate_agent.js +0 -162
- package/dist/core/tools/terminate_agent.js.map +0 -1
- package/dist/diff_tool/app/dist/assets/actionscript-3--17pq3dv.js +0 -1
- package/dist/diff_tool/app/dist/assets/apex-VAyPSnFM.js +0 -1
- package/dist/diff_tool/app/dist/assets/asciidoc-DE70LPWp.js +0 -1
- package/dist/diff_tool/app/dist/assets/bird2-C6vDhewU.js +0 -1
- package/dist/diff_tool/app/dist/assets/bsl-BkkzgIyY.js +0 -1
- package/dist/diff_tool/app/dist/assets/c3-BFHwR3_K.js +0 -1
- package/dist/diff_tool/app/dist/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
- package/dist/diff_tool/app/dist/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
- package/dist/diff_tool/app/dist/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
- package/dist/diff_tool/app/dist/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
- package/dist/diff_tool/app/dist/assets/clarity-SemFz856.js +0 -1
- package/dist/diff_tool/app/dist/assets/coq-BrsZFFmf.js +0 -1
- package/dist/diff_tool/app/dist/assets/cpp-BcU9r9kv.js +0 -1
- package/dist/diff_tool/app/dist/assets/emacs-lisp-B4R74twV.js +0 -1
- package/dist/diff_tool/app/dist/assets/gdscript-Cp2uCuqX.js +0 -1
- package/dist/diff_tool/app/dist/assets/hack-DAsjGmmw.js +0 -1
- package/dist/diff_tool/app/dist/assets/haxe-OTjmBuCE.js +0 -1
- package/dist/diff_tool/app/dist/assets/hxml-B0Qn7Nwc.js +0 -1
- package/dist/diff_tool/app/dist/assets/index-U7G4V3LV.js +0 -1579
- package/dist/diff_tool/app/dist/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
- package/dist/diff_tool/app/dist/assets/kanagawa-lotus-BN08jTvb.js +0 -1
- package/dist/diff_tool/app/dist/assets/kanagawa-wave-CTweb8Dz.js +0 -1
- package/dist/diff_tool/app/dist/assets/latex-Bydg2zYo.js +0 -1
- package/dist/diff_tool/app/dist/assets/luau-FMPmPwt6.js +0 -1
- package/dist/diff_tool/app/dist/assets/mdc-B6ddHTKx.js +0 -1
- package/dist/diff_tool/app/dist/assets/mermaid-Bk4SNUv9.js +0 -1
- package/dist/diff_tool/app/dist/assets/mojo-BgCJLMeH.js +0 -1
- package/dist/diff_tool/app/dist/assets/monokai-CdkpiU2Y.js +0 -1
- package/dist/diff_tool/app/dist/assets/moonbit-CaWjb8XO.js +0 -1
- package/dist/diff_tool/app/dist/assets/move-B1IS1UjX.js +0 -1
- package/dist/diff_tool/app/dist/assets/nushell-DcLAeLz5.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-CpLgRqie.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-soft-kZQmAZld.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-tritanopia-CpjhbsIL.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-vibrant-CpQYzh95.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-light-CoaEpmwp.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-light-soft-lWLdNTOI.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-light-tritanopia-CEbqgOJL.js +0 -1
- package/dist/diff_tool/app/dist/assets/pierre-light-vibrant-D80Fkn33.js +0 -1
- package/dist/diff_tool/app/dist/assets/prisma-BsRQq5mF.js +0 -1
- package/dist/diff_tool/app/dist/assets/r-DRexFFDh.js +0 -1
- package/dist/diff_tool/app/dist/assets/red-CJ3rzSJv.js +0 -1
- package/dist/diff_tool/app/dist/assets/rose-pine-BthvhNj6.js +0 -1
- package/dist/diff_tool/app/dist/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
- package/dist/diff_tool/app/dist/assets/rose-pine-moon-hon4tzzS.js +0 -1
- package/dist/diff_tool/app/dist/assets/smalltalk-B16xEiuN.js +0 -1
- package/dist/diff_tool/app/dist/assets/solarized-dark-DV17i1UV.js +0 -1
- package/dist/diff_tool/app/dist/assets/solarized-light-DSh2HLQt.js +0 -1
- package/dist/diff_tool/app/dist/assets/solidity-CKzVLygQ.js +0 -1
- package/dist/diff_tool/app/dist/assets/surrealql-CUddZ4Qk.js +0 -1
- package/dist/diff_tool/app/dist/assets/swift-DonLKvLd.js +0 -1
- package/dist/diff_tool/app/dist/assets/system-verilog-DJ5XKQeo.js +0 -1
- package/dist/diff_tool/app/dist/assets/tex-BOTYELrL.js +0 -1
- package/dist/diff_tool/app/dist/assets/twig-BpzmhnWz.js +0 -1
- package/dist/diff_tool/app/dist/assets/verilog-CiiDBU1e.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export const SESSION_PROTOCOL_VERSION =
|
|
2
|
+
export const SESSION_PROTOCOL_VERSION = 5;
|
|
3
3
|
export const SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES = 24 * 1024 * 1024;
|
|
4
4
|
export const SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES = 16 * 1024 * 1024;
|
|
5
5
|
export const SESSION_PROTOCOL_METHODS = [
|
|
@@ -25,9 +25,8 @@ export const SESSION_PROTOCOL_METHODS = [
|
|
|
25
25
|
"session.autocompletePaths",
|
|
26
26
|
"session.reload",
|
|
27
27
|
"session.compact",
|
|
28
|
-
"session.prune",
|
|
29
28
|
"session.rewind",
|
|
30
|
-
"session.
|
|
29
|
+
"session.interruptSubagent",
|
|
31
30
|
"session.ephemeral.create",
|
|
32
31
|
"session.ephemeral.submit",
|
|
33
32
|
"session.ephemeral.close",
|
|
@@ -342,10 +341,16 @@ const sessionProtocolInitializeParamsSchema = z
|
|
|
342
341
|
const sessionProtocolUserMessageParamsSchema = z
|
|
343
342
|
.object({
|
|
344
343
|
sessionId: nonEmptyStringSchema,
|
|
345
|
-
text:
|
|
344
|
+
text: nonEmptyStringSchema,
|
|
346
345
|
historyEntryId: nonEmptyStringSchema.optional(),
|
|
347
346
|
})
|
|
348
347
|
.strip();
|
|
348
|
+
const sessionProtocolSteerParamsSchema = z
|
|
349
|
+
.object({
|
|
350
|
+
sessionId: nonEmptyStringSchema,
|
|
351
|
+
text: nonEmptyStringSchema,
|
|
352
|
+
})
|
|
353
|
+
.strip();
|
|
349
354
|
const sessionProtocolRecordParamsSchema = sessionProtocolUserMessageParamsSchema;
|
|
350
355
|
const sessionProtocolExecParamsSchema = z
|
|
351
356
|
.object({
|
|
@@ -442,21 +447,13 @@ const sessionProtocolCompactParamsSchema = z
|
|
|
442
447
|
guidance: z.string().optional(),
|
|
443
448
|
})
|
|
444
449
|
.strip();
|
|
445
|
-
const sessionProtocolPruneParamsSchema = z
|
|
446
|
-
.object({
|
|
447
|
-
sessionId: nonEmptyStringSchema,
|
|
448
|
-
strategy: z.enum(["earliest", "largest", "smart"]),
|
|
449
|
-
fraction: z.number().min(0).max(1),
|
|
450
|
-
guidance: z.string().optional(),
|
|
451
|
-
})
|
|
452
|
-
.strip();
|
|
453
450
|
const sessionProtocolRewindParamsSchema = z
|
|
454
451
|
.object({
|
|
455
452
|
sessionId: nonEmptyStringSchema,
|
|
456
453
|
historyEntryId: nonEmptyStringSchema,
|
|
457
454
|
})
|
|
458
455
|
.strip();
|
|
459
|
-
const
|
|
456
|
+
const sessionProtocolInterruptSubagentParamsSchema = z
|
|
460
457
|
.object({
|
|
461
458
|
sessionId: nonEmptyStringSchema,
|
|
462
459
|
subagentId: nonEmptyStringSchema,
|
|
@@ -755,7 +752,7 @@ const sessionProtocolNoticeSchema = z
|
|
|
755
752
|
.strip();
|
|
756
753
|
const sessionProtocolOperationSchema = z
|
|
757
754
|
.object({
|
|
758
|
-
kind: z.enum(["auto-compaction", "manual-compaction", "
|
|
755
|
+
kind: z.enum(["auto-compaction", "manual-compaction", "reload", "rewind"]),
|
|
759
756
|
status: z.enum(["running", "succeeded", "failed", "cancelled", "skipped"]),
|
|
760
757
|
startedAt: z.number().finite(),
|
|
761
758
|
finishedAt: z.number().finite().optional(),
|
|
@@ -828,25 +825,86 @@ const sessionProtocolAgentUsageSchema = z
|
|
|
828
825
|
contextWindow: z.number().finite(),
|
|
829
826
|
})
|
|
830
827
|
.strip();
|
|
828
|
+
const sessionProtocolAgentFailedRunFailureSchema = z.discriminatedUnion("kind", [
|
|
829
|
+
z
|
|
830
|
+
.object({
|
|
831
|
+
kind: z.enum(["auto-compaction-failed", "model-subturn-limit", "runtime-error"]),
|
|
832
|
+
message: z.string(),
|
|
833
|
+
})
|
|
834
|
+
.strip(),
|
|
835
|
+
z
|
|
836
|
+
.object({
|
|
837
|
+
kind: z.literal("provider-error"),
|
|
838
|
+
message: z.string(),
|
|
839
|
+
stopReason: z.string(),
|
|
840
|
+
})
|
|
841
|
+
.strip(),
|
|
842
|
+
]);
|
|
843
|
+
const sessionProtocolAgentInterruptedRunFailureSchema = z
|
|
844
|
+
.object({
|
|
845
|
+
kind: z.literal("interrupted"),
|
|
846
|
+
message: z.string(),
|
|
847
|
+
})
|
|
848
|
+
.strip();
|
|
849
|
+
const sessionProtocolAgentRunStateBaseSchema = z.object({
|
|
850
|
+
revision: z.number().int().positive(),
|
|
851
|
+
startedAt: z.number().finite(),
|
|
852
|
+
interruptRequested: z.boolean(),
|
|
853
|
+
});
|
|
854
|
+
const sessionProtocolAgentRunStateSchema = z.discriminatedUnion("status", [
|
|
855
|
+
sessionProtocolAgentRunStateBaseSchema.extend({ status: z.literal("running") }).strip(),
|
|
856
|
+
sessionProtocolAgentRunStateBaseSchema
|
|
857
|
+
.extend({
|
|
858
|
+
status: z.literal("succeeded"),
|
|
859
|
+
finishedAt: z.number().finite(),
|
|
860
|
+
response: z.string(),
|
|
861
|
+
})
|
|
862
|
+
.strip(),
|
|
863
|
+
sessionProtocolAgentRunStateBaseSchema
|
|
864
|
+
.extend({
|
|
865
|
+
status: z.literal("failed"),
|
|
866
|
+
finishedAt: z.number().finite(),
|
|
867
|
+
failure: sessionProtocolAgentFailedRunFailureSchema,
|
|
868
|
+
})
|
|
869
|
+
.strip(),
|
|
870
|
+
sessionProtocolAgentRunStateBaseSchema
|
|
871
|
+
.extend({
|
|
872
|
+
status: z.literal("interrupted"),
|
|
873
|
+
finishedAt: z.number().finite(),
|
|
874
|
+
failure: sessionProtocolAgentInterruptedRunFailureSchema,
|
|
875
|
+
})
|
|
876
|
+
.strip(),
|
|
877
|
+
]);
|
|
831
878
|
const sessionProtocolAgentRunSchema = z
|
|
832
879
|
.object({
|
|
833
880
|
id: nonEmptyStringSchema,
|
|
834
881
|
name: nonEmptyStringSchema,
|
|
835
882
|
title: nonEmptyStringSchema,
|
|
836
|
-
|
|
837
|
-
|
|
883
|
+
availability: z.enum(["running", "idle"]),
|
|
884
|
+
model: z
|
|
885
|
+
.object({
|
|
886
|
+
provider: nonEmptyStringSchema,
|
|
887
|
+
id: nonEmptyStringSchema,
|
|
888
|
+
reasoning: sessionProtocolReasoningEffortSchema,
|
|
889
|
+
})
|
|
890
|
+
.strip(),
|
|
891
|
+
workingDirectory: nonEmptyStringSchema,
|
|
892
|
+
createdAt: z.number().finite(),
|
|
893
|
+
run: sessionProtocolAgentRunStateSchema,
|
|
838
894
|
costTotal: z.number().finite(),
|
|
839
|
-
turns: z.number().finite(),
|
|
840
|
-
toolCalls: z.number().finite(),
|
|
841
895
|
usage: sessionProtocolAgentUsageSchema,
|
|
842
|
-
startedAt: z.number().finite(),
|
|
843
|
-
finishedAt: z.number().finite().optional(),
|
|
844
|
-
abortRequested: z.boolean(),
|
|
845
|
-
progress: z.string().optional(),
|
|
846
|
-
finalText: z.string().optional(),
|
|
847
|
-
error: z.string().optional(),
|
|
848
896
|
})
|
|
849
|
-
.strip()
|
|
897
|
+
.strip()
|
|
898
|
+
.superRefine((agent, ctx) => {
|
|
899
|
+
const running = agent.run.status === "running";
|
|
900
|
+
if ((agent.availability === "running") !== running) {
|
|
901
|
+
ctx.addIssue({
|
|
902
|
+
code: "custom",
|
|
903
|
+
path: ["availability"],
|
|
904
|
+
message: "agent availability must match latest run status",
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
});
|
|
850
908
|
const sessionProtocolFacetSubjectSchema = z.discriminatedUnion("type", [
|
|
851
909
|
z.object({ type: z.literal("session") }).strip(),
|
|
852
910
|
z.object({ type: z.literal("message"), id: nonEmptyStringSchema }).strip(),
|
|
@@ -863,10 +921,25 @@ const sessionProtocolFacetSchema = z
|
|
|
863
921
|
data: z.record(z.string(), z.unknown()),
|
|
864
922
|
})
|
|
865
923
|
.strip();
|
|
924
|
+
const sessionProtocolAgentStateSnapshotSchema = z
|
|
925
|
+
.object({
|
|
926
|
+
revision: z.number().int().nonnegative(),
|
|
927
|
+
contextEpoch: nonEmptyStringSchema,
|
|
928
|
+
usageCheckpoint: z
|
|
929
|
+
.object({
|
|
930
|
+
historyEntryId: nonEmptyStringSchema,
|
|
931
|
+
contextEpoch: nonEmptyStringSchema,
|
|
932
|
+
tokens: z.number().int().nonnegative(),
|
|
933
|
+
})
|
|
934
|
+
.strip()
|
|
935
|
+
.optional(),
|
|
936
|
+
})
|
|
937
|
+
.strip();
|
|
866
938
|
const sessionProtocolSnapshotSchema = z
|
|
867
939
|
.object({
|
|
868
940
|
sessionId: nonEmptyStringSchema,
|
|
869
941
|
revision: z.number().int().positive(),
|
|
942
|
+
agentState: sessionProtocolAgentStateSnapshotSchema,
|
|
870
943
|
lifecycle: sessionProtocolSessionLifecycleSchema,
|
|
871
944
|
costTotal: z.number().nonnegative(),
|
|
872
945
|
settings: sessionProtocolSettingsSnapshotSchema,
|
|
@@ -899,6 +972,31 @@ const sessionProtocolSnapshotSchema = z
|
|
|
899
972
|
}
|
|
900
973
|
messagesById.set(message.id, message);
|
|
901
974
|
}
|
|
975
|
+
const checkpoint = snapshot.agentState.usageCheckpoint;
|
|
976
|
+
if (checkpoint) {
|
|
977
|
+
if (checkpoint.contextEpoch !== snapshot.agentState.contextEpoch) {
|
|
978
|
+
ctx.addIssue({
|
|
979
|
+
code: "custom",
|
|
980
|
+
path: ["agentState", "usageCheckpoint", "contextEpoch"],
|
|
981
|
+
message: "usage checkpoint context epoch must match agent state",
|
|
982
|
+
});
|
|
983
|
+
}
|
|
984
|
+
const checkpointMessage = messagesById.get(checkpoint.historyEntryId);
|
|
985
|
+
const checkpointAssistant = checkpointMessage?.message.role === "assistant" && "stopReason" in checkpointMessage.message
|
|
986
|
+
? checkpointMessage.message
|
|
987
|
+
: undefined;
|
|
988
|
+
if (!checkpointMessage?.modelVisible ||
|
|
989
|
+
checkpointMessage.state !== "committed" ||
|
|
990
|
+
!checkpointAssistant ||
|
|
991
|
+
checkpointAssistant.stopReason === "aborted" ||
|
|
992
|
+
checkpointAssistant.stopReason === "error") {
|
|
993
|
+
ctx.addIssue({
|
|
994
|
+
code: "custom",
|
|
995
|
+
path: ["agentState", "usageCheckpoint", "historyEntryId"],
|
|
996
|
+
message: "usage checkpoint must reference a completed model-visible assistant response",
|
|
997
|
+
});
|
|
998
|
+
}
|
|
999
|
+
}
|
|
902
1000
|
const timelineIds = new Set();
|
|
903
1001
|
const operationIds = new Set();
|
|
904
1002
|
for (const item of snapshot.timeline) {
|
|
@@ -1043,6 +1141,12 @@ const sessionProtocolDeltaReasonSchema = z.enum([
|
|
|
1043
1141
|
"recovery",
|
|
1044
1142
|
]);
|
|
1045
1143
|
const sessionProtocolChangeSchema = z.discriminatedUnion("type", [
|
|
1144
|
+
z
|
|
1145
|
+
.object({
|
|
1146
|
+
type: z.literal("agent-state.set"),
|
|
1147
|
+
agentState: sessionProtocolAgentStateSnapshotSchema,
|
|
1148
|
+
})
|
|
1149
|
+
.strip(),
|
|
1046
1150
|
z
|
|
1047
1151
|
.object({
|
|
1048
1152
|
type: z.literal("lifecycle.set"),
|
|
@@ -1346,17 +1450,6 @@ const sessionProtocolCompactResultSchema = z
|
|
|
1346
1450
|
includedLastAssistant: z.boolean(),
|
|
1347
1451
|
})
|
|
1348
1452
|
.strip();
|
|
1349
|
-
const sessionProtocolPruneResultSchema = z
|
|
1350
|
-
.object({
|
|
1351
|
-
snapshot: sessionProtocolSnapshotSchema,
|
|
1352
|
-
message: nonEmptyStringSchema,
|
|
1353
|
-
noop: z.boolean(),
|
|
1354
|
-
bashResultsPruned: z.number().int().nonnegative(),
|
|
1355
|
-
editCallsPruned: z.number().int().nonnegative(),
|
|
1356
|
-
editResultsPruned: z.number().int().nonnegative(),
|
|
1357
|
-
bytesPruned: z.number().int().nonnegative(),
|
|
1358
|
-
})
|
|
1359
|
-
.strip();
|
|
1360
1453
|
const sessionProtocolRewindResultSchema = z
|
|
1361
1454
|
.object({
|
|
1362
1455
|
snapshot: sessionProtocolSnapshotSchema,
|
|
@@ -1394,7 +1487,7 @@ const sessionProtocolUnobserveResultSchema = z
|
|
|
1394
1487
|
unobserved: z.literal(true),
|
|
1395
1488
|
})
|
|
1396
1489
|
.strip();
|
|
1397
|
-
const
|
|
1490
|
+
const sessionProtocolInterruptSubagentResultSchema = z
|
|
1398
1491
|
.object({
|
|
1399
1492
|
found: z.boolean(),
|
|
1400
1493
|
})
|
|
@@ -1521,12 +1614,16 @@ export function applySessionProtocolDelta(snapshot, message) {
|
|
|
1521
1614
|
}
|
|
1522
1615
|
const keyedPatchSnapshot = applyKeyedRecordDelta(snapshot, message);
|
|
1523
1616
|
if (keyedPatchSnapshot) {
|
|
1617
|
+
validateAppliedSnapshotChanges(snapshot, keyedPatchSnapshot, message.delta.changes);
|
|
1524
1618
|
return keyedPatchSnapshot;
|
|
1525
1619
|
}
|
|
1526
1620
|
const next = structuredClone(snapshot);
|
|
1527
1621
|
next.revision = message.toRevision;
|
|
1528
1622
|
for (const change of message.delta.changes) {
|
|
1529
1623
|
switch (change.type) {
|
|
1624
|
+
case "agent-state.set":
|
|
1625
|
+
next.agentState = structuredClone(change.agentState);
|
|
1626
|
+
break;
|
|
1530
1627
|
case "lifecycle.set":
|
|
1531
1628
|
next.lifecycle = change.lifecycle;
|
|
1532
1629
|
break;
|
|
@@ -1592,8 +1689,81 @@ export function applySessionProtocolDelta(snapshot, message) {
|
|
|
1592
1689
|
break;
|
|
1593
1690
|
}
|
|
1594
1691
|
}
|
|
1692
|
+
validateAppliedSnapshotChanges(snapshot, next, message.delta.changes);
|
|
1595
1693
|
return next;
|
|
1596
1694
|
}
|
|
1695
|
+
function validateAppliedSnapshotChanges(previous, snapshot, changes) {
|
|
1696
|
+
if (!changes.some((change) => changeCanInvalidateSnapshot(previous, change))) {
|
|
1697
|
+
return;
|
|
1698
|
+
}
|
|
1699
|
+
const parsed = sessionProtocolSnapshotSchema.safeParse(snapshot);
|
|
1700
|
+
if (!parsed.success) {
|
|
1701
|
+
throw new Error(`session delta produced an invalid snapshot: ${formatZodError(parsed.error)}`);
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
function changeCanInvalidateSnapshot(snapshot, change) {
|
|
1705
|
+
switch (change.type) {
|
|
1706
|
+
case "lifecycle.set":
|
|
1707
|
+
case "cost.set":
|
|
1708
|
+
case "settings.set":
|
|
1709
|
+
case "agent.set":
|
|
1710
|
+
return false;
|
|
1711
|
+
case "tool.set": {
|
|
1712
|
+
const previous = snapshot.tools[change.tool.id];
|
|
1713
|
+
return !previous || !hasSameToolReferences(previous, change.tool);
|
|
1714
|
+
}
|
|
1715
|
+
case "facet.set": {
|
|
1716
|
+
const previous = snapshot.facets[change.facet.id];
|
|
1717
|
+
return !previous || !hasSameFacetSubject(previous, change.facet);
|
|
1718
|
+
}
|
|
1719
|
+
case "timeline.replace": {
|
|
1720
|
+
const previous = snapshot.timeline.find((item) => item.id === change.item.id);
|
|
1721
|
+
return !previous || !hasSameTimelineReferences(previous, change.item);
|
|
1722
|
+
}
|
|
1723
|
+
case "agent-state.set":
|
|
1724
|
+
case "message.append":
|
|
1725
|
+
case "message.replace":
|
|
1726
|
+
case "message.content.append":
|
|
1727
|
+
case "timeline.append":
|
|
1728
|
+
case "timeline.remove":
|
|
1729
|
+
case "tool.remove":
|
|
1730
|
+
case "agent.remove":
|
|
1731
|
+
case "facet.remove":
|
|
1732
|
+
return true;
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
function hasSameToolReferences(previous, tool) {
|
|
1736
|
+
if (previous.id !== tool.id ||
|
|
1737
|
+
previous.toolCallId !== tool.toolCallId ||
|
|
1738
|
+
previous.toolName !== tool.toolName ||
|
|
1739
|
+
previous.facetIds.length !== tool.facetIds.length ||
|
|
1740
|
+
previous.facetIds.some((id, index) => id !== tool.facetIds[index])) {
|
|
1741
|
+
return false;
|
|
1742
|
+
}
|
|
1743
|
+
if (previous.status === "streaming" || tool.status === "streaming") {
|
|
1744
|
+
return (previous.status === "streaming" &&
|
|
1745
|
+
tool.status === "streaming" &&
|
|
1746
|
+
previous.origin.messageId === tool.origin.messageId &&
|
|
1747
|
+
previous.origin.contentIndex === tool.origin.contentIndex);
|
|
1748
|
+
}
|
|
1749
|
+
return (previous.call.messageId === tool.call.messageId &&
|
|
1750
|
+
previous.call.contentIndex === tool.call.contentIndex &&
|
|
1751
|
+
previous.resultMessageId === tool.resultMessageId);
|
|
1752
|
+
}
|
|
1753
|
+
function hasSameFacetSubject(previous, facet) {
|
|
1754
|
+
return (previous.id === facet.id &&
|
|
1755
|
+
previous.subject.type === facet.subject.type &&
|
|
1756
|
+
(previous.subject.type === "session" ||
|
|
1757
|
+
(facet.subject.type !== "session" && previous.subject.id === facet.subject.id)));
|
|
1758
|
+
}
|
|
1759
|
+
function hasSameTimelineReferences(previous, item) {
|
|
1760
|
+
if (previous.type !== item.type)
|
|
1761
|
+
return false;
|
|
1762
|
+
if (previous.type === "message" && item.type === "message") {
|
|
1763
|
+
return previous.messageId === item.messageId;
|
|
1764
|
+
}
|
|
1765
|
+
return true;
|
|
1766
|
+
}
|
|
1597
1767
|
function applyKeyedRecordDelta(snapshot, message) {
|
|
1598
1768
|
if (message.delta.type !== "snapshot.patch") {
|
|
1599
1769
|
return undefined;
|
|
@@ -1927,8 +2097,9 @@ export function validateSessionProtocolParams(method, params) {
|
|
|
1927
2097
|
return validateRecordParams(params);
|
|
1928
2098
|
case "session.submit":
|
|
1929
2099
|
case "session.queue":
|
|
1930
|
-
case "session.steer":
|
|
1931
2100
|
return validateUserMessageParams(method, params);
|
|
2101
|
+
case "session.steer":
|
|
2102
|
+
return validateSteerParams(params);
|
|
1932
2103
|
case "session.exec":
|
|
1933
2104
|
return validateExecParams(params);
|
|
1934
2105
|
case "session.cancelExec":
|
|
@@ -1953,12 +2124,10 @@ export function validateSessionProtocolParams(method, params) {
|
|
|
1953
2124
|
return validateAutocompletePathsParams(params);
|
|
1954
2125
|
case "session.compact":
|
|
1955
2126
|
return validateCompactParams(params);
|
|
1956
|
-
case "session.prune":
|
|
1957
|
-
return validatePruneParams(params);
|
|
1958
2127
|
case "session.rewind":
|
|
1959
2128
|
return validateRewindParams(params);
|
|
1960
|
-
case "session.
|
|
1961
|
-
return
|
|
2129
|
+
case "session.interruptSubagent":
|
|
2130
|
+
return validateInterruptSubagentParams(params);
|
|
1962
2131
|
case "session.ephemeral.create":
|
|
1963
2132
|
return validateEphemeralCreateParams(params);
|
|
1964
2133
|
case "session.ephemeral.submit":
|
|
@@ -1994,12 +2163,10 @@ export function validateSessionProtocolResult(method, result) {
|
|
|
1994
2163
|
return validateResult(method, result, sessionProtocolReloadResultSchema);
|
|
1995
2164
|
case "session.compact":
|
|
1996
2165
|
return validateResult(method, result, sessionProtocolCompactResultSchema);
|
|
1997
|
-
case "session.prune":
|
|
1998
|
-
return validateResult(method, result, sessionProtocolPruneResultSchema);
|
|
1999
2166
|
case "session.rewind":
|
|
2000
2167
|
return validateResult(method, result, sessionProtocolRewindResultSchema);
|
|
2001
|
-
case "session.
|
|
2002
|
-
return validateResult(method, result,
|
|
2168
|
+
case "session.interruptSubagent":
|
|
2169
|
+
return validateResult(method, result, sessionProtocolInterruptSubagentResultSchema);
|
|
2003
2170
|
case "session.ephemeral.create":
|
|
2004
2171
|
return validateResult(method, result, sessionProtocolEphemeralCreateResultSchema);
|
|
2005
2172
|
case "session.ephemeral.submit":
|
|
@@ -2082,7 +2249,7 @@ function validateUserMessageParams(method, params) {
|
|
|
2082
2249
|
: hasIssue(parsed.error, ["sessionId"])
|
|
2083
2250
|
? `${method} params.sessionId must be a non-empty string`
|
|
2084
2251
|
: hasIssue(parsed.error, ["text"])
|
|
2085
|
-
? `${method} params.text must be a string`
|
|
2252
|
+
? `${method} params.text must be a non-empty string`
|
|
2086
2253
|
: hasIssue(parsed.error, ["historyEntryId"])
|
|
2087
2254
|
? `${method} params.historyEntryId must be a non-empty string when provided`
|
|
2088
2255
|
: `${method} params are invalid: ${formatZodError(parsed.error)}`;
|
|
@@ -2099,6 +2266,20 @@ function validateUserMessageParams(method, params) {
|
|
|
2099
2266
|
},
|
|
2100
2267
|
};
|
|
2101
2268
|
}
|
|
2269
|
+
function validateSteerParams(params) {
|
|
2270
|
+
const parsed = sessionProtocolSteerParamsSchema.safeParse(params);
|
|
2271
|
+
if (!parsed.success) {
|
|
2272
|
+
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2273
|
+
? "session.steer params must be an object"
|
|
2274
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
2275
|
+
? "session.steer params.sessionId must be a non-empty string"
|
|
2276
|
+
: hasIssue(parsed.error, ["text"])
|
|
2277
|
+
? "session.steer params.text must be a non-empty string"
|
|
2278
|
+
: `session.steer params are invalid: ${formatZodError(parsed.error)}`;
|
|
2279
|
+
return invalidParams(message);
|
|
2280
|
+
}
|
|
2281
|
+
return { ok: true, value: parsed.data };
|
|
2282
|
+
}
|
|
2102
2283
|
function validateRecordParams(params) {
|
|
2103
2284
|
const parsed = sessionProtocolRecordParamsSchema.safeParse(params);
|
|
2104
2285
|
if (!parsed.success) {
|
|
@@ -2107,7 +2288,7 @@ function validateRecordParams(params) {
|
|
|
2107
2288
|
: hasIssue(parsed.error, ["sessionId"])
|
|
2108
2289
|
? "session.record params.sessionId must be a non-empty string"
|
|
2109
2290
|
: hasIssue(parsed.error, ["text"])
|
|
2110
|
-
? "session.record params.text must be a string"
|
|
2291
|
+
? "session.record params.text must be a non-empty string"
|
|
2111
2292
|
: hasIssue(parsed.error, ["historyEntryId"])
|
|
2112
2293
|
? "session.record params.historyEntryId must be a non-empty string when provided"
|
|
2113
2294
|
: `session.record params are invalid: ${formatZodError(parsed.error)}`;
|
|
@@ -2288,32 +2469,6 @@ function validateCompactParams(params) {
|
|
|
2288
2469
|
},
|
|
2289
2470
|
};
|
|
2290
2471
|
}
|
|
2291
|
-
function validatePruneParams(params) {
|
|
2292
|
-
const parsed = sessionProtocolPruneParamsSchema.safeParse(params);
|
|
2293
|
-
if (!parsed.success) {
|
|
2294
|
-
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2295
|
-
? "session.prune params must be an object"
|
|
2296
|
-
: hasIssue(parsed.error, ["sessionId"])
|
|
2297
|
-
? "session.prune params.sessionId must be a non-empty string"
|
|
2298
|
-
: hasIssue(parsed.error, ["strategy"])
|
|
2299
|
-
? "session.prune params.strategy must be 'earliest', 'largest', or 'smart'"
|
|
2300
|
-
: hasIssue(parsed.error, ["fraction"])
|
|
2301
|
-
? "session.prune params.fraction must be a number between 0 and 1"
|
|
2302
|
-
: hasIssue(parsed.error, ["guidance"])
|
|
2303
|
-
? "session.prune params.guidance must be a string when provided"
|
|
2304
|
-
: `session.prune params are invalid: ${formatZodError(parsed.error)}`;
|
|
2305
|
-
return invalidParams(message);
|
|
2306
|
-
}
|
|
2307
|
-
return {
|
|
2308
|
-
ok: true,
|
|
2309
|
-
value: {
|
|
2310
|
-
sessionId: parsed.data.sessionId,
|
|
2311
|
-
strategy: parsed.data.strategy,
|
|
2312
|
-
fraction: parsed.data.fraction,
|
|
2313
|
-
...(parsed.data.guidance !== undefined ? { guidance: parsed.data.guidance } : {}),
|
|
2314
|
-
},
|
|
2315
|
-
};
|
|
2316
|
-
}
|
|
2317
2472
|
function validateRewindParams(params) {
|
|
2318
2473
|
const parsed = sessionProtocolRewindParamsSchema.safeParse(params);
|
|
2319
2474
|
if (!parsed.success) {
|
|
@@ -2334,16 +2489,16 @@ function validateRewindParams(params) {
|
|
|
2334
2489
|
},
|
|
2335
2490
|
};
|
|
2336
2491
|
}
|
|
2337
|
-
function
|
|
2338
|
-
const parsed =
|
|
2492
|
+
function validateInterruptSubagentParams(params) {
|
|
2493
|
+
const parsed = sessionProtocolInterruptSubagentParamsSchema.safeParse(params);
|
|
2339
2494
|
if (!parsed.success) {
|
|
2340
2495
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2341
|
-
? "session.
|
|
2496
|
+
? "session.interruptSubagent params must be an object"
|
|
2342
2497
|
: hasIssue(parsed.error, ["sessionId"])
|
|
2343
|
-
? "session.
|
|
2498
|
+
? "session.interruptSubagent params.sessionId must be a non-empty string"
|
|
2344
2499
|
: hasIssue(parsed.error, ["subagentId"])
|
|
2345
|
-
? "session.
|
|
2346
|
-
: `session.
|
|
2500
|
+
? "session.interruptSubagent params.subagentId must be a non-empty string"
|
|
2501
|
+
: `session.interruptSubagent params are invalid: ${formatZodError(parsed.error)}`;
|
|
2347
2502
|
return invalidParams(message);
|
|
2348
2503
|
}
|
|
2349
2504
|
return {
|