@astralyn/pi 0.87.5 → 0.99.0

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 (786) hide show
  1. package/CHANGELOG.md +51 -6
  2. package/README.md +3 -3
  3. package/dist/bun/runtime-setup.js +4 -1
  4. package/dist/bun/runtime-setup.js.map +1 -1
  5. package/dist/bundle/chunks/anthropic-messages-KIXY7EDT.js +6 -0
  6. package/dist/bundle/chunks/anthropic.js +2 -2
  7. package/dist/bundle/chunks/azure-openai-responses-RPBERDXD.js +2 -0
  8. package/dist/bundle/chunks/bedrock-converse-stream.js +8 -8
  9. package/dist/bundle/chunks/{chunk-LPQCB2VJ.js → chunk-A576H74Y.js} +2 -2
  10. package/dist/bundle/chunks/{chunk-NW5FIDD7.js → chunk-ABVRAYXT.js} +3 -3
  11. package/dist/bundle/chunks/{chunk-I5IVW2WS.js → chunk-CLLDCO64.js} +1 -1
  12. package/dist/bundle/chunks/chunk-DEWXBB6W.js +2 -0
  13. package/dist/bundle/chunks/chunk-G4RY3GN7.js +11 -0
  14. package/dist/bundle/chunks/chunk-GCKVOFWP.js +2 -0
  15. package/dist/bundle/chunks/chunk-MPDALHNJ.js +2 -0
  16. package/dist/bundle/chunks/chunk-OO6DJ3CL.js +31 -0
  17. package/dist/bundle/chunks/{chunk-EWLAVDVN.js → chunk-VW2P3X6P.js} +921 -293
  18. package/dist/bundle/chunks/chunk-VWCWZD6E.js +2 -0
  19. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-ZYSAFXXL.js +2 -0
  20. package/dist/bundle/chunks/codemode-worker.js +295 -0
  21. package/dist/bundle/chunks/github-copilot.js +1 -1
  22. package/dist/bundle/chunks/google-generative-ai-SDNQVVXA.js +2 -0
  23. package/dist/bundle/chunks/google-vertex-LZXOLBIO.js +2 -0
  24. package/dist/bundle/chunks/llama-cpp-classify-7IYGGPND.js +22 -0
  25. package/dist/bundle/chunks/meta.js +2 -0
  26. package/dist/bundle/chunks/mistral-conversations-VYKPSSAM.js +5 -0
  27. package/dist/bundle/chunks/openai-chatgpt.js +75 -0
  28. package/dist/bundle/chunks/openai-codex-responses-HZ4VUDXD.js +10 -0
  29. package/dist/bundle/chunks/openai-codex.js +2 -2
  30. package/dist/bundle/chunks/openai-completions-SKDGF6OE.js +7 -0
  31. package/dist/bundle/chunks/openai-responses-FPML4SSG.js +3 -0
  32. package/dist/bundle/chunks/{openrouter-images-6XDE2CEW.js → openrouter-images-5524IQHX.js} +1 -1
  33. package/dist/bundle/chunks/openrouter.js +2 -2
  34. package/dist/bundle/chunks/{pi-messages-MQMPIPNC.js → pi-messages-HZZ7GEEW.js} +2 -2
  35. package/dist/bundle/chunks/radius.js +2 -2
  36. package/dist/bundle/chunks/typesafe-system-one-Z2CDLKEY.js +2 -0
  37. package/dist/bundle/chunks/virtual-modules-TQRORWJQ.js +2 -0
  38. package/dist/bundle/cli.js +1 -1
  39. package/dist/bundle/index.js +1 -1
  40. package/dist/bundle/rpc-entry.js +1 -1
  41. package/dist/cli/args.d.ts.map +1 -1
  42. package/dist/cli/args.js +4 -3
  43. package/dist/cli/args.js.map +1 -1
  44. package/dist/cli/startup-ui.d.ts.map +1 -1
  45. package/dist/cli/startup-ui.js +38 -30
  46. package/dist/cli/startup-ui.js.map +1 -1
  47. package/dist/config.d.ts +18 -4
  48. package/dist/config.d.ts.map +1 -1
  49. package/dist/config.js +30 -4
  50. package/dist/config.js.map +1 -1
  51. package/dist/core/agent-session-runtime.d.ts +1 -1
  52. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  53. package/dist/core/agent-session-runtime.js +13 -13
  54. package/dist/core/agent-session-runtime.js.map +1 -1
  55. package/dist/core/agent-session-services.d.ts +2 -2
  56. package/dist/core/agent-session-services.d.ts.map +1 -1
  57. package/dist/core/agent-session-services.js +14 -1
  58. package/dist/core/agent-session-services.js.map +1 -1
  59. package/dist/core/agent-session.d.ts +107 -58
  60. package/dist/core/agent-session.d.ts.map +1 -1
  61. package/dist/core/agent-session.js +505 -298
  62. package/dist/core/agent-session.js.map +1 -1
  63. package/dist/core/bug-report.js +1 -1
  64. package/dist/core/bug-report.js.map +1 -1
  65. package/dist/core/compaction/compaction.d.ts.map +1 -1
  66. package/dist/core/compaction/compaction.js +1 -22
  67. package/dist/core/compaction/compaction.js.map +1 -1
  68. package/dist/core/compaction/utils.d.ts +2 -1
  69. package/dist/core/compaction/utils.d.ts.map +1 -1
  70. package/dist/core/compaction/utils.js +25 -18
  71. package/dist/core/compaction/utils.js.map +1 -1
  72. package/dist/core/context-snapshot.d.ts +17 -4
  73. package/dist/core/context-snapshot.d.ts.map +1 -1
  74. package/dist/core/context-snapshot.js +48 -50
  75. package/dist/core/context-snapshot.js.map +1 -1
  76. package/dist/core/crash-log.d.ts.map +1 -1
  77. package/dist/core/crash-log.js +2 -1
  78. package/dist/core/crash-log.js.map +1 -1
  79. package/dist/core/export-html/template.css +10 -0
  80. package/dist/core/export-html/template.js +66 -17
  81. package/dist/core/extensions/distribution-api.d.ts +1 -8
  82. package/dist/core/extensions/distribution-api.d.ts.map +1 -1
  83. package/dist/core/extensions/distribution-api.js +6 -6
  84. package/dist/core/extensions/distribution-api.js.map +1 -1
  85. package/dist/core/extensions/index.d.ts +3 -3
  86. package/dist/core/extensions/index.d.ts.map +1 -1
  87. package/dist/core/extensions/index.js +1 -1
  88. package/dist/core/extensions/index.js.map +1 -1
  89. package/dist/core/extensions/loader.d.ts +1 -1
  90. package/dist/core/extensions/loader.d.ts.map +1 -1
  91. package/dist/core/extensions/loader.js +58 -7
  92. package/dist/core/extensions/loader.js.map +1 -1
  93. package/dist/core/extensions/runner.d.ts +22 -3
  94. package/dist/core/extensions/runner.d.ts.map +1 -1
  95. package/dist/core/extensions/runner.js +124 -8
  96. package/dist/core/extensions/runner.js.map +1 -1
  97. package/dist/core/extensions/types.d.ts +306 -30
  98. package/dist/core/extensions/types.d.ts.map +1 -1
  99. package/dist/core/extensions/types.js +1 -1
  100. package/dist/core/extensions/types.js.map +1 -1
  101. package/dist/core/extensions/wrapper.d.ts +2 -2
  102. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  103. package/dist/core/extensions/wrapper.js +3 -3
  104. package/dist/core/extensions/wrapper.js.map +1 -1
  105. package/dist/core/keybindings.d.ts +40 -5
  106. package/dist/core/keybindings.d.ts.map +1 -1
  107. package/dist/core/keybindings.js +10 -1
  108. package/dist/core/keybindings.js.map +1 -1
  109. package/dist/core/mcp-servers.d.ts +98 -0
  110. package/dist/core/mcp-servers.d.ts.map +1 -0
  111. package/dist/core/mcp-servers.js +158 -0
  112. package/dist/core/mcp-servers.js.map +1 -0
  113. package/dist/core/model-registry.d.ts +13 -1
  114. package/dist/core/model-registry.d.ts.map +1 -1
  115. package/dist/core/model-registry.js +25 -0
  116. package/dist/core/model-registry.js.map +1 -1
  117. package/dist/core/model-resolver.d.ts +2 -2
  118. package/dist/core/model-resolver.d.ts.map +1 -1
  119. package/dist/core/model-resolver.js +5 -5
  120. package/dist/core/model-resolver.js.map +1 -1
  121. package/dist/core/model-runtime.d.ts +41 -3
  122. package/dist/core/model-runtime.d.ts.map +1 -1
  123. package/dist/core/model-runtime.js +167 -17
  124. package/dist/core/model-runtime.js.map +1 -1
  125. package/dist/core/nested-tool-calls.d.ts +102 -0
  126. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  127. package/dist/core/nested-tool-calls.js +177 -0
  128. package/dist/core/nested-tool-calls.js.map +1 -0
  129. package/dist/core/package-manager.d.ts +4 -0
  130. package/dist/core/package-manager.d.ts.map +1 -1
  131. package/dist/core/package-manager.js +58 -12
  132. package/dist/core/package-manager.js.map +1 -1
  133. package/dist/core/provider-composer.d.ts +40 -21
  134. package/dist/core/provider-composer.d.ts.map +1 -1
  135. package/dist/core/provider-composer.js +92 -40
  136. package/dist/core/provider-composer.js.map +1 -1
  137. package/dist/core/remote-catalog-provider.d.ts +8 -1
  138. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  139. package/dist/core/remote-catalog-provider.js +18 -3
  140. package/dist/core/remote-catalog-provider.js.map +1 -1
  141. package/dist/core/resource-loader.d.ts +7 -1
  142. package/dist/core/resource-loader.d.ts.map +1 -1
  143. package/dist/core/resource-loader.js +160 -35
  144. package/dist/core/resource-loader.js.map +1 -1
  145. package/dist/core/sdk.d.ts +3 -3
  146. package/dist/core/sdk.d.ts.map +1 -1
  147. package/dist/core/sdk.js +84 -14
  148. package/dist/core/sdk.js.map +1 -1
  149. package/dist/core/session-manager.d.ts +9 -0
  150. package/dist/core/session-manager.d.ts.map +1 -1
  151. package/dist/core/session-manager.js +22 -22
  152. package/dist/core/session-manager.js.map +1 -1
  153. package/dist/core/settings-manager.d.ts +36 -1
  154. package/dist/core/settings-manager.d.ts.map +1 -1
  155. package/dist/core/settings-manager.js +108 -2
  156. package/dist/core/settings-manager.js.map +1 -1
  157. package/dist/core/slash-commands.d.ts.map +1 -1
  158. package/dist/core/slash-commands.js +1 -0
  159. package/dist/core/slash-commands.js.map +1 -1
  160. package/dist/core/source-info.d.ts +8 -0
  161. package/dist/core/source-info.d.ts.map +1 -1
  162. package/dist/core/source-info.js +16 -0
  163. package/dist/core/source-info.js.map +1 -1
  164. package/dist/core/system-prompt.js +1 -1
  165. package/dist/core/system-prompt.js.map +1 -1
  166. package/dist/core/tasks/delivery.d.ts +40 -0
  167. package/dist/core/tasks/delivery.d.ts.map +1 -0
  168. package/dist/core/tasks/delivery.js +157 -0
  169. package/dist/core/tasks/delivery.js.map +1 -0
  170. package/dist/core/tasks/history.d.ts +4 -0
  171. package/dist/core/tasks/history.d.ts.map +1 -0
  172. package/dist/core/{background → tasks}/history.js +24 -48
  173. package/dist/core/tasks/history.js.map +1 -0
  174. package/dist/core/{background → tasks}/output.d.ts +4 -4
  175. package/dist/core/tasks/output.d.ts.map +1 -0
  176. package/dist/core/{background → tasks}/output.js +11 -11
  177. package/dist/core/tasks/output.js.map +1 -0
  178. package/dist/core/tasks/presentation.d.ts +9 -0
  179. package/dist/core/tasks/presentation.d.ts.map +1 -0
  180. package/dist/core/{background → tasks}/presentation.js +53 -51
  181. package/dist/core/tasks/presentation.js.map +1 -0
  182. package/dist/core/{background/service.d.ts → tasks/runtime.d.ts} +22 -23
  183. package/dist/core/tasks/runtime.d.ts.map +1 -0
  184. package/dist/core/{background/service.js → tasks/runtime.js} +154 -198
  185. package/dist/core/tasks/runtime.js.map +1 -0
  186. package/dist/core/tasks/session.d.ts +49 -0
  187. package/dist/core/tasks/session.d.ts.map +1 -0
  188. package/dist/core/tasks/session.js +129 -0
  189. package/dist/core/tasks/session.js.map +1 -0
  190. package/dist/core/tasks/store.d.ts +32 -0
  191. package/dist/core/tasks/store.d.ts.map +1 -0
  192. package/dist/core/tasks/store.js +135 -0
  193. package/dist/core/tasks/store.js.map +1 -0
  194. package/dist/core/{background → tasks}/types.d.ts +80 -62
  195. package/dist/core/tasks/types.d.ts.map +1 -0
  196. package/dist/core/{background → tasks}/types.js +9 -9
  197. package/dist/core/tasks/types.js.map +1 -0
  198. package/dist/core/tasks/view-data.d.ts +8 -0
  199. package/dist/core/tasks/view-data.d.ts.map +1 -0
  200. package/dist/core/tasks/view-data.js +61 -0
  201. package/dist/core/tasks/view-data.js.map +1 -0
  202. package/dist/core/tasks/view.d.ts +30 -0
  203. package/dist/core/tasks/view.d.ts.map +1 -0
  204. package/dist/core/tasks/view.js +50 -0
  205. package/dist/core/tasks/view.js.map +1 -0
  206. package/dist/core/tools/bash.d.ts +8 -95
  207. package/dist/core/tools/bash.d.ts.map +1 -1
  208. package/dist/core/tools/bash.js +8 -240
  209. package/dist/core/tools/bash.js.map +1 -1
  210. package/dist/core/tools/find.d.ts.map +1 -1
  211. package/dist/core/tools/find.js +0 -1
  212. package/dist/core/tools/find.js.map +1 -1
  213. package/dist/core/tools/grep.d.ts +2 -0
  214. package/dist/core/tools/grep.d.ts.map +1 -1
  215. package/dist/core/tools/grep.js +2 -1
  216. package/dist/core/tools/grep.js.map +1 -1
  217. package/dist/core/tools/index.d.ts +2 -1
  218. package/dist/core/tools/index.d.ts.map +1 -1
  219. package/dist/core/tools/index.js +9 -0
  220. package/dist/core/tools/index.js.map +1 -1
  221. package/dist/core/tools/ls.d.ts.map +1 -1
  222. package/dist/core/tools/ls.js +0 -1
  223. package/dist/core/tools/ls.js.map +1 -1
  224. package/dist/core/tools/output-accumulator.d.ts +11 -0
  225. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  226. package/dist/core/tools/output-accumulator.js +36 -0
  227. package/dist/core/tools/output-accumulator.js.map +1 -1
  228. package/dist/core/tools/powershell.d.ts +6 -2
  229. package/dist/core/tools/powershell.d.ts.map +1 -1
  230. package/dist/core/tools/powershell.js +1 -1
  231. package/dist/core/tools/powershell.js.map +1 -1
  232. package/dist/core/tools/read.d.ts.map +1 -1
  233. package/dist/core/tools/read.js +0 -1
  234. package/dist/core/tools/read.js.map +1 -1
  235. package/dist/core/tools/render-utils.d.ts +6 -7
  236. package/dist/core/tools/render-utils.d.ts.map +1 -1
  237. package/dist/core/tools/render-utils.js +26 -11
  238. package/dist/core/tools/render-utils.js.map +1 -1
  239. package/dist/core/tools/renderers/bash.d.ts +1 -1
  240. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  241. package/dist/core/tools/renderers/bash.js +65 -12
  242. package/dist/core/tools/renderers/bash.js.map +1 -1
  243. package/dist/core/tools/renderers/edit.d.ts.map +1 -1
  244. package/dist/core/tools/renderers/edit.js +4 -22
  245. package/dist/core/tools/renderers/edit.js.map +1 -1
  246. package/dist/core/tools/renderers/find.d.ts.map +1 -1
  247. package/dist/core/tools/renderers/find.js +7 -6
  248. package/dist/core/tools/renderers/find.js.map +1 -1
  249. package/dist/core/tools/renderers/grep.d.ts.map +1 -1
  250. package/dist/core/tools/renderers/grep.js +8 -7
  251. package/dist/core/tools/renderers/grep.js.map +1 -1
  252. package/dist/core/tools/renderers/index.d.ts.map +1 -1
  253. package/dist/core/tools/renderers/index.js +5 -7
  254. package/dist/core/tools/renderers/index.js.map +1 -1
  255. package/dist/core/tools/renderers/ls.d.ts.map +1 -1
  256. package/dist/core/tools/renderers/ls.js +3 -2
  257. package/dist/core/tools/renderers/ls.js.map +1 -1
  258. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  259. package/dist/core/tools/renderers/read.js +10 -14
  260. package/dist/core/tools/renderers/read.js.map +1 -1
  261. package/dist/core/tools/renderers/shell-task.d.ts +4 -0
  262. package/dist/core/tools/renderers/shell-task.d.ts.map +1 -0
  263. package/dist/core/tools/renderers/shell-task.js +35 -0
  264. package/dist/core/tools/renderers/shell-task.js.map +1 -0
  265. package/dist/core/tools/renderers/write.d.ts.map +1 -1
  266. package/dist/core/tools/renderers/write.js +3 -2
  267. package/dist/core/tools/renderers/write.js.map +1 -1
  268. package/dist/core/tools/shell-execution.d.ts +4 -5
  269. package/dist/core/tools/shell-execution.d.ts.map +1 -1
  270. package/dist/core/tools/shell-execution.js +19 -3
  271. package/dist/core/tools/shell-execution.js.map +1 -1
  272. package/dist/core/tools/shell-tool.d.ts +93 -0
  273. package/dist/core/tools/shell-tool.d.ts.map +1 -0
  274. package/dist/core/tools/shell-tool.js +251 -0
  275. package/dist/core/tools/shell-tool.js.map +1 -0
  276. package/dist/core/tools/tasks/actions.d.ts +12 -0
  277. package/dist/core/tools/tasks/actions.d.ts.map +1 -0
  278. package/dist/{extensions/background → core/tools/tasks}/actions.js +20 -19
  279. package/dist/core/tools/tasks/actions.js.map +1 -0
  280. package/dist/core/tools/tasks/constants.d.ts +24 -0
  281. package/dist/core/tools/tasks/constants.d.ts.map +1 -0
  282. package/dist/{extensions/background → core/tools/tasks}/constants.js +11 -9
  283. package/dist/core/tools/tasks/constants.js.map +1 -0
  284. package/dist/{extensions/background → core/tools/tasks}/schema.d.ts +6 -6
  285. package/dist/core/tools/tasks/schema.d.ts.map +1 -0
  286. package/dist/{extensions/background → core/tools/tasks}/schema.js +17 -17
  287. package/dist/core/tools/tasks/schema.js.map +1 -0
  288. package/dist/{extensions/background → core/tools/tasks}/types.d.ts +15 -17
  289. package/dist/core/tools/tasks/types.d.ts.map +1 -0
  290. package/dist/core/tools/tasks/types.js.map +1 -0
  291. package/dist/core/tools/tasks.d.ts +14 -0
  292. package/dist/core/tools/tasks.d.ts.map +1 -0
  293. package/dist/core/tools/tasks.js +40 -0
  294. package/dist/core/tools/tasks.js.map +1 -0
  295. package/dist/core/tools/tool-definition-wrapper.d.ts +5 -8
  296. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  297. package/dist/core/tools/tool-definition-wrapper.js +4 -4
  298. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  299. package/dist/core/tools/truncate.d.ts +14 -0
  300. package/dist/core/tools/truncate.d.ts.map +1 -1
  301. package/dist/core/tools/truncate.js +29 -0
  302. package/dist/core/tools/truncate.js.map +1 -1
  303. package/dist/core/trust-manager.d.ts.map +1 -1
  304. package/dist/core/trust-manager.js +1 -0
  305. package/dist/core/trust-manager.js.map +1 -1
  306. package/dist/core/usage-totals.d.ts +5 -3
  307. package/dist/core/usage-totals.d.ts.map +1 -1
  308. package/dist/core/usage-totals.js +27 -4
  309. package/dist/core/usage-totals.js.map +1 -1
  310. package/dist/core/virtual-models.d.ts +115 -0
  311. package/dist/core/virtual-models.d.ts.map +1 -0
  312. package/dist/core/virtual-models.js +117 -0
  313. package/dist/core/virtual-models.js.map +1 -0
  314. package/dist/extensions/codemode/execute.d.ts +16 -0
  315. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  316. package/dist/extensions/codemode/execute.js +390 -0
  317. package/dist/extensions/codemode/execute.js.map +1 -0
  318. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  319. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  320. package/dist/extensions/codemode/execute.lazy.js +3 -0
  321. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  322. package/dist/extensions/codemode/index.d.ts +21 -0
  323. package/dist/extensions/codemode/index.d.ts.map +1 -0
  324. package/dist/extensions/codemode/index.js +36 -0
  325. package/dist/extensions/codemode/index.js.map +1 -0
  326. package/dist/extensions/codemode/renderer.d.ts +12 -0
  327. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  328. package/dist/extensions/codemode/renderer.js +119 -0
  329. package/dist/extensions/codemode/renderer.js.map +1 -0
  330. package/dist/extensions/codemode/search.d.ts +33 -0
  331. package/dist/extensions/codemode/search.d.ts.map +1 -0
  332. package/dist/extensions/codemode/search.js +117 -0
  333. package/dist/extensions/codemode/search.js.map +1 -0
  334. package/dist/extensions/codemode/tool.d.ts +122 -0
  335. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  336. package/dist/extensions/codemode/tool.js +324 -0
  337. package/dist/extensions/codemode/tool.js.map +1 -0
  338. package/dist/extensions/codemode/worker.d.ts +7 -0
  339. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  340. package/dist/extensions/codemode/worker.js +7 -0
  341. package/dist/extensions/codemode/worker.js.map +1 -0
  342. package/dist/extensions/deepwiki/schema.d.ts +1 -1
  343. package/dist/extensions/index.d.ts.map +1 -1
  344. package/dist/extensions/index.js +14 -12
  345. package/dist/extensions/index.js.map +1 -1
  346. package/dist/extensions/llama/provider.d.ts +1 -1
  347. package/dist/extensions/llama/provider.d.ts.map +1 -1
  348. package/dist/extensions/llama/provider.js +65 -13
  349. package/dist/extensions/llama/provider.js.map +1 -1
  350. package/dist/extensions/mcp/cli.d.ts +21 -0
  351. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  352. package/dist/extensions/mcp/cli.js +485 -0
  353. package/dist/extensions/mcp/cli.js.map +1 -0
  354. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  355. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  356. package/dist/extensions/mcp/cli.lazy.js +3 -0
  357. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  358. package/dist/extensions/mcp/config.d.ts +70 -0
  359. package/dist/extensions/mcp/config.d.ts.map +1 -0
  360. package/dist/extensions/mcp/config.js +146 -0
  361. package/dist/extensions/mcp/config.js.map +1 -0
  362. package/dist/extensions/mcp/index.d.ts +52 -0
  363. package/dist/extensions/mcp/index.d.ts.map +1 -0
  364. package/dist/extensions/mcp/index.js +904 -0
  365. package/dist/extensions/mcp/index.js.map +1 -0
  366. package/dist/extensions/mcp/log.d.ts +16 -0
  367. package/dist/extensions/mcp/log.d.ts.map +1 -0
  368. package/dist/extensions/mcp/log.js +64 -0
  369. package/dist/extensions/mcp/log.js.map +1 -0
  370. package/dist/extensions/mcp/oauth.d.ts +94 -0
  371. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  372. package/dist/extensions/mcp/oauth.js +330 -0
  373. package/dist/extensions/mcp/oauth.js.map +1 -0
  374. package/dist/extensions/mcp/resources.d.ts +43 -0
  375. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  376. package/dist/extensions/mcp/resources.js +262 -0
  377. package/dist/extensions/mcp/resources.js.map +1 -0
  378. package/dist/extensions/mcp/runtime.d.ts +96 -0
  379. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  380. package/dist/extensions/mcp/runtime.js +372 -0
  381. package/dist/extensions/mcp/runtime.js.map +1 -0
  382. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  383. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  384. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  385. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  386. package/dist/extensions/mcp/tools.d.ts +83 -0
  387. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  388. package/dist/extensions/mcp/tools.js +233 -0
  389. package/dist/extensions/mcp/tools.js.map +1 -0
  390. package/dist/extensions/mcp/ui.d.ts +60 -0
  391. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  392. package/dist/extensions/mcp/ui.js +166 -0
  393. package/dist/extensions/mcp/ui.js.map +1 -0
  394. package/dist/extensions/question/detail-pane.d.ts +12 -0
  395. package/dist/extensions/question/detail-pane.d.ts.map +1 -0
  396. package/dist/extensions/question/detail-pane.js +42 -0
  397. package/dist/extensions/question/detail-pane.js.map +1 -0
  398. package/dist/extensions/question/dialog.d.ts.map +1 -1
  399. package/dist/extensions/question/dialog.js +175 -105
  400. package/dist/extensions/question/dialog.js.map +1 -1
  401. package/dist/extensions/question/option-window.d.ts +26 -0
  402. package/dist/extensions/question/option-window.d.ts.map +1 -0
  403. package/dist/extensions/question/option-window.js +53 -0
  404. package/dist/extensions/question/option-window.js.map +1 -0
  405. package/dist/extensions/question/render-cache.d.ts +4 -4
  406. package/dist/extensions/question/render-cache.d.ts.map +1 -1
  407. package/dist/extensions/question/render-cache.js +10 -11
  408. package/dist/extensions/question/render-cache.js.map +1 -1
  409. package/dist/extensions/statusline/index.js +2 -2
  410. package/dist/extensions/statusline/index.js.map +1 -1
  411. package/dist/extensions/todo/index.d.ts.map +1 -1
  412. package/dist/extensions/todo/index.js +12 -8
  413. package/dist/extensions/todo/index.js.map +1 -1
  414. package/dist/extensions/todo/view.d.ts +3 -3
  415. package/dist/extensions/todo/view.d.ts.map +1 -1
  416. package/dist/extensions/todo/view.js +7 -6
  417. package/dist/extensions/todo/view.js.map +1 -1
  418. package/dist/extensions/tool-search/index.d.ts +12 -0
  419. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  420. package/dist/extensions/tool-search/index.js +20 -0
  421. package/dist/extensions/tool-search/index.js.map +1 -0
  422. package/dist/extensions/tool-search/tool.d.ts +72 -0
  423. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  424. package/dist/extensions/tool-search/tool.js +208 -0
  425. package/dist/extensions/tool-search/tool.js.map +1 -0
  426. package/dist/index.d.ts +13 -4
  427. package/dist/index.d.ts.map +1 -1
  428. package/dist/index.js +7 -1
  429. package/dist/index.js.map +1 -1
  430. package/dist/main.d.ts.map +1 -1
  431. package/dist/main.js +10 -0
  432. package/dist/main.js.map +1 -1
  433. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  434. package/dist/modes/interactive/components/config-selector.js +13 -3
  435. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  436. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  437. package/dist/modes/interactive/components/custom-message.js +3 -1
  438. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  439. package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
  440. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  441. package/dist/modes/interactive/components/first-time-setup.js +8 -2
  442. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  443. package/dist/modes/interactive/components/footer.d.ts +7 -0
  444. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  445. package/dist/modes/interactive/components/footer.js +42 -3
  446. package/dist/modes/interactive/components/footer.js.map +1 -1
  447. package/dist/modes/interactive/components/index.d.ts +1 -1
  448. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  449. package/dist/modes/interactive/components/index.js +1 -1
  450. package/dist/modes/interactive/components/index.js.map +1 -1
  451. package/dist/modes/interactive/components/pi-logo.d.ts +12 -0
  452. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  453. package/dist/modes/interactive/components/pi-logo.js +25 -0
  454. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  455. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  456. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  457. package/dist/modes/interactive/components/settings-selector.js +28 -6
  458. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  459. package/dist/modes/interactive/components/status-marker.d.ts +4 -4
  460. package/dist/modes/interactive/components/status-marker.js +4 -4
  461. package/dist/modes/interactive/components/status-marker.js.map +1 -1
  462. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  463. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  464. package/dist/modes/interactive/components/themed-text.js +28 -0
  465. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  466. package/dist/modes/interactive/interactive-mode.d.ts +2 -4
  467. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  468. package/dist/modes/interactive/interactive-mode.js +221 -173
  469. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  470. package/dist/modes/interactive/tasks/completion-render.d.ts +8 -0
  471. package/dist/modes/interactive/tasks/completion-render.d.ts.map +1 -0
  472. package/dist/{extensions/background → modes/interactive/tasks}/completion-render.js +33 -30
  473. package/dist/modes/interactive/tasks/completion-render.js.map +1 -0
  474. package/dist/modes/interactive/tasks/fallback-view.d.ts +4 -0
  475. package/dist/modes/interactive/tasks/fallback-view.d.ts.map +1 -0
  476. package/dist/modes/interactive/tasks/fallback-view.js +27 -0
  477. package/dist/modes/interactive/tasks/fallback-view.js.map +1 -0
  478. package/dist/modes/interactive/tasks/index.d.ts +12 -0
  479. package/dist/modes/interactive/tasks/index.d.ts.map +1 -0
  480. package/dist/modes/interactive/tasks/index.js +97 -0
  481. package/dist/modes/interactive/tasks/index.js.map +1 -0
  482. package/dist/modes/interactive/tasks/manager.d.ts +67 -0
  483. package/dist/modes/interactive/tasks/manager.d.ts.map +1 -0
  484. package/dist/modes/interactive/tasks/manager.js +380 -0
  485. package/dist/modes/interactive/tasks/manager.js.map +1 -0
  486. package/dist/{extensions/background → modes/interactive/tasks}/render.d.ts +13 -13
  487. package/dist/modes/interactive/tasks/render.d.ts.map +1 -0
  488. package/dist/{extensions/background → modes/interactive/tasks}/render.js +18 -18
  489. package/dist/modes/interactive/tasks/render.js.map +1 -0
  490. package/dist/{extensions/background → modes/interactive/tasks}/task-view.d.ts +7 -7
  491. package/dist/modes/interactive/tasks/task-view.d.ts.map +1 -0
  492. package/dist/{extensions/background → modes/interactive/tasks}/task-view.js +4 -4
  493. package/dist/modes/interactive/tasks/task-view.js.map +1 -0
  494. package/dist/{extensions/background → modes/interactive/tasks}/text.d.ts +1 -1
  495. package/dist/modes/interactive/tasks/text.d.ts.map +1 -0
  496. package/dist/{extensions/background → modes/interactive/tasks}/text.js +1 -1
  497. package/dist/modes/interactive/tasks/text.js.map +1 -0
  498. package/dist/modes/interactive/tasks/viewport.d.ts +15 -0
  499. package/dist/modes/interactive/tasks/viewport.d.ts.map +1 -0
  500. package/dist/modes/interactive/tasks/viewport.js +49 -0
  501. package/dist/modes/interactive/tasks/viewport.js.map +1 -0
  502. package/dist/modes/interactive/theme/dark.json +59 -72
  503. package/dist/modes/interactive/theme/light.json +57 -69
  504. package/dist/modes/interactive/theme/system-theme.d.ts +54 -0
  505. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  506. package/dist/modes/interactive/theme/system-theme.js +535 -0
  507. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  508. package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
  509. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  510. package/dist/modes/interactive/theme/theme-controller.js +125 -47
  511. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  512. package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
  513. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
  514. package/dist/modes/interactive/theme/theme-json.js +3 -1
  515. package/dist/modes/interactive/theme/theme-json.js.map +1 -1
  516. package/dist/modes/interactive/theme/theme-schema.json +7 -2
  517. package/dist/modes/interactive/theme/theme.d.ts +70 -39
  518. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  519. package/dist/modes/interactive/theme/theme.js +247 -314
  520. package/dist/modes/interactive/theme/theme.js.map +1 -1
  521. package/dist/modes/interactive/tool-view/chat.d.ts +20 -0
  522. package/dist/modes/interactive/tool-view/chat.d.ts.map +1 -0
  523. package/dist/modes/interactive/tool-view/chat.js +46 -0
  524. package/dist/modes/interactive/tool-view/chat.js.map +1 -0
  525. package/dist/modes/interactive/tool-view/fallback.d.ts +14 -0
  526. package/dist/modes/interactive/tool-view/fallback.d.ts.map +1 -0
  527. package/dist/modes/interactive/tool-view/fallback.js +55 -0
  528. package/dist/modes/interactive/tool-view/fallback.js.map +1 -0
  529. package/dist/modes/interactive/tool-view/style.d.ts +63 -0
  530. package/dist/modes/interactive/tool-view/style.d.ts.map +1 -0
  531. package/dist/modes/interactive/tool-view/style.js +83 -0
  532. package/dist/modes/interactive/tool-view/style.js.map +1 -0
  533. package/dist/modes/interactive/{components → tool-view}/tool-execution.d.ts +17 -24
  534. package/dist/modes/interactive/tool-view/tool-execution.d.ts.map +1 -0
  535. package/dist/modes/interactive/{components → tool-view}/tool-execution.js +42 -116
  536. package/dist/modes/interactive/tool-view/tool-execution.js.map +1 -0
  537. package/dist/modes/interactive/tui-renderer.d.ts +2 -1
  538. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  539. package/dist/modes/interactive/tui-renderer.js +1 -0
  540. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  541. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  542. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  543. package/dist/modes/rpc/rpc-client.js +12 -8
  544. package/dist/modes/rpc/rpc-client.js.map +1 -1
  545. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  546. package/dist/modes/rpc/rpc-mode.js +7 -9
  547. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  548. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  549. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  550. package/dist/modes/rpc/rpc-types.js.map +1 -1
  551. package/dist/package-manager-cli.d.ts.map +1 -1
  552. package/dist/package-manager-cli.js +6 -2
  553. package/dist/package-manager-cli.js.map +1 -1
  554. package/dist/utils/clipboard-image.d.ts.map +1 -1
  555. package/dist/utils/clipboard-image.js +14 -17
  556. package/dist/utils/clipboard-image.js.map +1 -1
  557. package/dist/utils/clipboard.d.ts +2 -0
  558. package/dist/utils/clipboard.d.ts.map +1 -1
  559. package/dist/utils/clipboard.js +5 -0
  560. package/dist/utils/clipboard.js.map +1 -1
  561. package/dist/utils/paths.d.ts +3 -3
  562. package/dist/utils/paths.d.ts.map +1 -1
  563. package/dist/utils/paths.js +5 -4
  564. package/dist/utils/paths.js.map +1 -1
  565. package/dist/utils/shell.d.ts +1 -3
  566. package/dist/utils/shell.d.ts.map +1 -1
  567. package/dist/utils/shell.js +3 -30
  568. package/dist/utils/shell.js.map +1 -1
  569. package/docs/bundled/README.md +22 -8
  570. package/docs/bundled/extensions/question.md +6 -5
  571. package/docs/bundled/extensions/statusline.md +2 -2
  572. package/docs/bundled/tasks.md +141 -0
  573. package/docs/bundled/tool-presentation.md +41 -31
  574. package/docs/custom-provider.md +44 -0
  575. package/docs/docs.json +10 -6
  576. package/docs/extensions.md +90 -90
  577. package/docs/index.md +2 -1
  578. package/docs/keybindings.md +19 -7
  579. package/docs/llama-cpp.md +12 -1
  580. package/docs/mcp.md +188 -0
  581. package/docs/models.md +35 -0
  582. package/docs/packages.md +4 -0
  583. package/docs/providers.md +6 -0
  584. package/docs/rpc.md +5 -3
  585. package/docs/sdk.md +26 -16
  586. package/docs/security.md +4 -0
  587. package/docs/session-format.md +18 -11
  588. package/docs/settings.md +26 -2
  589. package/docs/themes.md +27 -5
  590. package/docs/tui.md +20 -0
  591. package/docs/usage.md +61 -3
  592. package/docs/virtual-models.md +114 -0
  593. package/docs/windows.md +2 -0
  594. package/examples/README.md +1 -1
  595. package/examples/extensions/README.md +2 -0
  596. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  597. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  598. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  599. package/examples/extensions/custom-provider-gitlab-duo/test.ts +4 -4
  600. package/examples/extensions/debug-provider.ts +90 -0
  601. package/examples/extensions/gondolin/package-lock.json +2 -2
  602. package/examples/extensions/gondolin/package.json +1 -1
  603. package/examples/extensions/jev-router.ts +113 -0
  604. package/examples/extensions/sandbox/package-lock.json +2 -2
  605. package/examples/extensions/sandbox/package.json +1 -1
  606. package/examples/extensions/with-deps/package-lock.json +2 -2
  607. package/examples/extensions/with-deps/package.json +1 -1
  608. package/examples/rpc-client.ts +1 -1
  609. package/examples/rpc-extension-ui.ts +1 -1
  610. package/examples/sdk/14-codemode-mcp.ts +61 -0
  611. package/examples/sdk/README.md +1 -0
  612. package/npm-shrinkwrap.json +409 -423
  613. package/package.json +13 -10
  614. package/dist/bundle/chunks/anthropic-messages-XWFTZP2N.js +0 -6
  615. package/dist/bundle/chunks/azure-openai-responses-HS35BQV6.js +0 -2
  616. package/dist/bundle/chunks/chunk-2IO5GDBS.js +0 -11
  617. package/dist/bundle/chunks/chunk-APQ4ACY3.js +0 -2
  618. package/dist/bundle/chunks/chunk-EDBLK2JQ.js +0 -2
  619. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  620. package/dist/bundle/chunks/google-generative-ai-NOVAJBFC.js +0 -2
  621. package/dist/bundle/chunks/google-vertex-4VHCZJV5.js +0 -2
  622. package/dist/bundle/chunks/mistral-conversations-WC6A2WCJ.js +0 -5
  623. package/dist/bundle/chunks/openai-codex-responses-XCDG75W2.js +0 -10
  624. package/dist/bundle/chunks/openai-completions-SHS3CAEL.js +0 -7
  625. package/dist/bundle/chunks/openai-responses-UT6XFKC7.js +0 -2
  626. package/dist/bundle/chunks/virtual-modules-W3OGMIX7.js +0 -2
  627. package/dist/core/background/history.d.ts +0 -4
  628. package/dist/core/background/history.d.ts.map +0 -1
  629. package/dist/core/background/history.js.map +0 -1
  630. package/dist/core/background/output.d.ts.map +0 -1
  631. package/dist/core/background/output.js.map +0 -1
  632. package/dist/core/background/presentation.d.ts +0 -9
  633. package/dist/core/background/presentation.d.ts.map +0 -1
  634. package/dist/core/background/presentation.js.map +0 -1
  635. package/dist/core/background/service.d.ts.map +0 -1
  636. package/dist/core/background/service.js.map +0 -1
  637. package/dist/core/background/session.d.ts +0 -63
  638. package/dist/core/background/session.d.ts.map +0 -1
  639. package/dist/core/background/session.js +0 -222
  640. package/dist/core/background/session.js.map +0 -1
  641. package/dist/core/background/types.d.ts.map +0 -1
  642. package/dist/core/background/types.js.map +0 -1
  643. package/dist/core/model-stream-options.d.ts +0 -6
  644. package/dist/core/model-stream-options.d.ts.map +0 -1
  645. package/dist/core/model-stream-options.js +0 -20
  646. package/dist/core/model-stream-options.js.map +0 -1
  647. package/dist/extensions/background/actions.d.ts +0 -11
  648. package/dist/extensions/background/actions.d.ts.map +0 -1
  649. package/dist/extensions/background/actions.js.map +0 -1
  650. package/dist/extensions/background/completion-render.d.ts +0 -8
  651. package/dist/extensions/background/completion-render.d.ts.map +0 -1
  652. package/dist/extensions/background/completion-render.js.map +0 -1
  653. package/dist/extensions/background/constants.d.ts +0 -22
  654. package/dist/extensions/background/constants.d.ts.map +0 -1
  655. package/dist/extensions/background/constants.js.map +0 -1
  656. package/dist/extensions/background/index.d.ts +0 -7
  657. package/dist/extensions/background/index.d.ts.map +0 -1
  658. package/dist/extensions/background/index.js +0 -109
  659. package/dist/extensions/background/index.js.map +0 -1
  660. package/dist/extensions/background/keybindings.d.ts +0 -10
  661. package/dist/extensions/background/keybindings.d.ts.map +0 -1
  662. package/dist/extensions/background/keybindings.js +0 -14
  663. package/dist/extensions/background/keybindings.js.map +0 -1
  664. package/dist/extensions/background/manager.d.ts +0 -80
  665. package/dist/extensions/background/manager.d.ts.map +0 -1
  666. package/dist/extensions/background/manager.js +0 -673
  667. package/dist/extensions/background/manager.js.map +0 -1
  668. package/dist/extensions/background/render.d.ts.map +0 -1
  669. package/dist/extensions/background/render.js.map +0 -1
  670. package/dist/extensions/background/schema.d.ts.map +0 -1
  671. package/dist/extensions/background/schema.js.map +0 -1
  672. package/dist/extensions/background/task-view.d.ts.map +0 -1
  673. package/dist/extensions/background/task-view.js.map +0 -1
  674. package/dist/extensions/background/text.d.ts.map +0 -1
  675. package/dist/extensions/background/text.js.map +0 -1
  676. package/dist/extensions/background/types.d.ts.map +0 -1
  677. package/dist/extensions/background/types.js.map +0 -1
  678. package/dist/extensions/subagent/activity.d.ts +0 -34
  679. package/dist/extensions/subagent/activity.d.ts.map +0 -1
  680. package/dist/extensions/subagent/activity.js +0 -192
  681. package/dist/extensions/subagent/activity.js.map +0 -1
  682. package/dist/extensions/subagent/agents-command.d.ts +0 -4
  683. package/dist/extensions/subagent/agents-command.d.ts.map +0 -1
  684. package/dist/extensions/subagent/agents-command.js +0 -230
  685. package/dist/extensions/subagent/agents-command.js.map +0 -1
  686. package/dist/extensions/subagent/agents.d.ts +0 -6
  687. package/dist/extensions/subagent/agents.d.ts.map +0 -1
  688. package/dist/extensions/subagent/agents.js +0 -53
  689. package/dist/extensions/subagent/agents.js.map +0 -1
  690. package/dist/extensions/subagent/budget.d.ts +0 -15
  691. package/dist/extensions/subagent/budget.d.ts.map +0 -1
  692. package/dist/extensions/subagent/budget.js +0 -123
  693. package/dist/extensions/subagent/budget.js.map +0 -1
  694. package/dist/extensions/subagent/cancellation.d.ts +0 -29
  695. package/dist/extensions/subagent/cancellation.d.ts.map +0 -1
  696. package/dist/extensions/subagent/cancellation.js +0 -91
  697. package/dist/extensions/subagent/cancellation.js.map +0 -1
  698. package/dist/extensions/subagent/constants.d.ts +0 -25
  699. package/dist/extensions/subagent/constants.d.ts.map +0 -1
  700. package/dist/extensions/subagent/constants.js +0 -50
  701. package/dist/extensions/subagent/constants.js.map +0 -1
  702. package/dist/extensions/subagent/index.d.ts +0 -3
  703. package/dist/extensions/subagent/index.d.ts.map +0 -1
  704. package/dist/extensions/subagent/index.js +0 -151
  705. package/dist/extensions/subagent/index.js.map +0 -1
  706. package/dist/extensions/subagent/model-selection.d.ts +0 -16
  707. package/dist/extensions/subagent/model-selection.d.ts.map +0 -1
  708. package/dist/extensions/subagent/model-selection.js +0 -51
  709. package/dist/extensions/subagent/model-selection.js.map +0 -1
  710. package/dist/extensions/subagent/render.d.ts +0 -24
  711. package/dist/extensions/subagent/render.d.ts.map +0 -1
  712. package/dist/extensions/subagent/render.js +0 -336
  713. package/dist/extensions/subagent/render.js.map +0 -1
  714. package/dist/extensions/subagent/resolve.d.ts +0 -31
  715. package/dist/extensions/subagent/resolve.d.ts.map +0 -1
  716. package/dist/extensions/subagent/resolve.js +0 -111
  717. package/dist/extensions/subagent/resolve.js.map +0 -1
  718. package/dist/extensions/subagent/runner.d.ts +0 -35
  719. package/dist/extensions/subagent/runner.d.ts.map +0 -1
  720. package/dist/extensions/subagent/runner.js +0 -255
  721. package/dist/extensions/subagent/runner.js.map +0 -1
  722. package/dist/extensions/subagent/schema.d.ts +0 -28
  723. package/dist/extensions/subagent/schema.d.ts.map +0 -1
  724. package/dist/extensions/subagent/schema.js +0 -58
  725. package/dist/extensions/subagent/schema.js.map +0 -1
  726. package/dist/extensions/subagent/sdk-runner.d.ts +0 -33
  727. package/dist/extensions/subagent/sdk-runner.d.ts.map +0 -1
  728. package/dist/extensions/subagent/sdk-runner.js +0 -331
  729. package/dist/extensions/subagent/sdk-runner.js.map +0 -1
  730. package/dist/extensions/subagent/settings.d.ts +0 -8
  731. package/dist/extensions/subagent/settings.d.ts.map +0 -1
  732. package/dist/extensions/subagent/settings.js +0 -206
  733. package/dist/extensions/subagent/settings.js.map +0 -1
  734. package/dist/extensions/subagent/state.d.ts +0 -102
  735. package/dist/extensions/subagent/state.d.ts.map +0 -1
  736. package/dist/extensions/subagent/state.js +0 -383
  737. package/dist/extensions/subagent/state.js.map +0 -1
  738. package/dist/extensions/subagent/text.d.ts +0 -6
  739. package/dist/extensions/subagent/text.d.ts.map +0 -1
  740. package/dist/extensions/subagent/text.js +0 -66
  741. package/dist/extensions/subagent/text.js.map +0 -1
  742. package/dist/extensions/subagent/types.d.ts +0 -91
  743. package/dist/extensions/subagent/types.d.ts.map +0 -1
  744. package/dist/extensions/subagent/types.js +0 -2
  745. package/dist/extensions/subagent/types.js.map +0 -1
  746. package/dist/extensions/subagent/ui/agents-dialog.d.ts +0 -4
  747. package/dist/extensions/subagent/ui/agents-dialog.d.ts.map +0 -1
  748. package/dist/extensions/subagent/ui/agents-dialog.js +0 -84
  749. package/dist/extensions/subagent/ui/agents-dialog.js.map +0 -1
  750. package/dist/extensions/subagent/ui/choice-menu.d.ts +0 -39
  751. package/dist/extensions/subagent/ui/choice-menu.d.ts.map +0 -1
  752. package/dist/extensions/subagent/ui/choice-menu.js +0 -93
  753. package/dist/extensions/subagent/ui/choice-menu.js.map +0 -1
  754. package/dist/extensions/subagent/ui/choices.d.ts +0 -36
  755. package/dist/extensions/subagent/ui/choices.d.ts.map +0 -1
  756. package/dist/extensions/subagent/ui/choices.js +0 -54
  757. package/dist/extensions/subagent/ui/choices.js.map +0 -1
  758. package/dist/extensions/subagent/ui/model-list.d.ts +0 -66
  759. package/dist/extensions/subagent/ui/model-list.d.ts.map +0 -1
  760. package/dist/extensions/subagent/ui/model-list.js +0 -235
  761. package/dist/extensions/subagent/ui/model-list.js.map +0 -1
  762. package/dist/extensions/subagent/ui/model-picker.d.ts +0 -47
  763. package/dist/extensions/subagent/ui/model-picker.d.ts.map +0 -1
  764. package/dist/extensions/subagent/ui/model-picker.js +0 -143
  765. package/dist/extensions/subagent/ui/model-picker.js.map +0 -1
  766. package/dist/extensions/subagent/ui/profile-settings-menu.d.ts +0 -41
  767. package/dist/extensions/subagent/ui/profile-settings-menu.d.ts.map +0 -1
  768. package/dist/extensions/subagent/ui/profile-settings-menu.js +0 -98
  769. package/dist/extensions/subagent/ui/profile-settings-menu.js.map +0 -1
  770. package/dist/modes/interactive/components/tool-chrome.d.ts +0 -28
  771. package/dist/modes/interactive/components/tool-chrome.d.ts.map +0 -1
  772. package/dist/modes/interactive/components/tool-chrome.js +0 -84
  773. package/dist/modes/interactive/components/tool-chrome.js.map +0 -1
  774. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  775. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  776. package/dist/modes/interactive/components/tool-group.d.ts +0 -17
  777. package/dist/modes/interactive/components/tool-group.d.ts.map +0 -1
  778. package/dist/modes/interactive/components/tool-group.js +0 -78
  779. package/dist/modes/interactive/components/tool-group.js.map +0 -1
  780. package/dist/modes/interactive/tool-chat.d.ts +0 -21
  781. package/dist/modes/interactive/tool-chat.d.ts.map +0 -1
  782. package/dist/modes/interactive/tool-chat.js +0 -58
  783. package/dist/modes/interactive/tool-chat.js.map +0 -1
  784. package/docs/bundled/extensions/background.md +0 -132
  785. package/docs/bundled/extensions/subagent.md +0 -148
  786. /package/dist/{extensions/background → core/tools/tasks}/types.js +0 -0
