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
@@ -1,6 +1,6 @@
1
- import { dirname } from "node:path";
2
1
  import { Buffer } from "node:buffer";
3
2
  import { closeSync, fsyncSync, mkdirSync, openSync, renameSync, unlinkSync, writeSync } from "node:fs";
3
+ import { dirname } from "node:path";
4
4
  import { mkdir, open, rename, rm } from "node:fs/promises";
5
5
  //#region src/atomic-write.ts
6
6
  /**
@@ -20,7 +20,13 @@ import { mkdir, open, rename, rm } from "node:fs/promises";
20
20
  * `ensureDir` runs `mkdirSync(dirname(path), { recursive: true })` before
21
21
  * the write so callers don't have to repeat the boilerplate. `mode` is
22
22
  * forwarded to the file open (e.g. `0o600` for credentials files).
23
+ * {@link writeJsonFileAtomic} is the JSON-document shape most callers write.
23
24
  */
25
+ /** A secret or private state file: parent created, owner read/write only. */
26
+ const OWNER_ONLY = {
27
+ ensureDir: true,
28
+ mode: 384
29
+ };
24
30
  let tmpCounter = 0;
25
31
  function nextTmpPath(path) {
26
32
  tmpCounter = (tmpCounter + 1) % Number.MAX_SAFE_INTEGER;
@@ -64,6 +70,10 @@ function writeFileAtomic(path, contents, options = {}) {
64
70
  throw err;
65
71
  }
66
72
  }
