zidane 7.2.5 → 8.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -6
  3. package/dist/{acp-D-tVyUjw.js → acp-DQDhi2dj.js} +230 -77
  4. package/dist/acp-DQDhi2dj.js.map +1 -0
  5. package/dist/acp-cli.d.ts +1 -1
  6. package/dist/acp-cli.js +9 -66
  7. package/dist/acp-cli.js.map +1 -1
  8. package/dist/acp.d.ts +10 -590
  9. package/dist/acp.d.ts.map +1 -1
  10. package/dist/acp.js +3 -3
  11. package/dist/{agent-D0zZnGbt.js → agent-DSLNmBp0.js} +14401 -13214
  12. package/dist/agent-DSLNmBp0.js.map +1 -0
  13. package/dist/agent.d.ts +1 -1
  14. package/dist/agent.js +3 -2
  15. package/dist/aliasing-lVFbm81n.js +217 -0
  16. package/dist/aliasing-lVFbm81n.js.map +1 -0
  17. package/dist/{anthropic-C2aole0G.js → anthropic-CD00LhUP.js} +1442 -1264
  18. package/dist/anthropic-CD00LhUP.js.map +1 -0
  19. package/dist/artifacts-CV2hUKnL.js.map +1 -1
  20. package/dist/{atomic-write-B7zr1ddF.js → atomic-write-Ijgf2Mhc.js} +13 -3
  21. package/dist/atomic-write-Ijgf2Mhc.js.map +1 -0
  22. package/dist/call-tool-dHlbGOIY.js +70 -0
  23. package/dist/call-tool-dHlbGOIY.js.map +1 -0
  24. package/dist/chat/pure.d.ts +372 -6
  25. package/dist/chat/pure.d.ts.map +1 -1
  26. package/dist/chat/pure.js +35 -244
  27. package/dist/chat/pure.js.map +1 -1
  28. package/dist/{approvals-DKaJZYlm.js → chat-JPJJ8uu5.js} +15879 -14631
  29. package/dist/chat-JPJJ8uu5.js.map +1 -0
  30. package/dist/chat.d.ts +4 -6
  31. package/dist/chat.js +23 -12
  32. package/dist/cli-shared-C-YCaglL.js +159 -0
  33. package/dist/cli-shared-C-YCaglL.js.map +1 -0
  34. package/dist/client-core-BQSyDALT.d.ts +2115 -0
  35. package/dist/client-core-BQSyDALT.d.ts.map +1 -0
  36. package/dist/codemode-worker.d.ts +1 -0
  37. package/dist/codemode-worker.js +155 -0
  38. package/dist/codemode-worker.js.map +1 -0
  39. package/dist/codemode.d.ts +352 -0
  40. package/dist/codemode.d.ts.map +1 -0
  41. package/dist/codemode.js +5 -0
  42. package/dist/connection-Dr-Js4yZ.d.ts +28 -0
  43. package/dist/connection-Dr-Js4yZ.d.ts.map +1 -0
  44. package/dist/connection-loop-gdh22LTI.js +112 -0
  45. package/dist/connection-loop-gdh22LTI.js.map +1 -0
  46. package/dist/context-segments-BHKlagL6.js +1016 -0
  47. package/dist/context-segments-BHKlagL6.js.map +1 -0
  48. package/dist/{context-transport-T_6AYIvy.js → context-transport-DSMTUsK1.js} +3 -3
  49. package/dist/{context-transport-T_6AYIvy.js.map → context-transport-DSMTUsK1.js.map} +1 -1
  50. package/dist/contexts/daytona.d.ts +19 -8
  51. package/dist/contexts/daytona.d.ts.map +1 -1
  52. package/dist/contexts/daytona.js +1 -440
  53. package/dist/contexts/docker.d.ts +36 -7
  54. package/dist/contexts/docker.d.ts.map +1 -1
  55. package/dist/contexts/docker.js +1 -456
  56. package/dist/contexts/e2b.d.ts +68 -13
  57. package/dist/contexts/e2b.d.ts.map +1 -1
  58. package/dist/contexts/e2b.js +1 -382
  59. package/dist/contexts/sandbox.d.ts +1 -1
  60. package/dist/contexts/sandbox.js +5 -0
  61. package/dist/contexts/sandbox.js.map +1 -1
  62. package/dist/{contexts-CRE9pw07.js → contexts-d7UolYot.js} +1059 -524
  63. package/dist/contexts-d7UolYot.js.map +1 -0
  64. package/dist/contexts.d.ts +3 -3
  65. package/dist/contexts.js +1 -1
  66. package/dist/cred-keys-GpBg71cP.js +105 -0
  67. package/dist/cred-keys-GpBg71cP.js.map +1 -0
  68. package/dist/{auth-BG2rVKSt.js → credentials-JttEuRON.js} +55 -206
  69. package/dist/credentials-JttEuRON.js.map +1 -0
  70. package/dist/{cursor-iojRXHF9.js → cursor-CdjaQTBW.js} +3 -3
  71. package/dist/{cursor-iojRXHF9.js.map → cursor-CdjaQTBW.js.map} +1 -1
  72. package/dist/daemon-cli.d.ts +1 -1
  73. package/dist/daemon-cli.js +3 -2
  74. package/dist/daemon-cli.js.map +1 -1
  75. package/dist/daytona-DG3omipZ.js +513 -0
  76. package/dist/daytona-DG3omipZ.js.map +1 -0
  77. package/dist/defaults-Cx3zvDOV.js +23 -0
  78. package/dist/defaults-Cx3zvDOV.js.map +1 -0
  79. package/dist/dispatcher-BMlu2BmZ.js +4941 -0
  80. package/dist/dispatcher-BMlu2BmZ.js.map +1 -0
  81. package/dist/docker-BZhMMJUp.js +727 -0
  82. package/dist/docker-BZhMMJUp.js.map +1 -0
  83. package/dist/e2b-CEVOdRib.js +480 -0
  84. package/dist/e2b-CEVOdRib.js.map +1 -0
  85. package/dist/edit-utils-EGosADZq.js +234 -0
  86. package/dist/edit-utils-EGosADZq.js.map +1 -0
  87. package/dist/environment-8wsKE2Ln.js +214 -0
  88. package/dist/environment-8wsKE2Ln.js.map +1 -0
  89. package/dist/eval-BNcvle_J.js +1595 -0
  90. package/dist/eval-BNcvle_J.js.map +1 -0
  91. package/dist/eval.d.ts +2 -2
  92. package/dist/eval.js +1 -1489
  93. package/dist/executor-Cx5-8yqi.js +621 -0
  94. package/dist/executor-Cx5-8yqi.js.map +1 -0
  95. package/dist/extension-authoring-DyGGmq9V.js +385 -0
  96. package/dist/extension-authoring-DyGGmq9V.js.map +1 -0
  97. package/dist/extensions.d.ts +2 -2
  98. package/dist/extensions.js +3 -3
  99. package/dist/{fetch-url-DX75gpL0.js → fetch-url-Ct2TjDWt.js} +4 -4
  100. package/dist/{fetch-url-DX75gpL0.js.map → fetch-url-Ct2TjDWt.js.map} +1 -1
  101. package/dist/{format-BF745pLL.js → format-C2NQEVUH.js} +39 -2
  102. package/dist/format-C2NQEVUH.js.map +1 -0
  103. package/dist/format-bytes-C7tfc3Zm.js +55 -0
  104. package/dist/format-bytes-C7tfc3Zm.js.map +1 -0
  105. package/dist/headless-C_rNUuYC.js +960 -0
  106. package/dist/headless-C_rNUuYC.js.map +1 -0
  107. package/dist/headless.d.ts +1 -1
  108. package/dist/headless.js +1 -413
  109. package/dist/{history-search-C4bk1Wz_.js → history-search-CcYzF8-0.js} +7 -3
  110. package/dist/history-search-CcYzF8-0.js.map +1 -0
  111. package/dist/history-search-worker.d.ts +1 -1
  112. package/dist/history-search-worker.js +1 -1
  113. package/dist/host-D7NrI03V.js +378 -0
  114. package/dist/host-D7NrI03V.js.map +1 -0
  115. package/dist/host-signals-BcP5QKUD.js +118 -0
  116. package/dist/host-signals-BcP5QKUD.js.map +1 -0
  117. package/dist/identity-CwfO8K-t.js +26 -0
  118. package/dist/identity-CwfO8K-t.js.map +1 -0
  119. package/dist/{index-BgN1T3lk.d.ts → index-BGe1fQT7.d.ts} +10987 -9320
  120. package/dist/index-BGe1fQT7.d.ts.map +1 -0
  121. package/dist/index-BVQsIKGn.d.ts +448 -0
  122. package/dist/index-BVQsIKGn.d.ts.map +1 -0
  123. package/dist/{index-C6NEd5y_.d.ts → index-CHABJd-L.d.ts} +3386 -502
  124. package/dist/index-CHABJd-L.d.ts.map +1 -0
  125. package/dist/{index-C37_ppWv.d.ts → index-D6a7qXpg.d.ts} +2 -3
  126. package/dist/index-D6a7qXpg.d.ts.map +1 -0
  127. package/dist/index.d.ts +6 -6
  128. package/dist/index.js +27 -23
  129. package/dist/{completion-core-BRo86R_L.js → inline-ghost-BVRQeGoL.js} +50 -2
  130. package/dist/inline-ghost-BVRQeGoL.js.map +1 -0
  131. package/dist/ipc/remote.d.ts +313 -0
  132. package/dist/ipc/remote.d.ts.map +1 -0
  133. package/dist/ipc/remote.js +4 -0
  134. package/dist/ipc.d.ts +6 -964
  135. package/dist/ipc.js +403 -4
  136. package/dist/ipc.js.map +1 -0
  137. package/dist/{isolation-Kfoof0MM.d.ts → isolation-D9L650W5.d.ts} +100 -15
  138. package/dist/isolation-D9L650W5.d.ts.map +1 -0
  139. package/dist/json-rpc--HXQti1E.js +350 -0
  140. package/dist/json-rpc--HXQti1E.js.map +1 -0
  141. package/dist/links-j8rED1sR.js +603 -0
  142. package/dist/links-j8rED1sR.js.map +1 -0
  143. package/dist/local-terminal-D8QThwo_.js +252 -0
  144. package/dist/local-terminal-D8QThwo_.js.map +1 -0
  145. package/dist/{logger--C1VQjwJ.js → logger-Gtqlayx8.js} +199 -173
  146. package/dist/logger-Gtqlayx8.js.map +1 -0
  147. package/dist/logs-view-CWG8aUAG.js.map +1 -1
  148. package/dist/{mcp-CgNd-f3F.js → mcp-_wecH9Qe.js} +608 -562
  149. package/dist/mcp-_wecH9Qe.js.map +1 -0
  150. package/dist/mcp.d.ts +2 -2
  151. package/dist/mcp.js +2 -2
  152. package/dist/media-sniff-UKijEaiQ.js.map +1 -1
  153. package/dist/{messages-2jcOA_5R.js → messages-BqiwcD2Q.js} +1017 -1014
  154. package/dist/messages-BqiwcD2Q.js.map +1 -0
  155. package/dist/{oauth-DxHO17JE.js → oauth-Px_pBB9W.js} +5 -5
  156. package/dist/{oauth-DxHO17JE.js.map → oauth-Px_pBB9W.js.map} +1 -1
  157. package/dist/{openai-compat-Dy56weK8.js → openai-compat-CFrpH7uq.js} +432 -589
  158. package/dist/openai-compat-CFrpH7uq.js.map +1 -0
  159. package/dist/orchestration-BCGmB8Ps.js +511 -0
  160. package/dist/orchestration-BCGmB8Ps.js.map +1 -0
  161. package/dist/output/stream-json.d.ts +1 -2
  162. package/dist/output/stream-json.d.ts.map +1 -1
  163. package/dist/output/stream-json.js +1 -1
  164. package/dist/output/terminal.d.ts +1 -2
  165. package/dist/output/terminal.d.ts.map +1 -1
  166. package/dist/output/terminal.js +13 -7
  167. package/dist/output/terminal.js.map +1 -1
  168. package/dist/{plugins-gbI7SBA6.js → plugins-DS7mahzZ.js} +20 -101
  169. package/dist/plugins-DS7mahzZ.js.map +1 -0
  170. package/dist/plugins.d.ts +1 -1
  171. package/dist/plugins.js +1 -2
  172. package/dist/prelude-Cxo4t74B.js +517 -0
  173. package/dist/prelude-Cxo4t74B.js.map +1 -0
  174. package/dist/presets.d.ts +1 -1
  175. package/dist/presets.js +1 -2
  176. package/dist/project-root-B8zADr4o.js +167 -0
  177. package/dist/project-root-B8zADr4o.js.map +1 -0
  178. package/dist/project-user-paths-BSgtrRxl.js +58 -0
  179. package/dist/project-user-paths-BSgtrRxl.js.map +1 -0
  180. package/dist/{prompts-Pqc3JdW_.d.ts → prompts-DYcvqShf.d.ts} +14 -11
  181. package/dist/prompts-DYcvqShf.d.ts.map +1 -0
  182. package/dist/protocol-DnhqqSmE.js +13 -0
  183. package/dist/protocol-DnhqqSmE.js.map +1 -0
  184. package/dist/providers/anthropic.d.ts +2 -2
  185. package/dist/providers/anthropic.js +1 -2
  186. package/dist/providers/arcee.d.ts +1 -1
  187. package/dist/providers/arcee.js +1 -1
  188. package/dist/providers/baseten.d.ts +1 -1
  189. package/dist/providers/baseten.js +1 -1
  190. package/dist/providers/cerebras.d.ts +1 -1
  191. package/dist/providers/cerebras.js +3 -2
  192. package/dist/providers/cerebras.js.map +1 -1
  193. package/dist/providers/local.d.ts +1 -1
  194. package/dist/providers/local.js +1 -1
  195. package/dist/providers/openai-compat.d.ts +1 -1
  196. package/dist/providers/openai-compat.js +1 -2
  197. package/dist/providers/openai.d.ts +1 -1
  198. package/dist/providers/openai.js +15 -12
  199. package/dist/providers/openai.js.map +1 -1
  200. package/dist/providers/openrouter.d.ts +1 -1
  201. package/dist/providers/openrouter.js +3 -2
  202. package/dist/providers/openrouter.js.map +1 -1
  203. package/dist/providers/xai.d.ts +1 -1
  204. package/dist/providers/xai.js +3 -3
  205. package/dist/{providers-BVhnFyiY.js → providers-XUR7F4Hi.js} +4 -4
  206. package/dist/{providers-BVhnFyiY.js.map → providers-XUR7F4Hi.js.map} +1 -1
  207. package/dist/providers.d.ts +1 -1
  208. package/dist/providers.js +4 -4
  209. package/dist/registry-D6ShBWJU.js +5234 -0
  210. package/dist/registry-D6ShBWJU.js.map +1 -0
  211. package/dist/remote-hosts-BtA_9ZGp.js +97 -0
  212. package/dist/remote-hosts-BtA_9ZGp.js.map +1 -0
  213. package/dist/restate.d.ts +2 -3
  214. package/dist/restate.d.ts.map +1 -1
  215. package/dist/restate.js +631 -572
  216. package/dist/restate.js.map +1 -1
  217. package/dist/run-summary-CklLiZ4y.js +288 -0
  218. package/dist/run-summary-CklLiZ4y.js.map +1 -0
  219. package/dist/{sandbox-BH0WQkXn.d.ts → sandbox-C5dR5DwQ.d.ts} +6 -3
  220. package/dist/sandbox-C5dR5DwQ.d.ts.map +1 -0
  221. package/dist/session/sqlite.d.ts +1 -2
  222. package/dist/session/sqlite.d.ts.map +1 -1
  223. package/dist/session/sqlite.js +1 -616
  224. package/dist/session-factory-BUGY5P40.js +1576 -0
  225. package/dist/session-factory-BUGY5P40.js.map +1 -0
  226. package/dist/{session-BqRP1hS7.js → session-xh9JXu6i.js} +94 -52
  227. package/dist/session-xh9JXu6i.js.map +1 -0
  228. package/dist/session.d.ts +1 -1
  229. package/dist/session.js +2 -2
  230. package/dist/settings-keys-Ckf29NeM.js +677 -0
  231. package/dist/settings-keys-Ckf29NeM.js.map +1 -0
  232. package/dist/shell-path-Dqaoow2J.js +412 -0
  233. package/dist/shell-path-Dqaoow2J.js.map +1 -0
  234. package/dist/{skills-BC3dodWp.js → skills-DKqZJm4X.js} +430 -470
  235. package/dist/skills-DKqZJm4X.js.map +1 -0
  236. package/dist/skills.d.ts +2 -2
  237. package/dist/skills.js +1 -2
  238. package/dist/source-mPExaUm8.js +381 -0
  239. package/dist/source-mPExaUm8.js.map +1 -0
  240. package/dist/sqlite-DV1DQzN2.js +698 -0
  241. package/dist/sqlite-DV1DQzN2.js.map +1 -0
  242. package/dist/{src-CkNQKFKr.js → src-BRMYRJib.js} +903 -1121
  243. package/dist/src-BRMYRJib.js.map +1 -0
  244. package/dist/{stdio-DPpBDPx5.js → stdio-C6YyoW3I.js} +4 -4
  245. package/dist/{stdio-DPpBDPx5.js.map → stdio-C6YyoW3I.js.map} +1 -1
  246. package/dist/{stdio-loader-Bbx19dMZ.js → stdio-loader-C830Vg-Z.js} +4 -4
  247. package/dist/{stdio-loader-Bbx19dMZ.js.map → stdio-loader-C830Vg-Z.js.map} +1 -1
  248. package/dist/system-prompt-MNVHatSD.d.ts.map +1 -1
  249. package/dist/timeout-DEaqslLO.d.ts.map +1 -1
  250. package/dist/todo-edits-Dn251YUP.js +1790 -0
  251. package/dist/todo-edits-Dn251YUP.js.map +1 -0
  252. package/dist/{turn-operations-DrbJlpq9.js → tool-formatters-IQFDrdrs.js} +1456 -2120
  253. package/dist/tool-formatters-IQFDrdrs.js.map +1 -0
  254. package/dist/tool-state-Dku6YqAB.js +989 -0
  255. package/dist/tool-state-Dku6YqAB.js.map +1 -0
  256. package/dist/tools/fetch-url.d.ts +1 -2
  257. package/dist/tools/fetch-url.d.ts.map +1 -1
  258. package/dist/tools/fetch-url.js +1 -2
  259. package/dist/tools/prompts.d.ts +1 -1
  260. package/dist/tools/prompts.js +7 -7
  261. package/dist/tools/prompts.js.map +1 -1
  262. package/dist/tools/web-search.d.ts +1 -2
  263. package/dist/tools/web-search.d.ts.map +1 -1
  264. package/dist/tools/web-search.js +2 -2
  265. package/dist/tools/web-search.js.map +1 -1
  266. package/dist/tools-_DnT3AGM.js +578 -0
  267. package/dist/tools-_DnT3AGM.js.map +1 -0
  268. package/dist/tools.d.ts +3 -3
  269. package/dist/tools.js +4 -2
  270. package/dist/tui.d.ts +534 -517
  271. package/dist/tui.d.ts.map +1 -1
  272. package/dist/tui.js +34933 -27243
  273. package/dist/tui.js.map +1 -1
  274. package/dist/turn-operations-B8sokwi5.js +333 -0
  275. package/dist/turn-operations-B8sokwi5.js.map +1 -0
  276. package/dist/turn-operations-DQX5ZZni.d.ts +3089 -0
  277. package/dist/turn-operations-DQX5ZZni.d.ts.map +1 -0
  278. package/dist/types-C7ZFOztE.d.ts +132 -0
  279. package/dist/types-C7ZFOztE.d.ts.map +1 -0
  280. package/dist/types-CH5XpIHw.js +114 -0
  281. package/dist/types-CH5XpIHw.js.map +1 -0
  282. package/dist/{types-CWgENVLY.js → types-Cu0ZGDu9.js} +10 -6
  283. package/dist/types-Cu0ZGDu9.js.map +1 -0
  284. package/dist/types-IqegbJEE.d.ts +624 -0
  285. package/dist/types-IqegbJEE.d.ts.map +1 -0
  286. package/dist/types.d.ts +4 -4
  287. package/dist/types.js +1 -1
  288. package/dist/url-D8HCl65b.js +1259 -0
  289. package/dist/url-D8HCl65b.js.map +1 -0
  290. package/dist/wasm-BVT-j5cl.js +33 -0
  291. package/dist/wasm-BVT-j5cl.js.map +1 -0
  292. package/dist/workspace-exec-stream-SV2R9d5S.js +355 -0
  293. package/dist/workspace-exec-stream-SV2R9d5S.js.map +1 -0
  294. package/dist/ws-CIHMvlSh.js +952 -0
  295. package/dist/ws-CIHMvlSh.js.map +1 -0
  296. package/dist/ws-client-N7NxzvQp.js +230 -0
  297. package/dist/ws-client-N7NxzvQp.js.map +1 -0
  298. package/dist/{xai-CazjStOK.js → xai-CvJTeLrI.js} +165 -5
  299. package/dist/xai-CvJTeLrI.js.map +1 -0
  300. package/dist/xdg-zweed0-t.js +117 -0
  301. package/dist/xdg-zweed0-t.js.map +1 -0
  302. package/docs/ACP.md +52 -0
  303. package/docs/ARCHITECTURE.md +103 -6
  304. package/docs/ARTIFACTS.md +8 -4
  305. package/docs/CHAT.md +165 -14
  306. package/docs/EXECUTION_CONTEXT.md +8 -0
  307. package/docs/EXTENSIONS.md +123 -2
  308. package/docs/HEADLESS.md +2 -0
  309. package/docs/IPC.md +775 -64
  310. package/docs/MACHINES.md +456 -0
  311. package/docs/PANELS.md +3 -0
  312. package/docs/README.md +4 -0
  313. package/docs/RESTATE.md +3 -2
  314. package/docs/RUN_IN_BACKGROUND.md +10 -2
  315. package/docs/SERVER.md +1085 -0
  316. package/docs/SKILL.md +6 -1
  317. package/docs/TERMINAL.md +75 -0
  318. package/docs/TUI.md +65 -14
  319. package/package.json +58 -26
  320. package/scripts/eval.ts +4 -0
  321. package/dist/acp-D-tVyUjw.js.map +0 -1
  322. package/dist/agent-D0zZnGbt.js.map +0 -1
  323. package/dist/anthropic-C2aole0G.js.map +0 -1
  324. package/dist/approvals-DKaJZYlm.js.map +0 -1
  325. package/dist/atomic-write-B7zr1ddF.js.map +0 -1
  326. package/dist/auth-BG2rVKSt.js.map +0 -1
  327. package/dist/completion-core-BRo86R_L.js.map +0 -1
  328. package/dist/contexts/daytona.js.map +0 -1
  329. package/dist/contexts/docker.js.map +0 -1
  330. package/dist/contexts/e2b.js.map +0 -1
  331. package/dist/contexts-CRE9pw07.js.map +0 -1
  332. package/dist/eval.js.map +0 -1
  333. package/dist/format-BF745pLL.js.map +0 -1
  334. package/dist/glob-DluQFSw1.js +0 -270
  335. package/dist/glob-DluQFSw1.js.map +0 -1
  336. package/dist/headless.js.map +0 -1
  337. package/dist/history-search-C4bk1Wz_.js.map +0 -1
  338. package/dist/index-BgN1T3lk.d.ts.map +0 -1
  339. package/dist/index-C37_ppWv.d.ts.map +0 -1
  340. package/dist/index-C6NEd5y_.d.ts.map +0 -1
  341. package/dist/ipc-BKVIIOqH.js +0 -331
  342. package/dist/ipc-BKVIIOqH.js.map +0 -1
  343. package/dist/ipc.d.ts.map +0 -1
  344. package/dist/isolation-Kfoof0MM.d.ts.map +0 -1
  345. package/dist/json-rpc-rSWMUh9b.js +0 -192
  346. package/dist/json-rpc-rSWMUh9b.js.map +0 -1
  347. package/dist/logger--C1VQjwJ.js.map +0 -1
  348. package/dist/mcp-CgNd-f3F.js.map +0 -1
  349. package/dist/messages-2jcOA_5R.js.map +0 -1
  350. package/dist/openai-compat-Dy56weK8.js.map +0 -1
  351. package/dist/output-cap-C9zukcCj.js +0 -100
  352. package/dist/output-cap-C9zukcCj.js.map +0 -1
  353. package/dist/panels-B6gRk4bf.js +0 -789
  354. package/dist/panels-B6gRk4bf.js.map +0 -1
  355. package/dist/plugins-gbI7SBA6.js.map +0 -1
  356. package/dist/prompts-Pqc3JdW_.d.ts.map +0 -1
  357. package/dist/run-summary-BU_NgwUT.js +0 -269
  358. package/dist/run-summary-BU_NgwUT.js.map +0 -1
  359. package/dist/sandbox-BH0WQkXn.d.ts.map +0 -1
  360. package/dist/session/sqlite.js.map +0 -1
  361. package/dist/session-BqRP1hS7.js.map +0 -1
  362. package/dist/shell-path-DfdXrGg9.js +0 -1549
  363. package/dist/shell-path-DfdXrGg9.js.map +0 -1
  364. package/dist/skills-BC3dodWp.js.map +0 -1
  365. package/dist/src-CkNQKFKr.js.map +0 -1
  366. package/dist/todo-edits-UOwgxGKu.js +0 -528
  367. package/dist/todo-edits-UOwgxGKu.js.map +0 -1
  368. package/dist/tool-formatters-DoRLnfuD.d.ts +0 -759
  369. package/dist/tool-formatters-DoRLnfuD.d.ts.map +0 -1
  370. package/dist/transcript-anchors-BeudMbXx.d.ts +0 -1762
  371. package/dist/transcript-anchors-BeudMbXx.d.ts.map +0 -1
  372. package/dist/turn-operations-C8bMBDl_.d.ts +0 -1258
  373. package/dist/turn-operations-C8bMBDl_.d.ts.map +0 -1
  374. package/dist/turn-operations-DrbJlpq9.js.map +0 -1
  375. package/dist/types-CWgENVLY.js.map +0 -1
  376. package/dist/xai-CazjStOK.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-8wsKE2Ln.js","names":[],"sources":["../src/chat/environment.ts"],"sourcesContent":["/**\n * Session environments — WHERE a session's work happens, chosen once at\n * creation: the current checkout (`local`), and — through providers — a git\n * worktree, a container, a remote sandbox.\n *\n * Every environment kind is an {@link EnvironmentProvider}. The host never\n * special-cases a kind; it drives the same lifecycle for all of them:\n *\n * create → `metadata.environment` stamped. A provider with `prepare` starts\n * `provisioning` and the host provisions in the background (slow,\n * fallible, retryable); one without is `ready` immediately.\n * run → `assertEnvironmentReady` gates every agent build; the execution\n * context comes from {@link resolveExecution} (never built inline),\n * cached per session by `execution-cache.ts`.\n * delete → `teardown` when the session owns the environment (a fork shares\n * its parent's without owning it), reporting what it kept.\n *\n * Two directories stay distinct on purpose: `metadata.cwd` is the HOST\n * directory config and discovery read from (`AGENTS.md`, skills, MCPs), and\n * `environment.execCwd` — set only when it differs — is where commands run\n * inside the environment (e.g. `/workspace/repo` in a sandbox). Local and\n * worktree environments run on the host, so theirs is `metadata.cwd`.\n */\nimport type { IsolationPolicy } from '../contexts/isolation'\nimport type { ExecResult, ExecutionContext, ExecutionHandle } from '../contexts/types'\nimport type { JsonValue } from '../types'\n\n// ---------------------------------------------------------------------------\n// Session metadata\n// ---------------------------------------------------------------------------\n\nexport type EnvironmentState = 'provisioning' | 'ready' | 'failed'\n\n/** `metadata.environment` — absent on sessions that predate it (read as local). */\nexport interface SessionEnvironment {\n /** Provider kind: `'local'`, `'worktree'`, `'docker'`, `'e2b'`, … */\n kind: string\n state: EnvironmentState\n /** Where commands run inside the environment, when it isn't `metadata.cwd`. */\n execCwd?: string\n /** Branch the session works on (worktree and remote kinds). */\n branch?: string\n /** What `branch` was cut from. */\n base?: string\n /** Provider-owned state: a worktree path, a sandbox id, a container id. */\n ref?: JsonValue\n /**\n * `false` when the session shares another session's environment (a fork):\n * it runs there but never tears it down. Absent = owned.\n */\n owned?: boolean\n /** Why provisioning failed (`state: 'failed'`). */\n error?: string\n /**\n * The host paused it while idle (`provider.suspend` — a stopped container,\n * a paused sandbox). Still `ready`: the next run resumes it.\n */\n suspended?: boolean\n}\n\nexport const ENVIRONMENT_METADATA_KEY = 'environment'\n\nexport const LOCAL_ENVIRONMENT: SessionEnvironment = { kind: 'local', state: 'ready' }\n\nconst STATES: ReadonlySet<string> = new Set(['provisioning', 'ready', 'failed'])\n\n/**\n * The session's environment, from its metadata. Tolerant: absent or\n * malformed reads as {@link LOCAL_ENVIRONMENT} — what every session was\n * before environments existed.\n */\nexport function readSessionEnvironment(metadata: Record<string, unknown> | undefined): SessionEnvironment {\n const raw = metadata?.[ENVIRONMENT_METADATA_KEY]\n if (!raw || typeof raw !== 'object' || Array.isArray(raw))\n return LOCAL_ENVIRONMENT\n const record = raw as Record<string, unknown>\n if (typeof record.kind !== 'string' || !record.kind || typeof record.state !== 'string' || !STATES.has(record.state))\n return LOCAL_ENVIRONMENT\n return {\n kind: record.kind,\n state: record.state as EnvironmentState,\n ...(typeof record.execCwd === 'string' && record.execCwd ? { execCwd: record.execCwd } : {}),\n ...(typeof record.branch === 'string' && record.branch ? { branch: record.branch } : {}),\n ...(typeof record.base === 'string' && record.base ? { base: record.base } : {}),\n ...(record.ref !== undefined ? { ref: record.ref as JsonValue } : {}),\n ...(record.owned === false ? { owned: false } : {}),\n ...(typeof record.error === 'string' && record.error ? { error: record.error } : {}),\n ...(record.suspended === true ? { suspended: true } : {}),\n }\n}\n\n/** The metadata patch that persists `environment` (plain JSON, `undefined` keys dropped). */\nexport function environmentMetadata(environment: SessionEnvironment): Record<string, unknown> {\n return { [ENVIRONMENT_METADATA_KEY]: JSON.parse(JSON.stringify(environment)) as JsonValue }\n}\n\n/** A session whose environment can't run yet (provisioning) or can't run at all (failed). */\nexport class EnvironmentNotReadyError extends Error {\n readonly state: EnvironmentState\n constructor(environment: SessionEnvironment) {\n super(environment.state === 'failed'\n ? `The session's ${environment.kind} environment failed to provision${environment.error ? `: ${environment.error}` : '.'} Retry it or delete the session.`\n : `The session's ${environment.kind} environment is still being set up. Try again once it is ready.`)\n this.name = 'EnvironmentNotReadyError'\n this.state = environment.state\n }\n}\n\n/** Throws {@link EnvironmentNotReadyError} unless the environment can run. */\nexport function assertEnvironmentReady(environment: SessionEnvironment): void {\n if (environment.state !== 'ready')\n throw new EnvironmentNotReadyError(environment)\n}\n\n// ---------------------------------------------------------------------------\n// Providers\n// ---------------------------------------------------------------------------\n\n/** A provider option's value, as stored in settings (secrets resolve to strings). */\nexport type EnvironmentConfigValue = string | number | boolean\n\n/** A kind's resolved options — see `environment-settings.ts` (`resolveProviderConfig`). */\nexport type EnvironmentConfig = Readonly<Record<string, EnvironmentConfigValue | undefined>>\n\n/**\n * One option a provider declares. Settings UIs render these generically\n * (no per-kind UI code); `environment-settings.ts` stores, validates and\n * resolves them.\n */\nexport interface EnvironmentConfigField {\n key: string\n label: string\n description?: string\n /**\n * `secret` values never live in `state.json`: they go to the 0600\n * environment credential store and reach clients only as \"configured\".\n */\n type: 'boolean' | 'string' | 'number' | 'choice' | 'path' | 'secret'\n default?: EnvironmentConfigValue\n /** `type: 'choice'` options; `description` is the one-line detail pickers show under the label. */\n choices?: readonly { value: string, label: string, description?: string }[]\n placeholder?: string\n /** Environment variable that stands in when unset (e.g. `E2B_API_KEY`). */\n env?: string\n /**\n * The value lives in this top-level `Settings` key instead of the kind's\n * own config — for options that predate environments (Local's OS\n * sandbox), so there is one source of truth.\n */\n setting?: string\n /** Only meaningful while another field has this value (hidden otherwise). */\n when?: { key: string, equals: EnvironmentConfigValue }\n}\n\nexport interface EnvironmentPrepareInput {\n sessionId: string\n /** The session's host directory (`metadata.cwd`). */\n cwd: string\n /** The environment as stamped at creation (`state: 'provisioning'`). */\n environment: SessionEnvironment\n config: EnvironmentConfig\n signal?: AbortSignal\n}\n\nexport interface EnvironmentPrepareResult {\n /** Fields to merge into the environment (`ref`, `execCwd`, resolved `branch`…). */\n environment?: Partial<Omit<SessionEnvironment, 'kind' | 'state' | 'error'>>\n /**\n * New host directory for the session — a worktree provider returns the\n * worktree it created. Config, discovery and a host-run context follow it.\n */\n cwd?: string\n}\n\nexport interface EnvironmentExecutionInput {\n sessionId: string\n /** The session's resolved host directory. */\n cwd: string\n environment: SessionEnvironment\n config: EnvironmentConfig\n /** OS sandbox policy from settings — meaningful for host-run kinds only. */\n isolation?: IsolationPolicy\n}\n\nexport interface EnvironmentExecution {\n /**\n * Everything the context is configured with. The session's cached context\n * is reused while this is unchanged; a new key replaces it.\n */\n key: string\n create: () => ExecutionContext\n /**\n * The directory the model is told it works in, when it isn't the host\n * `cwd` (inside a sandbox). Hosts use it for the prompt's environment\n * section; tools resolve against the handle's cwd regardless.\n */\n promptCwd?: string\n}\n\nexport interface EnvironmentTeardownResult {\n /** The environment is gone (or there was nothing to remove). */\n removed: boolean\n /** Why it was kept — surfaced to the user (e.g. \"has uncommitted changes\"). */\n reason?: string\n}\n\nexport type EnvironmentAvailability = { ok: true } | { ok: false, reason: string }\n\n/** \"Test connection\" outcome — `detail` is what it connected to (account, region, version). */\nexport type EnvironmentVerifyResult = { ok: true, detail?: string } | { ok: false, reason: string }\n\nexport interface EnvironmentActionInput {\n sessionId: string\n environment: SessionEnvironment\n config: EnvironmentConfig\n /** The session's host directory (`metadata.cwd`). */\n cwd: string\n /** Run a command in the session's environment — its execution handle, spawned (or resumed) on demand. */\n exec: (command: string, options?: { cwd?: string, env?: Record<string, string>, timeoutSeconds?: number }) => Promise<ExecResult>\n}\n\nexport interface EnvironmentActionResult {\n /** One line for the user (\"Pushed zidane/ab12 to origin.\"). */\n message: string\n /** Something to open — a pull request. */\n url?: string\n}\n\n/** Wire-safe {@link EnvironmentAction} — what session menus list. */\nexport interface EnvironmentActionSummary {\n id: string\n label: string\n description?: string\n}\n\n/** A per-session command a kind offers (session menus): push the branch, open a PR, … */\nexport interface EnvironmentAction {\n id: string\n label: string\n description?: string\n /** Offered for this environment right now. Default: whenever it is ready. */\n available?: (environment: SessionEnvironment, config: EnvironmentConfig) => boolean\n run: (input: EnvironmentActionInput) => Promise<EnvironmentActionResult>\n}\n\nexport interface EnvironmentAvailabilityInput {\n /** The folder a session would be created in (`''` = directory-less). */\n cwd: string\n config: EnvironmentConfig\n}\n\nexport interface EnvironmentProvider {\n kind: string\n /** Human label for pickers. */\n label: string\n /** One line for pickers and settings. */\n description?: string\n /** Options the kind takes — rendered by the Environments settings section. */\n configSchema?: readonly EnvironmentConfigField[]\n /**\n * Hidden from pickers until turned on in Settings → Environments — kinds\n * that need setting up first (a Docker install, a sandbox account).\n */\n offByDefault?: boolean\n /**\n * Whether the creator names a branch (worktree, a fresh-worktree\n * container, remote sandboxes). Pickers show a branch field when true.\n */\n takesBranch?: boolean | ((config: EnvironmentConfig) => boolean)\n /**\n * Suggested branch for a new session — pickers pre-fill it and the host\n * uses it when the creator leaves the branch empty.\n */\n suggestBranch?: (config: EnvironmentConfig) => string\n /**\n * Whether it can be offered right now for that folder (credentials,\n * binaries, git, a reachable daemon). Default: available.\n */\n available?: (input: EnvironmentAvailabilityInput) => EnvironmentAvailability | Promise<EnvironmentAvailability>\n /**\n * One line pickers show under the kind when it's available for `cwd` —\n * what creating one will do (\"Clones acme/app, branching off main\").\n */\n note?: (input: EnvironmentAvailabilityInput) => Promise<string | undefined>\n /**\n * The kind's folders are not on this host (a machine's,\n * `docs/MACHINES.md`): the host checks a new session's folder with this\n * (returning it, normalized, or throwing) instead of its own workspace\n * confinement. Absent → the host's confinement applies.\n */\n checkFolder?: (cwd: string) => string\n /** The machine behind a machine kind, `undefined` once it is forgotten (the kind is then not listed). */\n machine?: () => { id: string, name: string, status: 'online' | 'offline' } | undefined\n /**\n * Make the environment exist. Absent → ready at creation. Must be\n * idempotent: a retry (after a failure or a host restart mid-provisioning)\n * runs it again over whatever a previous attempt left behind.\n */\n prepare?: (input: EnvironmentPrepareInput) => Promise<EnvironmentPrepareResult>\n /** The execution context for a ready environment. */\n execution: (input: EnvironmentExecutionInput) => EnvironmentExecution\n /**\n * \"Test connection\" for the settings UIs: one cheap real call with the\n * current options (ping the daemon, list sandboxes). Absent → no button.\n */\n verify?: (input: { config: EnvironmentConfig }) => Promise<EnvironmentVerifyResult>\n /** Per-session commands, shown in the session menus. */\n actions?: readonly EnvironmentAction[]\n /**\n * Minutes of inactivity after which the host lets go of an idle session's\n * execution (a container is removed) and calls {@link suspend} when\n * present (a sandbox is paused). Absent or `<= 0` → only on host exit /\n * eviction.\n */\n idleSuspendMinutes?: (config: EnvironmentConfig) => number | undefined\n /**\n * The host let go of the session's execution while the session lives on\n * (idle eviction, host exit): pause what costs money while idle (a\n * remote sandbox). The next `execution` resumes it. Absent → nothing to do.\n */\n suspend?: (environment: SessionEnvironment, context: { config: EnvironmentConfig }) => Promise<void>\n /**\n * Remove the environment when its owning session is deleted. Decides what\n * \"safe\" means (a dirty worktree is kept, a sandbox is killed). Absent →\n * nothing to remove.\n */\n teardown?: (environment: SessionEnvironment, context: { cwd: string, config: EnvironmentConfig }) => Promise<EnvironmentTeardownResult>\n}\n\n/** Whether `provider` takes a branch under `config`. */\nexport function environmentTakesBranch(provider: EnvironmentProvider, config: EnvironmentConfig): boolean {\n return typeof provider.takesBranch === 'function' ? provider.takesBranch(config) : provider.takesBranch === true\n}\n\nexport interface EnvironmentRegistry {\n get: (kind: string) => EnvironmentProvider | undefined\n list: () => readonly EnvironmentProvider[]\n /** Add a provider. A kind already registered keeps the first registration. */\n register: (provider: EnvironmentProvider) => void\n}\n\n/**\n * A registry of `providers`. Hosts pass the chat layer's built-ins\n * (`builtinEnvironmentProviders`, which include `local`) plus any extras; a\n * registry without `local` can still create local sessions (an absent\n * environment IS local) but can't resolve their execution.\n */\nexport function createEnvironmentRegistry(providers: readonly EnvironmentProvider[] = []): EnvironmentRegistry {\n const byKind = new Map<string, EnvironmentProvider>()\n const registry: EnvironmentRegistry = {\n get: kind => byKind.get(kind),\n list: () => [...byKind.values()],\n register: (provider) => {\n if (!byKind.has(provider.kind))\n byKind.set(provider.kind, provider)\n },\n }\n for (const provider of providers)\n registry.register(provider)\n return registry\n}\n\n/** The provider for `kind`, or a clear error — an unknown kind can't run anywhere. */\nexport function requireEnvironmentProvider(registry: EnvironmentRegistry, kind: string): EnvironmentProvider {\n const provider = registry.get(kind)\n if (!provider)\n throw new Error(`Unknown session environment \"${kind}\". Is the extension that provides it enabled?`)\n return provider\n}\n\n/**\n * THE way a host gets a session's execution context: its environment's\n * provider decides. The key is namespaced by kind so two providers can't\n * collide on the same configuration string.\n */\nexport function resolveExecution(registry: EnvironmentRegistry, input: EnvironmentExecutionInput): EnvironmentExecution {\n const execution = requireEnvironmentProvider(registry, input.environment.kind).execution(input)\n return { ...execution, key: `${input.environment.kind}:${execution.key}` }\n}\n\n/** The actions `environment`'s kind offers for it right now (a ready, owned-or-shared environment). */\nexport function availableEnvironmentActions(\n registry: EnvironmentRegistry,\n environment: SessionEnvironment,\n config: EnvironmentConfig,\n): EnvironmentAction[] {\n if (environment.state !== 'ready')\n return []\n return (registry.get(environment.kind)?.actions ?? [])\n .filter(action => action.available?.(environment, config) ?? true)\n}\n\n/** {@link availableEnvironmentActions}, wire-safe. */\nexport function environmentActionSummaries(registry: EnvironmentRegistry, environment: SessionEnvironment, config: EnvironmentConfig): EnvironmentActionSummary[] {\n return availableEnvironmentActions(registry, environment, config)\n .map(({ id, label, description }) => ({ id, label, ...(description ? { description } : {}) }))\n}\n\n/**\n * Run `actionId` for a session on `execution` — the session's own (hosts pass\n * the cached one, so the action runs exactly where the agent does). Throws\n * when the environment isn't ready or doesn't offer the action.\n */\nexport async function runSessionEnvironmentAction(input: {\n registry: EnvironmentRegistry\n sessionId: string\n actionId: string\n environment: SessionEnvironment\n config: EnvironmentConfig\n cwd: string\n execution: { context: ExecutionContext, handle: () => Promise<ExecutionHandle> }\n}): Promise<EnvironmentActionResult> {\n const { registry, sessionId, actionId, environment, config, cwd, execution } = input\n assertEnvironmentReady(environment)\n const action = availableEnvironmentActions(registry, environment, config).find(candidate => candidate.id === actionId)\n if (!action)\n throw new Error(`\"${actionId}\" isn't available for this session's environment.`)\n return action.run({\n sessionId,\n environment,\n config,\n cwd,\n exec: async (command, options) => execution.context.exec(await execution.handle(), command, {\n ...(options?.cwd ? { cwd: options.cwd } : {}),\n ...(options?.env ? { env: options.env } : {}),\n ...(options?.timeoutSeconds ? { timeout: options.timeoutSeconds } : {}),\n }),\n })\n}\n\n/** \"Test connection\" for `kind`; a throwing or missing `verify` reads as a failure with the reason. */\nexport async function verifyEnvironment(registry: EnvironmentRegistry, kind: string, config: EnvironmentConfig): Promise<EnvironmentVerifyResult> {\n const provider = registry.get(kind)\n if (!provider?.verify)\n return { ok: false, reason: provider ? `${provider.label} has no connection to test.` : `Unknown environment \"${kind}\".` }\n try {\n return await provider.verify({ config })\n }\n catch (err) {\n return { ok: false, reason: err instanceof Error ? err.message : String(err) }\n }\n}\n\n/**\n * `path` in a session workspace rooted at `root` (POSIX resolve): relative\n * paths against `root`, absolute paths as given. The same resolution the\n * execution contexts apply against their handle's cwd, so a workspace call\n * means what the agent's own tools mean; containment is the context's own\n * (sandboxes confine to their workspace root, the local process context\n * doesn't). Clients that must stay inside the workspace (the GUI's file\n * panels) guard their paths themselves.\n */\nexport function workspacePath(root: string, path: string): string {\n const resolved: string[] = []\n for (const segment of `${path.startsWith('/') ? '' : root}/${path}`.split('/')) {\n if (!segment || segment === '.')\n continue\n if (segment === '..')\n resolved.pop()\n else\n resolved.push(segment)\n }\n return `/${resolved.join('/')}`\n}\n\n/** What a creator asks for — the host turns it into a {@link SessionEnvironment}. */\nexport interface EnvironmentRequest {\n kind: string\n branch?: string\n base?: string\n}\n\n/** Whether `provider` can be offered for `input`; a throwing probe reads as unavailable. */\nexport async function probeEnvironment(provider: EnvironmentProvider, input: EnvironmentAvailabilityInput): Promise<EnvironmentAvailability> {\n try {\n return (await provider.available?.(input)) ?? { ok: true }\n }\n catch (err) {\n return { ok: false, reason: err instanceof Error ? err.message : String(err) }\n }\n}\n\n/**\n * The environment to stamp on a new session: `ready` for a provider without\n * `prepare`, `provisioning` otherwise; a branch-taking kind gets the\n * requested branch or the provider's suggestion. Throws for an unknown or\n * unavailable kind — creation must fail loudly rather than produce a session\n * that can never run.\n */\nexport async function initialEnvironment(\n registry: EnvironmentRegistry,\n request: EnvironmentRequest,\n context: EnvironmentAvailabilityInput,\n): Promise<SessionEnvironment> {\n const provider = requireEnvironmentProvider(registry, request.kind)\n const availability = await probeEnvironment(provider, context)\n if (!availability.ok)\n throw new Error(`The ${provider.label} environment is unavailable: ${availability.reason}`)\n const branch = environmentTakesBranch(provider, context.config)\n ? (request.branch?.trim() || provider.suggestBranch?.(context.config))\n : undefined\n return {\n kind: request.kind,\n state: provider.prepare ? 'provisioning' : 'ready',\n ...(branch ? { branch } : {}),\n ...(request.base ? { base: request.base } : {}),\n }\n}\n\n/**\n * Remove a deleted session's environment when it owns one. Never throws —\n * a teardown failure must not block the delete; it comes back as a kept\n * result with the reason.\n */\nexport async function teardownSessionEnvironment(\n registry: EnvironmentRegistry,\n metadata: Record<string, unknown> | undefined,\n context: { cwd: string, config: (kind: string) => EnvironmentConfig },\n): Promise<EnvironmentTeardownResult> {\n const environment = readSessionEnvironment(metadata)\n const provider = registry.get(environment.kind)\n if (environment.owned === false || !provider?.teardown)\n return { removed: true }\n try {\n return await provider.teardown(environment, { cwd: context.cwd, config: context.config(environment.kind) })\n }\n catch (err) {\n return { removed: false, reason: err instanceof Error ? err.message : String(err) }\n }\n}\n"],"mappings":"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"}