zidane 9.1.1 → 9.1.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.
Files changed (279) hide show
  1. package/dist/{acp-Di9WvMDF.js → acp-Cl4gCZN6.js} +7 -7
  2. package/dist/{acp-Di9WvMDF.js.map → acp-Cl4gCZN6.js.map} +1 -1
  3. package/dist/acp-cli.js +5 -5
  4. package/dist/acp.d.ts +2 -2
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-DJhpTS-B.js → agent-Dh_XZ7fj.js} +74 -19
  7. package/dist/agent-Dh_XZ7fj.js.map +1 -0
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +1 -1
  10. package/dist/{auth-store-port-DFgf22oo.js → auth-store-port-DBl2JUC6.js} +2 -2
  11. package/dist/{auth-store-port-DFgf22oo.js.map → auth-store-port-DBl2JUC6.js.map} +1 -1
  12. package/dist/{auto-update-restart-BFB7Ek87.js → auto-update-restart-CF_kjcJd.js} +277 -41
  13. package/dist/auto-update-restart-CF_kjcJd.js.map +1 -0
  14. package/dist/{browser-BcoCCB_n.js → browser-BkdeKnxO.js} +56 -2
  15. package/dist/browser-BkdeKnxO.js.map +1 -0
  16. package/dist/{browser-entry-ypi8CyE-.d.ts → browser-entry-BCwruqNa.d.ts} +10 -10
  17. package/dist/{browser-entry-ypi8CyE-.d.ts.map → browser-entry-BCwruqNa.d.ts.map} +1 -1
  18. package/dist/channels.d.ts +5 -5
  19. package/dist/chat/browser.d.ts +4 -4
  20. package/dist/chat/browser.js +6 -6
  21. package/dist/chat/pure.d.ts +5 -5
  22. package/dist/chat/pure.js +8 -8
  23. package/dist/chat.d.ts +5 -5
  24. package/dist/chat.js +55 -55
  25. package/dist/chat.js.map +1 -1
  26. package/dist/{cli-shared-CabruH8Z.js → cli-shared-DIV9c5Nr.js} +4 -4
  27. package/dist/{cli-shared-CabruH8Z.js.map → cli-shared-DIV9c5Nr.js.map} +1 -1
  28. package/dist/cli-style-DBEm6CyT.js +105 -0
  29. package/dist/cli-style-DBEm6CyT.js.map +1 -0
  30. package/dist/{client-core-CIixwznM.d.ts → client-core-C_4m_oL6.d.ts} +4 -4
  31. package/dist/{client-core-CIixwznM.d.ts.map → client-core-C_4m_oL6.d.ts.map} +1 -1
  32. package/dist/{client-CCaIXWue.d.ts → client-ygTASGis.d.ts} +2 -2
  33. package/dist/{client-CCaIXWue.d.ts.map → client-ygTASGis.d.ts.map} +1 -1
  34. package/dist/codemode-worker.js +8 -5
  35. package/dist/codemode-worker.js.map +1 -1
  36. package/dist/codemode.d.ts +16 -0
  37. package/dist/codemode.d.ts.map +1 -1
  38. package/dist/codemode.js +2 -2
  39. package/dist/{connection-loop-QmWL-fJf.d.ts → connection-loop-D_pRONCr.d.ts} +4 -4
  40. package/dist/{connection-loop-QmWL-fJf.d.ts.map → connection-loop-D_pRONCr.d.ts.map} +1 -1
  41. package/dist/contexts/daytona.d.ts +3 -3
  42. package/dist/contexts/docker.d.ts +1 -1
  43. package/dist/contexts/e2b.d.ts +2 -2
  44. package/dist/contexts/sandbox.d.ts +1 -1
  45. package/dist/{contexts-C72b0mMa.js → contexts-DLZTSRHU.js} +17 -106
  46. package/dist/contexts-DLZTSRHU.js.map +1 -0
  47. package/dist/contexts.d.ts +4 -4
  48. package/dist/contexts.js +2 -2
  49. package/dist/{credentials-wwETW8rI.js → credentials-D71duF64.js} +2 -2
  50. package/dist/{credentials-wwETW8rI.js.map → credentials-D71duF64.js.map} +1 -1
  51. package/dist/{cwd-picker-CcekODCt.js → cwd-picker-BsHA6HKv.js} +4 -4
  52. package/dist/{cwd-picker-CcekODCt.js.map → cwd-picker-BsHA6HKv.js.map} +1 -1
  53. package/dist/daemon-cli.js +4 -3
  54. package/dist/daemon-cli.js.map +1 -1
  55. package/dist/{decisions-CXmK0nz9.js → decisions-hsw5XS2g.js} +3 -1
  56. package/dist/decisions-hsw5XS2g.js.map +1 -0
  57. package/dist/{discovery-DycXFxdA.js → discovery-DD4wPWKS.js} +4 -4
  58. package/dist/{discovery-DycXFxdA.js.map → discovery-DD4wPWKS.js.map} +1 -1
  59. package/dist/durable/sqlite.d.ts +2 -2
  60. package/dist/durable.d.ts +1 -1
  61. package/dist/{engine-VQ86XGdG.js → engine-BDmtgr2O.js} +6 -6
  62. package/dist/{engine-VQ86XGdG.js.map → engine-BDmtgr2O.js.map} +1 -1
  63. package/dist/{eval-Bod0I1W_.js → eval-CfGUDAkN.js} +3 -3
  64. package/dist/{eval-Bod0I1W_.js.map → eval-CfGUDAkN.js.map} +1 -1
  65. package/dist/eval.d.ts +1 -1
  66. package/dist/eval.js +1 -1
  67. package/dist/{executor-C7RQrkEq.js → executor-EWOhLyd9.js} +4 -4
  68. package/dist/{executor-C7RQrkEq.js.map → executor-EWOhLyd9.js.map} +1 -1
  69. package/dist/{extension-mark-BqKdEZwF.js → extension-mark-_rhkDWL5.js} +9 -6
  70. package/dist/extension-mark-_rhkDWL5.js.map +1 -0
  71. package/dist/extensions/testing.d.ts +1 -1
  72. package/dist/extensions/testing.js +2 -2
  73. package/dist/{extensions-BCx4QuGB.js → extensions-DklXPjiq.js} +8 -8
  74. package/dist/{extensions-BCx4QuGB.js.map → extensions-DklXPjiq.js.map} +1 -1
  75. package/dist/{extensions-client-D8tEAcMw.d.ts → extensions-client-D4Q2XRKV.d.ts} +31 -5
  76. package/dist/extensions-client-D4Q2XRKV.d.ts.map +1 -0
  77. package/dist/extensions.d.ts +1 -1
  78. package/dist/extensions.js +6 -6
  79. package/dist/{fold-rules-DvLK8pbf.d.ts → fold-rules-1DpDwG9h.d.ts} +2 -2
  80. package/dist/{fold-rules-DvLK8pbf.d.ts.map → fold-rules-1DpDwG9h.d.ts.map} +1 -1
  81. package/dist/{google-Crva32sk.js → google-BtMW9KzL.js} +2 -2
  82. package/dist/{google-Crva32sk.js.map → google-BtMW9KzL.js.map} +1 -1
  83. package/dist/{headless-CCm-jLLT.js → headless-CQm19BL0.js} +4 -4
  84. package/dist/{headless-CCm-jLLT.js.map → headless-CQm19BL0.js.map} +1 -1
  85. package/dist/headless.d.ts +1 -1
  86. package/dist/headless.js +1 -1
  87. package/dist/history-worker.js +1 -1
  88. package/dist/{host-BHMs9jsN.js → host-DEoEzQal.js} +13 -4
  89. package/dist/host-DEoEzQal.js.map +1 -0
  90. package/dist/{host-scoped-settings-CrbcqOkP.js → host-scoped-settings-WBYaCork.js} +2 -2
  91. package/dist/{host-scoped-settings-CrbcqOkP.js.map → host-scoped-settings-WBYaCork.js.map} +1 -1
  92. package/dist/{host-signals-Jsjd_-4g.js → host-signals-91zyko_i.js} +5 -5
  93. package/dist/{host-signals-Jsjd_-4g.js.map → host-signals-91zyko_i.js.map} +1 -1
  94. package/dist/{host-wO_6GW0y.js → host-uP3t08w8.js} +276 -103
  95. package/dist/host-uP3t08w8.js.map +1 -0
  96. package/dist/{host-version-CNAr9pov.js → host-version-_RHlAB29.js} +2 -2
  97. package/dist/{host-version-CNAr9pov.js.map → host-version-_RHlAB29.js.map} +1 -1
  98. package/dist/{index-C6nnKu32.d.ts → index-B0PLo9jn.d.ts} +4 -4
  99. package/dist/{index-C6nnKu32.d.ts.map → index-B0PLo9jn.d.ts.map} +1 -1
  100. package/dist/{index-Djnc8Peh.d.ts → index-De4x-s76.d.ts} +14 -14
  101. package/dist/{index-Djnc8Peh.d.ts.map → index-De4x-s76.d.ts.map} +1 -1
  102. package/dist/{index-CGbOWa7y.d.ts → index-WlE93Q6d.d.ts} +411 -3
  103. package/dist/index-WlE93Q6d.d.ts.map +1 -0
  104. package/dist/{index-CCf_WeTQ.d.ts → index-f-XWIoYo.d.ts} +2 -2
  105. package/dist/{index-CCf_WeTQ.d.ts.map → index-f-XWIoYo.d.ts.map} +1 -1
  106. package/dist/index.d.ts +5 -5
  107. package/dist/index.js +17 -17
  108. package/dist/ipc/browser-types.d.ts +304 -7
  109. package/dist/ipc/browser-types.d.ts.map +1 -1
  110. package/dist/ipc/browser.d.ts +4 -4
  111. package/dist/ipc/browser.js +2 -2
  112. package/dist/ipc/remote.d.ts +6 -6
  113. package/dist/ipc/remote.js +3 -3
  114. package/dist/{ipc-BzWhIybr.js → ipc-CatnsVEd.js} +4 -4
  115. package/dist/{ipc-BzWhIybr.js.map → ipc-CatnsVEd.js.map} +1 -1
  116. package/dist/ipc.d.ts +10 -10
  117. package/dist/ipc.js +8 -8
  118. package/dist/{json-Dj-YATkZ.js → json-BjClr43H.js} +2 -20
  119. package/dist/json-BjClr43H.js.map +1 -0
  120. package/dist/{links-CJG_rFvf.js → links-a8C9eby4.js} +9 -9
  121. package/dist/{links-CJG_rFvf.js.map → links-a8C9eby4.js.map} +1 -1
  122. package/dist/{loaded-entry-DTURJo_R.js → loaded-entry-D6jzt5HQ.js} +2 -2
  123. package/dist/{loaded-entry-DTURJo_R.js.map → loaded-entry-D6jzt5HQ.js.map} +1 -1
  124. package/dist/mcp.d.ts +1 -1
  125. package/dist/{media-type-BtA0cbfI.d.ts → media-type-ZSmAGHvg.d.ts} +188 -7
  126. package/dist/media-type-ZSmAGHvg.d.ts.map +1 -0
  127. package/dist/{memory-DuVGrzbl.js → memory-CJy52DNi.js} +132 -31
  128. package/dist/memory-CJy52DNi.js.map +1 -0
  129. package/dist/model-test-CAtJ76kM.js.map +1 -1
  130. package/dist/{move-session-kylExJ5H.js → move-session-D7ILECs-.js} +4 -4
  131. package/dist/{move-session-kylExJ5H.js.map → move-session-D7ILECs-.js.map} +1 -1
  132. package/dist/{nested-call-record-DlzPeTB7.js → nested-call-record-OayszZBQ.js} +4 -3
  133. package/dist/nested-call-record-OayszZBQ.js.map +1 -0
  134. package/dist/output/stream-json.d.ts +1 -1
  135. package/dist/output/terminal.d.ts +1 -1
  136. package/dist/{path-display-COVV71Yu.js → path-display-CAWz-sMq.js} +3 -3
  137. package/dist/{path-display-COVV71Yu.js.map → path-display-CAWz-sMq.js.map} +1 -1
  138. package/dist/plugins.d.ts +1 -1
  139. package/dist/{prelude-CVKoUzV8.js → prelude-BwiSR1uA.js} +16 -5
  140. package/dist/prelude-BwiSR1uA.js.map +1 -0
  141. package/dist/{presets-CBt6rFfS.js → presets-CMY43nUP.js} +3 -3
  142. package/dist/{presets-CBt6rFfS.js.map → presets-CMY43nUP.js.map} +1 -1
  143. package/dist/presets.d.ts +1 -1
  144. package/dist/presets.js +1 -1
  145. package/dist/{protocol-CEVqBO-q.d.ts → protocol-C2lqKuMd.d.ts} +50 -7
  146. package/dist/protocol-C2lqKuMd.d.ts.map +1 -0
  147. package/dist/protocol-DOGyHgLQ.js.map +1 -1
  148. package/dist/protocol-NSllElLw.js.map +1 -1
  149. package/dist/providers/anthropic.d.ts +1 -1
  150. package/dist/providers/arcee.d.ts +1 -1
  151. package/dist/providers/baseten.d.ts +1 -1
  152. package/dist/providers/cerebras.d.ts +1 -1
  153. package/dist/providers/google.d.ts +1 -1
  154. package/dist/providers/google.js +1 -1
  155. package/dist/providers/local.d.ts +1 -1
  156. package/dist/providers/neuralwatt.d.ts +1 -1
  157. package/dist/providers/openai-compat.d.ts +1 -1
  158. package/dist/providers/openai.d.ts +1 -1
  159. package/dist/providers/openrouter.d.ts +1 -1
  160. package/dist/providers/xai.d.ts +1 -1
  161. package/dist/{providers-Z0TaBp1O.js → providers-zVRxiJDv.js} +5 -5
  162. package/dist/providers-zVRxiJDv.js.map +1 -0
  163. package/dist/providers.d.ts +1 -1
  164. package/dist/providers.js +1 -1
  165. package/dist/{readonly-db-D7Z-k0pQ.js → readonly-db-DrbT8tX6.js} +2 -2
  166. package/dist/{readonly-db-D7Z-k0pQ.js.map → readonly-db-DrbT8tX6.js.map} +1 -1
  167. package/dist/{registry-BKjeBnoy.js → registry-CBoYDIND.js} +2 -2
  168. package/dist/{registry-BKjeBnoy.js.map → registry-CBoYDIND.js.map} +1 -1
  169. package/dist/{registry-B6Ww76iW.js → registry-CQOU5jvF.js} +2 -2
  170. package/dist/{registry-B6Ww76iW.js.map → registry-CQOU5jvF.js.map} +1 -1
  171. package/dist/{registry-B9INJwJR.js → registry-YUUqbYGr.js} +324 -39
  172. package/dist/registry-YUUqbYGr.js.map +1 -0
  173. package/dist/{remote-hosts-BMWoHCWO.js → remote-hosts-CT8Q95dR.js} +4 -4
  174. package/dist/{remote-hosts-BMWoHCWO.js.map → remote-hosts-CT8Q95dR.js.map} +1 -1
  175. package/dist/{repo-url-D4Dr8NfZ.js → repo-url-DLjjuVk_.js} +169 -2
  176. package/dist/repo-url-DLjjuVk_.js.map +1 -0
  177. package/dist/restate.d.ts +2 -2
  178. package/dist/{sandbox-BwiPGKF7.d.ts → sandbox-B4OW6oNx.d.ts} +2 -2
  179. package/dist/{sandbox-BwiPGKF7.d.ts.map → sandbox-B4OW6oNx.d.ts.map} +1 -1
  180. package/dist/script-progress-CrZ507Qq.js +900 -0
  181. package/dist/script-progress-CrZ507Qq.js.map +1 -0
  182. package/dist/session/sqlite.d.ts +1 -1
  183. package/dist/session.d.ts +1 -1
  184. package/dist/{setting-BQBSyUq0.js → setting-_jh2OtiL.js} +6 -6
  185. package/dist/{setting-BQBSyUq0.js.map → setting-_jh2OtiL.js.map} +1 -1
  186. package/dist/{settings-catalog-4IU2i_jG.js → settings-catalog-DEZlXP51.js} +14 -2
  187. package/dist/settings-catalog-DEZlXP51.js.map +1 -0
  188. package/dist/{settings-keys-iI_Y-7MC.js → settings-keys-BT0_oKjO.js} +3 -3
  189. package/dist/{settings-keys-iI_Y-7MC.js.map → settings-keys-BT0_oKjO.js.map} +1 -1
  190. package/dist/{skills-CFXRItJ6.js → skills-CEbosUlM.js} +2 -2
  191. package/dist/{skills-CFXRItJ6.js.map → skills-CEbosUlM.js.map} +1 -1
  192. package/dist/skills.d.ts +1 -1
  193. package/dist/skills.js +1 -1
  194. package/dist/{source-Bl1Z501r.js → source-3ZnEPOSa.js} +3 -2
  195. package/dist/source-3ZnEPOSa.js.map +1 -0
  196. package/dist/{sqlite-runtime-BZ2L4RaG.d.ts → sqlite-runtime-CS_LBaAN.d.ts} +2 -2
  197. package/dist/sqlite-runtime-CS_LBaAN.d.ts.map +1 -0
  198. package/dist/{src-BY_ND2xn.js → src-BmTXDta8.js} +2 -2
  199. package/dist/{src-BY_ND2xn.js.map → src-BmTXDta8.js.map} +1 -1
  200. package/dist/{store-C6gI7FfZ.js → store-ByCDaKgJ.js} +14 -3
  201. package/dist/store-ByCDaKgJ.js.map +1 -0
  202. package/dist/{system-freeze-m5o1sGIM.js → system-freeze-DxJ-lRhu.js} +3 -3
  203. package/dist/{system-freeze-m5o1sGIM.js.map → system-freeze-DxJ-lRhu.js.map} +1 -1
  204. package/dist/{todo-edits-CbukbjyV.js → todo-edits-Dyj32ds6.js} +4 -3
  205. package/dist/todo-edits-Dyj32ds6.js.map +1 -0
  206. package/dist/tools/fetch-url.d.ts +1 -1
  207. package/dist/tools/web-search.d.ts +1 -1
  208. package/dist/{tools-CVTGhggj.js → tools-BsrGQ8K4.js} +2 -2
  209. package/dist/{tools-CVTGhggj.js.map → tools-BsrGQ8K4.js.map} +1 -1
  210. package/dist/tools.d.ts +1 -1
  211. package/dist/tools.js +3 -3
  212. package/dist/{transcript-anchors-CiSi_UBn.js → transcript-anchors-DMjvyUjk.js} +3 -3
  213. package/dist/{transcript-anchors-CiSi_UBn.js.map → transcript-anchors-DMjvyUjk.js.map} +1 -1
  214. package/dist/{transcript-reconcile-jbSBjLq2.js → transcript-reconcile-DpQO85wl.js} +3 -3
  215. package/dist/{transcript-reconcile-jbSBjLq2.js.map → transcript-reconcile-DpQO85wl.js.map} +1 -1
  216. package/dist/tui.d.ts +9 -9
  217. package/dist/tui.d.ts.map +1 -1
  218. package/dist/tui.js +289 -38
  219. package/dist/tui.js.map +1 -1
  220. package/dist/{types-bDQagoiL.d.ts → types-2HrgolQz.d.ts} +20 -8
  221. package/dist/types-2HrgolQz.d.ts.map +1 -0
  222. package/dist/types-4q1bFG53.js +122 -0
  223. package/dist/types-4q1bFG53.js.map +1 -0
  224. package/dist/{types-DnRd9_cA.d.ts → types-SXqk6hLD.d.ts} +3 -3
  225. package/dist/{types-DnRd9_cA.d.ts.map → types-SXqk6hLD.d.ts.map} +1 -1
  226. package/dist/types-myxheQkw.js.map +1 -1
  227. package/dist/types.d.ts +3 -3
  228. package/dist/{usage-summary-BfcXjiSM.js → usage-summary-BM7B3JdI.js} +2 -2
  229. package/dist/{usage-summary-BfcXjiSM.js.map → usage-summary-BM7B3JdI.js.map} +1 -1
  230. package/dist/{version-DqqqvHDP.js → version-DwQI12WA.js} +2 -2
  231. package/dist/{version-DqqqvHDP.js.map → version-DwQI12WA.js.map} +1 -1
  232. package/dist/{wait-task-BX4NcOOm.js → wait-task-BiI5UaZQ.js} +13 -3
  233. package/dist/wait-task-BiI5UaZQ.js.map +1 -0
  234. package/dist/{wire-CLm2rMK0.js → wire-Dxwxb7QQ.js} +2 -2
  235. package/dist/{wire-CLm2rMK0.js.map → wire-Dxwxb7QQ.js.map} +1 -1
  236. package/dist/{write-file-0E6TUJ9A.js → write-file-Dquu7MzB.js} +5 -3
  237. package/dist/write-file-Dquu7MzB.js.map +1 -0
  238. package/dist/{ws-DfGGYQ4W.js → ws-CA3o2nie.js} +4 -4
  239. package/dist/{ws-DfGGYQ4W.js.map → ws-CA3o2nie.js.map} +1 -1
  240. package/dist/{ws-client-CFMbhsNq.js → ws-client-C0iPAAzc.js} +2 -2
  241. package/dist/{ws-client-CFMbhsNq.js.map → ws-client-C0iPAAzc.js.map} +1 -1
  242. package/docs/CHAT.md +55 -0
  243. package/docs/CODEMODE.md +37 -0
  244. package/docs/EXTENSIONS.md +8 -6
  245. package/docs/RELEASE-NOTES-NEXT.md +48 -1
  246. package/docs/RELEASE.md +9 -1
  247. package/package.json +2 -3
  248. package/dist/agent-DJhpTS-B.js.map +0 -1
  249. package/dist/auto-update-restart-BFB7Ek87.js.map +0 -1
  250. package/dist/browser-BcoCCB_n.js.map +0 -1
  251. package/dist/contexts-C72b0mMa.js.map +0 -1
  252. package/dist/decisions-CXmK0nz9.js.map +0 -1
  253. package/dist/extension-mark-BqKdEZwF.js.map +0 -1
  254. package/dist/extensions-client-D8tEAcMw.d.ts.map +0 -1
  255. package/dist/host-BHMs9jsN.js.map +0 -1
  256. package/dist/host-wO_6GW0y.js.map +0 -1
  257. package/dist/index-CGbOWa7y.d.ts.map +0 -1
  258. package/dist/json-Dj-YATkZ.js.map +0 -1
  259. package/dist/media-type-BtA0cbfI.d.ts.map +0 -1
  260. package/dist/memory-DuVGrzbl.js.map +0 -1
  261. package/dist/nested-call-events-BYk8XvGX.js +0 -182
  262. package/dist/nested-call-events-BYk8XvGX.js.map +0 -1
  263. package/dist/nested-call-record-DlzPeTB7.js.map +0 -1
  264. package/dist/prelude-CVKoUzV8.js.map +0 -1
  265. package/dist/protocol-CEVqBO-q.d.ts.map +0 -1
  266. package/dist/providers-Z0TaBp1O.js.map +0 -1
  267. package/dist/registry-B9INJwJR.js.map +0 -1
  268. package/dist/repo-url-D4Dr8NfZ.js.map +0 -1
  269. package/dist/settings-catalog-4IU2i_jG.js.map +0 -1
  270. package/dist/source-Bl1Z501r.js.map +0 -1
  271. package/dist/sqlite-runtime-BZ2L4RaG.d.ts.map +0 -1
  272. package/dist/store-C6gI7FfZ.js.map +0 -1
  273. package/dist/todo-edits-CbukbjyV.js.map +0 -1
  274. package/dist/types-DTMEhKJO.js +0 -14
  275. package/dist/types-DTMEhKJO.js.map +0 -1
  276. package/dist/types-bDQagoiL.d.ts.map +0 -1
  277. package/dist/wait-task-BX4NcOOm.js.map +0 -1
  278. package/dist/write-file-0E6TUJ9A.js.map +0 -1
  279. package/scripts/eval.ts +0 -179
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prelude-BwiSR1uA.js","names":[],"sources":["../src/codemode/runtime/prelude.ts"],"sourcesContent":["// Ported from @earendil-works/pi-codemode (MIT, Earendil Works). Owned here so\n// it can diverge; keep behavior changes covered by test/codemode.\n/** Maximum size, in characters of JSON, of one value a script writes with `store()`. */\nexport const MAX_STORE_VALUE_CHARS = 256 * 1024\n/** Maximum total size, in characters of JSON, of all values a script writes with `store()` in one execution. */\nexport const MAX_STORE_TOTAL_CHARS = 1024 * 1024\n/**\n * Output one script may produce with `text()`, `image()`, and `console.*`: characters of text and\n * base64 image data, and items. The host keeps all output until the script ends, so without a\n * limit a script that prints in a loop grows the host's memory until it crashes. The item limit\n * covers loops that print empty strings.\n */\nexport const MAX_OUTPUT_CHARS = 16 * 1024 * 1024\n/** Maximum number of output items one script may produce. */\nexport const MAX_OUTPUT_ITEMS = 100_000\n\nconst IMAGE_HELPER_EXPECTS\n = 'image expects a non-empty image URL string, an object with image_url, a raw MCP image block, or a tool result holding images'\n\n/**\n * JavaScript evaluated inside the QuickJS VM before the script runs.\n *\n * The VM is its own wasm instance, so nothing here guards a realm boundary.\n * The prelude keeps the host bridge in a closure so the script cannot call it\n * directly, and builds `tools`, `ALL_TOOLS`, the output helpers (`text`, `image`,\n * `exit`, `console`), and globals on top of it. Tool arguments and results cross\n * as JSON strings and are parsed on this side.\n *\n * Output helpers: `text(value)` appends a text item (a tool result prints as the text a direct\n * call returns and attaches the images it holds, other non-strings are JSON-stringified), `image(urlOrItem)` appends an image from a base64 `data:` URL, an\n * `{ image_url }` object, or an MCP `ImageContent` block, and `exit()` ends the script\n * successfully. `console.*` appends text items marked as console output.\n *\n * `store(key, value)` and `load(key)` are synchronous: they work on a snapshot of\n * JSON text passed in as `storeJson`, and the keys the script wrote are reported\n * with a successful \"done\".\n *\n * Evaluates to a function `(bridge, toolsJson, globalsJson, storeJson, hintsJson, shortcutsJson, trackLines) => { settle, run, stalled }`.\n * `toolsJson` lists `{ name, jsName, description, stringArg? }`: `tools[jsName]` and `tools[name]` call the\n * tool, a bare string argument fills `stringArg`, and `ALL_TOOLS` lists `{ name: jsName, description }`.\n * `shortcutsJson` maps global function names to tool names (`{ sh: \"shell\" }`).\n * `settle(id, ok, payload, text)` resolves a call; `text`, when given, is what printing the value shows.\n * `stalled()` reports a script that has not finished while no host call is pending: with no timers\n * or I/O in the VM, nothing can ever resume it.\n * `globalsJson` lists `{ name, spread }`; `a.b` names are grouped into a frozen `a` object.\n * `trackLines`: each call also reports the script line that made it (the innermost `codemode.js`\n * frame of its stack), as the fifth bridge argument.\n * `bridge(kind, a, b, c, d)` with kind \"call\" or \"global\" (id, name, argsJson, line),\n * \"output\" (\"text\" or \"console\", text) or (\"image\", data, mimeType), or \"done\" (ok, valueJsonOrErrorJson, writesJson).\n *\n * Calls get ids from one counter shared by tools and globals, in issue order: the host exposes\n * them as `CodemodeToolContext.seq`.\n *\n * Before anything else the prelude freezes the built-ins and makes the built-in globals read-only.\n * The prelude shares them with the script, so a script that patched one (for example\n * `Array.prototype.toJSON`) could otherwise corrupt what the prelude reports to the host.\n */\nexport const PRELUDE_SOURCE: string = `(function (bridge, toolsJson, globalsJson, storeJson, hintsJson, shortcutsJson, trackLines) {\n \"use strict\";\n\n // Freeze every object reachable from the built-in globals, plus the intrinsics that are only\n // reachable from instances (iterator and generator prototypes, %TypedArray%).\n //\n // Freezing alone breaks ordinary code through the \"override mistake\": a data property that is\n // read-only on a prototype cannot be assigned on an instance either, so\n // this.name = \"MyError\" in an Error subclass would throw. Commonly overridden properties\n // become accessors whose setter defines an own property on the instance instead.\n (function lockdown() {\n const OVERRIDABLE = new Set([\"constructor\", \"name\", \"message\", \"toString\", \"toLocaleString\", \"valueOf\", \"toJSON\"]);\n const seen = new Set([globalThis]);\n const queue = [];\n const add = (value) => {\n if ((typeof value === \"object\" && value !== null) || typeof value === \"function\") {\n if (!seen.has(value)) {\n seen.add(value);\n queue.push(value);\n }\n }\n };\n\n // Accessors from an object literal have no own prototype object, unlike function expressions,\n // whose prototype.constructor would be converted again without end.\n function allowOverride(object, key, value, enumerable) {\n const { get, set } = Object.getOwnPropertyDescriptor(\n {\n get accessor() {\n return value;\n },\n set accessor(next) {\n if (this === object) {\n throw new TypeError(\"Cannot assign to read only property '\" + String(key) + \"' of a built-in\");\n }\n if ((typeof this !== \"object\" || this === null) && typeof this !== \"function\") return;\n Object.defineProperty(this, key, { value: next, writable: true, enumerable: true, configurable: true });\n },\n },\n \"accessor\",\n );\n Object.defineProperty(object, key, { get, set, enumerable, configurable: false });\n add(get);\n add(set);\n }\n\n for (const key of Reflect.ownKeys(globalThis)) {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, key);\n add(descriptor.value);\n add(descriptor.get);\n add(descriptor.set);\n if (\"value\" in descriptor && descriptor.configurable) {\n Object.defineProperty(globalThis, key, { writable: false, configurable: false });\n }\n }\n add(Object.getPrototypeOf(function* () {}));\n add(Object.getPrototypeOf(async function () {}));\n add(Object.getPrototypeOf(async function* () {}));\n add(Object.getPrototypeOf(Int8Array));\n add(Object.getPrototypeOf([][Symbol.iterator]()));\n add(Object.getPrototypeOf(new Map()[Symbol.iterator]()));\n add(Object.getPrototypeOf(new Set()[Symbol.iterator]()));\n add(Object.getPrototypeOf(\"\"[Symbol.iterator]()));\n add(Object.getPrototypeOf(/a/[Symbol.matchAll](\"\")));\n if (typeof Iterator === \"function\") {\n if (typeof Iterator.prototype.map === \"function\") add(Object.getPrototypeOf([].values().map((x) => x)));\n if (typeof Iterator.from === \"function\") add(Object.getPrototypeOf(Iterator.from({ next() {} })));\n }\n\n while (queue.length > 0) {\n const object = queue.pop();\n add(Object.getPrototypeOf(object));\n const descriptors = Object.getOwnPropertyDescriptors(object);\n for (const key of Reflect.ownKeys(descriptors)) {\n const descriptor = descriptors[key];\n if (\"value\" in descriptor) {\n add(descriptor.value);\n if (\n descriptor.writable &&\n descriptor.configurable &&\n (object === Object.prototype || OVERRIDABLE.has(key))\n ) {\n allowOverride(object, key, descriptor.value, descriptor.enumerable);\n }\n } else {\n add(descriptor.get);\n add(descriptor.set);\n }\n }\n Object.freeze(object);\n }\n })();\n const stringify = JSON.stringify;\n const parse = JSON.parse;\n const defineProperty = Object.defineProperty;\n const TO_PRIMITIVE = Symbol.toPrimitive;\n const promiseThen = Promise.prototype.then;\n const ErrorCtor = Error;\n const TypeErrorCtor = TypeError;\n const RangeErrorCtor = RangeError;\n const pending = new Map();\n // What a tool result prints as (the text a direct call returns), keyed by the value the script got.\n const printedText = new WeakMap();\n // Image blocks already attached, so printing a result twice (text(r) then return r) sends each once.\n const emittedImages = new WeakSet();\n let nextId = 1;\n let finished = false;\n // Thrown by exit() to unwind the script after it already reported success.\n const EXIT = Object.freeze({});\n\n function done(ok, payload, writes) {\n if (finished) return;\n finished = true;\n bridge(\"done\", ok, payload, writes);\n }\n\n function serialize(value) {\n return value === undefined ? undefined : stringify(value);\n }\n\n // QuickJS stacks list frames only. Prefix \"Name: message\" like V8 so the\n // text reads the same as a Node error, and drop this prelude's frames.\n function errorText(error) {\n const head = error.message ? error.name + \": \" + error.message : String(error.name);\n const frames =\n typeof error.stack === \"string\"\n ? error.stack.split(\"\\\\n\").filter((line) => line.trim() && !line.includes(\"codemode-prelude.js\"))\n : [];\n return [head, ...frames].join(\"\\\\n\");\n }\n\n // The images a printed tool result holds (MCP image blocks in its value), an array of results' in order.\n function printedImages(value) {\n if (value === null || typeof value !== \"object\" || !Array.isArray(value)) return [];\n if (printedText.has(value)) {\n return value.filter(\n (item) => item !== null && typeof item === \"object\" && item.type === \"image\" && typeof item.data === \"string\",\n );\n }\n return value.flatMap((item) => (item !== null && typeof item === \"object\" && printedText.has(item) ? printedImages(item) : []));\n }\n\n function outputImages(value) {\n for (const block of printedImages(value)) {\n if (emittedImages.has(block)) continue;\n emittedImages.add(block);\n output(\"image\", block.data, block.mimeType);\n }\n }\n\n // A tool result prints as its text, an array holding tool results (and strings) as sections.\n function printable(value) {\n if (value === null || typeof value !== \"object\") return undefined;\n if (printedText.has(value)) return printedText.get(value);\n if (!Array.isArray(value)) return undefined;\n const parts = [];\n let results = 0;\n for (const item of value) {\n if (typeof item === \"string\") {\n parts.push(item);\n } else if (item !== null && typeof item === \"object\" && printedText.has(item)) {\n parts.push(printedText.get(item));\n results++;\n } else {\n return undefined;\n }\n }\n return results > 0 ? parts.join(\"\\\\n\\\\n\") : undefined;\n }\n\n function format(value) {\n if (typeof value === \"string\") return value;\n if (value instanceof ErrorCtor) return errorText(value);\n const printed = printable(value);\n if (printed !== undefined) return printed;\n try {\n const json = stringify(value);\n return json === undefined ? String(value) : json;\n } catch {\n return String(value);\n }\n }\n\n // The host requires string fields. A script can set an error's name or message to anything, so\n // they are coerced, and a value whose coercion throws gets a placeholder.\n function describeError(error) {\n try {\n if (error instanceof ErrorCtor) {\n return stringify({ name: String(error.name), message: String(error.message), stack: errorText(error) });\n }\n return stringify({ message: String(format(error)) });\n } catch {\n return stringify({ message: \"The script threw a value that cannot be described\" });\n }\n }\n\n // The script line that made the current call: the innermost frame of the script itself\n // (prelude frames come first, a helper the script wrote is its own frame).\n const SCRIPT_FRAME = /codemode\\\\.js:(\\\\d+):\\\\d+/;\n function callLine() {\n if (!trackLines) return undefined;\n const match = SCRIPT_FRAME.exec(String(new ErrorCtor().stack));\n return match ? Number(match[1]) : undefined;\n }\n\n function caller(kind, name, spread) {\n return (...args) =>\n new Promise((resolve, reject) => {\n let json;\n try {\n json = serialize(spread ? args : args[0]);\n } catch (error) {\n reject(error);\n return;\n }\n const id = nextId++;\n pending.set(id, { resolve, reject });\n bridge(kind, id, name, json, callLine());\n });\n }\n\n const tools = Object.create(null);\n const allTools = [];\n // tools.shell(\"ls\", { timeout: 5000 }) is tools.shell({ timeout: 5000, command: \"ls\" }).\n function withStringArg(key, value, rest) {\n const input = {};\n if (rest !== null && typeof rest === \"object\" && !Array.isArray(rest)) {\n for (const restKey of Object.keys(rest)) input[restKey] = rest[restKey];\n }\n input[key] = value;\n return input;\n }\n\n for (const { name, jsName, description, stringArg } of parse(toolsJson)) {\n const call = caller(\"call\", name);\n const fn = stringArg === undefined\n ? call\n : (args, rest) => call(typeof args === \"string\" ? withStringArg(stringArg, args, rest) : args);\n // The first tool wins when two names normalize to the same identifier.\n if (!(jsName in tools)) {\n tools[jsName] = fn;\n allTools.push(Object.freeze({ name: jsName, description }));\n }\n if (!(name in tools)) tools[name] = fn;\n }\n Object.freeze(tools);\n Object.freeze(allTools);\n\n // Reading a member that does not exist throws an error that names the close matches, instead of\n // a later \"not a function\". \\`in\\` checks still work.\n const comparable = (name) => name.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n function guard(target, label, names, hint, missingHints) {\n return new Proxy(target, {\n get(object, property, receiver) {\n if (typeof property !== \"string\" || property in object || property in Object.prototype || property === \"then\" || property === \"toJSON\") {\n return Reflect.get(object, property, receiver);\n }\n // A tool the host knows but keeps out of scripts (spawn, call_tool, ...): its own advice.\n if (missingHints && Object.prototype.hasOwnProperty.call(missingHints, property)) {\n throw new TypeErrorCtor(label + \".\" + property + \" is not available in scripts. \" + missingHints[property]);\n }\n const wanted = comparable(property);\n const exact = names.filter((name) => comparable(name) === wanted);\n const close = exact.length > 0 ? exact : names.filter((name) => wanted && (comparable(name).includes(wanted) || wanted.includes(comparable(name))));\n let message = label + \".\" + property + \" does not exist.\";\n if (close.length > 0) message += \" Did you mean \" + close.slice(0, 5).map((name) => label + \".\" + name).join(\", \") + \"?\";\n else if (names.length <= 20) message += \" Available: \" + names.join(\", \") + \".\";\n if (hint) message += \" \" + hint;\n message += ' Check for a member with \"' + property + '\" in ' + label + \".\";\n throw new TypeErrorCtor(message);\n },\n });\n }\n const toolsProxy = guard(\n tools,\n \"tools\",\n allTools.map((tool) => tool.name),\n \"ALL_TOOLS lists every tool; searchTools(query) finds tools by topic.\",\n hintsJson ? parse(hintsJson) : undefined,\n );\n\n const namespaces = new Map();\n for (const { name, spread } of parse(globalsJson)) {\n const fn = caller(\"global\", name, spread);\n const dot = name.indexOf(\".\");\n if (dot === -1) {\n Object.defineProperty(globalThis, name, { value: fn, enumerable: true });\n continue;\n }\n const namespace = name.slice(0, dot);\n if (!namespaces.has(namespace)) namespaces.set(namespace, Object.create(null));\n namespaces.get(namespace)[name.slice(dot + 1)] = fn;\n }\n for (const [namespace, members] of namespaces) {\n Object.freeze(members);\n const value = guard(members, namespace, Object.keys(members));\n Object.defineProperty(globalThis, namespace, { value, enumerable: true });\n }\n\n // sh(\"ls\") is tools.shell(\"ls\"): the same call, recorded the same way.\n for (const [alias, target] of Object.entries(parse(shortcutsJson || \"{}\"))) {\n if (!Object.prototype.hasOwnProperty.call(tools, target) || alias in globalThis) continue;\n const fn = tools[target];\n Object.defineProperty(globalThis, alias, { value: (...args) => fn(...args), enumerable: true });\n }\n\n // key -> JSON text. Sizes count key and JSON characters.\n const stored = new Map(Object.entries(parse(storeJson)));\n const writes = new Map();\n let storedChars = 0;\n for (const [key, json] of stored) storedChars += key.length + json.length;\n\n const STORE_HINT =\n \"store() is for small state such as IDs or summaries. Show images with image(), keep large data in variables, or write it to a file with a tool.\";\n\n function checkKey(name, key) {\n if (typeof key !== \"string\") throw new TypeError(name + \"() key must be a string\");\n }\n\n function store(key, value) {\n checkKey(\"store\", key);\n const previous = stored.has(key) ? key.length + stored.get(key).length : 0;\n if (value === undefined) {\n stored.delete(key);\n storedChars -= previous;\n writes.set(key, undefined);\n return;\n }\n let json;\n try {\n json = stringify(value);\n } catch (error) {\n throw new TypeError(\"store(\" + stringify(key) + \") value is not JSON-serializable: \" + format(error));\n }\n if (json === undefined) {\n throw new TypeError(\"store(\" + stringify(key) + \") value is not JSON-serializable\");\n }\n if (json.length > ${MAX_STORE_VALUE_CHARS}) {\n throw new RangeError(\n \"store(\" + stringify(key) + \") value has \" + json.length + \" characters of JSON, more than the limit of ${MAX_STORE_VALUE_CHARS}. \" +\n STORE_HINT,\n );\n }\n const next = storedChars - previous + key.length + json.length;\n if (next > ${MAX_STORE_TOTAL_CHARS}) {\n throw new RangeError(\n \"store is full: stored values would exceed ${MAX_STORE_TOTAL_CHARS} characters of JSON. Delete keys with store(key, undefined). \" +\n STORE_HINT,\n );\n }\n stored.set(key, json);\n storedChars = next;\n writes.set(key, json);\n }\n\n function load(key) {\n checkKey(\"load\", key);\n const json = stored.get(key);\n return json === undefined ? undefined : parse(json);\n }\n\n function serializeWrites() {\n const entries = [];\n for (const [key, json] of writes) entries.push(json === undefined ? [key] : [key, json]);\n return stringify(entries);\n }\n\n Object.defineProperty(globalThis, \"store\", { value: store, enumerable: true });\n Object.defineProperty(globalThis, \"load\", { value: load, enumerable: true });\n\n let outputChars = 0;\n let outputItems = 0;\n\n // Past the output limits the script fails: done() reports the error, so catching it does not\n // resume output, and the host ends the script.\n function output(kind, data, mimeType) {\n if (finished) return;\n outputChars += data.length;\n outputItems++;\n if (outputChars > ${MAX_OUTPUT_CHARS} || outputItems > ${MAX_OUTPUT_ITEMS}) {\n const error = new RangeErrorCtor(\n \"script output exceeded the limit of ${MAX_OUTPUT_CHARS} characters or ${MAX_OUTPUT_ITEMS} text(), image(), and console calls. \" +\n \"Print a summary instead, or write large data to a file with a tool.\",\n );\n done(false, describeError(error));\n throw error;\n }\n bridge(\"output\", kind, data, mimeType);\n }\n\n // Primitives become their string form, everything else JSON.\n function outputText(value) {\n if (value === undefined || value === null || typeof value !== \"object\" && typeof value !== \"function\") {\n return String(value);\n }\n const printed = printable(value);\n if (printed !== undefined) return printed;\n const json = stringify(value);\n return json === undefined ? String(value) : json;\n }\n\n function text(value) {\n let rendered;\n try {\n rendered = outputText(value);\n } catch (error) {\n throw new TypeErrorCtor(error instanceof ErrorCtor ? error.message : String(error));\n }\n output(\"text\", rendered);\n outputImages(value);\n }\n\n function imageUrl(value) {\n if (typeof value === \"string\") return value;\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeErrorCtor(${JSON.stringify(IMAGE_HELPER_EXPECTS)});\n }\n if (value.image_url !== undefined) {\n if (typeof value.image_url !== \"string\") throw new TypeErrorCtor(${JSON.stringify(IMAGE_HELPER_EXPECTS)});\n return value.image_url;\n }\n if (typeof value.type !== \"string\") throw new TypeErrorCtor(${JSON.stringify(IMAGE_HELPER_EXPECTS)});\n if (value.type !== \"image\") {\n throw new TypeErrorCtor('image only accepts MCP image blocks, got \"' + value.type + '\"');\n }\n if (typeof value.data !== \"string\" || value.data === \"\") throw new TypeErrorCtor(\"image expected MCP image data\");\n if (value.data.toLowerCase().startsWith(\"data:\")) return value.data;\n return \"data:;base64,\" + value.data;\n }\n\n // Base64 of the signatures of the formats providers accept inline (PNG, JPEG except\n // JPEG-LS, GIF, \"RIFF....WEBP\"). Signatures start at byte 0, so their encodings are prefixes.\n const IMAGE_SIGNATURES = [\n [\"image/png\", /^iVBORw0KGg/],\n [\"image/jpeg\", /^[/]9j[/](?!9)/],\n [\"image/gif\", /^R0lGOD[dl]h/],\n [\"image/webp\", /^UklG.{8}RUJQ/],\n ];\n\n // A tool result (or an array of image blocks) attaches every image it holds, once.\n function image(value) {\n if (!Array.isArray(value)) return emitImage(value);\n const blocks = printedText.has(value) ? printedImages(value) : value.filter((item) => item !== null && typeof item === \"object\" && item.type === \"image\");\n if (blocks.length === 0) {\n throw new TypeErrorCtor(\"image found no image in \" + (printedText.has(value) ? \"that tool result\" : \"that array\") + \". \" + ${JSON.stringify(IMAGE_HELPER_EXPECTS)});\n }\n for (const block of blocks) {\n if (emittedImages.has(block)) continue;\n emitImage(block);\n emittedImages.add(block);\n }\n }\n\n function emitImage(value) {\n const url = imageUrl(value);\n if (url === \"\") throw new TypeErrorCtor(${JSON.stringify(IMAGE_HELPER_EXPECTS)});\n const colon = url.indexOf(\":\");\n const scheme = colon === -1 ? \"\" : url.slice(0, colon).toLowerCase();\n if (scheme === \"http\" || scheme === \"https\") {\n throw new TypeErrorCtor(\"remote image URLs are not supported in tool outputs. Pass a base64 data URI instead\");\n }\n const comma = url.indexOf(\",\");\n const header = comma === -1 ? [] : url.slice(colon + 1, comma).split(\";\");\n if (scheme !== \"data\" || comma === -1 || header.slice(1).every((part) => part.toLowerCase() !== \"base64\")) {\n throw new TypeErrorCtor(\"invalid image output. Pass a base64 data URI instead\");\n }\n // Providers reject the whole request on a bad image, and a persisted image block would be\n // resent on every later turn. Line breaks from wrapped base64 are dropped. The declared type\n // is ignored in favor of the detected one, as providers also reject mismatches.\n const data = url.slice(comma + 1).replace(/\\\\s+/g, \"\");\n if (data.length % 4 !== 0 || !/^[A-Za-z0-9+/]+={0,2}$/.test(data)) {\n throw new TypeErrorCtor(\"invalid image output. The image data is not valid base64 (truncated or corrupted?)\");\n }\n const head = data.slice(0, 16);\n const signature = IMAGE_SIGNATURES.find(([, pattern]) => pattern.test(head));\n if (!signature) {\n throw new TypeErrorCtor(\"invalid image output. The image data is not a PNG, JPEG, GIF, or WebP image\");\n }\n output(\"image\", data, signature[0]);\n }\n\n function exit() {\n let writesJson;\n try {\n writesJson = serializeWrites();\n } catch (error) {\n done(false, describeError(error));\n throw EXIT;\n }\n done(true, undefined, writesJson);\n throw EXIT;\n }\n\n const console = {};\n for (const level of [\"log\", \"info\", \"warn\", \"error\", \"debug\"]) {\n console[level] = (...args) => {\n output(\"console\", args.map(format).join(\" \"));\n for (const arg of args) outputImages(arg);\n };\n }\n Object.freeze(console);\n\n Object.defineProperty(globalThis, \"tools\", { value: toolsProxy, enumerable: true });\n Object.defineProperty(globalThis, \"ALL_TOOLS\", { value: allTools, enumerable: true });\n Object.defineProperty(globalThis, \"console\", { value: console, enumerable: true });\n Object.defineProperty(globalThis, \"text\", { value: text, enumerable: true });\n Object.defineProperty(globalThis, \"image\", { value: image, enumerable: true });\n Object.defineProperty(globalThis, \"exit\", { value: exit, enumerable: true });\n\n return {\n settle(id, ok, payload, text) {\n const entry = pending.get(id);\n if (!entry) return;\n pending.delete(id);\n if (!ok) {\n entry.reject(new ErrorCtor(payload));\n return;\n }\n let value;\n try {\n value = payload === undefined ? undefined : parse(payload);\n } catch (error) {\n entry.reject(error);\n return;\n }\n if (text !== undefined && value !== null && typeof value === \"object\") {\n printedText.set(value, text);\n // Inside a string (\"\" + r, a template literal), a tool result reads as its text too.\n defineProperty(value, TO_PRIMITIVE, { value: () => text });\n }\n entry.resolve(value);\n },\n run(fn) {\n let promise;\n try {\n promise = fn();\n } catch (error) {\n done(false, describeError(error));\n return;\n }\n promiseThen.call(\n promise,\n (value) => {\n let json;\n try {\n const printed = printable(value);\n json = serialize(printed === undefined ? value : printed);\n if (printed !== undefined) outputImages(value);\n } catch (error) {\n done(false, describeError(error));\n return;\n }\n done(true, json, serializeWrites());\n },\n (error) => {\n done(false, describeError(error));\n },\n );\n },\n stalled() {\n if (finished || pending.size > 0) return false;\n done(\n false,\n stringify({\n name: \"Error\",\n message:\n \"The script is waiting on a promise that can never settle: no tool call is pending, and timers do not exist here.\",\n }),\n );\n return true;\n },\n };\n})`\n"],"mappings":";;AAGA,MAAa,wBAAwB;;AAErC,MAAa,wBAAwB;;;;;;;AAOrC,MAAa,mBAAmB;;AAEhC,MAAa,mBAAmB;AAEhC,MAAM,uBACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCJ,MAAa,iBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAiVd,sBAAsB;;kHAEoE,sBAAsB;;;;;iBAKvH,sBAAsB;;qDAEc,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAiCnD,iBAAiB,oBAAoB,iBAAiB;;+CAE/B,iBAAiB,iBAAiB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkClE,KAAK,UAAU,oBAAoB,EAAE;;;yEAGI,KAAK,UAAU,oBAAoB,EAAE;;;kEAG5C,KAAK,UAAU,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;mIAuB4B,KAAK,UAAU,oBAAoB,EAAE;;;;;;;;;;;8CAW1H,KAAK,UAAU,oBAAoB,EAAE"}
@@ -1,6 +1,6 @@
1
1
  import { n as definePreset } from "./compose-Db9ZMbyD.js";