73
+ /** `value` as indented JSON with a trailing newline, written by {@link writeFileAtomic}. */
74
+ function writeJsonFileAtomic(path, value, options = {}) {
75
+ writeFileAtomic(path, `${JSON.stringify(value, null, 2)}\n`, options);
76
+ }
67
77
  /**
68
78
  * Async variant of {@link writeFileAtomic} — same tmp-suffix, fsync and
69
79
  * cleanup-on-failure semantics over `node:fs/promises`. Used by writers
@@ -95,6 +105,6 @@ async function writeFileAtomicAsync(path, contents, options = {}) {
95
105
  }
96
106
  }
97
107
  //#endregion
98
- export { writeFileAtomicAsync as n, writeFileAtomic as t };
108
+ export { writeJsonFileAtomic as i, writeFileAtomic as n, writeFileAtomicAsync as r, OWNER_ONLY as t };
99
109
 
100
- //# sourceMappingURL=atomic-write-B7zr1ddF.js.map
110
+ //# sourceMappingURL=atomic-write-Ijgf2Mhc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-write-Ijgf2Mhc.js","names":[],"sources":["../src/atomic-write.ts"],"sourcesContent":["/**\n * Synchronous atomic file write helper.\n *\n * Used by the chat-layer state / safelist / credentials / keybindings writers\n * and the OAuth credentials store. The pattern is always the same: write to a\n * sibling temp file, fsync it, then `renameSync` over the target. `rename(2)`\n * is atomic on the same filesystem, so concurrent readers either see the\n * previous file or the new one — never a half-written intermediate. The fsync\n * before the rename ensures the temp file's bytes are on disk before it takes\n * the target's place (without it, a power loss shortly after rename can leave\n * a zero-length or partial target on some filesystems). The temp suffix folds\n * `process.pid` + a per-process monotonic counter so two writers — same\n * process or same-millisecond siblings — can't pick the same tmp path.\n *\n * `ensureDir` runs `mkdirSync(dirname(path), { recursive: true })` before\n * the write so callers don't have to repeat the boilerplate. `mode` is\n * forwarded to the file open (e.g. `0o600` for credentials files).\n * {@link writeJsonFileAtomic} is the JSON-document shape most callers write.\n */\n\nimport { Buffer } from 'node:buffer'\nimport { closeSync, fsyncSync, mkdirSync, openSync, renameSync, unlinkSync, writeSync } from 'node:fs'\nimport { mkdir, open, rename, rm } from 'node:fs/promises'\nimport { dirname } from 'node:path'\n\nexport interface AtomicWriteOptions {\n /** When set, create the parent directory recursively before writing. */\n ensureDir?: boolean\n /** Forwarded to the file open — typically `0o600` for credentials files. */\n mode?: number\n}\n\n/** A secret or private state file: parent created, owner read/write only. */\nexport const OWNER_ONLY: Readonly<AtomicWriteOptions> = { ensureDir: true, mode: 0o600 }\n\nlet tmpCounter = 0\n\nfunction nextTmpPath(path: string): string {\n tmpCounter = (tmpCounter + 1) % Number.MAX_SAFE_INTEGER\n return `${path}.${process.pid}.${tmpCounter.toString(36)}.tmp`\n}\n\n/**\n * Best-effort fsync of the directory containing `path`, so the rename\n * itself (the directory entry) is durable. Wrapped in try/catch: opening\n * a directory for fsync fails on some platforms (notably Windows) and\n * durability of the entry is a nice-to-have on top of the data fsync.\n */\nfunction fsyncDirSync(path: string): void {\n try {\n const fd = openSync(dirname(path), 'r')\n try {\n fsyncSync(fd)\n }\n finally {\n closeSync(fd)\n }\n }\n catch { /* platform doesn't support directory fsync */ }\n}\n\nexport function writeFileAtomic(\n path: string,\n contents: string,\n options: AtomicWriteOptions = {},\n): void {\n if (options.ensureDir)\n mkdirSync(dirname(path), { recursive: true })\n const tmp = nextTmpPath(path)\n try {\n const fd = openSync(tmp, 'w', options.mode)\n try {\n const buf = Buffer.from(contents, 'utf8')\n let offset = 0\n while (offset < buf.length)\n offset += writeSync(fd, buf, offset)\n // Flush data to disk BEFORE the rename — otherwise a crash after\n // rename could leave the target pointing at not-yet-persisted bytes.\n fsyncSync(fd)\n }\n finally {\n closeSync(fd)\n }\n renameSync(tmp, path)\n fsyncDirSync(path)\n }\n catch (err) {\n // Don't leak the temp file when the write or rename throws (disk full,\n // permission flip, target dir removed).\n try {\n unlinkSync(tmp)\n }\n catch { /* never created or already gone */ }\n throw err\n }\n}\n\n/** `value` as indented JSON with a trailing newline, written by {@link writeFileAtomic}. */\nexport function writeJsonFileAtomic(path: string, value: unknown, options: AtomicWriteOptions = {}): void {\n writeFileAtomic(path, `${JSON.stringify(value, null, 2)}\\n`, options)\n}\n\n/**\n * Async variant of {@link writeFileAtomic} — same tmp-suffix, fsync and\n * cleanup-on-failure semantics over `node:fs/promises`. Used by writers\n * that already live on the async path (e.g. loop persistence blobs).\n */\nexport async function writeFileAtomicAsync(\n path: string,\n contents: string,\n options: AtomicWriteOptions = {},\n): Promise<void> {\n if (options.ensureDir)\n await mkdir(dirname(path), { recursive: true })\n const tmp = nextTmpPath(path)\n try {\n const fh = await open(tmp, 'w', options.mode)\n try {\n await fh.writeFile(contents, 'utf8')\n await fh.sync()\n }\n finally {\n await fh.close()\n }\n await rename(tmp, path)\n try {\n const dh = await open(dirname(path), 'r')\n try {\n await dh.sync()\n }\n finally {\n await dh.close()\n }\n }\n catch { /* platform doesn't support directory fsync */ }\n }\n catch (err) {\n await rm(tmp, { force: true }).catch(() => {})\n throw err\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,aAA2C;CAAE,WAAW;CAAM,MAAM;AAAM;AAEvF,IAAI,aAAa;AAEjB,SAAS,YAAY,MAAsB;CACzC,cAAc,aAAa,KAAK,OAAO;CACvC,OAAO,GAAG,KAAK,GAAG,QAAQ,IAAI,GAAG,WAAW,SAAS,EAAE,EAAE;AAC3D;;;;;;;AAQA,SAAS,aAAa,MAAoB;CACxC,IAAI;EACF,MAAM,KAAK,SAAS,QAAQ,IAAI,GAAG,GAAG;EACtC,IAAI;GACF,UAAU,EAAE;EACd,UACQ;GACN,UAAU,EAAE;EACd;CACF,QACM,CAAiD;AACzD;AAEA,SAAgB,gBACd,MACA,UACA,UAA8B,CAAC,GACzB;CACN,IAAI,QAAQ,WACV,UAAU,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;CAC9C,MAAM,MAAM,YAAY,IAAI;CAC5B,IAAI;EACF,MAAM,KAAK,SAAS,KAAK,KAAK,QAAQ,IAAI;EAC1C,IAAI;GACF,MAAM,MAAM,OAAO,KAAK,UAAU,MAAM;GACxC,IAAI,SAAS;GACb,OAAO,SAAS,IAAI,QAClB,UAAU,UAAU,IAAI,KAAK,MAAM;GAGrC,UAAU,EAAE;EACd,UACQ;GACN,UAAU,EAAE;EACd;EACA,WAAW,KAAK,IAAI;EACpB,aAAa,IAAI;CACnB,SACO,KAAK;EAGV,IAAI;GACF,WAAW,GAAG;EAChB,QACM,CAAsC;EAC5C,MAAM;CACR;AACF;;AAGA,SAAgB,oBAAoB,MAAc,OAAgB,UAA8B,CAAC,GAAS;CACxG,gBAAgB,MAAM,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE,KAAK,OAAO;AACtE;;;;;;AAOA,eAAsB,qBACpB,MACA,UACA,UAA8B,CAAC,GAChB;CACf,IAAI,QAAQ,WACV,MAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;CAChD,MAAM,MAAM,YAAY,IAAI;CAC5B,IAAI;EACF,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,QAAQ,IAAI;EAC5C,IAAI;GACF,MAAM,GAAG,UAAU,UAAU,MAAM;GACnC,MAAM,GAAG,KAAK;EAChB,UACQ;GACN,MAAM,GAAG,MAAM;EACjB;EACA,MAAM,OAAO,KAAK,IAAI;EACtB,IAAI;GACF,MAAM,KAAK,MAAM,KAAK,QAAQ,IAAI,GAAG,GAAG;GACxC,IAAI;IACF,MAAM,GAAG,KAAK;GAChB,UACQ;IACN,MAAM,GAAG,MAAM;GACjB;EACF,QACM,CAAiD;CACzD,SACO,KAAK;EACV,MAAM,GAAG,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;EAC7C,MAAM;CACR;AACF"}
@@ -0,0 +1,70 @@
1
+ import { toolPrompts } from "./tools/prompts.js";
2
+ //#region src/tools/call-tool.ts
3
+ const CALL_TOOL_NAME = "call_tool";
4
+ /**
5
+ * Unwrap a `call_tool` envelope. `null` when `name` is not the dispatcher or
6
+ * the envelope is malformed (missing / non-string `name`, non-object
7
+ * `arguments`) — callers then treat the call as a plain `call_tool` call and
8
+ * let the dispatcher's own schema validation produce the error the model
9
+ * needs to fix its input.
10
+ *
11
+ * `arguments` may be omitted for zero-argument tools: it defaults to `{}`.
12
+ */
13
+ function unwrapCallTool(name, input) {
14
+ if (name !== "call_tool") return null;
15
+ if (!input || typeof input !== "object" || Array.isArray(input)) return null;
16
+ const { name: inner, arguments: args } = input;
17
+ if (typeof inner !== "string" || inner.length === 0) return null;
18
+ if (args === void 0) return {
19
+ name: inner,
20
+ input: {}
21
+ };
22
+ if (!args || typeof args !== "object" || Array.isArray(args)) return null;
23
+ return {
24
+ name: inner,
25
+ input: args
26
+ };
27
+ }
28
+ /**
29
+ * Build the dispatcher ToolDef. The loop rewrites every envelope around a
30
+ * lazy catalog tool into the inner call before dispatch, so `execute` only
31
+ * runs for envelopes it refused: an inner tool that is not a catalog entry
32
+ * (eager tools are called directly, so their history stays scannable by
33
+ * name) or a malformed shape that slipped past schema validation.
34
+ */
35
+ function createCallToolTool(options = {}) {
36
+ const discovery = options.discoveryToolName ?? "tool_search";
37
+ const isDispatchable = options.isDispatchable ?? (() => true);
38
+ return {
39
+ isConcurrencySafe: false,
40
+ spec: {
41
+ name: CALL_TOOL_NAME,
42
+ description: toolPrompts.call_tool(discovery),
43
+ inputSchema: {
44
+ type: "object",
45
+ properties: {
46
+ name: {
47
+ type: "string",
48
+ description: "Tool name exactly as shown in <searchable_tools> / the tool_search result."
49
+ },
50
+ arguments: {
51
+ type: "object",
52
+ description: "Input for the tool, matching its schema. Omit for zero-argument tools.",
53
+ additionalProperties: true
54
+ }
55
+ },
56
+ required: ["name"],
57
+ additionalProperties: false
58
+ }
59
+ },
60
+ async execute(input) {
61
+ const target = input.name;
62
+ if (typeof target === "string" && target.length > 0 && !isDispatchable(target)) throw new Error(`call_tool: "${target}" is not listed in <searchable_tools>. Call it directly by name if it is one of your tools; call_tool is only for surfaced catalog tools.`);
63
+ throw new Error(`call_tool: malformed envelope for ${typeof target === "string" ? `"${target}"` : "unknown tool"}: expected \`name\` (string) and optional \`arguments\` (object).`);
64
+ }
65
+ };
66
+ }
67
+ //#endregion
68
+ export { createCallToolTool as n, unwrapCallTool as r, CALL_TOOL_NAME as t };
69
+
70
+ //# sourceMappingURL=call-tool-dHlbGOIY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-tool-dHlbGOIY.js","names":[],"sources":["../src/tools/call-tool.ts"],"sourcesContent":["/**\n * `call_tool` — the stable-tools dispatcher for lazy tool disclosure\n * (`behavior.toolSearch.mode === 'dispatch'`).\n *\n * In the default `'unlock'` mode every successful `tool_search` appends the\n * surfaced schemas to the wire-level `tools` array. Providers hash the\n * request prefix as `tools → system → messages`, so any change to `tools`\n * re-bills the system prompt and the whole conversation — one full\n * prompt-cache rewrite per discovery wave, on the most expensive part of\n * the context.\n *\n * Dispatch mode keeps the wire `tools` array byte-stable for the run: the\n * schema still lands in the transcript through the `tool_search` result,\n * but the model invokes the tool through this fixed `call_tool { name,\n * arguments }` envelope. The loop unwraps the envelope BEFORE dispatch, so\n * gating, argument validation (against the inner tool's own `inputSchema`),\n * hooks, telemetry and transcript events all see the inner tool — a\n * `call_tool` call looks exactly like a direct call everywhere except in\n * the persisted assistant turn, which keeps the wire-valid envelope.\n */\n\nimport type { ToolDef } from './types'\nimport { toolPrompts } from './prompts'\n\nexport const CALL_TOOL_NAME = 'call_tool'\n\n/** The inner call a `call_tool` envelope carries. */\nexport interface UnwrappedToolCall {\n /** Inner tool name exactly as the model wrote it (a wire name). */\n name: string\n input: Record<string, unknown>\n}\n\n/**\n * Unwrap a `call_tool` envelope. `null` when `name` is not the dispatcher or\n * the envelope is malformed (missing / non-string `name`, non-object\n * `arguments`) — callers then treat the call as a plain `call_tool` call and\n * let the dispatcher's own schema validation produce the error the model\n * needs to fix its input.\n *\n * `arguments` may be omitted for zero-argument tools: it defaults to `{}`.\n */\nexport function unwrapCallTool(name: string, input: unknown): UnwrappedToolCall | null {\n if (name !== CALL_TOOL_NAME)\n return null\n if (!input || typeof input !== 'object' || Array.isArray(input))\n return null\n const { name: inner, arguments: args } = input as { name?: unknown, arguments?: unknown }\n if (typeof inner !== 'string' || inner.length === 0)\n return null\n if (args === undefined)\n return { name: inner, input: {} }\n if (!args || typeof args !== 'object' || Array.isArray(args))\n return null\n return { name: inner, input: args as Record<string, unknown> }\n}\n\nexport interface CallToolOptions {\n /** Wire name of the discovery tool the description points at. Default `tool_search`. */\n discoveryToolName?: string\n /**\n * Whether a wire name is a lazy catalog entry the envelope may carry. The\n * loop only unwraps those; anything else (an eager native tool, a typo)\n * reaches `execute`, which uses this to word the refusal.\n */\n isDispatchable?: (wireName: string) => boolean\n}\n\n/**\n * Build the dispatcher ToolDef. The loop rewrites every envelope around a\n * lazy catalog tool into the inner call before dispatch, so `execute` only\n * runs for envelopes it refused: an inner tool that is not a catalog entry\n * (eager tools are called directly, so their history stays scannable by\n * name) or a malformed shape that slipped past schema validation.\n */\nexport function createCallToolTool(options: CallToolOptions = {}): ToolDef {\n const discovery = options.discoveryToolName ?? 'tool_search'\n const isDispatchable = options.isDispatchable ?? (() => true)\n return {\n // Concurrency is a property of the INNER tool; the loop dispatches the\n // unwrapped call, so this flag is never consulted for a real call.\n isConcurrencySafe: false,\n spec: {\n name: CALL_TOOL_NAME,\n description: toolPrompts.call_tool(discovery),\n inputSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: 'Tool name exactly as shown in <searchable_tools> / the tool_search result.',\n },\n arguments: {\n type: 'object',\n description: 'Input for the tool, matching its schema. Omit for zero-argument tools.',\n additionalProperties: true,\n },\n },\n required: ['name'],\n additionalProperties: false,\n },\n },\n async execute(input: Record<string, unknown>): Promise<string> {\n const target = input.name\n if (typeof target === 'string' && target.length > 0 && !isDispatchable(target)) {\n throw new Error(\n `call_tool: \"${target}\" is not listed in <searchable_tools>. `\n + 'Call it directly by name if it is one of your tools; call_tool is only for surfaced catalog tools.',\n )\n }\n throw new Error(\n `call_tool: malformed envelope for ${typeof target === 'string' ? `\"${target}\"` : 'unknown tool'}: `\n + 'expected `name` (string) and optional `arguments` (object).',\n )\n },\n }\n}\n"],"mappings":";;AAwBA,MAAa,iBAAiB;;;;;;;;;;AAkB9B,SAAgB,eAAe,MAAc,OAA0C;CACrF,IAAI,SAAA,aACF,OAAO;CACT,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAC5D,OAAO;CACT,MAAM,EAAE,MAAM,OAAO,WAAW,SAAS;CACzC,IAAI,OAAO,UAAU,YAAY,MAAM,WAAW,GAChD,OAAO;CACT,IAAI,SAAS,KAAA,GACX,OAAO;EAAE,MAAM;EAAO,OAAO,CAAC;CAAE;CAClC,IAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,MAAM,QAAQ,IAAI,GACzD,OAAO;CACT,OAAO;EAAE,MAAM;EAAO,OAAO;CAAgC;AAC/D;;;;;;;;AAoBA,SAAgB,mBAAmB,UAA2B,CAAC,GAAY;CACzE,MAAM,YAAY,QAAQ,qBAAqB;CAC/C,MAAM,iBAAiB,QAAQ,yBAAyB;CACxD,OAAO;EAGL,mBAAmB;EACnB,MAAM;GACJ,MAAM;GACN,aAAa,YAAY,UAAU,SAAS;GAC5C,aAAa;IACX,MAAM;IACN,YAAY;KACV,MAAM;MACJ,MAAM;MACN,aAAa;KACf;KACA,WAAW;MACT,MAAM;MACN,aAAa;MACb,sBAAsB;KACxB;IACF;IACA,UAAU,CAAC,MAAM;IACjB,sBAAsB;GACxB;EACF;EACA,MAAM,QAAQ,OAAiD;GAC7D,MAAM,SAAS,MAAM;GACrB,IAAI,OAAO,WAAW,YAAY,OAAO,SAAS,KAAK,CAAC,eAAe,MAAM,GAC3E,MAAM,IAAI,MACR,eAAe,OAAO,0IAExB;GAEF,MAAM,IAAI,MACR,qCAAqC,OAAO,WAAW,WAAW,IAAI,OAAO,KAAK,eAAe,kEAEnG;EACF;CACF;AACF"}
@@ -1,7 +1,125 @@
1
- import { $d as sessionDirLabel, Am as ContextSegmentFile, Au as PanelIcon, Bd as ORCHESTRATED_BY_KEY, Bm as ContextExactCounts, Cf as chainPositionOf, Cu as rankPaletteItems, Df as pickChainPrimary, Du as PanelAction, Eu as PANEL_CONTENT_LIMITS, Ff as toggleKeyed, Fm as ContextBreakdownContributionContext, Fu as PanelRowItem, Gd as SessionEventStatus, Gm as ContextSnapshot, Go as ExtensionPaletteProviderEntry, Hd as SESSION_EVENT_STATUS_STYLE, Hm as ContextExtensionSection, If as AuthMethod, Im as ContextBreakdownContributor, Iu as PanelSection, Jd as WORKER_REPORT_FRAGMENT, Ju as ActiveTrigger, Kd as SessionEventStatusStyle, Km as ContextUsageSplit, Ld as StreamEvent, Lf as ProviderAuth, Lm as ContextBreakdownOptions, Lu as normalizePanelContent, Mm as ContextSegmentsInput, Mu as PanelKeyValueItem, Nm as buildContextSegments, Nu as PanelLoadContext, Of as pickPrimaryKeyed, Ou as PanelContent, Pf as toggleChainEntry, Pm as ContextBreakdown, Pu as PanelMarkdownItem, Qu as CompletionReference, Rm as ContextCategory, Ru as panelBadgeText, Sf as chainEntryKey, Su as pushPaletteRecent, Tf as chainsEqualKeyed, Tu as ExtensionPanelEntry, Ud as SESSION_ROLE_KEY, Um as ContextItem, Vm as ContextExtensionRow, Wd as SessionEvent, Wm as ContextMcpGroup, Xd as orchestratedBy, Xu as CompletionItem, Yd as isMainSession, Yu as CompletionContext, Zu as CompletionProvider, _f as formatTokensPerSecond, _u as fuzzyMatch, af as RUN_RECEIPT_GLYPH, au as PALETTE_LIMITS, bf as ModelChainEntry, bu as normalizePaletteItems, cd as CommandArgSuggestion, cf as RunReceiptCellKind, cu as PALETTE_RESULT_MAX, df as fitRunReceiptCells, du as PaletteHost, ed as applyInsert, ef as sessionEventExcerpt, em as LogLevel, ff as formatCostUsd, fu as PaletteItem, gf as formatTokenCount, gm as nextLogLevel, gu as RankedPaletteItem, hf as formatRunReceiptLine, hm as formatLogLine, hu as PaletteRunResult, id as mergeSuggestions, if as truncateTitle, jf as reorderKeyed, jm as ContextSegmentOrigin, ju as PanelItem, kf as positionKeyed, km as ContextSegment, ku as PanelCustomItem, lf as RunReceiptSegment, lu as PaletteContext, mf as formatRunReceiptCells, mm as filterLogRecords, mu as PaletteProvider, nd as findActiveTrigger, nf as sessionEventMeta, od as Command, of as RunReceipt, ou as PALETTE_RECENTS_MAX, pf as formatRunDuration, pm as LOG_LEVEL_CYCLE, pu as PaletteItemKind, qd as SessionEventTone, qm as buildContextBreakdown, rd as mergeReferences, rf as shortSessionId, sf as RunReceiptCell, su as PALETTE_RECENT_GROUP, td as collectReferences, tf as sessionEventLabel, tm as LogRecord, uf as RunReceiptSegmentKind, uu as PaletteGroup, vf as hasRunReceipt, vu as groupPaletteRows, wf as chainsEqual, wu as ExtensionPanel, xu as normalizePaletteRunResult, y_ as McpServerConfig, yf as runReceiptFromRun, yu as isPaletteContext, zm as ContextCategoryId } from "../index-BgN1T3lk.js";
2
- import { $ as formatTaskSummary, $t as chatReferenceTokensFromText, A as finalizeStreamingMarkdown, B as formatCredits, Bt as uniqueSkillNamesFromReferences, Ct as extractEditPayload, D as MAX_TRANSCRIPT_EVENTS, Dt as summarizeEditPayload, Et as splitLines, F as ProviderUsageStatus, G as updatedLabel, H as mostConstrainedWindow, Ht as createFilesCompletionProvider, I as ProviderUsageWindow, J as compactPath, Jt as createCommandsCompletionProvider, K as usageTone, L as UsageTone, Lt as summarizeOutcomes, M as turnContextSize, N as ProviderUsageCredits, O as TRANSCRIPT_TRIM_TO_EVENTS, Ot as tokenize, P as ProviderUsageSnapshot, Q as formatTaskStatus, Qt as ChatReferenceScope, R as activeSnapshotFor, Rt as SKILLS_TRIGGER, St as computeLineDiff, Tt as previewEditPayload, U as resetLabel, Ut as uniqueFilesFromReferences, V as formatUsagePercent, Vt as FILES_TRIGGER, W as showsAccount, X as fmtTokens, Xt as ChatReferenceData, Y as fmtCost, Yt as CHATS_TRIGGER, Z as formatDuration, Zt as ChatReferenceEntry, _t as PreviewResult, bt as buildUnifiedDiff, ct as retryLabel, dt as DiffOp, en as createChatsCompletionProvider, et as previewLine, ft as EditHunkSummary, gt as InlineSegment, ht as InlineDiff, i as turnAsText, it as cacheBreakChip, j as finalizeStreamingMarkdownForOwner, k as capTranscriptEvents, lt as streamingLabel, mt as HunkResolution, n as deleteTurnSafely, nn as blendHsl, nt as CacheChipContent, ot as compactingLabel, p as TodoItem, pt as EditSummary, q as ageString, qt as COMMANDS_TRIGGER, r as truncateTurnsAt, rn as buildLinearRamp, rt as CacheChipTone, st as liveSessionCost, t as countNeighbors, tn as uniqueChatIdsFromReferences, tt as shortId, ut as DiffLine, vt as applyEditPayload, wt as filetypeFromPath, xt as computeInlineDiff, yt as buildContextualDiff, z as formatBalance, zt as createSkillsCompletionProvider } from "../turn-operations-C8bMBDl_.js";
3
- import { A as filterSessionSearchCatalog, B as searchableTurnText, C as SearchSessionResult, D as SessionSearchIndex, E as SessionSearchExcerpt, F as searchSessionHistoryIndexAsync, I as searchSessionIndex, J as DAEMON_HEALTH_GLYPH, L as searchSessionIndexAsync, M as searchHighlightRanges, N as searchSessionHistory, O as buildSessionSearchIndex, P as searchSessionHistoryIndex, Q as DaemonHealthTone, R as searchSessionTurns, S as SearchExcerpt, T as SessionHistoryMatch, X as DaemonHealth, Y as DAEMON_HEALTH_STYLE, Z as DaemonHealthStyle, _ as normalizeMarkdownCodeFences, _t as retagUserPromptEvents, a as formatToolCall, b as HighlightSegment, c as splitPromptSegments, ct as BASH_CALL_ID_PREFIX, d as filterModelCatalog, dt as PromptTurnRef, f as indexOfEntry, ft as isEditErrorResult, g as chunkMarkdownForRender, gt as promptTurnRefs, h as MarkdownSegment, ht as isVisible, i as displayNameFor, j as highlightSegments, k as buildSessionSearchIndexAsync, l as CatalogEntry, lt as CACHE_NOTICE_LABEL, m as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, mt as isUserBashEvent, n as ToolDisplayMeta, nt as DEFAULT_OAUTH_ACCOUNT_LABEL, o as PromptSegment, p as parseCustomModelQuery, pt as isTurnHighlighted, r as ToolFormatLine, s as PromptSegmentRef, st as oauthAccountLabel, t as TOOL_DISPLAY, u as buildModelCatalog, ut as EDIT_TOOL_NAMES, v as splitMarkdownCodeBlocks, vt as retagUserPromptEventsFromRefs, w as SearchTurnResult, x as IndexedSearchTurn, xt as turnSelectionOwnership, y as HighlightRange, yt as selectableTurnIds, z as searchTurns } from "../tool-formatters-DoRLnfuD.js";
4
-
1
+ import { $f as LogRecord, $m as toggleKeyed, $p as isMainSession, $u as RankedPaletteItem, Ad as InlineGhost, Ag as ContextCategory, Am as formatCostLabel, Bc as BadgeActionEffect, Bd as findActiveTrigger, Bm as chainPositionOf, Cd as normalizePanelLoadContext, Cg as ContextSegmentOrigin, Cm as hasRunReceipt, Dg as ContextBreakdownContributionContext, Dm as describeSpawnEnd, Eg as ContextBreakdown, Em as compactPath, Fd as CompletionProvider, Fg as ContextItem, Fm as previewLine, Gh as ProviderAuth, Gm as pickPrimaryKeyed, Gu as PALETTE_RESULT_MAX, Hc as BadgeMenuItem, Hd as mergeSuggestions, Hm as chainsEqualKeyed, Hu as PALETTE_LIMITS, Id as CompletionReference, Ig as ContextMcpGroup, Im as shortId, Jc as badgePromptText, Jm as rememberableChain, Jp as SessionEvent, Ju as PaletteHost, Kc as artifactBadgeTarget, Kd as CommandArgSuggestion, Km as positionKeyed, Kp as SESSION_EVENT_STATUS_STYLE, Ku as PaletteContext, Lg as ContextSnapshot, Lm as ModelChainEntry, Md as ActiveTrigger, Mg as ContextExactCounts, Mm as formatElapsed, Mo as ExtensionBadgeTone, Nd as CompletionContext, Ng as ContextExtensionRow, Nm as formatTaskStatus, Og as ContextBreakdownContributor, Om as fmtCost, Pd as CompletionItem, Pg as ContextExtensionSection, Pm as formatTaskSummary, Qc as mergeBadgeMenu, Qf as LogLevel, Qm as toggleChainEntry, Qp as WORKER_REPORT_FRAGMENT, Qu as PaletteRunResult, Rd as applyInsert, Rg as ContextUsageSplit, Sd as normalizePanelContent, Sg as ContextSegmentFile, Sm as formatTokensPerSecond, Tg as buildContextSegments, Tm as ageString, Uc as BadgeTarget, Uu as PALETTE_RECENTS_MAX, Vd as mergeReferences, Vm as chainsEqual, Vp as StreamEvent, Vs as SessionBadgeEntry, Wc as BadgeTargetKind, Wd as Command, Wh as AuthMethod, Wm as pickChainPrimary, Wp as ORCHESTRATED_BY_KEY, Wu as PALETTE_RECENT_GROUP, Xc as builtinBadgeEffect, Xp as SessionEventStatusStyle, Xu as PaletteItemKind, Yc as builtinBadgeActions, Ym as reorderKeyed, Yp as SessionEventStatus, Yu as PaletteItem, Zp as SessionEventTone, Zu as PaletteProvider, _a as findReferences, _d as PanelKeyValueItem, _m as formatCostUsd, ad as normalizePaletteRunResult, am as sessionEventLabel, bd as PanelRowItem, bg as accentColor, bm as formatRunReceiptLine, bs as ExtensionSessionBadge, cd as ExtensionPanel, cm as truncateTitle, da as ReferenceMatch, dd as PanelAction, dm as RunReceipt, dp as LOG_LEVEL_CYCLE, ed as createPaletteRanker, em as orchestratedBy, fa as ReferenceProviderWire, fd as PanelContent, fm as RunReceiptCell, fp as filterLogRecords, gd as PanelItem, gm as fitRunReceiptCells, gs as ExtensionReferenceView, hd as PanelIcon, hm as RunReceiptSegmentKind, hs as ExtensionReferenceSurface, id as normalizePaletteItems, im as sessionEventExcerpt, jd as patchInlineGhost, jg as ContextCategoryId, jm as formatDuration, jo as ExtensionBadgeIcon, jp as EditPayload, kg as ContextBreakdownOptions, km as fmtTokens, ld as ExtensionPanelEntry, lm as RUN_RECEIPT_GLYPH, md as PanelFocus, mm as RunReceiptSegment, mp as nextLogLevel, nd as groupPaletteRows, nl as sessionBadgeTarget, od as pushPaletteRecent, om as sessionEventMeta, os as ExtensionPaletteProviderEntry, pd as PanelCustomItem, pm as RunReceiptCellKind, pp as formatLogLine, qp as SESSION_ROLE_KEY, qu as PaletteGroup, rd as isPaletteContext, rm as sessionDirLabel, sd as rankPaletteItems, sm as shortSessionId, td as fuzzyMatch, ud as PANEL_CONTENT_LIMITS, um as RUN_RECEIPT_TURN_GLYPH, vd as PanelLoadContext, vm as formatRunDuration, wd as panelBadgeText, wg as ContextSegmentsInput, wm as runReceiptFromRun, xd as PanelSection, xg as ContextSegment, xm as formatTokenCount, xs as ExtensionSessionBadgeCardRow, xy as McpServerConfig, yd as PanelMarkdownItem, yg as AgentAccent, ym as formatRunReceiptCells, zc as BadgeAction, zd as collectReferences, zg as buildContextBreakdown, zm as chainEntryKey } from "../index-BGe1fQT7.js";
2
+ import { $ as currentModels, $i as retagUserPromptEventsFromRefs, $n as BrowserOpInputs, $r as InlineSegment, A as ProviderUsageCredits, Ai as DaemonHealth, Ar as CacheChipContent, At as displayHostUrl, B as resetLabel, Bn as BROWSER_EVALUATE_MAX_BYTES, Br as FeatureGate, C as ownerOf, Ca as ChatReferenceScope, Cn as MachineInfo, Cr as searchSessionHistoryIndex, Ct as enabledMcpsWithout, D as spawnLaneResolver, Da as blendHsl, Dr as searchSessionTurns, Dt as normalizeMarkdownCodeFences, E as spawnLane, Ea as uniqueChatIdsFromReferences, Er as searchSessionIndexAsync, Et as chunkMarkdownForRender, F as activeSnapshotFor, Fn as isValidMachineName, Fr as liveSessionCost, G as PromptSegmentRef, Gi as PromptTurnRef, Gn as BROWSER_REQUEST_SLACK_MS, Gr as isKillSwitchEngaged, H as updatedLabel, Hi as BASH_CALL_ID_PREFIX, Hn as BROWSER_OPEN_MOUNT_MS, Hr as daemonGate, I as formatBalance, Ii as DEFAULT_OAUTH_ACCOUNT_LABEL, In as machineKind, Ir as retryLabel, It as HostProbeResult, J as splitPromptSegments, Ji as isUserBashEvent, Jn as BrowserChange, Jr as DiffOp, K as inferPromptRefs, Ki as isEditErrorResult, Kn as BROWSER_TEXT_MAX_CHARS, Kr as remoteHostsGate, Kt as TodoItem, L as formatCredits, Ln as parseMachineKind, Lr as runStatusLabel, Lt as HostRegistryError, M as ProviderUsageStatus, Mi as DaemonHealthTone, Mn as MachineShareStatus, Mr as cacheBreakChip, Mt as HostEntry, N as ProviderUsageWindow, Nn as MachineStatusChange, Nt as HostErrorCode, O as spawnParents, Oa as buildLinearRamp, Oi as DAEMON_HEALTH_GLYPH, Or as searchTurns, Ot as splitMarkdownCodeBlocks, P as UsageTone, Pn as MachineUseStatus, Pr as compactingLabel, Pt as HostIdentity, Q as currentModelKeys, Qi as retagUserPromptEvents, Qn as BrowserOpError, Qr as InlineDiff, R as formatUsagePercent, Rn as toMachineName, Rr as streamingLabel, Rt as HostTestResult, S as mergeTargetIndex, Sa as ChatReferenceEntry, Sr as searchSessionHistory, St as enabledMcpsWith, T as SpawnTreeRow, Ta as createChatsCompletionProvider, Tn as MachineLinksStatus, Tr as searchSessionIndex, Tt as MarkdownSegment, U as usageTone, Ui as CACHE_NOTICE_LABEL, Un as BROWSER_OPS, Ur as defineFeatureGate, V as showsAccount, Vi as oauthAccountLabel, Vn as BROWSER_MAX_WAIT_MS, Vr as FeatureGateOptions, W as PromptSegment, Wi as EDIT_TOOL_NAMES, Wn as BROWSER_OUTLINE_MAX_ELEMENTS, Wr as engagedKillSwitches, X as ModelIdParts, Xi as messageSelectionOwnership, Xn as BrowserErrorCode, Xr as EditSummary, Y as LineupEntry, Yi as isVisible, Yn as BrowserConsoleEntry, Yr as EditHunkSummary, Z as compareModelVersion, Zi as promptTurnRefs, Zn as BrowserOp, Zr as HunkResolution, _ as appendMarkdownDelta, _n as TerminalReadResult, _r as buildSessionSearchIndex, _t as McpAuthStatus, a as turnAsText, aa as canonicalKeyName, ai as computeLineDiff, ar as BrowserStatus, at as filterModelCatalog, b as finalizeStreamingMarkdown, ba as CHATS_TRIGGER, bi as summarizeOutcomes, bn as TerminalTarget, br as highlightSegments, c as ToolFormatLine, ca as SKILLS_TRIGGER, ci as previewEditPayload, cn as TERMINAL_MAX_PER_SESSION, cr as HighlightRange, ct as MCP_KEY_REFUSED_HINT, d as toolInputCode, da as FILES_TRIGGER, di as tokenize, dn as TERMINAL_TEXT_MAX_LINES, dr as SearchExcerpt, dt as classifyMcpTest, ea as selectableTurnIds, ei as PreviewResult, er as BrowserOpResults, et as parseModelId, f as MAX_TRANSCRIPT_EVENTS, fa as createFilesCompletionProvider, fn as TerminalAttachResult, fr as SearchSessionResult, g as ThinkingDeltaOptions, gn as TerminalOwner, gr as SessionSearchIndex, h as TRANSCRIPT_TRIM_TO_EVENTS, hn as TerminalOpenInput, hr as SessionSearchExcerpt, i as truncateTurnsAt, ia as bindingAlternatives, ii as computeInlineDiff, ir as BrowserSnapshot, it as customModelTargets, j as ProviderUsageSnapshot, ji as DaemonHealthStyle, jn as MachineRoot, jr as CacheChipTone, jt as parseRemoteHostUrl, k as DEFAULT_SETTINGS, ki as DAEMON_HEALTH_STYLE, kr as searchableTurnText, kt as RemoteHostError, l as displayNameFor, la as createSkillsCompletionProvider, li as splitLines, ln as TERMINAL_OUTPUT_WINDOW, lr as HighlightSegment, lt as McpTestOutcomeKind, m as STREAMING_MARKDOWN_SEGMENT_CHARS, mn as TerminalInfo, mr as SessionHistoryMatch, mt as MCP_STATUS_LABEL, n as deleteTurnSafely, na as turnSelectionOwnership, ni as buildContextualDiff, nr as BrowserResponse, nt as CustomModelTarget, o as TOOL_DISPLAY, oa as parseBindingSpec, oi as extractEditPayload, on as TODO_STATUS_GLYPHS, or as BrowserTarget, ot as indexOfEntry, p as MarkdownDeltaOptions, pa as uniqueFilesFromReferences, pn as TerminalError, pr as SearchTurnResult, q as promptSegmentLines, qi as isTurnHighlighted, qn as BROWSER_WAIT_TIMEOUT_MS, qr as DiffLine, r as replaceTurnTextBlocks, ra as ParsedBinding, ri as buildUnifiedDiff, rr as BrowserScreenshot, rt as buildModelCatalog, s as ToolDisplayMeta, sa as parseBindingSpecs, si as filetypeFromPath, sn as TERMINAL_HISTORY_MAX_CHARS, sr as BrowserWaitUntil, st as parseCustomModelQuery, t as countNeighbors, ti as applyEditPayload, tr as BrowserRequest, tt as CatalogEntry, u as formatToolCall, ua as uniqueSkillNamesFromReferences, ui as summarizeEditPayload, un as TERMINAL_READ_MAX_CHARS, ur as IndexedSearchTurn, ut as McpTestResult, v as appendThinkingLines, va as COMMANDS_TRIGGER, vn as TerminalSessionState, vr as buildSessionSearchIndexAsync, w as turnContextSize, wa as chatReferenceTokensFromText, wn as MachineLinkState, wr as searchSessionHistoryIndexAsync, wt as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, x as finalizeStreamingMarkdownForOwner, xa as ChatReferenceData, xr as searchHighlightRanges, y as capTranscriptEvents, ya as createCommandsCompletionProvider, yn as TerminalStatus, yr as filterSessionSearchCatalog, z as mostConstrainedWindow, zn as BROWSER_ACTION_TIMEOUT_MS, zr as FEATURE_GATES } from "../turn-operations-DQX5ZZni.js";
3
+ import { a as METHOD_NOT_FOUND, i as LOCAL_HOST_NAME, n as HostIdentityError, o as isMethodNotFound, r as LOCAL_HOST_KEY, t as HostConnectionStatus } from "../connection-Dr-Js4yZ.js";
4
+ import { _ as syncAgo, a as SYNC_MODE_LABEL, c as SyncClaimResult, d as SyncPushResult, f as SyncSource, g as settingOfField, h as settingField, i as SYNC_MODES, l as SyncMode, m as fieldCategory, n as SYNC_CATEGORIES, o as SYSTEM_MD_FIELD, p as SyncStatus, r as SYNC_CATEGORY_INFO, s as SyncCategory, t as MCP_OAUTH_NOTE, v as syncMarkerOf } from "../types-C7ZFOztE.js";
5
+ //#region src/format-bytes.d.ts
6
+ /** Byte counts for people: `512 B`, `1.5 KB`, `2.0 MB`. */
7
+ declare function formatBytes(bytes: number): string;
8
+ /** {@link formatBytes} with whole kilobytes (`2 KB`), for short notices and attachment labels. */
9
+ declare function humanBytes(bytes: number): string;
10
+ //#endregion
11
+ //#region src/chat/hosts/host-index.d.ts
12
+ /**
13
+ * Which host an id lives on: a session (or a request a host handed out: an
14
+ * approval, a question, a terminal). A client learns it from what a host
15
+ * tells it (its lists, a create, an activation, its signals) and routes
16
+ * every later call on that id there.
17
+ *
18
+ * Never guessed: an id no host told about is an error
19
+ * ({@link UnknownHostIdError}), one several hosts list is an error unless the
20
+ * lookup names its host ({@link AmbiguousHostIdError}), and the ids of a host
21
+ * that was removed stay remembered as such ({@link HostRemovedError}) until
22
+ * a host claims them again, so nothing aimed at a removed server quietly
23
+ * lands on another host.
24
+ * Node-free, shared by the TUI and the GUI main process.
25
+ */
26
+ /** No host told this client about the id: nothing to route it to. */
27
+ declare class UnknownHostIdError extends Error {
28
+ readonly id: string;
29
+ readonly code = "unknown-host-id";
30
+ constructor(id: string, noun?: string);
31
+ }
32
+ /** The id lived on a host that was removed from this window. */
33
+ declare class HostRemovedError extends Error {
34
+ readonly hostKey: string;
35
+ readonly hostName: string;
36
+ readonly code = "host-removed";
37
+ constructor(hostKey: string, hostName: string);
38
+ }
39
+ /**
40
+ * Several hosts list the id (two hosts can hold the same session id: a
41
+ * server sharing this machine's data dir, a copied store) and the lookup
42
+ * did not say which: refused, never guessed.
43
+ */
44
+ declare class AmbiguousHostIdError extends Error {
45
+ readonly id: string;
46
+ readonly hostKeys: readonly string[];
47
+ readonly code = "ambiguous-host-id";
48
+ constructor(id: string, hostKeys: readonly string[], noun?: string);
49
+ }
50
+ /**
51
+ * Keyed by (host, id): the same id may live on several hosts. A lookup that
52
+ * names its host (`hostKey`) gets exactly that pair; one that doesn't
53
+ * resolves only when one host has the id.
54
+ */
55
+ interface HostIndex {
56
+ /** `id` lives on `hostKey` (clears that pair's removed-host mark). */
57
+ note: (id: string, hostKey: string) => void;
58
+ /** The id is gone from `hostKey` (deleted there), or from every host. */
59
+ forget: (id: string, hostKey?: string) => void;
60
+ /** With `hostKey`: it, when `id` is known live there. Without: the one live host of `id` (`undefined` when none, or several). */
61
+ hostOf: (id: string, hostKey?: string) => string | undefined;
62
+ /** Every live host of `id`. */
63
+ hostsOf: (id: string) => string[];
64
+ /**
65
+ * The live host of `id` (with `hostKey`: that pair). Throws
66
+ * {@link HostRemovedError}, {@link UnknownHostIdError}, or without
67
+ * `hostKey` {@link AmbiguousHostIdError} when several hosts have it.
68
+ */
69
+ require: (id: string, hostKey?: string) => string;
70
+ /** The removed host `id` lived on (with `hostKey`: that one), if any. */
71
+ removedHostOf: (id: string, hostKey?: string) => {
72
+ key: string;
73
+ name: string;
74
+ } | undefined;
75
+ /** Ids noted on `hostKey`. */
76
+ idsOf: (hostKey: string) => string[];
77
+ /** The host was removed: its pairs are marked so (lookups say so); returns their ids. */
78
+ dropHost: (hostKey: string, hostName: string) => string[];
79
+ }
80
+ declare function createHostIndex(noun?: string): HostIndex;
81
+ //#endregion
82
+ //#region src/chat/hosts/presence.d.ts
83
+ /**
84
+ * Presence across hosts. Each host (This computer, every connected server)
85
+ * answers presence for its own sessions only; a sessions list reads one
86
+ * snapshot. The last snapshot of each host is kept and the union handed out
87
+ * on every change. A host that goes away takes its entries with it.
88
+ * Node-free, shared by the TUI and the GUI main process.
89
+ */
90
+ interface PresenceMerge<Row extends {
91
+ sessionId: string;
92
+ }> {
93
+ /** Replace one host's snapshot; returns the merged one. */
94
+ set: (hostKey: string, rows: readonly Row[]) => Row[];
95
+ /** Drop a host's entries (offline, removed); `true` when it had any. */
96
+ forget: (hostKey: string) => boolean;
97
+ /** Every host's last snapshot, one after the other (an id two hosts hold is a row per host). */
98
+ merged: () => Row[];
99
+ /** The hosts with a snapshot (to notice the ones that went away). */
100
+ hosts: () => string[];
101
+ }
102
+ declare function createPresenceMerge<Row extends {
103
+ sessionId: string;
104
+ }>(): PresenceMerge<Row>;
105
+ /** `base` with every other host's rows laid over it, by session id. */
106
+ declare function mergePresenceMaps<Row extends {
107
+ sessionId: string;
108
+ }>(base: ReadonlyMap<string, Row>, others: Iterable<readonly Row[]>): ReadonlyMap<string, Row>;
109
+ //#endregion
110
+ //#region src/chat/hosts/session-key.d.ts
111
+ declare const SESSION_KEY_SEPARATOR = "";
112
+ /** The pair a session key names. */
113
+ interface SessionKeyParts {
114
+ /** Always explicit: {@link LOCAL_HOST_KEY} for This computer. */
115
+ hostKey: string;
116
+ sessionId: string;
117
+ }
118
+ /** The key of `sessionId` on `hostKey` (`null` / absent / {@link LOCAL_HOST_KEY}: a local session). */
119
+ declare function sessionKey(hostKey: string | null | undefined, sessionId: string): string;
120
+ /** The pair `key` names (a bare id: This computer's). */
121
+ declare function parseSessionKey(key: string): SessionKeyParts;
122
+ //#endregion
5
123
  //#region src/chat/auth-rows.d.ts
6
124
  /**
7
125
  * One row in the flattened Authentication list. Two kinds:
@@ -54,6 +172,80 @@ declare function parentProviderKey(row: VisibleAuthRow): string;
54
172
  */
55
173
  declare function indexOfProviderRow(rows: readonly VisibleAuthRow[], providerKey: string): number;
56
174
  //#endregion
175
+ //#region src/chat/browser/url.d.ts
176
+ /**
177
+ * What the dev browser will load. It is a browser for the app you are
178
+ * building, not the web at large: http(s) only, bare local addresses
179
+ * default to http, anything that looks like a host gets https. Shared by the
180
+ * GUI address bar and the agent's `browser_open` / `browser_navigate`.
181
+ */
182
+ /** Normalize address-bar input to a loadable URL, or `null` when it is not one. */
183
+ declare function normalizeBrowserUrl(input: string): string | null;
184
+ /** Only http(s) pages (and the blank page) ever load in the dev browser. */
185
+ declare function isAllowedBrowserUrl(url: string): boolean;
186
+ /** A loopback address: the dev servers the browser exists for. */
187
+ declare function isLocalBrowserUrl(url: string): boolean;
188
+ //#endregion
189
+ //#region src/chat/command-notes.d.ts
190
+ /**
191
+ * One receipt line per exchange: every `command-note` in an exchange moves
192
+ * to its end and joins into a single event (`committed 83dfea7 · pushed to
193
+ * origin/main`). Returns `events` itself when there is nothing to merge;
194
+ * the merged event keeps its identity while its notes do not change, so
195
+ * memoised rows stay put.
196
+ */
197
+ declare function gatherCommandNotes<E extends StreamEvent>(events: readonly E[]): readonly E[];
198
+ //#endregion
199
+ //#region src/chat/fold-actions.d.ts
200
+ /**
201
+ * `Ran <gist>` for a shell command: heredoc bodies dropped, setup steps
202
+ * (`cd`, `export`, `set -e`) skipped, env and wrappers peeled off, program
203
+ * plus subcommand kept. Further meaningful steps read as `+N`.
204
+ */
205
+ declare function commandGist(command: string): {
206
+ gist: string;
207
+ more: number;
208
+ };
209
+ /** What a tool call is, independent of how a surface stores it. */
210
+ interface ToolOverviewInput {
211
+ name: string;
212
+ displayName: string;
213
+ input?: Record<string, unknown>;
214
+ /** The formatted target (`tool-formatters`), when there is one. */
215
+ target?: string;
216
+ /** The call's result text, once it has one. */
217
+ result?: string | null;
218
+ /** `null` while running. */
219
+ ok?: boolean | null;
220
+ edit?: EditPayload;
221
+ }
222
+ interface ToolOverview {
223
+ label: string;
224
+ /** Quiet context after the label: a file's directory, `+2` chained commands. */
225
+ hint?: string;
226
+ added?: number;
227
+ removed?: number;
228
+ /** The full payload (the whole command, the full path). */
229
+ title?: string;
230
+ }
231
+ /** The overview line for one tool call. */
232
+ declare function toolOverview(tool: ToolOverviewInput): ToolOverview;
233
+ declare function toolPhrase(name: string, displayName: string): string;
234
+ /**
235
+ * "Ran a command, read a file +2" for a run of calls. Adjacent identical
236
+ * phrases merge, so three reads in a row say "read a file" once.
237
+ */
238
+ declare function summarizeTools(tools: ReadonlyArray<{
239
+ name: string;
240
+ displayName: string;
241
+ }>): string;
242
+ /**
243
+ * A message as a person skims it: its words, markdown syntax and code
244
+ * blocks dropped, whitespace folded. For the compact stacks of earlier
245
+ * messages.
246
+ */
247
+ declare function messagePreview(text: string): string;
248
+ //#endregion
57
249
  //#region src/chat/instruction-rows.d.ts
58
250
  /**
59
251
  * Upper bound on preview lines rendered for one expanded segment. Mirrors the
@@ -107,6 +299,64 @@ declare function instructionPreviewLines(text: string): {
107
299
  */
108
300
  declare function instructionOriginBadge(segment: ContextSegment): string;
109
301
  //#endregion
302
+ //#region src/chat/machines-view.d.ts
303
+ /** The `label` of the notices a host emits about a session's machine. */
304
+ declare const MACHINE_NOTICE_LABEL = "machine";
305
+ /**
306
+ * The machine a session's run is paused on, from its notices (`waiting for
307
+ * laptop…` until `laptop is back.` or `laptop stayed offline … run stopped`),
308
+ * `null` when none. `online`: machines known to be back since (a
309
+ * `machine:status` the window saw), which clear the wait at once.
310
+ */
311
+ declare function machineWaiting(events: readonly {
312
+ text?: string;
313
+ notice?: {
314
+ label?: string;
315
+ };
316
+ }[], online?: ReadonlySet<string>): string | null;
317
+ /** A folder listing a folder picker renders (the shape of `fs.listDirs`). */
318
+ interface MachineDirListing {
319
+ roots: string[];
320
+ path: string;
321
+ parent: string | null;
322
+ entries: {
323
+ path: string;
324
+ name: string;
325
+ isGitRepo: boolean;
326
+ }[];
327
+ }
328
+ /** `machines.listDirs` as a folder listing: the parent stops at the root the folder is in. */
329
+ declare function machineDirListing(result: {
330
+ path: string;
331
+ dirs: string[];
332
+ roots: string[];
333
+ }): MachineDirListing;
334
+ /**
335
+ * Environment kinds in picker order: this host's own first, then each
336
+ * machine's together (`local@` before `worktree@`), machines by name.
337
+ */
338
+ declare function orderByMachine<T extends {
339
+ kind: string;
340
+ machine?: {
341
+ name: string;
342
+ };
343
+ }>(descriptors: readonly T[]): T[];
344
+ /** Why a machine kind can't be picked now (its machine is offline), else `undefined`. */
345
+ declare function machineBlockedReason(descriptor: {
346
+ machine?: {
347
+ name: string;
348
+ status: 'online' | 'offline';
349
+ };
350
+ }): string | undefined;
351
+ /** A session's environment as its header shows it: `local@laptop`, `worktree@laptop ⎇ feat`, `⎇ feat`, or the kind. */
352
+ declare function environmentLabel(environment: {
353
+ kind: string;
354
+ branch?: string;
355
+ }): string;
356
+ declare const MACHINE_LINK_STATE_TEXT: Record<MachineLinkState, string>;
357
+ /** "seen 5 min ago" for a machine's `lastSeen`. */
358
+ declare function lastSeenText(lastSeen: number | undefined, now: number): string;
359
+ //#endregion
110
360
  //#region src/chat/mcp-form.d.ts
111
361
  /** Where a written MCP entry lands. */
112
362
  type InstallScopeChoice = 'user' | 'project';
@@ -165,6 +415,32 @@ declare function parseKeyValueLines(raw: string, opts: {
165
415
  error: string;
166
416
  };
167
417
  //#endregion
418
+ //#region src/chat/model-name.d.ts
419
+ /**
420
+ * The name a person uses for a model, for pills, pickers and lists.
421
+ *
422
+ * - First-party providers drop their own brand: under Anthropic, "Claude
423
+ * Opus 4.6" is "Opus 4.6"; under OpenAI, "OpenAI GPT-5" is "GPT-5".
424
+ * - Aggregators prefix the vendor ("Anthropic: Claude Opus 4.6"): the name
425
+ * is what follows, the vendor comes back separately for a caller that
426
+ * shows it (a meta, a tooltip).
427
+ * - "(latest)" is dropped: next to a snapshot it reads as a recency claim.
428
+ * - Without a catalog name, the id is made readable: `claude-opus-4-7-20250722`
429
+ * → "Opus 4.7" under Anthropic.
430
+ */
431
+ interface ModelNameInput {
432
+ providerKey?: string | null;
433
+ modelId: string;
434
+ /** The catalog's display name, when known. */
435
+ modelName?: string | null;
436
+ }
437
+ interface ModelDisplayName {
438
+ name: string;
439
+ /** The model's maker, when the name carried it (aggregators: "Anthropic"). */
440
+ vendor?: string;
441
+ }
442
+ declare function modelDisplayName({ providerKey, modelId, modelName }: ModelNameInput): ModelDisplayName;
443
+ //#endregion
168
444
  //#region src/chat/notice-format.d.ts
169
445
  type NoticeSeverity = NonNullable<StreamEvent['notice']>['severity'];
170
446
  /** Leading glyph per severity. `info` is deliberately quiet — a middle dot. */
@@ -176,8 +452,10 @@ declare const TODOS_PANEL_ID = "todos";
176
452
  declare const ARTIFACTS_PANEL_ID = "artifacts";
177
453
  declare const DIFFS_PANEL_ID = "diffs";
178
454
  declare const FILES_PANEL_ID = "files";
455
+ declare const BROWSER_PANEL_ID = "browser";
456
+ declare const TERMINAL_PANEL_ID = "terminal";
179
457
  /** Built-in tabs the hosts render with their own components. */
180
- type BuiltinPanelId = typeof INBOX_PANEL_ID | typeof TODOS_PANEL_ID | typeof ARTIFACTS_PANEL_ID | typeof DIFFS_PANEL_ID | typeof FILES_PANEL_ID;
458
+ type BuiltinPanelId = typeof INBOX_PANEL_ID | typeof TODOS_PANEL_ID | typeof ARTIFACTS_PANEL_ID | typeof DIFFS_PANEL_ID | typeof FILES_PANEL_ID | typeof BROWSER_PANEL_ID | typeof TERMINAL_PANEL_ID;
181
459
  interface BuiltinPanelTab {
182
460
  id: BuiltinPanelId;
183
461
  label: string;
@@ -213,6 +491,20 @@ interface PanelState {
213
491
  declare const INITIAL_PANEL_STATE: PanelState;
214
492
  /** Add a tab to the host's pinned strip (idempotent, keeps order). */
215
493
  declare function pinTab(pinned: readonly string[], id: string): readonly string[];
494
+ /**
495
+ * Apply a user reorder of the VISIBLE strip to the pinned list. `pinned` can
496
+ * hold ids the catalog no longer shows (an extension disabled for this cwd);
497
+ * they keep their slots, and the visible ids fill the remaining slots in the
498
+ * new order, so re-enabling the extension brings its tab back where it was.
499
+ * Ids in `visible` that aren't pinned are ignored. Returns `pinned` itself
500
+ * when nothing moved.
501
+ */
502
+ declare function reorderTabs(pinned: readonly string[], visible: readonly string[]): readonly string[];
503
+ /**
504
+ * Move one visible tab `delta` slots within the visible strip (keyboard
505
+ * reorder), clamped at the ends. Hidden pinned ids keep their slots.
506
+ */
507
+ declare function moveTab(pinned: readonly string[], visible: readonly string[], id: string, delta: number): readonly string[];
216
508
  /** The user clicked a tab (or a keybinding cycled to it). Always honoured, always opens. */
217
509
  declare function pickTab(state: PanelState, id: string): PanelState;
218
510
  declare function togglePanel(state: PanelState): PanelState;
@@ -239,6 +531,80 @@ declare function resolveActiveTab(state: PanelState, catalog: readonly PanelTab[
239
531
  /** Cycle to the next / previous tab (wraps). Counts as a user pick. */
240
532
  declare function cycleTab(state: PanelState, catalog: readonly PanelTab[], direction: 1 | -1): PanelState;
241
533
  //#endregion
534
+ //#region src/chat/prompt-text.d.ts
535
+ declare function tidyPromptText(text: string, refs: readonly PromptSegmentRef[]): {
536
+ text: string;
537
+ refs: PromptSegmentRef[];
538
+ };
539
+ //#endregion
540
+ //#region src/chat/stream-failure.d.ts
541
+ /**
542
+ * The markers the loop writes into an assistant turn when its stream ends
543
+ * early (`src/loop.ts`): `[✗ Streaming failed before any output: <message>]`
544
+ * (or `mid-output`) when the provider throws, `[⏹ Streaming was aborted.]`
545
+ * when the user stops the run. Either is appended blank-line-separated to
546
+ * whatever had streamed. The marker stays in the persisted turn for the
547
+ * model; hosts split it off to show a quiet "stopped" line instead of prose.
548
+ */
549
+ interface StreamFailure {
550
+ /** The provider message, `''` when there is none (always for an abort). */
551
+ message: string;
552
+ /** Text had streamed before the stream ended. */
553
+ midOutput: boolean;
554
+ /** The user stopped the run; not a failure of the provider. */
555
+ aborted: boolean;
556
+ }
557
+ /** Split a reply into what the model wrote and the stop marker at its end, if any. */
558
+ declare function splitStreamFailure(text: string): {
559
+ text: string;
560
+ failure: StreamFailure | null;
561
+ };
562
+ /** Cheap pre-check before splitting: the text may end in a stop marker. */
563
+ declare function mayHaveStreamFailure(text: string): boolean;
564
+ /** What the "continue" action sends after a run that had done work. */
565
+ declare const CONTINUE_PROMPT = "Continue from where you stopped.";
566
+ //#endregion
567
+ //#region src/chat/stream-rate.d.ts
568
+ /**
569
+ * Output throughput for the live run readout (`41 tok/s`), from the turn's
570
+ * `stream:progress` samples.
571
+ *
572
+ * `tokens / elapsed since the request` was wrong in two ways that produced
573
+ * absurd rates: the count mid-stream is an estimate from the visible text,
574
+ * then jumps to the provider's real figure right before the stream ends
575
+ * (for Anthropic that includes hidden reasoning, often many times the
576
+ * estimate), so the division reported that correction as throughput; and
577
+ * the denominator included the time to first token, so early readings
578
+ * swung. Here the rate is tokens GAINED per second over a short trailing
579
+ * window of samples: a correction (the estimate→provider snap, or a count
580
+ * that goes backwards) rebases the window instead of counting, readings
581
+ * are smoothed, and anything no model can produce is dropped.
582
+ */
583
+ interface RateSample {
584
+ turnId: string;
585
+ /** ms since the turn's request; only differences are used. */
586
+ elapsedMs: number;
587
+ outputTokens: number;
588
+ estimated: boolean;
589
+ }
590
+ interface RateState {
591
+ turnId: string | null;
592
+ /** Samples inside the window, oldest first; the first is the baseline. */
593
+ samples: readonly {
594
+ t: number;
595
+ n: number;
596
+ }[];
597
+ estimated: boolean | null;
598
+ /** Smoothed tokens/second, `null` until the window has enough span. */
599
+ rate: number | null;
600
+ }
601
+ declare const EMPTY_RATE: RateState;
602
+ /** Faster than any served model today (the fastest wafer-scale ones run ~3k): a reading above is a glitch. */
603
+ declare const MAX_PLAUSIBLE_RATE = 6000;
604
+ declare function stepStreamRate(state: RateState, sample: RateSample): RateState;
605
+ /** Whole tokens per second for display, or `null` when there is no honest reading. */
606
+ declare function streamRateValue(state: RateState): number | null;
607
+ //#endregion
242
608
  //#region src/chat/todo-edits.d.ts
243
609
  /**
244
610
  * Mint an id that cannot collide with an existing row.
@@ -286,5 +652,5 @@ declare function cycleTodoStatus(items: readonly TodoItem[], id: string): TodoIt
286
652
  */
287
653
  declare function buildTodoRetryMessage(item: TodoItem): string;
288
654
  //#endregion
289
- export { ARTIFACTS_PANEL_ID, type ActiveTrigger, type AuthMethod, BASH_CALL_ID_PREFIX, BUILTIN_PANEL_TABS, type BuildVisibleInstructionRowsOptions, type BuiltinPanelId, type BuiltinPanelTab, CACHE_NOTICE_LABEL, CHATS_TRIGGER, COMMANDS_TRIGGER, type CacheChipContent, type CacheChipTone, type CatalogEntry, type ChatReferenceData, type ChatReferenceEntry, type ChatReferenceScope, type Command, type CommandArgSuggestion, type CompletionContext, type CompletionItem, type CompletionProvider, type CompletionReference, type ContextBreakdown, type ContextBreakdownContributionContext, type ContextBreakdownContributor, type ContextBreakdownOptions, type ContextCategory, type ContextCategoryId, type ContextExactCounts, type ContextExtensionRow, type ContextExtensionSection, type ContextItem, type ContextMcpGroup, type ContextSegment, type ContextSegmentFile, type ContextSegmentOrigin, type ContextSegmentsInput, type ContextSnapshot, type ContextUsageSplit, DAEMON_HEALTH_GLYPH, DAEMON_HEALTH_STYLE, DEFAULT_OAUTH_ACCOUNT_LABEL, DIFFS_PANEL_ID, type DaemonHealth, type DaemonHealthStyle, type DaemonHealthTone, type DiffLine, type DiffOp, EDIT_TOOL_NAMES, type EditHunkSummary, type EditSummary, type ExtensionPaletteProviderEntry, type ExtensionPanel, type ExtensionPanelEntry, type ExtensionPanelTab, FILES_PANEL_ID, FILES_TRIGGER, type HighlightRange, type HighlightSegment, type HunkResolution, INBOX_PANEL_ID, INITIAL_PANEL_STATE, INSTRUCTION_PREVIEW_LINE_CAP, type IndexedSearchTurn, type InlineDiff, type InlineSegment, type InstallScopeChoice, LOG_LEVEL_CYCLE, type LogLevel, type LogRecord, MARKDOWN_RENDER_CHUNK_TARGET_BYTES, MAX_TRANSCRIPT_EVENTS, MCP_TRANSPORTS, type MarkdownSegment, type McpFormResult, type McpFormValues, type McpTransport, type ModelChainEntry, NOTICE_GLYPH, type NoticeSeverity, ORCHESTRATED_BY_KEY, PALETTE_LIMITS, PALETTE_RECENTS_MAX, PALETTE_RECENT_GROUP, PALETTE_RESULT_MAX, PANEL_CONTENT_LIMITS, type PaletteContext, type PaletteGroup, type PaletteHost, type PaletteItem, type PaletteItemKind, type PaletteProvider, type PaletteRunResult, type PanelAction, type PanelCatalogOptions, type PanelContent, type PanelCustomItem, type PanelIcon, type PanelItem, type PanelKeyValueItem, type PanelLoadContext, type PanelMarkdownItem, type PanelRowItem, type PanelSection, type PanelState, type PanelTab, type PreviewResult, type PromptSegment, type PromptSegmentRef, type PromptTurnRef, type ProviderAuth, type ProviderUsageCredits, type ProviderUsageSnapshot, type ProviderUsageStatus, type ProviderUsageWindow, RUN_RECEIPT_GLYPH, type RankedPaletteItem, type RunReceipt, type RunReceiptCell, type RunReceiptCellKind, type RunReceiptSegment, type RunReceiptSegmentKind, SESSION_EVENT_STATUS_STYLE, SESSION_ROLE_KEY, SKILLS_TRIGGER, type SearchExcerpt, type SearchSessionResult, type SearchTurnResult, type SessionEvent, type SessionEventStatus, type SessionEventStatusStyle, type SessionEventTone, type SessionHistoryMatch, type SessionSearchExcerpt, type SessionSearchIndex, TODOS_PANEL_ID, TOOL_DISPLAY, TRANSCRIPT_TRIM_TO_EVENTS, type ToolDisplayMeta, type ToolFormatLine, type UsageTone, type VisibleAuthRow, type VisibleInstructionRow, WORKER_REPORT_FRAGMENT, activeSnapshotFor, addTodo, ageString, applyEditPayload, applyInsert, blendHsl, buildContextBreakdown, buildContextSegments, buildContextualDiff, buildLinearRamp, buildModelCatalog, buildPanelCatalog, buildSessionSearchIndex, buildSessionSearchIndexAsync, buildTodoRetryMessage, buildUnifiedDiff, buildVisibleAuthRows, buildVisibleInstructionRows, cacheBreakChip, capTranscriptEvents, chainEntryKey, chainPositionOf, chainsEqual, chainsEqualKeyed, chatReferenceTokensFromText, chunkMarkdownForRender, clearTodos, closePanel, collectReferences, compactPath, compactingLabel, computeInlineDiff, computeLineDiff, countNeighbors, createChatsCompletionProvider, createCommandsCompletionProvider, createFilesCompletionProvider, createSkillsCompletionProvider, cycleTab, cycleTodoStatus, deleteTurnSafely, displayNameFor, editTodo, extractEditPayload, filetypeFromPath, filterLogRecords, filterModelCatalog, filterSessionSearchCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, fitRunReceiptCells, fmtCost, fmtTokens, formatBalance, formatCostUsd, formatCredits, formatDuration, formatLogLine, formatRunDuration, formatRunReceiptCells, formatRunReceiptLine, formatTaskStatus, formatTaskSummary, formatTokenCount, formatTokensPerSecond, formatToolCall, formatUsagePercent, fuzzyMatch, groupPaletteRows, hasRunReceipt, highlightSegments, indexOfEntry, indexOfProviderRow, instructionOriginBadge, instructionPreviewLines, isEditErrorResult, isExpandableProvider, isMainSession, isPaletteContext, isTurnHighlighted, isUserBashEvent, isVisible, liveSessionCost, mergeReferences, mergeSuggestions, mostConstrainedWindow, nextLogLevel, nextTodoId, normalizeMarkdownCodeFences, normalizePaletteItems, normalizePaletteRunResult, normalizePanelContent, oauthAccountLabel, openForAttention, openProactive, orchestratedBy, panelBadgeText, parentProviderKey, parseCustomModelQuery, parseKeyValueLines, pickChainPrimary, pickPrimaryKeyed, pickTab, pinTab, positionKeyed, previewEditPayload, previewLine, promptTurnRefs, pushPaletteRecent, rankPaletteItems, removeTodo, reorderKeyed, resetLabel, resolveActiveTab, retagUserPromptEvents, retagUserPromptEventsFromRefs, retryLabel, runReceiptFromRun, searchHighlightRanges, searchSessionHistory, searchSessionHistoryIndex, searchSessionHistoryIndexAsync, searchSessionIndex, searchSessionIndexAsync, searchSessionTurns, searchTurns, searchableTurnText, selectableSources, selectableTurnIds, sessionDirLabel, sessionEventExcerpt, sessionEventLabel, sessionEventMeta, shortId, shortSessionId, showsAccount, splitCommandLine, splitLines, splitMarkdownCodeBlocks, splitPromptSegments, streamingLabel, summarizeEditPayload, summarizeOutcomes, toggleChainEntry, toggleKeyed, togglePanel, tokenize, truncateTitle, truncateTurnsAt, turnAsText, turnContextSize, turnSelectionOwnership, uniqueChatIdsFromReferences, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, updatedLabel, usageTone, validateMcpForm };
655
+ export { ARTIFACTS_PANEL_ID, type ActiveTrigger, type AgentAccent, AmbiguousHostIdError, type AuthMethod, BASH_CALL_ID_PREFIX, BROWSER_ACTION_TIMEOUT_MS, BROWSER_EVALUATE_MAX_BYTES, BROWSER_MAX_WAIT_MS, BROWSER_OPEN_MOUNT_MS, BROWSER_OPS, BROWSER_OUTLINE_MAX_ELEMENTS, BROWSER_PANEL_ID, BROWSER_REQUEST_SLACK_MS, BROWSER_TEXT_MAX_CHARS, BROWSER_WAIT_TIMEOUT_MS, BUILTIN_PANEL_TABS, type BadgeAction, type BadgeActionEffect, type BadgeMenuItem, type BadgeTarget, type BadgeTargetKind, type BrowserChange, type BrowserConsoleEntry, type BrowserErrorCode, type BrowserOp, BrowserOpError, type BrowserOpInputs, type BrowserOpResults, type BrowserRequest, type BrowserResponse, type BrowserScreenshot, type BrowserSnapshot, type BrowserStatus, type BrowserTarget, type BrowserWaitUntil, type BuildVisibleInstructionRowsOptions, type BuiltinPanelId, type BuiltinPanelTab, CACHE_NOTICE_LABEL, CHATS_TRIGGER, COMMANDS_TRIGGER, CONTINUE_PROMPT, type CacheChipContent, type CacheChipTone, type CatalogEntry, type ChatReferenceData, type ChatReferenceEntry, type ChatReferenceScope, type Command, type CommandArgSuggestion, type CompletionContext, type CompletionItem, type CompletionProvider, type CompletionReference, type ContextBreakdown, type ContextBreakdownContributionContext, type ContextBreakdownContributor, type ContextBreakdownOptions, type ContextCategory, type ContextCategoryId, type ContextExactCounts, type ContextExtensionRow, type ContextExtensionSection, type ContextItem, type ContextMcpGroup, type ContextSegment, type ContextSegmentFile, type ContextSegmentOrigin, type ContextSegmentsInput, type ContextSnapshot, type ContextUsageSplit, type CustomModelTarget, DAEMON_HEALTH_GLYPH, DAEMON_HEALTH_STYLE, DEFAULT_OAUTH_ACCOUNT_LABEL, DEFAULT_SETTINGS, DIFFS_PANEL_ID, type DaemonHealth, type DaemonHealthStyle, type DaemonHealthTone, type DiffLine, type DiffOp, EDIT_TOOL_NAMES, EMPTY_RATE, type EditHunkSummary, type EditSummary, type ExtensionBadgeIcon, type ExtensionBadgeTone, type ExtensionPaletteProviderEntry, type ExtensionPanel, type ExtensionPanelEntry, type ExtensionPanelTab, type ExtensionReferenceSurface, type ExtensionReferenceView, type ExtensionSessionBadge, type ExtensionSessionBadgeCardRow, FEATURE_GATES, FILES_PANEL_ID, FILES_TRIGGER, type FeatureGate, type FeatureGateOptions, type HighlightRange, type HighlightSegment, type HostConnectionStatus, type HostEntry, type HostErrorCode, type HostIdentity, HostIdentityError, type HostIndex, type HostProbeResult, HostRegistryError, HostRemovedError, type HostTestResult, type HunkResolution, INBOX_PANEL_ID, INITIAL_PANEL_STATE, INSTRUCTION_PREVIEW_LINE_CAP, type IndexedSearchTurn, type InlineDiff, type InlineGhost, type InlineSegment, type InstallScopeChoice, LOCAL_HOST_KEY, LOCAL_HOST_NAME, LOG_LEVEL_CYCLE, type LineupEntry, type LogLevel, type LogRecord, MACHINE_LINK_STATE_TEXT, MACHINE_NOTICE_LABEL, MARKDOWN_RENDER_CHUNK_TARGET_BYTES, MAX_PLAUSIBLE_RATE, MAX_TRANSCRIPT_EVENTS, MCP_KEY_REFUSED_HINT, MCP_OAUTH_NOTE, MCP_STATUS_LABEL, MCP_TRANSPORTS, METHOD_NOT_FOUND, type MachineDirListing, type MachineInfo, type MachineLinkState, type MachineLinksStatus, type MachineRoot, type MachineShareStatus, type MachineStatusChange, type MachineUseStatus, type MarkdownDeltaOptions, type MarkdownSegment, type McpAuthStatus, type McpFormResult, type McpFormValues, type McpTestOutcomeKind, type McpTestResult, type McpTransport, type ModelChainEntry, type ModelDisplayName, type ModelIdParts, type ModelNameInput, NOTICE_GLYPH, type NoticeSeverity, ORCHESTRATED_BY_KEY, PALETTE_LIMITS, PALETTE_RECENTS_MAX, PALETTE_RECENT_GROUP, PALETTE_RESULT_MAX, PANEL_CONTENT_LIMITS, type PaletteContext, type PaletteGroup, type PaletteHost, type PaletteItem, type PaletteItemKind, type PaletteProvider, type PaletteRunResult, type PanelAction, type PanelCatalogOptions, type PanelContent, type PanelCustomItem, type PanelFocus, type PanelIcon, type PanelItem, type PanelKeyValueItem, type PanelLoadContext, type PanelMarkdownItem, type PanelRowItem, type PanelSection, type PanelState, type PanelTab, type ParsedBinding, type PresenceMerge, type PreviewResult, type PromptSegment, type PromptSegmentRef, type PromptTurnRef, type ProviderAuth, type ProviderUsageCredits, type ProviderUsageSnapshot, type ProviderUsageStatus, type ProviderUsageWindow, RUN_RECEIPT_GLYPH, RUN_RECEIPT_TURN_GLYPH, type RankedPaletteItem, type RateSample, type RateState, type ReferenceMatch, type ReferenceProviderWire, RemoteHostError, type RunReceipt, type RunReceiptCell, type RunReceiptCellKind, type RunReceiptSegment, type RunReceiptSegmentKind, SESSION_EVENT_STATUS_STYLE, SESSION_KEY_SEPARATOR, SESSION_ROLE_KEY, SKILLS_TRIGGER, STREAMING_MARKDOWN_SEGMENT_CHARS, SYNC_CATEGORIES, SYNC_CATEGORY_INFO, SYNC_MODES, SYNC_MODE_LABEL, SYSTEM_MD_FIELD, type SearchExcerpt, type SearchSessionResult, type SearchTurnResult, type SessionBadgeEntry, type SessionEvent, type SessionEventStatus, type SessionEventStatusStyle, type SessionEventTone, type SessionHistoryMatch, type SessionKeyParts, type SessionSearchExcerpt, type SessionSearchIndex, type SpawnTreeRow, type StreamFailure, type SyncCategory, type SyncClaimResult, type SyncMode, type SyncPushResult, type SyncSource, type SyncStatus, TERMINAL_HISTORY_MAX_CHARS, TERMINAL_MAX_PER_SESSION, TERMINAL_OUTPUT_WINDOW, TERMINAL_PANEL_ID, TERMINAL_READ_MAX_CHARS, TERMINAL_TEXT_MAX_LINES, TODOS_PANEL_ID, TODO_STATUS_GLYPHS, TOOL_DISPLAY, TRANSCRIPT_TRIM_TO_EVENTS, type TerminalAttachResult, TerminalError, type TerminalInfo, type TerminalOpenInput, type TerminalOwner, type TerminalReadResult, type TerminalSessionState, type TerminalStatus, type TerminalTarget, type ThinkingDeltaOptions, type ToolDisplayMeta, type ToolFormatLine, type ToolOverview, type ToolOverviewInput, UnknownHostIdError, type UsageTone, type VisibleAuthRow, type VisibleInstructionRow, WORKER_REPORT_FRAGMENT, accentColor, activeSnapshotFor, addTodo, ageString, appendMarkdownDelta, appendThinkingLines, applyEditPayload, applyInsert, artifactBadgeTarget, badgePromptText, bindingAlternatives, blendHsl, buildContextBreakdown, buildContextSegments, buildContextualDiff, buildLinearRamp, buildModelCatalog, buildPanelCatalog, buildSessionSearchIndex, buildSessionSearchIndexAsync, buildTodoRetryMessage, buildUnifiedDiff, buildVisibleAuthRows, buildVisibleInstructionRows, builtinBadgeActions, builtinBadgeEffect, cacheBreakChip, canonicalKeyName, capTranscriptEvents, chainEntryKey, chainPositionOf, chainsEqual, chainsEqualKeyed, chatReferenceTokensFromText, chunkMarkdownForRender, classifyMcpTest, clearTodos, closePanel, collectReferences, commandGist, compactPath, compactingLabel, compareModelVersion, computeInlineDiff, computeLineDiff, countNeighbors, createChatsCompletionProvider, createCommandsCompletionProvider, createFilesCompletionProvider, createHostIndex, createPaletteRanker, createPresenceMerge, createSkillsCompletionProvider, currentModelKeys, currentModels, customModelTargets, cycleTab, cycleTodoStatus, daemonGate, defineFeatureGate, deleteTurnSafely, describeSpawnEnd, displayHostUrl, displayNameFor, editTodo, enabledMcpsWith, enabledMcpsWithout, engagedKillSwitches, environmentLabel, extractEditPayload, fieldCategory, filetypeFromPath, filterLogRecords, filterModelCatalog, filterSessionSearchCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, findReferences, fitRunReceiptCells, fmtCost, fmtTokens, formatBalance, formatBytes, formatCostLabel, formatCostUsd, formatCredits, formatDuration, formatElapsed, formatLogLine, formatRunDuration, formatRunReceiptCells, formatRunReceiptLine, formatTaskStatus, formatTaskSummary, formatTokenCount, formatTokensPerSecond, formatToolCall, formatUsagePercent, fuzzyMatch, gatherCommandNotes, groupPaletteRows, hasRunReceipt, highlightSegments, humanBytes, indexOfEntry, indexOfProviderRow, inferPromptRefs, instructionOriginBadge, instructionPreviewLines, isAllowedBrowserUrl, isEditErrorResult, isExpandableProvider, isKillSwitchEngaged, isLocalBrowserUrl, isMainSession, isMethodNotFound, isPaletteContext, isTurnHighlighted, isUserBashEvent, isValidMachineName, isVisible, lastSeenText, liveSessionCost, machineBlockedReason, machineDirListing, machineKind, machineWaiting, mayHaveStreamFailure, mergeBadgeMenu, mergePresenceMaps, mergeReferences, mergeSuggestions, mergeTargetIndex, messagePreview, messageSelectionOwnership, modelDisplayName, mostConstrainedWindow, moveTab, nextLogLevel, nextTodoId, normalizeBrowserUrl, normalizeMarkdownCodeFences, normalizePaletteItems, normalizePaletteRunResult, normalizePanelContent, normalizePanelLoadContext, oauthAccountLabel, openForAttention, openProactive, orchestratedBy, orderByMachine, ownerOf, panelBadgeText, parentProviderKey, parseBindingSpec, parseBindingSpecs, parseCustomModelQuery, parseKeyValueLines, parseMachineKind, parseModelId, parseRemoteHostUrl, parseSessionKey, patchInlineGhost, pickChainPrimary, pickPrimaryKeyed, pickTab, pinTab, positionKeyed, previewEditPayload, previewLine, promptSegmentLines, promptTurnRefs, pushPaletteRecent, rankPaletteItems, rememberableChain, remoteHostsGate, removeTodo, reorderKeyed, reorderTabs, replaceTurnTextBlocks, resetLabel, resolveActiveTab, retagUserPromptEvents, retagUserPromptEventsFromRefs, retryLabel, runReceiptFromRun, runStatusLabel, searchHighlightRanges, searchSessionHistory, searchSessionHistoryIndex, searchSessionHistoryIndexAsync, searchSessionIndex, searchSessionIndexAsync, searchSessionTurns, searchTurns, searchableTurnText, selectableSources, selectableTurnIds, sessionBadgeTarget, sessionDirLabel, sessionEventExcerpt, sessionEventLabel, sessionEventMeta, sessionKey, settingField, settingOfField, shortId, shortSessionId, showsAccount, spawnLane, spawnLaneResolver, spawnParents, splitCommandLine, splitLines, splitMarkdownCodeBlocks, splitPromptSegments, splitStreamFailure, stepStreamRate, streamRateValue, streamingLabel, summarizeEditPayload, summarizeOutcomes, summarizeTools, syncAgo, syncMarkerOf, tidyPromptText, toMachineName, toggleChainEntry, toggleKeyed, togglePanel, tokenize, toolInputCode, toolOverview, toolPhrase, truncateTitle, truncateTurnsAt, turnAsText, turnContextSize, turnSelectionOwnership, uniqueChatIdsFromReferences, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, updatedLabel, usageTone, validateMcpForm };
290
656
  //# sourceMappingURL=pure.d.ts.map