@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.
Files changed (343) hide show
  1. package/README.md +15 -20
  2. package/dist/core/agent/agent_runtime.js +1551 -0
  3. package/dist/core/agent/agent_runtime.js.map +1 -0
  4. package/dist/core/agent/events.js +2 -0
  5. package/dist/core/agent/events.js.map +1 -0
  6. package/dist/core/commands/registry.js +0 -42
  7. package/dist/core/commands/registry.js.map +1 -1
  8. package/dist/core/config/content_loader.js +7 -3
  9. package/dist/core/config/content_loader.js.map +1 -1
  10. package/dist/core/index.js +3 -2
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/core/models/catalog.js +7 -1
  13. package/dist/core/models/catalog.js.map +1 -1
  14. package/dist/core/models/tau_model_overrides.js +10 -0
  15. package/dist/core/models/tau_model_overrides.js.map +1 -0
  16. package/dist/core/modes/index.js.map +1 -1
  17. package/dist/core/personas.js +4 -2
  18. package/dist/core/personas.js.map +1 -1
  19. package/dist/core/runtime/agent_model.js +50 -0
  20. package/dist/core/runtime/agent_model.js.map +1 -0
  21. package/dist/core/runtime/chat_runtime.js +175 -63
  22. package/dist/core/runtime/chat_runtime.js.map +1 -1
  23. package/dist/core/runtime/model_executor.js +2 -0
  24. package/dist/core/runtime/model_executor.js.map +1 -0
  25. package/dist/core/runtime/model_sampler.js +21 -0
  26. package/dist/core/runtime/model_sampler.js.map +1 -0
  27. package/dist/core/session/auto_compaction_archive.js +239 -0
  28. package/dist/core/session/auto_compaction_archive.js.map +1 -0
  29. package/dist/core/session/compaction.js +97 -29
  30. package/dist/core/session/compaction.js.map +1 -1
  31. package/dist/core/session/direct_bash.js.map +1 -1
  32. package/dist/core/session/message_accumulator.js +3 -5
  33. package/dist/core/session/message_accumulator.js.map +1 -1
  34. package/dist/core/session/runner.js +274 -102
  35. package/dist/core/session/runner.js.map +1 -1
  36. package/dist/core/subagents/agent_supervisor.js +378 -0
  37. package/dist/core/subagents/agent_supervisor.js.map +1 -0
  38. package/dist/core/subagents/format.js +101 -0
  39. package/dist/core/subagents/format.js.map +1 -0
  40. package/dist/core/subagents/registry.js +3 -1
  41. package/dist/core/subagents/registry.js.map +1 -1
  42. package/dist/core/subagents/types.js +1 -0
  43. package/dist/core/subagents/types.js.map +1 -1
  44. package/dist/core/tools/activity.js +2 -0
  45. package/dist/core/tools/activity.js.map +1 -0
  46. package/dist/core/tools/bash.js +64 -67
  47. package/dist/core/tools/bash.js.map +1 -1
  48. package/dist/core/tools/catalog.js +49 -25
  49. package/dist/core/tools/catalog.js.map +1 -1
  50. package/dist/core/tools/code_mode.js +65 -58
  51. package/dist/core/tools/code_mode.js.map +1 -1
  52. package/dist/core/tools/edit.js +11 -12
  53. package/dist/core/tools/edit.js.map +1 -1
  54. package/dist/core/tools/interrupt_agent.js +119 -0
  55. package/dist/core/tools/interrupt_agent.js.map +1 -0
  56. package/dist/core/tools/list_agents.js +64 -0
  57. package/dist/core/tools/list_agents.js.map +1 -0
  58. package/dist/core/tools/nook.js +3 -2
  59. package/dist/core/tools/nook.js.map +1 -1
  60. package/dist/core/tools/registry.js +27 -13
  61. package/dist/core/tools/registry.js.map +1 -1
  62. package/dist/core/tools/send_input_to_agent.js +77 -93
  63. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  64. package/dist/core/tools/spawn_agent.js +94 -114
  65. package/dist/core/tools/spawn_agent.js.map +1 -1
  66. package/dist/core/tools/tool_names.js +4 -2
  67. package/dist/core/tools/tool_names.js.map +1 -1
  68. package/dist/core/tools/view_image.js +11 -16
  69. package/dist/core/tools/view_image.js.map +1 -1
  70. package/dist/core/tools/wait_for_agents.js +76 -137
  71. package/dist/core/tools/wait_for_agents.js.map +1 -1
  72. package/dist/core/tools/web.js +3 -3
  73. package/dist/core/tools/web.js.map +1 -1
  74. package/dist/core/tools/write.js +10 -11
  75. package/dist/core/tools/write.js.map +1 -1
  76. package/dist/core/usage/logs.js.map +1 -1
  77. package/dist/core/utils/compact.js +19 -10
  78. package/dist/core/utils/compact.js.map +1 -1
  79. package/dist/core/utils/subagent_utils.js.map +1 -1
  80. package/dist/core/version.js +1 -1
  81. package/dist/diff_tool/app/dist/assets/actionscript-3-Cs6JJXT5.js +1 -0
  82. package/dist/diff_tool/app/dist/assets/ahk-CA9gdOdF.js +1 -0
  83. package/dist/diff_tool/app/dist/assets/ahk2-_6rzW9BS.js +1 -0
  84. package/dist/diff_tool/app/dist/assets/{angular-html-DbgxQryr.js → angular-html-vSIwre92.js} +1 -1
  85. package/dist/diff_tool/app/dist/assets/{angular-ts-Dzjq8SvI.js → angular-ts-B9yWa-IT.js} +1 -1
  86. package/dist/diff_tool/app/dist/assets/apex-KFGFyKwG.js +1 -0
  87. package/dist/diff_tool/app/dist/assets/{apl-6AmEMJr-.js → apl-CBg9ewu1.js} +1 -1
  88. package/dist/diff_tool/app/dist/assets/asciidoc-SCjQUq34.js +1 -0
  89. package/dist/diff_tool/app/dist/assets/{astro-BM8EbfIg.js → astro-BVjxSYjj.js} +1 -1
  90. package/dist/diff_tool/app/dist/assets/{bat-Bo4NYOV-.js → bat-qdxAdBWQ.js} +1 -1
  91. package/dist/diff_tool/app/dist/assets/bird2-CYIUgYqB.js +1 -0
  92. package/dist/diff_tool/app/dist/assets/{blade-DiKMnN3e.js → blade-jvqV5kiv.js} +1 -1
  93. package/dist/diff_tool/app/dist/assets/bsl-_VjlB9mv.js +1 -0
  94. package/dist/diff_tool/app/dist/assets/{c-DMT5X-u9.js → c-DDAfW08c.js} +1 -1
  95. package/dist/diff_tool/app/dist/assets/c3-D0apG41V.js +1 -0
  96. package/dist/diff_tool/app/dist/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  97. package/dist/diff_tool/app/dist/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  98. package/dist/diff_tool/app/dist/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  99. package/dist/diff_tool/app/dist/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  100. package/dist/diff_tool/app/dist/assets/chapel-Qflwfgbt.js +1 -0
  101. package/dist/diff_tool/app/dist/assets/clarity-CtfBBspg.js +1 -0
  102. package/dist/diff_tool/app/dist/assets/{cobol-CACNMc1O.js → cobol-4iJI1LUg.js} +1 -1
  103. package/dist/diff_tool/app/dist/assets/{coffee-D_WUFE0g.js → coffee-C9LbGGO3.js} +1 -1
  104. package/dist/diff_tool/app/dist/assets/coq-DuBRPxYg.js +1 -0
  105. package/dist/diff_tool/app/dist/assets/cpp-B-x6veTx.js +1 -0
  106. package/dist/diff_tool/app/dist/assets/{crystal-wh93mtUe.js → crystal-S06EUmKn.js} +1 -1
  107. package/dist/diff_tool/app/dist/assets/{css-CCfuUqEr.js → css-DA4RYriG.js} +1 -1
  108. package/dist/diff_tool/app/dist/assets/{edge-DP-spcJf.js → edge-7dx6BjGp.js} +1 -1
  109. package/dist/diff_tool/app/dist/assets/{elixir-BXBkaEtJ.js → elixir-DPywG97a.js} +1 -1
  110. package/dist/diff_tool/app/dist/assets/{elm-BXr8OwKP.js → elm-Dgo_WnqC.js} +1 -1
  111. package/dist/diff_tool/app/dist/assets/emacs-lisp-c_oH4hRZ.js +1 -0
  112. package/dist/diff_tool/app/dist/assets/{erb-Cu5Zacs_.js → erb-CVW4PjFl.js} +1 -1
  113. package/dist/diff_tool/app/dist/assets/{gdresource-C0sCabJj.js → gdresource-xMC7jr7x.js} +1 -1
  114. package/dist/diff_tool/app/dist/assets/gdscript-DYvRD3hg.js +1 -0
  115. package/dist/diff_tool/app/dist/assets/{git-rebase-DO8LWld4.js → git-rebase-CtU0gmBJ.js} +1 -1
  116. package/dist/diff_tool/app/dist/assets/{glimmer-js-Bh-OAIDW.js → glimmer-js-twAYiPP2.js} +1 -1
  117. package/dist/diff_tool/app/dist/assets/{glimmer-ts-DI9lHU4q.js → glimmer-ts-BfNoXayN.js} +1 -1
  118. package/dist/diff_tool/app/dist/assets/{glsl--zoY4RCO.js → glsl-D_XrtFF7.js} +1 -1
  119. package/dist/diff_tool/app/dist/assets/{graphql-C8h2T_SC.js → graphql-B_GeapzM.js} +1 -1
  120. package/dist/diff_tool/app/dist/assets/hack-BCaCVoSX.js +1 -0
  121. package/dist/diff_tool/app/dist/assets/{haml-C2BBBsDW.js → haml-z9Mz7I1O.js} +1 -1
  122. package/dist/diff_tool/app/dist/assets/{handlebars-cZMztphK.js → handlebars-D0FVYagc.js} +1 -1
  123. package/dist/diff_tool/app/dist/assets/haxe-C8oCnwJJ.js +1 -0
  124. package/dist/diff_tool/app/dist/assets/{html-BtccomkJ.js → html-BOM4tb7u.js} +1 -1
  125. package/dist/diff_tool/app/dist/assets/{html-derivative-qjeUe52-.js → html-derivative-CsSlhJgr.js} +1 -1
  126. package/dist/diff_tool/app/dist/assets/{http-Dv8OQO33.js → http-Cjy9oaQn.js} +1 -1
  127. package/dist/diff_tool/app/dist/assets/{hurl-B6Fnr2ae.js → hurl-CjLQ7ql5.js} +1 -1
  128. package/dist/diff_tool/app/dist/assets/hxml-Dcm88srW.js +1 -0
  129. package/dist/diff_tool/app/dist/assets/index-QO81yN6b.js +1550 -0
  130. package/dist/diff_tool/app/dist/assets/{java-BuadWMcp.js → java-cn8DiFD8.js} +1 -1
  131. package/dist/diff_tool/app/dist/assets/{javascript-BIKxmHeL.js → javascript-CEnHZaZM.js} +1 -1
  132. package/dist/diff_tool/app/dist/assets/{jinja-Cm_guvgu.js → jinja-DIp6kVk7.js} +1 -1
  133. package/dist/diff_tool/app/dist/assets/{jison-Sst29gJb.js → jison-Dx116ito.js} +1 -1
  134. package/dist/diff_tool/app/dist/assets/{json-Bg6l2vym.js → json-C6B9h0n5.js} +1 -1
  135. package/dist/diff_tool/app/dist/assets/{jsx-BiREAxkr.js → jsx-CDEGT2B2.js} +1 -1
  136. package/dist/diff_tool/app/dist/assets/{julia-DAhrWFzr.js → julia-CsIJA3Km.js} +1 -1
  137. package/dist/diff_tool/app/dist/assets/{just-xBwbf5aT.js → just-DZRYvkQw.js} +1 -1
  138. package/dist/diff_tool/app/dist/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  139. package/dist/diff_tool/app/dist/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  140. package/dist/diff_tool/app/dist/assets/kanagawa-wave-BML5mF2J.js +1 -0
  141. package/dist/diff_tool/app/dist/assets/latex-CeR-RQOI.js +1 -0
  142. package/dist/diff_tool/app/dist/assets/{liquid-BTsCzVvF.js → liquid-Dhf8N4mn.js} +1 -1
  143. package/dist/diff_tool/app/dist/assets/{llvm-Cm23YOpf.js → llvm-DqHOMS-s.js} +1 -1
  144. package/dist/diff_tool/app/dist/assets/{lua-BJt9x0JP.js → lua-zVTVaJzn.js} +1 -1
  145. package/dist/diff_tool/app/dist/assets/luau-C2pBCSgt.js +1 -0
  146. package/dist/diff_tool/app/dist/assets/{marko-CWdJkbvC.js → marko-BGPq5r3o.js} +1 -1
  147. package/dist/diff_tool/app/dist/assets/mdc-D8K78bym.js +1 -0
  148. package/dist/diff_tool/app/dist/assets/mermaid-BxpfTIzt.js +1 -0
  149. package/dist/diff_tool/app/dist/assets/mojo-CFuIV2fl.js +1 -0
  150. package/dist/diff_tool/app/dist/assets/monokai-B_bV9PQ9.js +1 -0
  151. package/dist/diff_tool/app/dist/assets/moonbit-DgjMoLWr.js +1 -0
  152. package/dist/diff_tool/app/dist/assets/move-BYnGhZoM.js +1 -0
  153. package/dist/diff_tool/app/dist/assets/{nginx-BwS0G4IK.js → nginx-Bo-bEa75.js} +1 -1
  154. package/dist/diff_tool/app/dist/assets/{nim-B2VFbcs9.js → nim-Bfy5M54r.js} +1 -1
  155. package/dist/diff_tool/app/dist/assets/nsis-CjNLYCLg.js +1 -0
  156. package/dist/diff_tool/app/dist/assets/nushell-DHYfO66s.js +1 -0
  157. package/dist/diff_tool/app/dist/assets/org-BKetN7sT.js +1 -0
  158. package/dist/diff_tool/app/dist/assets/{perl-BTeqR-l8.js → perl-WiwTOQTV.js} +1 -1
  159. package/dist/diff_tool/app/dist/assets/{php-Crua7nbA.js → php-CM2FzhGV.js} +1 -1
  160. package/dist/diff_tool/app/dist/assets/{powershell-DshXNtvi.js → powershell-CCSX75yM.js} +1 -1
  161. package/dist/diff_tool/app/dist/assets/prisma-DMgNhnYS.js +1 -0
  162. package/dist/diff_tool/app/dist/assets/{pug-CUlgPjMU.js → pug-D2WvUHZ-.js} +1 -1
  163. package/dist/diff_tool/app/dist/assets/{qml-DI0IjNUw.js → qml-DGPbc6TL.js} +1 -1
  164. package/dist/diff_tool/app/dist/assets/r-CCFYJ_KM.js +1 -0
  165. package/dist/diff_tool/app/dist/assets/{razor-DrkKtFm5.js → razor-D1JuQWQz.js} +1 -1
  166. package/dist/diff_tool/app/dist/assets/rbs-C0MpOrj4.js +1 -0
  167. package/dist/diff_tool/app/dist/assets/red-DX1BQOs8.js +1 -0
  168. package/dist/diff_tool/app/dist/assets/{regexp-DRmxJil7.js → regexp-zTiHwMow.js} +1 -1
  169. package/dist/diff_tool/app/dist/assets/rose-pine-aMsaMD1D.js +1 -0
  170. package/dist/diff_tool/app/dist/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  171. package/dist/diff_tool/app/dist/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  172. package/dist/diff_tool/app/dist/assets/{rst-DiRke36z.js → rst-CuUAArfH.js} +1 -1
  173. package/dist/diff_tool/app/dist/assets/{ruby-t7r9jzAg.js → ruby-DznrLCoG.js} +1 -1
  174. package/dist/diff_tool/app/dist/assets/{sas-CR7Z4kg-.js → sas-D2hJmLva.js} +1 -1
  175. package/dist/diff_tool/app/dist/assets/{scala-DKOlJaKm.js → scala-BiFt_7mu.js} +1 -1
  176. package/dist/diff_tool/app/dist/assets/{scss--CnPWaDv.js → scss-Cjb3p_6n.js} +1 -1
  177. package/dist/diff_tool/app/dist/assets/{shellscript-Bz7H5174.js → shellscript-BtwI-tfX.js} +1 -1
  178. package/dist/diff_tool/app/dist/assets/{shellsession-mlKnHJfN.js → shellsession-BYirS1xP.js} +1 -1
  179. package/dist/diff_tool/app/dist/assets/smalltalk-BHpQb5nM.js +1 -0
  180. package/dist/diff_tool/app/dist/assets/smithy-Dgaz7aur.js +1 -0
  181. package/dist/diff_tool/app/dist/assets/solarized-dark-UdsmMDCL.js +1 -0
  182. package/dist/diff_tool/app/dist/assets/solarized-light-C1IUL_tW.js +1 -0
  183. package/dist/diff_tool/app/dist/assets/solidity-Bj7E1mRn.js +1 -0
  184. package/dist/diff_tool/app/dist/assets/{soy-CKu9y9G1.js → soy-D4Ndk7-j.js} +1 -1
  185. package/dist/diff_tool/app/dist/assets/{sql-DcvKi3Jj.js → sql-DbLQ5SJl.js} +1 -1
  186. package/dist/diff_tool/app/dist/assets/{stata-Yo25QZyV.js → stata-BXoNBosJ.js} +1 -1
  187. package/dist/diff_tool/app/dist/assets/surrealql-toyTYnAL.js +1 -0
  188. package/dist/diff_tool/app/dist/assets/{svelte-BIhEVbnP.js → svelte-BEpa7pAW.js} +1 -1
  189. package/dist/diff_tool/app/dist/assets/swift-CyEgAFGc.js +1 -0
  190. package/dist/diff_tool/app/dist/assets/system-verilog-Dh5ihWbf.js +1 -0
  191. package/dist/diff_tool/app/dist/assets/{templ-D6FrV4mZ.js → templ-CZfW_RJI.js} +1 -1
  192. package/dist/diff_tool/app/dist/assets/tex-COemmIIu.js +1 -0
  193. package/dist/diff_tool/app/dist/assets/theming-B5HubD5i.js +1 -0
  194. package/dist/diff_tool/app/dist/assets/theming-BTK0wyKj.js +1 -0
  195. package/dist/diff_tool/app/dist/assets/theming-BTUlzJFw.js +1 -0
  196. package/dist/diff_tool/app/dist/assets/theming-BURFlYfV.js +1 -0
  197. package/dist/diff_tool/app/dist/assets/theming-BVZjihoZ.js +1 -0
  198. package/dist/diff_tool/app/dist/assets/theming-BWSkzMBn.js +1 -0
  199. package/dist/diff_tool/app/dist/assets/theming-BchIqPOb.js +1 -0
  200. package/dist/diff_tool/app/dist/assets/theming-CeLfRn2P.js +1 -0
  201. package/dist/diff_tool/app/dist/assets/theming-DMjwMSwU.js +1 -0
  202. package/dist/diff_tool/app/dist/assets/theming-QWGGdlwd.js +1 -0
  203. package/dist/diff_tool/app/dist/assets/{ts-tags-Kqn1PP6m.js → ts-tags-CMVUY_BA.js} +1 -1
  204. package/dist/diff_tool/app/dist/assets/{tsx-L3TEJWGL.js → tsx-BTvP6uzd.js} +1 -1
  205. package/dist/diff_tool/app/dist/assets/twig-DzP5RjJc.js +1 -0
  206. package/dist/diff_tool/app/dist/assets/{typescript-Dvc5RX4H.js → typescript-CQaGlMoX.js} +1 -1
  207. package/dist/diff_tool/app/dist/assets/{v-DETTlOr0.js → v-DBj4K9d_.js} +1 -1
  208. package/dist/diff_tool/app/dist/assets/{vb-Djn5o6TS.js → vb-DOwzaHZ0.js} +1 -1
  209. package/dist/diff_tool/app/dist/assets/verilog-B2gwz-sJ.js +1 -0
  210. package/dist/diff_tool/app/dist/assets/{vue-X1uI3I2A.js → vue-DaVWTtvb.js} +1 -1
  211. package/dist/diff_tool/app/dist/assets/{vue-html-BMpHEoeQ.js → vue-html-BA_OH0Xt.js} +1 -1
  212. package/dist/diff_tool/app/dist/assets/{vue-vine-DnTGaA4r.js → vue-vine-C_H4XbNR.js} +1 -1
  213. package/dist/diff_tool/app/dist/assets/{xml-QlPQXP0d.js → xml-1JLzpunp.js} +1 -1
  214. package/dist/diff_tool/app/dist/assets/{xsl-JpRU16Li.js → xsl-GtZi0Erj.js} +1 -1
  215. package/dist/diff_tool/app/dist/assets/{yaml-Djukn3_s.js → yaml-LueTtDDo.js} +1 -1
  216. package/dist/diff_tool/app/dist/index.html +1 -1
  217. package/dist/execution/execution_environment.js.map +1 -1
  218. package/dist/execution/tool_backend_execution_environment.js +1 -7
  219. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  220. package/dist/host/client_tool_broker.js +28 -21
  221. package/dist/host/client_tool_broker.js.map +1 -1
  222. package/dist/host/hosted_ephemeral_agent_session.js +109 -167
  223. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  224. package/dist/host/local_session_host.js +340 -248
  225. package/dist/host/local_session_host.js.map +1 -1
  226. package/dist/host/session_host.js.map +1 -1
  227. package/dist/host/session_protocol_handler.js +125 -105
  228. package/dist/host/session_protocol_handler.js.map +1 -1
  229. package/dist/main.js +10 -2
  230. package/dist/main.js.map +1 -1
  231. package/dist/protocol/index.d.ts +1 -1
  232. package/dist/protocol/session_protocol.d.ts +70 -36
  233. package/dist/protocol/session_protocol.js +235 -80
  234. package/dist/protocol/session_protocol.js.map +1 -1
  235. package/dist/sdk/index.d.ts +1 -1
  236. package/dist/sdk/index.js.map +1 -1
  237. package/dist/sdk/session.js +8 -25
  238. package/dist/sdk/session.js.map +1 -1
  239. package/dist/sdk/types.d.ts +4 -9
  240. package/dist/starter/prompts/approval-review-branch.md +7 -0
  241. package/dist/starter/prompts/approval-review-current-changes.md +7 -0
  242. package/dist/starter/prompts/approval-review-last-commit.md +7 -0
  243. package/dist/starter/skills/approval-review/SKILL.md +219 -0
  244. package/dist/store/file_session_store.js +13 -9
  245. package/dist/store/file_session_store.js.map +1 -1
  246. package/dist/store/session_snapshot_migrations.js +152 -0
  247. package/dist/store/session_snapshot_migrations.js.map +1 -0
  248. package/dist/tui/chat_controller/command_hints.js +0 -6
  249. package/dist/tui/chat_controller/command_hints.js.map +1 -1
  250. package/dist/tui/chat_view.js +19 -12
  251. package/dist/tui/chat_view.js.map +1 -1
  252. package/dist/tui/session_chat_app.js +0 -8
  253. package/dist/tui/session_chat_app.js.map +1 -1
  254. package/dist/tui/session_chat_controller.js +122 -178
  255. package/dist/tui/session_chat_controller.js.map +1 -1
  256. package/dist/tui/tool_ui_router.js +12 -226
  257. package/dist/tui/tool_ui_router.js.map +1 -1
  258. package/dist/tui/ui/bash_execution.js +3 -3
  259. package/dist/tui/ui/bash_execution.js.map +1 -1
  260. package/dist/tui/ui/chat_message_model.js +2 -2
  261. package/dist/tui/ui/chat_message_model.js.map +1 -1
  262. package/dist/tui/ui/subagent_panel.js +59 -26
  263. package/dist/tui/ui/subagent_panel.js.map +1 -1
  264. package/dist/tui/ui/tool_ui_model.js +2 -0
  265. package/dist/tui/ui/tool_ui_model.js.map +1 -0
  266. package/dist/tui/ui/tool_ui_registry.js +310 -36
  267. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  268. package/package.json +4 -4
  269. package/dist/core/events/types.js +0 -2
  270. package/dist/core/events/types.js.map +0 -1
  271. package/dist/core/modes/mode_adapter.js +0 -2
  272. package/dist/core/modes/mode_adapter.js.map +0 -1
  273. package/dist/core/runtime/conversation_turn_runtime.js +0 -88
  274. package/dist/core/runtime/conversation_turn_runtime.js.map +0 -1
  275. package/dist/core/session/core_session.js +0 -86
  276. package/dist/core/session/core_session.js.map +0 -1
  277. package/dist/core/session/pruning.js +0 -587
  278. package/dist/core/session/pruning.js.map +0 -1
  279. package/dist/core/session/session_engine.js +0 -1246
  280. package/dist/core/session/session_engine.js.map +0 -1
  281. package/dist/core/subagents/control_plane.js +0 -339
  282. package/dist/core/subagents/control_plane.js.map +0 -1
  283. package/dist/core/subagents/subagent_engine.js +0 -258
  284. package/dist/core/subagents/subagent_engine.js.map +0 -1
  285. package/dist/core/tools/terminate_agent.js +0 -162
  286. package/dist/core/tools/terminate_agent.js.map +0 -1
  287. package/dist/diff_tool/app/dist/assets/actionscript-3--17pq3dv.js +0 -1
  288. package/dist/diff_tool/app/dist/assets/apex-VAyPSnFM.js +0 -1
  289. package/dist/diff_tool/app/dist/assets/asciidoc-DE70LPWp.js +0 -1
  290. package/dist/diff_tool/app/dist/assets/bird2-C6vDhewU.js +0 -1
  291. package/dist/diff_tool/app/dist/assets/bsl-BkkzgIyY.js +0 -1
  292. package/dist/diff_tool/app/dist/assets/c3-BFHwR3_K.js +0 -1
  293. package/dist/diff_tool/app/dist/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
  294. package/dist/diff_tool/app/dist/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
  295. package/dist/diff_tool/app/dist/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
  296. package/dist/diff_tool/app/dist/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
  297. package/dist/diff_tool/app/dist/assets/clarity-SemFz856.js +0 -1
  298. package/dist/diff_tool/app/dist/assets/coq-BrsZFFmf.js +0 -1
  299. package/dist/diff_tool/app/dist/assets/cpp-BcU9r9kv.js +0 -1
  300. package/dist/diff_tool/app/dist/assets/emacs-lisp-B4R74twV.js +0 -1
  301. package/dist/diff_tool/app/dist/assets/gdscript-Cp2uCuqX.js +0 -1
  302. package/dist/diff_tool/app/dist/assets/hack-DAsjGmmw.js +0 -1
  303. package/dist/diff_tool/app/dist/assets/haxe-OTjmBuCE.js +0 -1
  304. package/dist/diff_tool/app/dist/assets/hxml-B0Qn7Nwc.js +0 -1
  305. package/dist/diff_tool/app/dist/assets/index-U7G4V3LV.js +0 -1579
  306. package/dist/diff_tool/app/dist/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
  307. package/dist/diff_tool/app/dist/assets/kanagawa-lotus-BN08jTvb.js +0 -1
  308. package/dist/diff_tool/app/dist/assets/kanagawa-wave-CTweb8Dz.js +0 -1
  309. package/dist/diff_tool/app/dist/assets/latex-Bydg2zYo.js +0 -1
  310. package/dist/diff_tool/app/dist/assets/luau-FMPmPwt6.js +0 -1
  311. package/dist/diff_tool/app/dist/assets/mdc-B6ddHTKx.js +0 -1
  312. package/dist/diff_tool/app/dist/assets/mermaid-Bk4SNUv9.js +0 -1
  313. package/dist/diff_tool/app/dist/assets/mojo-BgCJLMeH.js +0 -1
  314. package/dist/diff_tool/app/dist/assets/monokai-CdkpiU2Y.js +0 -1
  315. package/dist/diff_tool/app/dist/assets/moonbit-CaWjb8XO.js +0 -1
  316. package/dist/diff_tool/app/dist/assets/move-B1IS1UjX.js +0 -1
  317. package/dist/diff_tool/app/dist/assets/nushell-DcLAeLz5.js +0 -1
  318. package/dist/diff_tool/app/dist/assets/pierre-dark-CpLgRqie.js +0 -1
  319. package/dist/diff_tool/app/dist/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +0 -1
  320. package/dist/diff_tool/app/dist/assets/pierre-dark-soft-kZQmAZld.js +0 -1
  321. package/dist/diff_tool/app/dist/assets/pierre-dark-tritanopia-CpjhbsIL.js +0 -1
  322. package/dist/diff_tool/app/dist/assets/pierre-dark-vibrant-CpQYzh95.js +0 -1
  323. package/dist/diff_tool/app/dist/assets/pierre-light-CoaEpmwp.js +0 -1
  324. package/dist/diff_tool/app/dist/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +0 -1
  325. package/dist/diff_tool/app/dist/assets/pierre-light-soft-lWLdNTOI.js +0 -1
  326. package/dist/diff_tool/app/dist/assets/pierre-light-tritanopia-CEbqgOJL.js +0 -1
  327. package/dist/diff_tool/app/dist/assets/pierre-light-vibrant-D80Fkn33.js +0 -1
  328. package/dist/diff_tool/app/dist/assets/prisma-BsRQq5mF.js +0 -1
  329. package/dist/diff_tool/app/dist/assets/r-DRexFFDh.js +0 -1
  330. package/dist/diff_tool/app/dist/assets/red-CJ3rzSJv.js +0 -1
  331. package/dist/diff_tool/app/dist/assets/rose-pine-BthvhNj6.js +0 -1
  332. package/dist/diff_tool/app/dist/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
  333. package/dist/diff_tool/app/dist/assets/rose-pine-moon-hon4tzzS.js +0 -1
  334. package/dist/diff_tool/app/dist/assets/smalltalk-B16xEiuN.js +0 -1
  335. package/dist/diff_tool/app/dist/assets/solarized-dark-DV17i1UV.js +0 -1
  336. package/dist/diff_tool/app/dist/assets/solarized-light-DSh2HLQt.js +0 -1
  337. package/dist/diff_tool/app/dist/assets/solidity-CKzVLygQ.js +0 -1
  338. package/dist/diff_tool/app/dist/assets/surrealql-CUddZ4Qk.js +0 -1
  339. package/dist/diff_tool/app/dist/assets/swift-DonLKvLd.js +0 -1
  340. package/dist/diff_tool/app/dist/assets/system-verilog-DJ5XKQeo.js +0 -1
  341. package/dist/diff_tool/app/dist/assets/tex-BOTYELrL.js +0 -1
  342. package/dist/diff_tool/app/dist/assets/twig-BpzmhnWz.js +0 -1
  343. 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 = 3;
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.terminateSubagent",
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: z.string(),
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 sessionProtocolTerminateSubagentParamsSchema = z
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", "prune", "reload", "rewind"]),
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
- status: z.enum(["running", "succeeded", "failed", "cancelled"]),
837
- modelLabel: z.string().optional(),
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 sessionProtocolTerminateSubagentResultSchema = z
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.terminateSubagent":
1961
- return validateTerminateSubagentParams(params);
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.terminateSubagent":
2002
- return validateResult(method, result, sessionProtocolTerminateSubagentResultSchema);
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 validateTerminateSubagentParams(params) {
2338
- const parsed = sessionProtocolTerminateSubagentParamsSchema.safeParse(params);
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.terminateSubagent params must be an object"
2496
+ ? "session.interruptSubagent params must be an object"
2342
2497
  : hasIssue(parsed.error, ["sessionId"])
2343
- ? "session.terminateSubagent params.sessionId must be a non-empty string"
2498
+ ? "session.interruptSubagent params.sessionId must be a non-empty string"
2344
2499
  : hasIssue(parsed.error, ["subagentId"])
2345
- ? "session.terminateSubagent params.subagentId must be a non-empty string"
2346
- : `session.terminateSubagent params are invalid: ${formatZodError(parsed.error)}`;
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 {