2
- import { a as shell, n as waitTask, r as shellKill } from "./wait-task-BX4NcOOm.js";
3
- import { c as edit, d as recordArtifact, f as createSpawnTool, n as readFile, o as multiEdit, s as listFiles, t as writeFile } from "./write-file-0E6TUJ9A.js";
2
+ import { a as shell, n as waitTask, r as shellKill } from "./wait-task-BiI5UaZQ.js";
3
+ import { c as edit, d as recordArtifact, f as createSpawnTool, n as readFile, o as multiEdit, s as listFiles, t as writeFile } from "./write-file-Dquu7MzB.js";
4
4
  import { t as createArtifactDetectHook } from "./artifact-detect-BkDNUhfB.js";
5
5
  import { t as BUILTIN_ARTIFACT_DETECTORS } from "./builtin-artifact-kinds-DsqaAQjX.js";
6
6
  //#region src/presets/artifacts.ts
@@ -63,4 +63,4 @@ var basic_default = definePreset({
63
63
  //#endregion
64
64
  export { basic_default as n, artifacts_default as r, basicTools as t };
65
65
 
66
- //# sourceMappingURL=presets-CBt6rFfS.js.map
66
+ //# sourceMappingURL=presets-CMY43nUP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets-CBt6rFfS.js","names":[],"sources":["../src/presets/artifacts.ts","../src/presets/basic.ts"],"sourcesContent":["import type { AgentHooks } from '../agent'\nimport { definePreset } from '.'\nimport { createArtifactDetectHook } from '../extensions/artifact-detect'\nimport { BUILTIN_ARTIFACT_DETECTORS } from '../extensions/builtin-artifact-kinds'\nimport { recordArtifact } from '../tools/record-artifact'\n\n/**\n * Built-in artifact detection — records pull requests, branches, commits\n * a session produces — never files automatically (see `session/artifacts.ts`).\n *\n * Opt-in by composition, not baked into `basic`: SDK consumers who never\n * spread this preset see zero behavior change, while the TUI / daemon\n * hosts compose it under the profile preset so every chat session gets\n * detection. Extension-registered kinds ride the extension registry's\n * hooks instead; both paths share `createArtifactDetectHook`.\n *\n * Also contributes the `record_artifact` tool — the explicit path for\n * outputs detection can't see (background-shell PRs, deployments, issues).\n */\nconst detectHooks = BUILTIN_ARTIFACT_DETECTORS\n .map(kind => createArtifactDetectHook(kind, {\n warn: (message, fields) => {\n if (process.env.ZIDANE_DEBUG)\n process.stderr.write(`[zidane/artifacts] ${message} ${JSON.stringify(fields)}\\n`)\n },\n }))\n .filter((hook): hook is NonNullable<AgentHooks['tool:transform']> => hook !== undefined)\n\n/** Preset that detects pull requests, commits and branches in tool results (files are recorded by the loop, not by detection) and adds the `record_artifact` tool for outputs detection cannot see. Detection runs as `tool:transform` hooks, including those bubbled up from subagents. */\nexport default definePreset({\n tools: { [recordArtifact.spec.name]: recordArtifact },\n hooks: {\n 'tool:transform': detectHooks,\n // Subagents are built from the parent's preset WITHOUT hooks, so their\n // tool results only reach us as the same-ref `child:tool:transform`\n // bubble. Detecting there writes into the child's own metadata bag, and\n // the child's loop lifts it into the shared session under its runId.\n 'child:tool:transform': detectHooks,\n },\n})\n","import { definePreset } from '.'\n// Leaf modules, not the '../tools' barrel: the barrel reaches this file back\n// through spawn → agent → extensions → presets, and `basicTools` reads the\n// tools at load time.\nimport { edit } from '../tools/edit'\nimport { listFiles } from '../tools/list-files'\nimport { multiEdit } from '../tools/multi-edit'\nimport { readFile } from '../tools/read-file'\nimport { shell } from '../tools/shell'\nimport { shellKill } from '../tools/shell-kill'\nimport { createSpawnTool } from '../tools/spawn'\nimport { waitTask } from '../tools/wait-task'\nimport { writeFile } from '../tools/write-file'\n\n/**\n * Core tools available in every basic preset (without spawn).\n *\n * `edit` and `multi_edit` ship in the basic set because surgical edits are the\n * default modality for production agents — `write_file` is for full overwrites.\n * `glob` and `grep` are exported but opt-in: not every agent needs codebase\n * search, and shipping them by default would force `tool:gate` work onto\n * consumers that prefer the model to use `shell` + classic Unix tools.\n */\nexport const basicTools = { shell, shellKill, waitTask, readFile, writeFile, listFiles, edit, multiEdit }\n\n/** Default preset with the shell, file, edit and `spawn` tools and a general-purpose system prompt. The `spawn` tool is created fresh on every access, so each agent gets its own subagent state. */\nexport default definePreset({\n name: 'basic',\n system: 'You are a helpful assistant with access to shell, file reading, file writing, surgical and multi-edit tools, directory listing, and sub-agent spawning. Prefer `edit` / `multi_edit` for in-place changes and `write_file` for full file overwrites. Use them to accomplish tasks in the project directory.',\n // `tools` is a getter so each access (every `{ ...basic }` spread into\n // `createAgent`) mints a FRESH spawn tool. `createSpawnTool()` carries\n // per-instance state (running children, concurrency counter, child-stats\n // accumulator); a module-level singleton instance would be shared by every\n // agent in the process, breaking concurrent rollouts.\n //\n // `persist: true` shares the parent's session with every child agent — child\n // turns land in `session.turns` tagged with their own `runId`, and the run\n // itself is recorded in `session.runs` with `parentRunId` + `depth`. That's\n // what lets a reloaded TUI session reconstruct the full subagent tree (see\n // `eventsFromTurns` in `src/chat/store.ts`). Hosts that want children in-memory\n // only can construct their own preset with `createSpawnTool()`.\n get tools() {\n return { ...basicTools, spawn: createSpawnTool({ persist: true }) }\n },\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc,2BACjB,KAAI,SAAQ,yBAAyB,MAAM,EAC1C,OAAO,SAAS,WAAW;CACzB,IAAI,QAAQ,IAAI,cACd,QAAQ,OAAO,MAAM,sBAAsB,QAAQ,GAAG,KAAK,UAAU,MAAM,EAAE,GAAG;AACpF,EACF,CAAC,CAAC,CAAC,CACF,QAAQ,SAA4D,SAAS,KAAA,CAAS;;AAGzF,IAAA,oBAAe,aAAa;CAC1B,OAAO,GAAG,eAAe,KAAK,OAAO,eAAe;CACpD,OAAO;EACL,kBAAkB;EAKlB,wBAAwB;CAC1B;AACF,CAAC;;;;;;;;;;;;AChBD,MAAa,aAAa;CAAE;CAAO;CAAW;CAAU;CAAU;CAAW;CAAW;CAAM;AAAU;;AAGxG,IAAA,gBAAe,aAAa;CAC1B,MAAM;CACN,QAAQ;CAaR,IAAI,QAAQ;EACV,OAAO;GAAE,GAAG;GAAY,OAAO,gBAAgB,EAAE,SAAS,KAAK,CAAC;EAAE;CACpE;AACF,CAAC"}
1
+ {"version":3,"file":"presets-CMY43nUP.js","names":[],"sources":["../src/presets/artifacts.ts","../src/presets/basic.ts"],"sourcesContent":["import type { AgentHooks } from '../agent'\nimport { definePreset } from '.'\nimport { createArtifactDetectHook } from '../extensions/artifact-detect'\nimport { BUILTIN_ARTIFACT_DETECTORS } from '../extensions/builtin-artifact-kinds'\nimport { recordArtifact } from '../tools/record-artifact'\n\n/**\n * Built-in artifact detection — records pull requests, branches, commits\n * a session produces — never files automatically (see `session/artifacts.ts`).\n *\n * Opt-in by composition, not baked into `basic`: SDK consumers who never\n * spread this preset see zero behavior change, while the TUI / daemon\n * hosts compose it under the profile preset so every chat session gets\n * detection. Extension-registered kinds ride the extension registry's\n * hooks instead; both paths share `createArtifactDetectHook`.\n *\n * Also contributes the `record_artifact` tool — the explicit path for\n * outputs detection can't see (background-shell PRs, deployments, issues).\n */\nconst detectHooks = BUILTIN_ARTIFACT_DETECTORS\n .map(kind => createArtifactDetectHook(kind, {\n warn: (message, fields) => {\n if (process.env.ZIDANE_DEBUG)\n process.stderr.write(`[zidane/artifacts] ${message} ${JSON.stringify(fields)}\\n`)\n },\n }))\n .filter((hook): hook is NonNullable<AgentHooks['tool:transform']> => hook !== undefined)\n\n/** Preset that detects pull requests, commits and branches in tool results (files are recorded by the loop, not by detection) and adds the `record_artifact` tool for outputs detection cannot see. Detection runs as `tool:transform` hooks, including those bubbled up from subagents. */\nexport default definePreset({\n tools: { [recordArtifact.spec.name]: recordArtifact },\n hooks: {\n 'tool:transform': detectHooks,\n // Subagents are built from the parent's preset WITHOUT hooks, so their\n // tool results only reach us as the same-ref `child:tool:transform`\n // bubble. Detecting there writes into the child's own metadata bag, and\n // the child's loop lifts it into the shared session under its runId.\n 'child:tool:transform': detectHooks,\n },\n})\n","import { definePreset } from '.'\n// Leaf modules, not the '../tools' barrel: the barrel reaches this file back\n// through spawn → agent → extensions → presets, and `basicTools` reads the\n// tools at load time.\nimport { edit } from '../tools/edit'\nimport { listFiles } from '../tools/list-files'\nimport { multiEdit } from '../tools/multi-edit'\nimport { readFile } from '../tools/read-file'\nimport { shell } from '../tools/shell'\nimport { shellKill } from '../tools/shell-kill'\nimport { createSpawnTool } from '../tools/spawn'\nimport { waitTask } from '../tools/wait-task'\nimport { writeFile } from '../tools/write-file'\n\n/**\n * Core tools available in every basic preset (without spawn).\n *\n * `edit` and `multi_edit` ship in the basic set because surgical edits are the\n * default modality for production agents — `write_file` is for full overwrites.\n * `glob` and `grep` are exported but opt-in: not every agent needs codebase\n * search, and shipping them by default would force `tool:gate` work onto\n * consumers that prefer the model to use `shell` + classic Unix tools.\n */\nexport const basicTools = { shell, shellKill, waitTask, readFile, writeFile, listFiles, edit, multiEdit }\n\n/** Default preset with the shell, file, edit and `spawn` tools and a general-purpose system prompt. The `spawn` tool is created fresh on every access, so each agent gets its own subagent state. */\nexport default definePreset({\n name: 'basic',\n system: 'You are a helpful assistant with access to shell, file reading, file writing, surgical and multi-edit tools, directory listing, and sub-agent spawning. Prefer `edit` / `multi_edit` for in-place changes and `write_file` for full file overwrites. Use them to accomplish tasks in the project directory.',\n // `tools` is a getter so each access (every `{ ...basic }` spread into\n // `createAgent`) mints a FRESH spawn tool. `createSpawnTool()` carries\n // per-instance state (running children, concurrency counter, child-stats\n // accumulator); a module-level singleton instance would be shared by every\n // agent in the process, breaking concurrent rollouts.\n //\n // `persist: true` shares the parent's session with every child agent — child\n // turns land in `session.turns` tagged with their own `runId`, and the run\n // itself is recorded in `session.runs` with `parentRunId` + `depth`. That's\n // what lets a reloaded TUI session reconstruct the full subagent tree (see\n // `eventsFromTurns` in `src/chat/store.ts`). Hosts that want children in-memory\n // only can construct their own preset with `createSpawnTool()`.\n get tools() {\n return { ...basicTools, spawn: createSpawnTool({ persist: true }) }\n },\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc,2BACjB,KAAI,SAAQ,yBAAyB,MAAM,EAC1C,OAAO,SAAS,WAAW;CACzB,IAAI,QAAQ,IAAI,cACd,QAAQ,OAAO,MAAM,sBAAsB,QAAQ,GAAG,KAAK,UAAU,MAAM,EAAE,GAAG;AACpF,EACF,CAAC,CAAC,CAAC,CACF,QAAQ,SAA4D,SAAS,KAAA,CAAS;;AAGzF,IAAA,oBAAe,aAAa;CAC1B,OAAO,GAAG,eAAe,KAAK,OAAO,eAAe;CACpD,OAAO;EACL,kBAAkB;EAKlB,wBAAwB;CAC1B;AACF,CAAC;;;;;;;;;;;;AChBD,MAAa,aAAa;CAAE;CAAO;CAAW;CAAU;CAAU;CAAW;CAAW;CAAM;AAAU;;AAGxG,IAAA,gBAAe,aAAa;CAC1B,MAAM;CACN,QAAQ;CAaR,IAAI,QAAQ;EACV,OAAO;GAAE,GAAG;GAAY,OAAO,gBAAgB,EAAE,SAAS,KAAK,CAAC;EAAE;CACpE;AACF,CAAC"}
package/dist/presets.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Do as composePresets, Eo as Preset, Ok as AgentHookMap, Oo as definePreset, To as _default, n as basicTools, t as _default$1 } from "./index-CGbOWa7y.js";
1
+ import { Do as composePresets, Eo as Preset, Oo as definePreset, To as _default, cA as AgentHookMap, n as basicTools, t as _default$1 } from "./index-WlE93Q6d.js";
2
2
  export { type AgentHookMap, Preset, _default as artifacts, _default$1 as basic, basicTools, composePresets, definePreset };
package/dist/presets.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { n as definePreset, t as composePresets } from "./compose-Db9ZMbyD.js";
2
- import { n as basic_default, r as artifacts_default, t as basicTools } from "./presets-CBt6rFfS.js";
2
+ import { n as basic_default, r as artifacts_default, t as basicTools } from "./presets-CMY43nUP.js";
3
3
  export { artifacts_default as artifacts, basic_default as basic, basicTools, composePresets, definePreset };
@@ -1,10 +1,10 @@
1
- import { $w as EnvironmentDescriptor, AF as LogRecord, AT as EnvironmentTeardownResult, CF as McpServerInstance, Dl as ExtensionCompletionProviderSummary, El as ExtensionCompletionItemSummary, FC as SessionEvent, Fg as WireExtensionConfigSchema, GD as SkillSourceListing, Gn as CreateExtensionInput, Hh as ReferenceProviderWire, Hm as SessionBadgeEntry, IO as ProviderUsageSnapshot, KT as ProviderKey, Kn as CreateExtensionResult, Mp as PanelLoadContextInput, Nt as PerfSample, OT as EnvironmentRequest, Om as ExtensionReferenceView, Os as PanelSummary, Ot as PerfOsThread, PS as CommandOutputBlock, Q_ as BadgeTarget, Qf as PaletteItem, Us as ExtensionInstallOrigin, WI as ThinkingLevel, Xh as ExtensionActionRunResult, Y_ as BadgeActionEffect, Yf as PaletteContext, Z_ as BadgeMenuItem, Zh as ExtensionActionSummary, ag as RpcCallParams, bg as ExtensionConfigActionStatus, cl as StorageArea, df as SessionMeta, dl as StorageSnapshot, eS as ContextBreakdown, hR as SessionArtifact, hT as EnvironmentActionSummary, iC as InteractionResponse, jN as McpServerConfig, jT as EnvironmentVerifyResult, kN as JsonValue, lf as SessionEnvironmentSummary, mE as Json, mT as EnvironmentActionResult, mf as StreamEvent, nP as SessionTurn, oL as SessionData, rT as EnvironmentSettingsChange, sg as RpcResponseEnvelope, tk as ProviderFieldView, tp as PaletteRunResult, uf as SessionHeader, yp as PanelContent } from "./index-CGbOWa7y.js";
2
- import { m as ListFilesEntry, u as ExecResult } from "./types-bDQagoiL.js";
3
- import { a as OwnedProcess, t as SessionProcess } from "./index-CCf_WeTQ.js";
4
- import { $a as EntryResult, Ao as PendingRequestRow, As as WireExtensionSettings, Ba as CacheImpact, Cc as TerminalProjectOpenInput, Cs as LinkOpenParams, Da as ContextSegmentsReport, Dd as OnboardingImportPreview, Ds as UiInvokeRequest, Ec as TerminalProjectStateInput, Eu as ApprovalDecision, Gu as FileEntry, Ha as CacheReport, Is as WireUiList, Js as TodoItem, Ko as SessionLaunchOverrides, Ls as CatalogItemProvenance, Mo as WorkerRow, Ms as WireKeymap, No as WorkerSummary, Ns as WireStorageLocation, Oc as TerminalSessionState, Oo as CreateSessionParams$1, Os as WireExtensionCommands, Pd as OnboardingProvider, Ps as WireStorageSetResult, Pu as SystemMdFile, Qc as MachineInfo, Rs as CatalogKind, Tc as TerminalProjectState, Ts as UiClientAnnounce, Uf as BrowserResponse, Va as CacheImpactChange, Vd as OnboardingState, Vl as TuiState, _c as TerminalAdoptResult, _s as TodosSnapshot, a as UsageRange, bc as TerminalInfo, bs as CommandRunParams, cs as PendingInteraction, dl as IntegrationState, ds as QueuedItem, el as MachineLinksStatus, fs as RunningWorkItem, hs as SessionPresence, is as CommandSummary, jo as WaitResult, js as WireIntegration, ka as WorkspaceListFilesOptions, ko as EventQuery, ks as WireExtensionEntry, ls as PromptAttachment, ni as SearchTurnResult, o as UsageSummary, os as HostSettings, ps as SendOptions, ri as SessionHistoryMatch, rs as CommandArgSuggestionSummary, ss as HostSignal, td as ExtensionSourceListing, tl as MachineRegisterParams, ul as IntegrationInfo, vc as TerminalAttachResult, vs as WireApprovalRequest, wa as CompactionReport, ws as SettingsSetParams, xc as TerminalOpenInput, yd as OnboardingDetection, zc as RunEstimateView, zd as OnboardingSettingsChange } from "./media-type-BtA0cbfI.js";
5
- import { E as ResolvedPath, Es as ClaudeImportSummary, L as DiagnosticsResult, Ln as McpServerStatus, St as SafelistProject, T as GitStatusEntry, Yt as FolderLocation, _s as GitSwitchTarget, ds as GitCommitInfo, fs as GitInfo, hs as GitPrListResult, ps as GitPr, pt as SessionExportFormat, r as ContentSearchResult, us as GitBranchRow, vs as GitSyncResult, ys as RepoCloneResult, z as DiagnosticsToolInfo } from "./browser-entry-ypi8CyE-.js";
1
+ import { Dl as ExtensionCompletionProviderSummary, EE as ProviderKey, El as ExtensionCompletionItemSummary, Fg as WireExtensionConfigSchema, Fk as ProviderFieldView, Gn as CreateExtensionInput, Hh as ReferenceProviderWire, Hm as SessionBadgeEntry, IP as SessionTurn, JE as Json, JT as EnvironmentActionResult, Kn as CreateExtensionResult, LT as EnvironmentSettingsChange, Mp as PanelLoadContextInput, NT as EnvironmentDescriptor, Nt as PerfSample, Om as ExtensionReferenceView, Os as PanelSummary, Ot as PerfOsThread, PS as CommandOutputBlock, Q_ as BadgeTarget, Qf as PaletteItem, TL as ThinkingLevel, TO as SkillSourceListing, Us as ExtensionInstallOrigin, VL as SessionData, XR as SessionArtifact, Xh as ExtensionActionRunResult, YT as EnvironmentActionSummary, Y_ as BadgeActionEffect, Yf as PaletteContext, Z_ as BadgeMenuItem, Zh as ExtensionActionSummary, ag as RpcCallParams, bg as ExtensionConfigActionStatus, cE as EnvironmentRequest, cl as StorageArea, dE as EnvironmentVerifyResult, dI as LogRecord, dP as McpServerConfig, df as SessionMeta, dl as StorageSnapshot, eS as ContextBreakdown, gk as ProviderUsageSnapshot, hw as SessionEvent, iC as InteractionResponse, iI as McpServerInstance, lP as JsonValue, lf as SessionEnvironmentSummary, mf as StreamEvent, sg as RpcResponseEnvelope, tp as PaletteRunResult, uE as EnvironmentTeardownResult, uf as SessionHeader, yp as PanelContent } from "./index-WlE93Q6d.js";
2
+ import { d as ExecResult, h as ListFilesEntry } from "./types-2HrgolQz.js";
3
+ import { a as OwnedProcess, t as SessionProcess } from "./index-f-XWIoYo.js";
4
+ import { $a as EntryResult, Ao as PendingRequestRow, As as WireExtensionSettings, Ba as CacheImpact, Cc as TerminalProjectOpenInput, Cs as LinkOpenParams, Da as ContextSegmentsReport, Ds as UiInvokeRequest, Ec as TerminalProjectStateInput, Fc as BlockRun, Gd as OnboardingImportPreview, Ha as CacheReport, Is as WireUiList, Js as TodoItem, Ko as SessionLaunchOverrides, Ld as OnboardingDetection, Ls as CatalogItemProvenance, Mo as WorkerRow, Ms as WireKeymap, No as WorkerSummary, Ns as WireStorageLocation, Oc as TerminalSessionState, Ol as IntegrationInfo, Oo as CreateSessionParams$1, Os as WireExtensionCommands, Ps as WireStorageSetResult, Qd as OnboardingProvider, Qu as SystemMdFile, Rs as CatalogKind, Tc as TerminalProjectState, Ts as UiClientAnnounce, Va as CacheImpactChange, Wu as ApprovalDecision, _c as TerminalAdoptResult, _s as TodosSnapshot, a as UsageRange, af as OnboardingState, au as TuiState, bc as TerminalInfo, bs as CommandRunParams, cs as PendingInteraction, ds as QueuedItem, fs as RunningWorkItem, gl as MachineInfo, hs as SessionPresence, is as CommandSummary, jo as WaitResult, js as WireIntegration, ka as WorkspaceListFilesOptions, kl as IntegrationState, ko as EventQuery, ks as WireExtensionEntry, ld as FileEntry, ls as PromptAttachment, ni as SearchTurnResult, o as UsageSummary, os as HostSettings, ps as SendOptions, rf as OnboardingSettingsChange, ri as SessionHistoryMatch, rl as RunEstimateView, rs as CommandArgSuggestionSummary, sp as BrowserResponse, ss as HostSignal, vc as TerminalAttachResult, vl as MachineLinksStatus, vs as WireApprovalRequest, wa as CompactionReport, ws as SettingsSetParams, xc as TerminalOpenInput, yd as ExtensionSourceListing, yl as MachineRegisterParams } from "./media-type-ZSmAGHvg.js";
5
+ import { E as ResolvedPath, Es as ClaudeImportSummary, L as DiagnosticsResult, Ln as McpServerStatus, St as SafelistProject, T as GitStatusEntry, Yt as FolderLocation, _s as GitSwitchTarget, ds as GitCommitInfo, fs as GitInfo, hs as GitPrListResult, ps as GitPr, pt as SessionExportFormat, r as ContentSearchResult, us as GitBranchRow, vs as GitSyncResult, ys as RepoCloneResult, z as DiagnosticsToolInfo } from "./browser-entry-BCwruqNa.js";
6
6
  import { a as HostCapabilities } from "./url-Cd-mpFST.js";
7
- import "./index-C6nnKu32.js";
7
+ import "./index-B0PLo9jn.js";
8
8
  import { c as SyncClaimResult, d as SyncPushResult, p as SyncStatus, s as SyncCategory, u as SyncPayload, y as ServerUpdateStatus } from "./types-DO7XR6uv.js";
9
9
  //#region src/chat/session-policy.d.ts
10
10
  /** Per-session rules, stored in session metadata (`policy`). */
@@ -642,6 +642,49 @@ interface IpcMethods {
642
642
  cancelled: boolean;
643
643
  };
644
644
  };
645
+ /**
646
+ * Runs a shell block of a reply (Run here) in the session's folder, with no input. The reply names the run; its
647
+ * output follows as `block-run:data` signals and ends with one `block-run:end` carrying the saved run, to this
648
+ * connection only. Nothing enters the conversation; the run becomes the block's last (`sessions.blockRuns`),
649
+ * announced to every window by `block-runs:changed`. A dropped connection stops what it started.
650
+ */
651
+ 'sessions.runBlock': {
652
+ params: {
653
+ sessionId: string;
654
+ turnId: string;
655
+ code: string;
656
+ language: string;
657
+ };
658
+ result: {
659
+ runId: string;
660
+ };
661
+ };
662
+ /** Stops a Run here this connection started (`cancelled: false` when it is not running). */
663
+ 'sessions.runBlockCancel': {
664
+ params: {
665
+ runId: string;
666
+ };
667
+ result: {
668
+ cancelled: boolean;
669
+ };
670
+ };
671
+ /** The session's saved block runs, by key (`blockRunKey`). */
672
+ 'sessions.blockRuns': {
673
+ params: {
674
+ sessionId: string;
675
+ };
676
+ result: {
677
+ runs: Record<string, BlockRun>;
678
+ };
679
+ };
680
+ /** Forgets a block's saved run. */
681
+ 'sessions.removeBlockRun': {
682
+ params: {
683
+ sessionId: string;
684
+ key: string;
685
+ };
686
+ result: void;
687
+ };
645
688
  /** Reads a text file from the session's workspace. */
646
689
  'sessions.workspaceReadFile': {
647
690
  params: {
@@ -4260,4 +4303,4 @@ interface ClaudeImportSelection {
4260
4303
  }
4261
4304
  //#endregion
4262
4305
  export { scopeAllows as $, LOAD_EVENTS_PAGE_TURNS as A, SessionResumeResult as B, IPC_PROTOCOL_VERSION as C, IpcParams as D, IpcMethods as E, SESSION_TURNS_PAGE as F, loadAllEvents as G, SignalMeta as H, SIGNAL_SEQ_FIELD as I, CLIENT_SCOPES as J, loadEventsPage as K, SequencedSignal as L, ModelFallbackRef as M, REDACTED as N, IpcResult as O, SESSION_TURNS_MAX_PAGE as P, methodScope as Q, SessionDocumentHead as R, IPC_MIN_PROTOCOL_VERSION as S, IpcMethodName as T, extensionInstallErrorData as U, SessionRow as V, hostRefOf as W, METHOD_SCOPES as X, ClientScope as Y, isClientScope as Z, HostOAuthBegin as _, FsRoots as a, HostProviderAuth as b, HostAuthMethod as c, HostCatalogMcp as d, SessionPolicy as et, HostCatalogPlugin as f, HostModelProvider as g, HostModelInfo as h, FsDirListing as i, LoadEventsPaging as j, LOAD_EVENTS_MAX_PAGE_TURNS as k, HostCatalogError as l, HostKind as m, ExtensionInstallErrorData as n, HelloParams as o, HostCatalogSkill as p, loadSessionDocument as q, FsDirEntry as r, HelloResult as s, CreateSessionParams as t, HostCatalogExtension as u, HostOAuthComplete as v, IpcErrorCode as w, HostRef as x, HostOAuthStep as y, SessionEventsPage as z };
4263
- //# sourceMappingURL=protocol-CEVqBO-q.d.ts.map
4306
+ //# sourceMappingURL=protocol-C2lqKuMd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-C2lqKuMd.d.ts","names":["OrchestrationCreateParams","OrchestrationWorkerRow","OrchestrationWorkerSummary","OrchestrationWaitResult","OrchestrationEventQuery","OrchestrationPendingRequest"],"sources":["../src/chat/session-policy.ts","../src/ipc/scopes.ts","../src/ipc/protocol.ts"],"mappings":"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"}