@@ -1,8 +1,8 @@
1
1
  import { truncateHead } from "../tools/truncate.js";
2
- import { BACKGROUND_DETAILS_BYTES, BACKGROUND_RESULT_BYTES, BACKGROUND_TITLE_BYTES, boundText } from "./output.js";
2
+ import { boundText, TASK_DETAILS_BYTES, TASK_RESULT_BYTES, TASK_TITLE_BYTES } from "./output.js";
3
3
  const OUTPUT_BYTES = 40 * 1024;
4
4
  const REPORT_BYTES = 4 * 1024;
5
- const MAX_WORKERS = 8;
5
+ const MAX_ITEMS = 8;
6
6
  const MODEL_LINES = 2000;
7
7
  /** Read data properties only, including at the persisted-message boundary. */
8
8
  function object(value) {
@@ -50,27 +50,30 @@ function text(value, bytes) {
50
50
  const bounded = string(original, bytes);
51
51
  return { text: bounded, truncated: truncated || bounded !== original };
52
52
  }
53
- function workerReport(value) {
53
+ function itemReport(value) {
54
54
  const source = object(value);
55
55
  return {
56
56
  id: string(field(source, "id"), 256),
57
57
  label: string(field(source, "label"), 512),
58
- profile: string(field(source, "profile"), 128),
58
+ category: string(field(source, "category"), 128),
59
59
  description: string(field(source, "description"), 512),
60
60
  status: string(field(source, "status"), 128),
61
61
  report: text(field(source, "report"), REPORT_BYTES),
62
62
  error: optionalString(source, "error", 1024),
63
63
  };
64
64
  }
65
- function workers(value, read) {
65
+ function items(value, read) {
66
66
  if (!Array.isArray(value))
67
- throw new Error("Expected workers");
68
- return Array.from({ length: Math.min(value.length, MAX_WORKERS) }, (_, index) => read(field(value, String(index))));
67
+ throw new Error("Expected items");
68
+ return Array.from({ length: Math.min(value.length, MAX_ITEMS) }, (_, index) => read(field(value, String(index))));
69
69
  }
70
70
  /** Shared by live publication and history restoration; never imports an executor's private details. */
71
- export function readBackgroundProjection(value) {
71
+ export function readTaskProjection(value) {
72
72
  const source = object(value);
73
- const projection = { text: optionalString(source, "text", 16 * 1024) };
73
+ const projection = {
74
+ nextStep: optionalString(source, "nextStep", 2048),
75
+ text: optionalString(source, "text", 16 * 1024),
76
+ };
74
77
  const shell = field(source, "shell");
75
78
  if (shell !== undefined) {
76
79
  const fields = object(shell);
@@ -79,15 +82,15 @@ export function readBackgroundProjection(value) {
79
82
  output: text(field(fields, "output"), OUTPUT_BYTES),
80
83
  };
81
84
  }
82
- const reports = field(source, "workers");
85
+ const reports = field(source, "items");
83
86
  if (reports !== undefined) {
84
- projection.workers = workers(reports, (value) => {
87
+ projection.items = items(reports, (value) => {
85
88
  const fields = object(value);
86
89
  return {
87
- ...workerReport(value),
88
- prompt: string(field(fields, "prompt"), 4096),
90
+ ...itemReport(value),
91
+ input: string(field(fields, "input"), 4096),
89
92
  activity: string(field(fields, "activity"), 1024),
90
- model: optionalString(fields, "model", 256),
93
+ context: optionalString(fields, "context", 256),
91
94
  usage: optionalString(fields, "usage", 256),
92
95
  };
93
96
  });
@@ -104,14 +107,17 @@ function terminalStatus(value) {
104
107
  throw new Error("Expected terminal status");
105
108
  }
106
109
  /** Only this format is understood. Invalid/older details receive the renderer's bounded plain-text fallback. */
107
- export function readBackgroundCompletion(value) {
110
+ export function readTaskCompletion(value) {
108
111
  try {
109
112
  const source = object(value);
110
113
  if (field(source, "version") !== 1)
111
114
  return undefined;
112
115
  const taskId = field(source, "taskId");
113
116
  const kind = field(source, "kind");
114
- if (kind !== "bash" && kind !== "subagent")
117
+ if (typeof kind !== "string" || !/^[a-z][a-z0-9-]{0,63}$/.test(kind))
118
+ return undefined;
119
+ const format = field(source, "format");
120
+ if (format !== "log" && format !== "report")
115
121
  return undefined;
116
122
  if (typeof taskId !== "string" ||
117
123
  !taskId.startsWith(`${kind}-`) ||
@@ -132,14 +138,15 @@ export function readBackgroundCompletion(value) {
132
138
  const common = {
133
139
  version: 1,
134
140
  taskId,
135
- title: string(field(source, "title"), BACKGROUND_TITLE_BYTES),
141
+ title: string(field(source, "title"), TASK_TITLE_BYTES),
136
142
  status: terminalStatus(field(source, "status")),
137
143
  startedAt,
138
144
  endedAt,
139
145
  error: optionalString(source, "error", 4096),
146
+ nextStep: optionalString(source, "nextStep", 2048),
140
147
  };
141
148
  let snapshot;
142
- if (kind === "bash") {
149
+ if (format === "log") {
143
150
  const command = field(source, "command");
144
151
  const outputPath = field(source, "outputPath");
145
152
  const exitCode = field(source, "exitCode");
@@ -153,6 +160,7 @@ export function readBackgroundCompletion(value) {
153
160
  snapshot = {
154
161
  ...common,
155
162
  kind,
163
+ format,
156
164
  shell: optionalString(source, "shell", 128),
157
165
  command: command === undefined ? undefined : text(command, 8192),
158
166
  cwd: optionalString(source, "cwd", 4096),
@@ -171,17 +179,18 @@ export function readBackgroundCompletion(value) {
171
179
  snapshot = {
172
180
  ...common,
173
181
  kind,
174
- workers: workers(field(source, "workers"), workerReport),
182
+ format,
183
+ items: items(field(source, "items"), itemReport),
175
184
  output: output === undefined ? undefined : text(output, OUTPUT_BYTES),
176
185
  };
177
186
  }
178
- return Buffer.byteLength(JSON.stringify(snapshot)) <= BACKGROUND_DETAILS_BYTES ? snapshot : undefined;
187
+ return Buffer.byteLength(JSON.stringify(snapshot)) <= TASK_DETAILS_BYTES ? snapshot : undefined;
179
188
  }
180
189
  catch {
181
190
  return undefined;
182
191
  }
183
192
  }
184
- export function backgroundCompletionSnapshot(task) {
193
+ export function taskCompletionSnapshot(task) {
185
194
  const output = {
186
195
  text: task.result?.content
187
196
  .filter((block) => block.type === "text")
@@ -199,11 +208,13 @@ export function backgroundCompletionSnapshot(task) {
199
208
  startedAt: task.startedAt,
200
209
  endedAt: task.endedAt,
201
210
  error: task.error,
211
+ nextStep: task.projection?.nextStep,
202
212
  };
203
- const snapshot = readBackgroundCompletion(task.kind === "bash"
213
+ const snapshot = readTaskCompletion(task.format === "log"
204
214
  ? {
205
215
  ...common,
206
- kind: "bash",
216
+ kind: task.kind,
217
+ format: "log",
207
218
  shell: task.projection?.shell?.name,
208
219
  command: task.command === undefined
209
220
  ? undefined
@@ -215,16 +226,17 @@ export function backgroundCompletionSnapshot(task) {
215
226
  }
216
227
  : {
217
228
  ...common,
218
- kind: "subagent",
219
- workers: task.projection?.workers ?? [],
220
- output: task.projection?.workers?.length ? undefined : output,
229
+ kind: task.kind,
230
+ format: "report",
231
+ items: task.projection?.items ?? [],
232
+ output: task.projection?.items?.length ? undefined : output,
221
233
  });
222
234
  if (!snapshot)
223
235
  throw new Error("Invalid background completion snapshot");
224
236
  return snapshot;
225
237
  }
226
238
  const singleLine = (value) => value.replace(/\s+/gu, " ").trim();
227
- const OMISSION = "\n[Saved output truncated; use bg read for retained task details.]";
239
+ const OMISSION = "\n[Saved output truncated; use tasks read for retained task details.]";
228
240
  function modelText(value, bytes, lines) {
229
241
  const result = truncateHead(value.text, {
230
242
  maxBytes: Math.max(0, bytes - Buffer.byteLength(OMISSION)),
@@ -241,31 +253,21 @@ function nextStepLine(snapshot) {
241
253
  return "Next step: the task hit its timeout; inspect the partial output above, then rerun with a longer timeout or in smaller pieces if still needed.";
242
254
  case "failed":
243
255
  case "partial": {
244
- if (snapshot.kind === "subagent") {
245
- const unfinished = snapshot.workers
246
- .filter((worker) => worker.status !== "completed")
247
- .map((worker) => singleLine(worker.description))
248
- .filter(Boolean);
249
- const names = unfinished.length > 3
250
- ? `${unfinished.slice(0, 3).join(", ")}, +${unfinished.length - 3} more`
251
- : unfinished.join(", ");
252
- return names
253
- ? `Next step: re-delegate the unfinished work in a fresh subagent call if still needed (${names}).`
254
- : "Next step: re-delegate the work in a fresh subagent call if still needed.";
255
- }
256
+ if (snapshot.nextStep)
257
+ return snapshot.nextStep;
256
258
  return "Next step: diagnose from the output above before retrying; rerun only what is still needed.";
257
259
  }
258
260
  default:
259
261
  return "";
260
262
  }
261
263
  }
262
- /** The model and the card share facts; only the model receives this prose projection. */
264
+ /** The context and the card share facts; only the context receives this prose projection. */
263
265
  function notificationText(snapshot) {
264
266
  const header = [
265
267
  `Background ${snapshot.kind} ${snapshot.taskId}: ${snapshot.status} — ${singleLine(snapshot.title)}`,
266
268
  snapshot.error ? `Error: ${singleLine(snapshot.error)}` : "",
267
269
  ].filter(Boolean);
268
- if (snapshot.kind === "bash") {
270
+ if (snapshot.format === "log") {
269
271
  if (snapshot.command)
270
272
  header.push(`Command:\n${modelText(snapshot.command, 8192, 128)}`);
271
273
  if (snapshot.cwd)
@@ -276,16 +278,16 @@ function notificationText(snapshot) {
276
278
  const prefix = `${header.join("\n")}\n\n`;
277
279
  const guidance = nextStepLine(snapshot);
278
280
  const suffix = guidance ? `\n\n${guidance}` : "";
279
- const remaining = BACKGROUND_RESULT_BYTES - Buffer.byteLength(prefix) - Buffer.byteLength(suffix);
281
+ const remaining = TASK_RESULT_BYTES - Buffer.byteLength(prefix) - Buffer.byteLength(suffix);
280
282
  const lines = MODEL_LINES - prefix.split("\n").length - (guidance ? 3 : 0);
281
- if (snapshot.kind === "subagent" && snapshot.workers.length) {
282
- // Allocate before formatting, so one verbose report cannot erase later workers.
283
- const budget = Math.floor((remaining - 8 * snapshot.workers.length) / snapshot.workers.length);
284
- const lineBudget = Math.floor((lines - 4 * snapshot.workers.length) / snapshot.workers.length);
283
+ if (snapshot.format === "report" && snapshot.items.length) {
284
+ // Allocate before formatting, so one verbose report cannot erase later items.
285
+ const budget = Math.floor((remaining - 8 * snapshot.items.length) / snapshot.items.length);
286
+ const lineBudget = Math.floor((lines - 4 * snapshot.items.length) / snapshot.items.length);
285
287
  return (prefix +
286
- snapshot.workers
288
+ snapshot.items
287
289
  .map((worker, index) => {
288
- const heading = `### ${index + 1}. ${singleLine(worker.description)} (${singleLine(worker.profile)}) — ${singleLine(worker.status)}\n\n`;
290
+ const heading = `### ${index + 1}. ${singleLine(worker.description)} (${singleLine(worker.category)}) — ${singleLine(worker.status)}\n\n`;
289
291
  const reason = worker.error ? `Error: ${singleLine(worker.error)}\n\n` : "";
290
292
  const body = worker.report.text
291
293
  ? worker.report
@@ -297,11 +299,11 @@ function notificationText(snapshot) {
297
299
  }
298
300
  return (prefix + modelText(snapshot.output ?? { text: "No text result.", truncated: false }, remaining, lines) + suffix);
299
301
  }
300
- export function backgroundCompletionMessage(task) {
301
- const details = backgroundCompletionSnapshot(task);
302
+ export function taskCompletionMessage(task) {
303
+ const details = taskCompletionSnapshot(task);
302
304
  return {
303
305
  role: "custom",
304
- customType: "background-completion",
306
+ customType: "task-completion",
305
307
  display: true,
306
308
  content: notificationText(details),
307
309
  details,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../../src/core/tasks/presentation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CustomMessage } from \"../messages.ts\";\nimport { truncateHead } from \"../tools/truncate.ts\";\nimport { boundText, TASK_DETAILS_BYTES, TASK_RESULT_BYTES, TASK_TITLE_BYTES } from \"./output.ts\";\nimport type {\n\tTaskCompletionSnapshot,\n\tTaskItem,\n\tTaskItemReport,\n\tTaskProjection,\n\tTaskSnapshot,\n\tTaskTerminalStatus,\n\tTaskText,\n} from \"./types.ts\";\n\nconst OUTPUT_BYTES = 40 * 1024;\nconst REPORT_BYTES = 4 * 1024;\nconst MAX_ITEMS = 8;\nconst MODEL_LINES = 2000;\n\n/** Read data properties only, including at the persisted-message boundary. */\nfunction object(value: unknown): object {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) throw new Error(\"Expected snapshot object\");\n\tconst prototype = Object.getPrototypeOf(value);\n\tif (prototype !== Object.prototype && prototype !== null) throw new Error(\"Expected plain snapshot\");\n\treturn value;\n}\n\nfunction field(value: object, key: string): unknown {\n\tconst descriptor = Object.getOwnPropertyDescriptor(value, key);\n\tif (descriptor && !(\"value\" in descriptor)) throw new Error(\"Unexpected snapshot accessor\");\n\treturn descriptor?.value;\n}\n\n/** Bound escaped JSON as well as UTF-8, without serializing an unbounded source. */\nfunction string(value: unknown, bytes: number): string {\n\tif (typeof value !== \"string\") throw new Error(\"Expected snapshot text\");\n\tconst prefix = boundText(value, bytes - 2);\n\tif (Buffer.byteLength(JSON.stringify(prefix)) <= bytes) return prefix;\n\tlet low = 0;\n\tlet high = Buffer.byteLength(prefix);\n\twhile (low < high) {\n\t\tconst middle = Math.ceil((low + high) / 2);\n\t\tif (Buffer.byteLength(JSON.stringify(boundText(prefix, middle))) <= bytes) low = middle;\n\t\telse high = middle - 1;\n\t}\n\treturn boundText(prefix, low);\n}\n\nfunction optionalString(source: object, key: string, bytes: number): string | undefined {\n\tconst value = field(source, key);\n\treturn value === undefined ? undefined : string(value, bytes);\n}\n\nfunction text(value: unknown, bytes: number): TaskText {\n\tconst source = object(value);\n\tconst original = field(source, \"text\");\n\tconst truncated = field(source, \"truncated\");\n\tif (typeof truncated !== \"boolean\") throw new Error(\"Expected truncation flag\");\n\tconst bounded = string(original, bytes);\n\treturn { text: bounded, truncated: truncated || bounded !== original };\n}\n\nfunction itemReport(value: unknown): TaskItemReport {\n\tconst source = object(value);\n\treturn {\n\t\tid: string(field(source, \"id\"), 256),\n\t\tlabel: string(field(source, \"label\"), 512),\n\t\tcategory: string(field(source, \"category\"), 128),\n\t\tdescription: string(field(source, \"description\"), 512),\n\t\tstatus: string(field(source, \"status\"), 128),\n\t\treport: text(field(source, \"report\"), REPORT_BYTES),\n\t\terror: optionalString(source, \"error\", 1024),\n\t};\n}\n\nfunction items<T>(value: unknown, read: (value: unknown) => T): T[] {\n\tif (!Array.isArray(value)) throw new Error(\"Expected items\");\n\treturn Array.from({ length: Math.min(value.length, MAX_ITEMS) }, (_, index) => read(field(value, String(index))));\n}\n\n/** Shared by live publication and history restoration; never imports an executor's private details. */\nexport function readTaskProjection(value: unknown): TaskProjection {\n\tconst source = object(value);\n\tconst projection: TaskProjection = {\n\t\tnextStep: optionalString(source, \"nextStep\", 2048),\n\t\ttext: optionalString(source, \"text\", 16 * 1024),\n\t};\n\tconst shell = field(source, \"shell\");\n\tif (shell !== undefined) {\n\t\tconst fields = object(shell);\n\t\tprojection.shell = {\n\t\t\tname: string(field(fields, \"name\"), 128),\n\t\t\toutput: text(field(fields, \"output\"), OUTPUT_BYTES),\n\t\t};\n\t}\n\tconst reports = field(source, \"items\");\n\tif (reports !== undefined) {\n\t\tprojection.items = items(reports, (value): TaskItem => {\n\t\t\tconst fields = object(value);\n\t\t\treturn {\n\t\t\t\t...itemReport(value),\n\t\t\t\tinput: string(field(fields, \"input\"), 4096),\n\t\t\t\tactivity: string(field(fields, \"activity\"), 1024),\n\t\t\t\tcontext: optionalString(fields, \"context\", 256),\n\t\t\t\tusage: optionalString(fields, \"usage\", 256),\n\t\t\t};\n\t\t});\n\t}\n\treturn projection;\n}\n\nfunction terminalStatus(value: unknown): TaskTerminalStatus {\n\tif (\n\t\tvalue === \"completed\" ||\n\t\tvalue === \"partial\" ||\n\t\tvalue === \"failed\" ||\n\t\tvalue === \"cancelled\" ||\n\t\tvalue === \"timeout\"\n\t)\n\t\treturn value;\n\tthrow new Error(\"Expected terminal status\");\n}\n\n/** Only this format is understood. Invalid/older details receive the renderer's bounded plain-text fallback. */\nexport function readTaskCompletion(value: unknown): TaskCompletionSnapshot | undefined {\n\ttry {\n\t\tconst source = object(value);\n\t\tif (field(source, \"version\") !== 1) return undefined;\n\t\tconst taskId = field(source, \"taskId\");\n\t\tconst kind = field(source, \"kind\");\n\t\tif (typeof kind !== \"string\" || !/^[a-z][a-z0-9-]{0,63}$/.test(kind)) return undefined;\n\t\tconst format = field(source, \"format\");\n\t\tif (format !== \"log\" && format !== \"report\") return undefined;\n\t\tif (\n\t\t\ttypeof taskId !== \"string\" ||\n\t\t\t!taskId.startsWith(`${kind}-`) ||\n\t\t\ttaskId.length <= kind.length + 1 ||\n\t\t\ttaskId.length > 512 ||\n\t\t\tBuffer.byteLength(taskId) > 512 ||\n\t\t\ttaskId.includes(\"\\0\")\n\t\t)\n\t\t\treturn undefined;\n\t\tconst startedAt = field(source, \"startedAt\");\n\t\tconst endedAt = field(source, \"endedAt\");\n\t\tif (\n\t\t\ttypeof startedAt !== \"number\" ||\n\t\t\t!Number.isSafeInteger(startedAt) ||\n\t\t\tstartedAt < 0 ||\n\t\t\ttypeof endedAt !== \"number\" ||\n\t\t\t!Number.isSafeInteger(endedAt) ||\n\t\t\tendedAt < startedAt\n\t\t)\n\t\t\treturn undefined;\n\t\tconst common = {\n\t\t\tversion: 1 as const,\n\t\t\ttaskId,\n\t\t\ttitle: string(field(source, \"title\"), TASK_TITLE_BYTES),\n\t\t\tstatus: terminalStatus(field(source, \"status\")),\n\t\t\tstartedAt,\n\t\t\tendedAt,\n\t\t\terror: optionalString(source, \"error\", 4096),\n\t\t\tnextStep: optionalString(source, \"nextStep\", 2048),\n\t\t};\n\t\tlet snapshot: TaskCompletionSnapshot;\n\t\tif (format === \"log\") {\n\t\t\tconst command = field(source, \"command\");\n\t\t\tconst outputPath = field(source, \"outputPath\");\n\t\t\tconst exitCode = field(source, \"exitCode\");\n\t\t\tif (\n\t\t\t\texitCode !== undefined &&\n\t\t\t\texitCode !== null &&\n\t\t\t\t(typeof exitCode !== \"number\" || !Number.isSafeInteger(exitCode))\n\t\t\t)\n\t\t\t\treturn undefined;\n\t\t\t// A clipped path would name a different file. Omit oversized paths intact.\n\t\t\tif (outputPath !== undefined && typeof outputPath !== \"string\") return undefined;\n\t\t\tsnapshot = {\n\t\t\t\t...common,\n\t\t\t\tkind,\n\t\t\t\tformat,\n\t\t\t\tshell: optionalString(source, \"shell\", 128),\n\t\t\t\tcommand: command === undefined ? undefined : text(command, 8192),\n\t\t\t\tcwd: optionalString(source, \"cwd\", 4096),\n\t\t\t\t...(exitCode !== undefined ? { exitCode } : {}),\n\t\t\t\toutputPath:\n\t\t\t\t\toutputPath &&\n\t\t\t\t\t!outputPath.includes(\"\\0\") &&\n\t\t\t\t\toutputPath.length <= 8192 &&\n\t\t\t\t\tBuffer.byteLength(JSON.stringify(outputPath)) <= 8192\n\t\t\t\t\t\t? outputPath\n\t\t\t\t\t\t: undefined,\n\t\t\t\toutput: text(field(source, \"output\"), OUTPUT_BYTES),\n\t\t\t};\n\t\t} else {\n\t\t\tconst output = field(source, \"output\");\n\t\t\tsnapshot = {\n\t\t\t\t...common,\n\t\t\t\tkind,\n\t\t\t\tformat,\n\t\t\t\titems: items(field(source, \"items\"), itemReport),\n\t\t\t\toutput: output === undefined ? undefined : text(output, OUTPUT_BYTES),\n\t\t\t};\n\t\t}\n\t\treturn Buffer.byteLength(JSON.stringify(snapshot)) <= TASK_DETAILS_BYTES ? snapshot : undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport function taskCompletionSnapshot(task: TaskSnapshot): TaskCompletionSnapshot {\n\tconst output: TaskText = {\n\t\ttext:\n\t\t\ttask.result?.content\n\t\t\t\t.filter((block) => block.type === \"text\")\n\t\t\t\t.map((block) => block.text)\n\t\t\t\t.join(\"\\n\") ||\n\t\t\ttask.projection?.text ||\n\t\t\t\"\",\n\t\ttruncated: task.resultTruncated ?? false,\n\t};\n\tconst common = {\n\t\tversion: 1,\n\t\ttaskId: task.id,\n\t\ttitle: task.title,\n\t\tstatus: task.status,\n\t\tstartedAt: task.startedAt,\n\t\tendedAt: task.endedAt,\n\t\terror: task.error,\n\t\tnextStep: task.projection?.nextStep,\n\t};\n\tconst snapshot = readTaskCompletion(\n\t\ttask.format === \"log\"\n\t\t\t? {\n\t\t\t\t\t...common,\n\t\t\t\t\tkind: task.kind,\n\t\t\t\t\tformat: \"log\",\n\t\t\t\t\tshell: task.projection?.shell?.name,\n\t\t\t\t\tcommand:\n\t\t\t\t\t\ttask.command === undefined\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: { text: task.command, truncated: task.commandTruncated ?? false },\n\t\t\t\t\tcwd: task.cwd,\n\t\t\t\t\toutputPath: task.outputPath,\n\t\t\t\t\t...(task.exitCode !== undefined ? { exitCode: task.exitCode } : {}),\n\t\t\t\t\toutput: task.projection?.shell?.output ?? output,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\t...common,\n\t\t\t\t\tkind: task.kind,\n\t\t\t\t\tformat: \"report\",\n\t\t\t\t\titems: task.projection?.items ?? [],\n\t\t\t\t\toutput: task.projection?.items?.length ? undefined : output,\n\t\t\t\t},\n\t);\n\tif (!snapshot) throw new Error(\"Invalid background completion snapshot\");\n\treturn snapshot;\n}\n\nconst singleLine = (value: string) => value.replace(/\\s+/gu, \" \").trim();\nconst OMISSION = \"\\n[Saved output truncated; use tasks read for retained task details.]\";\n\nfunction modelText(value: TaskText, bytes: number, lines: number): string {\n\tconst result = truncateHead(value.text, {\n\t\tmaxBytes: Math.max(0, bytes - Buffer.byteLength(OMISSION)),\n\t\tmaxLines: Math.max(1, lines - 1),\n\t});\n\treturn result.content + (value.truncated || result.truncated ? OMISSION : \"\");\n}\n\n/** One bounded action hint per terminal outcome; completed work needs none. */\nfunction nextStepLine(snapshot: TaskCompletionSnapshot): string {\n\tswitch (snapshot.status) {\n\t\tcase \"cancelled\":\n\t\t\treturn \"Next step: the task was cancelled — do not restart it unless the user asks.\";\n\t\tcase \"timeout\":\n\t\t\treturn \"Next step: the task hit its timeout; inspect the partial output above, then rerun with a longer timeout or in smaller pieces if still needed.\";\n\t\tcase \"failed\":\n\t\tcase \"partial\": {\n\t\t\tif (snapshot.nextStep) return snapshot.nextStep;\n\t\t\treturn \"Next step: diagnose from the output above before retrying; rerun only what is still needed.\";\n\t\t}\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n\n/** The context and the card share facts; only the context receives this prose projection. */\nfunction notificationText(snapshot: TaskCompletionSnapshot): string {\n\tconst header = [\n\t\t`Background ${snapshot.kind} ${snapshot.taskId}: ${snapshot.status} — ${singleLine(snapshot.title)}`,\n\t\tsnapshot.error ? `Error: ${singleLine(snapshot.error)}` : \"\",\n\t].filter(Boolean);\n\tif (snapshot.format === \"log\") {\n\t\tif (snapshot.command) header.push(`Command:\\n${modelText(snapshot.command, 8192, 128)}`);\n\t\tif (snapshot.cwd) header.push(`cwd: ${singleLine(snapshot.cwd)}`);\n\t\tif (snapshot.outputPath) header.push(`Output: ${singleLine(snapshot.outputPath)}`);\n\t}\n\tconst prefix = `${header.join(\"\\n\")}\\n\\n`;\n\tconst guidance = nextStepLine(snapshot);\n\tconst suffix = guidance ? `\\n\\n${guidance}` : \"\";\n\tconst remaining = TASK_RESULT_BYTES - Buffer.byteLength(prefix) - Buffer.byteLength(suffix);\n\tconst lines = MODEL_LINES - prefix.split(\"\\n\").length - (guidance ? 3 : 0);\n\tif (snapshot.format === \"report\" && snapshot.items.length) {\n\t\t// Allocate before formatting, so one verbose report cannot erase later items.\n\t\tconst budget = Math.floor((remaining - 8 * snapshot.items.length) / snapshot.items.length);\n\t\tconst lineBudget = Math.floor((lines - 4 * snapshot.items.length) / snapshot.items.length);\n\t\treturn (\n\t\t\tprefix +\n\t\t\tsnapshot.items\n\t\t\t\t.map((worker, index) => {\n\t\t\t\t\tconst heading = `### ${index + 1}. ${singleLine(worker.description)} (${singleLine(worker.category)}) — ${singleLine(worker.status)}\\n\\n`;\n\t\t\t\t\tconst reason = worker.error ? `Error: ${singleLine(worker.error)}\\n\\n` : \"\";\n\t\t\t\t\tconst body = worker.report.text\n\t\t\t\t\t\t? worker.report\n\t\t\t\t\t\t: { text: \"No report returned.\", truncated: worker.report.truncated };\n\t\t\t\t\treturn heading + reason + modelText(body, budget - Buffer.byteLength(heading + reason), lineBudget);\n\t\t\t\t})\n\t\t\t\t.join(\"\\n\\n---\\n\\n\") +\n\t\t\tsuffix\n\t\t);\n\t}\n\treturn (\n\t\tprefix + modelText(snapshot.output ?? { text: \"No text result.\", truncated: false }, remaining, lines) + suffix\n\t);\n}\n\nexport function taskCompletionMessage(task: TaskSnapshot): CustomMessage<TaskCompletionSnapshot> {\n\tconst details = taskCompletionSnapshot(task);\n\treturn {\n\t\trole: \"custom\",\n\t\tcustomType: \"task-completion\",\n\t\tdisplay: true,\n\t\tcontent: notificationText(details),\n\t\tdetails,\n\t\ttimestamp: Date.now(),\n\t};\n}\n"]}
@@ -1,18 +1,20 @@
1
- import { type BackgroundContext, type BackgroundExecution, type BackgroundRead, type BackgroundServiceOptions, type BackgroundTask, type BackgroundToolOutcome } from "./types.ts";
2
- /** Session-local supervision. Executors own their processes, workers and output files. */
3
- export declare class BackgroundService implements BackgroundContext {
4
- private readonly records;
1
+ import { type TaskExecution, type TaskRead, type TaskRuntimeOptions, type TaskSnapshot, type TasksContext, type TaskToolOutcome } from "./types.ts";
2
+ import { TaskViewRegistry } from "./view.ts";
3
+ /** Session-local supervision. Executors own their processes, items and output files. */
4
+ export declare class TaskRuntime implements TasksContext {
5
+ readonly views: TaskViewRegistry;
6
+ private readonly store;
7
+ private readonly executions;
5
8
  private readonly listeners;
6
9
  private readonly maxActive;
7
10
  private readonly maxHistory;
8
11
  private readonly maxRetained;
9
12
  private configuredEnabled;
10
13
  private _closed;
11
- private readonly cleanups;
12
14
  get closed(): boolean;
13
15
  private pauses;
14
16
  private readonly options;
15
- constructor(options?: BackgroundServiceOptions);
17
+ constructor(options?: TaskRuntimeOptions);
16
18
  /**
17
19
  * Rehydrate terminal version-2 custom data only, newest endedAt in each history
18
20
  * (later input wins ties). Existing runtime records win ID collisions. No execution, accounting,
@@ -22,33 +24,34 @@ export declare class BackgroundService implements BackgroundContext {
22
24
  restoreHistory(records: readonly unknown[]): void;
23
25
  get enabled(): boolean;
24
26
  setEnabled(enabled: boolean): void;
25
- execute<T>(execution: BackgroundExecution<T>): Promise<BackgroundToolOutcome<T>>;
27
+ execute<T>(execution: TaskExecution<T>): Promise<TaskToolOutcome<T>>;
26
28
  detachForeground(): number;
27
- list(): BackgroundTask[];
29
+ detach(id: string): boolean;
30
+ private prepareDetach;
31
+ private finishDetach;
32
+ list(): TaskSnapshot[];
28
33
  private lookup;
29
- get(id: string): BackgroundTask;
34
+ get(id: string): TaskSnapshot;
30
35
  read(id: string, options?: {
31
36
  mode?: "head" | "tail";
32
37
  bytes?: number;
33
38
  sinceBytes?: number;
34
- }): Promise<BackgroundRead>;
39
+ }): Promise<TaskRead>;
35
40
  private resultText;
36
41
  /** Observe completion without consuming delivery; the host acknowledges only persisted tool results. */
37
- wait(id: string, timeoutMs?: number, signal?: AbortSignal): Promise<BackgroundTask>;
42
+ wait(id: string, timeoutMs?: number, signal?: AbortSignal): Promise<TaskSnapshot>;
38
43
  kill(id: string): boolean;
39
44
  private cancel;
40
45
  subscribe(listener: () => void): () => void;
41
46
  /**
42
- * Pins defer history eviction and completion delivery, so a live read or a watched row
43
- * never races an automatic notification for the same record. Releasing resumes both, and
44
- * announces the record only when that unblocks a delivery.
47
+ * Retention protects snapshots and logs only. Delivery has its own explicit hold.
45
48
  */
46
- pin(id: string): () => void;
49
+ retain(id: string): () => void;
50
+ holdDelivery(id: string): () => void;
47
51
  pause(): () => void;
48
- pendingNotifications(): BackgroundTask[];
52
+ pendingNotifications(): TaskSnapshot[];
49
53
  /**
50
- * A pinned record is being read or watched, so its completion is not announced yet:
51
- * a terminal `bg wait` or `bg read` delivers the result as its own tool result instead.
54
+ * Only explicit result-delivery holds delay an automatic completion.
52
55
  */
53
56
  private candidate;
54
57
  claimNotification(id: string): boolean;
@@ -59,10 +62,6 @@ export declare class BackgroundService implements BackgroundContext {
59
62
  cancelOutsideBranch(ancestors: ReadonlySet<string>): Promise<void>;
60
63
  private drain;
61
64
  private snapshot;
62
- private cleanupOutput;
63
- /** Pending delivery, active reads and pins have their own bounded retention allowance. */
64
- private historyRecords;
65
- private trim;
66
65
  private emit;
67
66
  }
68
- //# sourceMappingURL=service.d.ts.map
67
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAIN,KAAK,aAAa,EAIlB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAmC7C,wFAAwF;AACxF,qBAAa,WAAY,YAAW,YAAY;IAC/C,QAAQ,CAAC,KAAK,mBAA0B;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB,IAAI,MAAM,IAAI,OAAO,CAEpB;IACD,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,GAAE,kBAAuB;IAU5C;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAIjD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK5B,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAqO1E,gBAAgB,IAAI,MAAM;IAY1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAYpB,IAAI,IAAI,YAAY,EAAE;IAItB,OAAO,CAAC,MAAM;IAed,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAIvB,IAAI,CACT,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3E,OAAO,CAAC,QAAQ,CAAC;IAsBpB,OAAO,CAAC,UAAU;IAYlB,wGAAwG;IAClG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BvF,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIzB,OAAO,CAAC,MAAM;IASd,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQ3C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,IAAI;IAa9B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,IAAI;IAapC,KAAK,IAAI,MAAM,IAAI;IAWnB,oBAAoB,IAAI,YAAY,EAAE;IAOtC;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO/B,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQrC,KAAK,IAAI,IAAI;IAcP,QAAQ,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAe1D,KAAK;IAgBnB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,IAAI;CAWZ"}