@astralyn/pi 0.87.6 → 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 (698) hide show
  1. package/CHANGELOG.md +30 -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-4W4Q2H6W.js → chunk-VW2P3X6P.js} +905 -278
  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 +100 -35
  60. package/dist/core/agent-session.d.ts.map +1 -1
  61. package/dist/core/agent-session.js +456 -194
  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/crash-log.d.ts.map +1 -1
  73. package/dist/core/crash-log.js +2 -1
  74. package/dist/core/crash-log.js.map +1 -1
  75. package/dist/core/export-html/template.css +10 -0
  76. package/dist/core/export-html/template.js +66 -17
  77. package/dist/core/extensions/distribution-api.d.ts +1 -1
  78. package/dist/core/extensions/distribution-api.d.ts.map +1 -1
  79. package/dist/core/extensions/distribution-api.js.map +1 -1
  80. package/dist/core/extensions/index.d.ts +2 -2
  81. package/dist/core/extensions/index.d.ts.map +1 -1
  82. package/dist/core/extensions/index.js.map +1 -1
  83. package/dist/core/extensions/loader.d.ts.map +1 -1
  84. package/dist/core/extensions/loader.js +55 -5
  85. package/dist/core/extensions/loader.js.map +1 -1
  86. package/dist/core/extensions/runner.d.ts +22 -3
  87. package/dist/core/extensions/runner.d.ts.map +1 -1
  88. package/dist/core/extensions/runner.js +124 -8
  89. package/dist/core/extensions/runner.js.map +1 -1
  90. package/dist/core/extensions/types.d.ts +305 -25
  91. package/dist/core/extensions/types.d.ts.map +1 -1
  92. package/dist/core/extensions/types.js.map +1 -1
  93. package/dist/core/extensions/wrapper.d.ts +2 -2
  94. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  95. package/dist/core/extensions/wrapper.js +3 -3
  96. package/dist/core/extensions/wrapper.js.map +1 -1
  97. package/dist/core/keybindings.d.ts +30 -5
  98. package/dist/core/keybindings.d.ts.map +1 -1
  99. package/dist/core/keybindings.js +7 -1
  100. package/dist/core/keybindings.js.map +1 -1
  101. package/dist/core/mcp-servers.d.ts +98 -0
  102. package/dist/core/mcp-servers.d.ts.map +1 -0
  103. package/dist/core/mcp-servers.js +158 -0
  104. package/dist/core/mcp-servers.js.map +1 -0
  105. package/dist/core/model-registry.d.ts +13 -1
  106. package/dist/core/model-registry.d.ts.map +1 -1
  107. package/dist/core/model-registry.js +25 -0
  108. package/dist/core/model-registry.js.map +1 -1
  109. package/dist/core/model-resolver.d.ts +2 -2
  110. package/dist/core/model-resolver.d.ts.map +1 -1
  111. package/dist/core/model-resolver.js +5 -5
  112. package/dist/core/model-resolver.js.map +1 -1
  113. package/dist/core/model-runtime.d.ts +41 -3
  114. package/dist/core/model-runtime.d.ts.map +1 -1
  115. package/dist/core/model-runtime.js +167 -17
  116. package/dist/core/model-runtime.js.map +1 -1
  117. package/dist/core/nested-tool-calls.d.ts +102 -0
  118. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  119. package/dist/core/nested-tool-calls.js +177 -0
  120. package/dist/core/nested-tool-calls.js.map +1 -0
  121. package/dist/core/package-manager.d.ts +4 -0
  122. package/dist/core/package-manager.d.ts.map +1 -1
  123. package/dist/core/package-manager.js +58 -12
  124. package/dist/core/package-manager.js.map +1 -1
  125. package/dist/core/provider-composer.d.ts +40 -21
  126. package/dist/core/provider-composer.d.ts.map +1 -1
  127. package/dist/core/provider-composer.js +92 -40
  128. package/dist/core/provider-composer.js.map +1 -1
  129. package/dist/core/remote-catalog-provider.d.ts +8 -1
  130. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  131. package/dist/core/remote-catalog-provider.js +18 -3
  132. package/dist/core/remote-catalog-provider.js.map +1 -1
  133. package/dist/core/resource-loader.d.ts +7 -1
  134. package/dist/core/resource-loader.d.ts.map +1 -1
  135. package/dist/core/resource-loader.js +160 -35
  136. package/dist/core/resource-loader.js.map +1 -1
  137. package/dist/core/sdk.d.ts +3 -3
  138. package/dist/core/sdk.d.ts.map +1 -1
  139. package/dist/core/sdk.js +25 -7
  140. package/dist/core/sdk.js.map +1 -1
  141. package/dist/core/session-manager.d.ts +9 -0
  142. package/dist/core/session-manager.d.ts.map +1 -1
  143. package/dist/core/session-manager.js +22 -22
  144. package/dist/core/session-manager.js.map +1 -1
  145. package/dist/core/settings-manager.d.ts +36 -1
  146. package/dist/core/settings-manager.d.ts.map +1 -1
  147. package/dist/core/settings-manager.js +108 -2
  148. package/dist/core/settings-manager.js.map +1 -1
  149. package/dist/core/slash-commands.d.ts.map +1 -1
  150. package/dist/core/slash-commands.js +1 -0
  151. package/dist/core/slash-commands.js.map +1 -1
  152. package/dist/core/source-info.d.ts +8 -0
  153. package/dist/core/source-info.d.ts.map +1 -1
  154. package/dist/core/source-info.js +16 -0
  155. package/dist/core/source-info.js.map +1 -1
  156. package/dist/core/system-prompt.js +1 -1
  157. package/dist/core/system-prompt.js.map +1 -1
  158. package/dist/core/tasks/delivery.d.ts +40 -0
  159. package/dist/core/tasks/delivery.d.ts.map +1 -0
  160. package/dist/core/tasks/delivery.js +157 -0
  161. package/dist/core/tasks/delivery.js.map +1 -0
  162. package/dist/core/tasks/history.d.ts +4 -0
  163. package/dist/core/tasks/history.d.ts.map +1 -0
  164. package/dist/core/{background → tasks}/history.js +24 -48
  165. package/dist/core/tasks/history.js.map +1 -0
  166. package/dist/core/{background → tasks}/output.d.ts +4 -4
  167. package/dist/core/tasks/output.d.ts.map +1 -0
  168. package/dist/core/{background → tasks}/output.js +11 -11
  169. package/dist/core/tasks/output.js.map +1 -0
  170. package/dist/core/tasks/presentation.d.ts +9 -0
  171. package/dist/core/tasks/presentation.d.ts.map +1 -0
  172. package/dist/core/{background → tasks}/presentation.js +53 -51
  173. package/dist/core/tasks/presentation.js.map +1 -0
  174. package/dist/core/{background/service.d.ts → tasks/runtime.d.ts} +22 -23
  175. package/dist/core/tasks/runtime.d.ts.map +1 -0
  176. package/dist/core/{background/service.js → tasks/runtime.js} +154 -198
  177. package/dist/core/tasks/runtime.js.map +1 -0
  178. package/dist/core/tasks/session.d.ts +49 -0
  179. package/dist/core/tasks/session.d.ts.map +1 -0
  180. package/dist/core/tasks/session.js +129 -0
  181. package/dist/core/tasks/session.js.map +1 -0
  182. package/dist/core/tasks/store.d.ts +32 -0
  183. package/dist/core/tasks/store.d.ts.map +1 -0
  184. package/dist/core/tasks/store.js +135 -0
  185. package/dist/core/tasks/store.js.map +1 -0
  186. package/dist/core/{background → tasks}/types.d.ts +80 -62
  187. package/dist/core/tasks/types.d.ts.map +1 -0
  188. package/dist/core/{background → tasks}/types.js +9 -9
  189. package/dist/core/tasks/types.js.map +1 -0
  190. package/dist/core/tasks/view-data.d.ts +8 -0
  191. package/dist/core/tasks/view-data.d.ts.map +1 -0
  192. package/dist/core/tasks/view-data.js +61 -0
  193. package/dist/core/tasks/view-data.js.map +1 -0
  194. package/dist/core/tasks/view.d.ts +30 -0
  195. package/dist/core/tasks/view.d.ts.map +1 -0
  196. package/dist/core/tasks/view.js +50 -0
  197. package/dist/core/tasks/view.js.map +1 -0
  198. package/dist/core/tools/bash.d.ts +8 -93
  199. package/dist/core/tools/bash.d.ts.map +1 -1
  200. package/dist/core/tools/bash.js +8 -240
  201. package/dist/core/tools/bash.js.map +1 -1
  202. package/dist/core/tools/grep.d.ts +2 -0
  203. package/dist/core/tools/grep.d.ts.map +1 -1
  204. package/dist/core/tools/grep.js +2 -0
  205. package/dist/core/tools/grep.js.map +1 -1
  206. package/dist/core/tools/index.d.ts +2 -1
  207. package/dist/core/tools/index.d.ts.map +1 -1
  208. package/dist/core/tools/index.js +9 -0
  209. package/dist/core/tools/index.js.map +1 -1
  210. package/dist/core/tools/output-accumulator.d.ts +11 -0
  211. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  212. package/dist/core/tools/output-accumulator.js +36 -0
  213. package/dist/core/tools/output-accumulator.js.map +1 -1
  214. package/dist/core/tools/powershell.d.ts +6 -2
  215. package/dist/core/tools/powershell.d.ts.map +1 -1
  216. package/dist/core/tools/powershell.js +1 -1
  217. package/dist/core/tools/powershell.js.map +1 -1
  218. package/dist/core/tools/render-utils.d.ts +6 -0
  219. package/dist/core/tools/render-utils.d.ts.map +1 -1
  220. package/dist/core/tools/render-utils.js +26 -0
  221. package/dist/core/tools/render-utils.js.map +1 -1
  222. package/dist/core/tools/renderers/bash.d.ts +1 -1
  223. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  224. package/dist/core/tools/renderers/bash.js +9 -10
  225. package/dist/core/tools/renderers/bash.js.map +1 -1
  226. package/dist/core/tools/renderers/index.d.ts.map +1 -1
  227. package/dist/core/tools/renderers/index.js +5 -7
  228. package/dist/core/tools/renderers/index.js.map +1 -1
  229. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  230. package/dist/core/tools/renderers/read.js +3 -2
  231. package/dist/core/tools/renderers/read.js.map +1 -1
  232. package/dist/core/tools/renderers/shell-task.d.ts +4 -0
  233. package/dist/core/tools/renderers/shell-task.d.ts.map +1 -0
  234. package/dist/core/tools/renderers/shell-task.js +35 -0
  235. package/dist/core/tools/renderers/shell-task.js.map +1 -0
  236. package/dist/core/tools/shell-execution.d.ts +4 -5
  237. package/dist/core/tools/shell-execution.d.ts.map +1 -1
  238. package/dist/core/tools/shell-execution.js +19 -3
  239. package/dist/core/tools/shell-execution.js.map +1 -1
  240. package/dist/core/tools/shell-tool.d.ts +93 -0
  241. package/dist/core/tools/shell-tool.d.ts.map +1 -0
  242. package/dist/core/tools/shell-tool.js +251 -0
  243. package/dist/core/tools/shell-tool.js.map +1 -0
  244. package/dist/core/tools/tasks/actions.d.ts +12 -0
  245. package/dist/core/tools/tasks/actions.d.ts.map +1 -0
  246. package/dist/{extensions/background → core/tools/tasks}/actions.js +20 -19
  247. package/dist/core/tools/tasks/actions.js.map +1 -0
  248. package/dist/{extensions/background → core/tools/tasks}/constants.d.ts +10 -10
  249. package/dist/core/tools/tasks/constants.d.ts.map +1 -0
  250. package/dist/{extensions/background → core/tools/tasks}/constants.js +10 -10
  251. package/dist/core/tools/tasks/constants.js.map +1 -0
  252. package/dist/{extensions/background → core/tools/tasks}/schema.d.ts +6 -6
  253. package/dist/core/tools/tasks/schema.d.ts.map +1 -0
  254. package/dist/{extensions/background → core/tools/tasks}/schema.js +17 -17
  255. package/dist/core/tools/tasks/schema.js.map +1 -0
  256. package/dist/{extensions/background → core/tools/tasks}/types.d.ts +15 -17
  257. package/dist/core/tools/tasks/types.d.ts.map +1 -0
  258. package/dist/core/tools/tasks/types.js.map +1 -0
  259. package/dist/core/tools/tasks.d.ts +14 -0
  260. package/dist/core/tools/tasks.d.ts.map +1 -0
  261. package/dist/core/tools/tasks.js +40 -0
  262. package/dist/core/tools/tasks.js.map +1 -0
  263. package/dist/core/tools/tool-definition-wrapper.d.ts +4 -3
  264. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  265. package/dist/core/tools/tool-definition-wrapper.js +4 -2
  266. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  267. package/dist/core/tools/truncate.d.ts +14 -0
  268. package/dist/core/tools/truncate.d.ts.map +1 -1
  269. package/dist/core/tools/truncate.js +29 -0
  270. package/dist/core/tools/truncate.js.map +1 -1
  271. package/dist/core/trust-manager.d.ts.map +1 -1
  272. package/dist/core/trust-manager.js +1 -0
  273. package/dist/core/trust-manager.js.map +1 -1
  274. package/dist/core/usage-totals.d.ts +5 -3
  275. package/dist/core/usage-totals.d.ts.map +1 -1
  276. package/dist/core/usage-totals.js +27 -4
  277. package/dist/core/usage-totals.js.map +1 -1
  278. package/dist/core/virtual-models.d.ts +115 -0
  279. package/dist/core/virtual-models.d.ts.map +1 -0
  280. package/dist/core/virtual-models.js +117 -0
  281. package/dist/core/virtual-models.js.map +1 -0
  282. package/dist/extensions/codemode/execute.d.ts +16 -0
  283. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  284. package/dist/extensions/codemode/execute.js +390 -0
  285. package/dist/extensions/codemode/execute.js.map +1 -0
  286. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  287. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  288. package/dist/extensions/codemode/execute.lazy.js +3 -0
  289. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  290. package/dist/extensions/codemode/index.d.ts +21 -0
  291. package/dist/extensions/codemode/index.d.ts.map +1 -0
  292. package/dist/extensions/codemode/index.js +36 -0
  293. package/dist/extensions/codemode/index.js.map +1 -0
  294. package/dist/extensions/codemode/renderer.d.ts +12 -0
  295. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  296. package/dist/extensions/codemode/renderer.js +119 -0
  297. package/dist/extensions/codemode/renderer.js.map +1 -0
  298. package/dist/extensions/codemode/search.d.ts +33 -0
  299. package/dist/extensions/codemode/search.d.ts.map +1 -0
  300. package/dist/extensions/codemode/search.js +117 -0
  301. package/dist/extensions/codemode/search.js.map +1 -0
  302. package/dist/extensions/codemode/tool.d.ts +122 -0
  303. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  304. package/dist/extensions/codemode/tool.js +324 -0
  305. package/dist/extensions/codemode/tool.js.map +1 -0
  306. package/dist/extensions/codemode/worker.d.ts +7 -0
  307. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  308. package/dist/extensions/codemode/worker.js +7 -0
  309. package/dist/extensions/codemode/worker.js.map +1 -0
  310. package/dist/extensions/deepwiki/schema.d.ts +1 -1
  311. package/dist/extensions/index.d.ts.map +1 -1
  312. package/dist/extensions/index.js +14 -12
  313. package/dist/extensions/index.js.map +1 -1
  314. package/dist/extensions/llama/provider.d.ts +1 -1
  315. package/dist/extensions/llama/provider.d.ts.map +1 -1
  316. package/dist/extensions/llama/provider.js +65 -13
  317. package/dist/extensions/llama/provider.js.map +1 -1
  318. package/dist/extensions/mcp/cli.d.ts +21 -0
  319. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  320. package/dist/extensions/mcp/cli.js +485 -0
  321. package/dist/extensions/mcp/cli.js.map +1 -0
  322. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  323. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  324. package/dist/extensions/mcp/cli.lazy.js +3 -0
  325. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  326. package/dist/extensions/mcp/config.d.ts +70 -0
  327. package/dist/extensions/mcp/config.d.ts.map +1 -0
  328. package/dist/extensions/mcp/config.js +146 -0
  329. package/dist/extensions/mcp/config.js.map +1 -0
  330. package/dist/extensions/mcp/index.d.ts +52 -0
  331. package/dist/extensions/mcp/index.d.ts.map +1 -0
  332. package/dist/extensions/mcp/index.js +904 -0
  333. package/dist/extensions/mcp/index.js.map +1 -0
  334. package/dist/extensions/mcp/log.d.ts +16 -0
  335. package/dist/extensions/mcp/log.d.ts.map +1 -0
  336. package/dist/extensions/mcp/log.js +64 -0
  337. package/dist/extensions/mcp/log.js.map +1 -0
  338. package/dist/extensions/mcp/oauth.d.ts +94 -0
  339. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  340. package/dist/extensions/mcp/oauth.js +330 -0
  341. package/dist/extensions/mcp/oauth.js.map +1 -0
  342. package/dist/extensions/mcp/resources.d.ts +43 -0
  343. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  344. package/dist/extensions/mcp/resources.js +262 -0
  345. package/dist/extensions/mcp/resources.js.map +1 -0
  346. package/dist/extensions/mcp/runtime.d.ts +96 -0
  347. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  348. package/dist/extensions/mcp/runtime.js +372 -0
  349. package/dist/extensions/mcp/runtime.js.map +1 -0
  350. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  351. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  352. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  353. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  354. package/dist/extensions/mcp/tools.d.ts +83 -0
  355. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  356. package/dist/extensions/mcp/tools.js +233 -0
  357. package/dist/extensions/mcp/tools.js.map +1 -0
  358. package/dist/extensions/mcp/ui.d.ts +60 -0
  359. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  360. package/dist/extensions/mcp/ui.js +166 -0
  361. package/dist/extensions/mcp/ui.js.map +1 -0
  362. package/dist/extensions/statusline/index.js +2 -2
  363. package/dist/extensions/statusline/index.js.map +1 -1
  364. package/dist/extensions/tool-search/index.d.ts +12 -0
  365. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  366. package/dist/extensions/tool-search/index.js +20 -0
  367. package/dist/extensions/tool-search/index.js.map +1 -0
  368. package/dist/extensions/tool-search/tool.d.ts +72 -0
  369. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  370. package/dist/extensions/tool-search/tool.js +208 -0
  371. package/dist/extensions/tool-search/tool.js.map +1 -0
  372. package/dist/index.d.ts +13 -4
  373. package/dist/index.d.ts.map +1 -1
  374. package/dist/index.js +7 -1
  375. package/dist/index.js.map +1 -1
  376. package/dist/main.d.ts.map +1 -1
  377. package/dist/main.js +10 -0
  378. package/dist/main.js.map +1 -1
  379. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  380. package/dist/modes/interactive/components/config-selector.js +13 -3
  381. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  382. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  383. package/dist/modes/interactive/components/custom-message.js +3 -1
  384. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  385. package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
  386. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  387. package/dist/modes/interactive/components/first-time-setup.js +8 -2
  388. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  389. package/dist/modes/interactive/components/footer.d.ts +7 -0
  390. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  391. package/dist/modes/interactive/components/footer.js +42 -3
  392. package/dist/modes/interactive/components/footer.js.map +1 -1
  393. package/dist/modes/interactive/components/pi-logo.d.ts +12 -0
  394. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  395. package/dist/modes/interactive/components/pi-logo.js +25 -0
  396. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  397. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  398. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  399. package/dist/modes/interactive/components/settings-selector.js +28 -6
  400. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  401. package/dist/modes/interactive/components/status-marker.d.ts +2 -2
  402. package/dist/modes/interactive/components/status-marker.js +2 -2
  403. package/dist/modes/interactive/components/status-marker.js.map +1 -1
  404. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  405. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  406. package/dist/modes/interactive/components/themed-text.js +28 -0
  407. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  408. package/dist/modes/interactive/interactive-mode.d.ts +2 -4
  409. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  410. package/dist/modes/interactive/interactive-mode.js +214 -163
  411. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  412. package/dist/modes/interactive/tasks/completion-render.d.ts +8 -0
  413. package/dist/modes/interactive/tasks/completion-render.d.ts.map +1 -0
  414. package/dist/{extensions/background → modes/interactive/tasks}/completion-render.js +31 -27
  415. package/dist/modes/interactive/tasks/completion-render.js.map +1 -0
  416. package/dist/modes/interactive/tasks/fallback-view.d.ts +4 -0
  417. package/dist/modes/interactive/tasks/fallback-view.d.ts.map +1 -0
  418. package/dist/modes/interactive/tasks/fallback-view.js +27 -0
  419. package/dist/modes/interactive/tasks/fallback-view.js.map +1 -0
  420. package/dist/modes/interactive/tasks/index.d.ts +12 -0
  421. package/dist/modes/interactive/tasks/index.d.ts.map +1 -0
  422. package/dist/modes/interactive/tasks/index.js +97 -0
  423. package/dist/modes/interactive/tasks/index.js.map +1 -0
  424. package/dist/modes/interactive/tasks/manager.d.ts +67 -0
  425. package/dist/modes/interactive/tasks/manager.d.ts.map +1 -0
  426. package/dist/modes/interactive/tasks/manager.js +380 -0
  427. package/dist/modes/interactive/tasks/manager.js.map +1 -0
  428. package/dist/{extensions/background → modes/interactive/tasks}/render.d.ts +13 -13
  429. package/dist/modes/interactive/tasks/render.d.ts.map +1 -0
  430. package/dist/{extensions/background → modes/interactive/tasks}/render.js +18 -18
  431. package/dist/modes/interactive/tasks/render.js.map +1 -0
  432. package/dist/{extensions/background → modes/interactive/tasks}/task-view.d.ts +7 -7
  433. package/dist/modes/interactive/tasks/task-view.d.ts.map +1 -0
  434. package/dist/{extensions/background → modes/interactive/tasks}/task-view.js +4 -4
  435. package/dist/modes/interactive/tasks/task-view.js.map +1 -0
  436. package/dist/{extensions/background → modes/interactive/tasks}/text.d.ts +1 -1
  437. package/dist/modes/interactive/tasks/text.d.ts.map +1 -0
  438. package/dist/{extensions/background → modes/interactive/tasks}/text.js +1 -1
  439. package/dist/modes/interactive/tasks/text.js.map +1 -0
  440. package/dist/modes/interactive/tasks/viewport.d.ts +15 -0
  441. package/dist/modes/interactive/tasks/viewport.d.ts.map +1 -0
  442. package/dist/modes/interactive/tasks/viewport.js +49 -0
  443. package/dist/modes/interactive/tasks/viewport.js.map +1 -0
  444. package/dist/modes/interactive/theme/dark.json +59 -72
  445. package/dist/modes/interactive/theme/light.json +57 -69
  446. package/dist/modes/interactive/theme/system-theme.d.ts +54 -0
  447. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  448. package/dist/modes/interactive/theme/system-theme.js +535 -0
  449. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  450. package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
  451. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  452. package/dist/modes/interactive/theme/theme-controller.js +125 -47
  453. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  454. package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
  455. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
  456. package/dist/modes/interactive/theme/theme-json.js +3 -1
  457. package/dist/modes/interactive/theme/theme-json.js.map +1 -1
  458. package/dist/modes/interactive/theme/theme-schema.json +7 -2
  459. package/dist/modes/interactive/theme/theme.d.ts +70 -39
  460. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  461. package/dist/modes/interactive/theme/theme.js +247 -313
  462. package/dist/modes/interactive/theme/theme.js.map +1 -1
  463. package/dist/modes/interactive/tool-view/fallback.d.ts +1 -1
  464. package/dist/modes/interactive/tool-view/fallback.d.ts.map +1 -1
  465. package/dist/modes/interactive/tool-view/fallback.js +4 -1
  466. package/dist/modes/interactive/tool-view/fallback.js.map +1 -1
  467. package/dist/modes/interactive/tool-view/tool-execution.js +2 -2
  468. package/dist/modes/interactive/tool-view/tool-execution.js.map +1 -1
  469. package/dist/modes/interactive/tui-renderer.d.ts +2 -1
  470. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  471. package/dist/modes/interactive/tui-renderer.js +1 -0
  472. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  473. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  474. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  475. package/dist/modes/rpc/rpc-client.js +12 -8
  476. package/dist/modes/rpc/rpc-client.js.map +1 -1
  477. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  478. package/dist/modes/rpc/rpc-mode.js +7 -9
  479. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  480. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  481. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  482. package/dist/modes/rpc/rpc-types.js.map +1 -1
  483. package/dist/package-manager-cli.d.ts.map +1 -1
  484. package/dist/package-manager-cli.js +6 -2
  485. package/dist/package-manager-cli.js.map +1 -1
  486. package/dist/utils/clipboard-image.d.ts.map +1 -1
  487. package/dist/utils/clipboard-image.js +14 -17
  488. package/dist/utils/clipboard-image.js.map +1 -1
  489. package/dist/utils/clipboard.d.ts +2 -0
  490. package/dist/utils/clipboard.d.ts.map +1 -1
  491. package/dist/utils/clipboard.js +5 -0
  492. package/dist/utils/clipboard.js.map +1 -1
  493. package/dist/utils/paths.d.ts +3 -3
  494. package/dist/utils/paths.d.ts.map +1 -1
  495. package/dist/utils/paths.js +5 -4
  496. package/dist/utils/paths.js.map +1 -1
  497. package/dist/utils/shell.d.ts +1 -3
  498. package/dist/utils/shell.d.ts.map +1 -1
  499. package/dist/utils/shell.js +3 -30
  500. package/dist/utils/shell.js.map +1 -1
  501. package/docs/bundled/README.md +22 -8
  502. package/docs/bundled/extensions/statusline.md +2 -2
  503. package/docs/bundled/tasks.md +141 -0
  504. package/docs/bundled/tool-presentation.md +1 -1
  505. package/docs/custom-provider.md +44 -0
  506. package/docs/docs.json +10 -6
  507. package/docs/extensions.md +89 -86
  508. package/docs/index.md +2 -1
  509. package/docs/keybindings.md +8 -7
  510. package/docs/llama-cpp.md +12 -1
  511. package/docs/mcp.md +188 -0
  512. package/docs/models.md +35 -0
  513. package/docs/packages.md +4 -0
  514. package/docs/providers.md +6 -0
  515. package/docs/rpc.md +5 -3
  516. package/docs/sdk.md +26 -16
  517. package/docs/security.md +4 -0
  518. package/docs/session-format.md +18 -11
  519. package/docs/settings.md +26 -2
  520. package/docs/themes.md +27 -5
  521. package/docs/tui.md +20 -0
  522. package/docs/usage.md +61 -3
  523. package/docs/virtual-models.md +114 -0
  524. package/docs/windows.md +2 -0
  525. package/examples/README.md +1 -1
  526. package/examples/extensions/README.md +2 -0
  527. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  528. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  529. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  530. package/examples/extensions/custom-provider-gitlab-duo/test.ts +4 -4
  531. package/examples/extensions/debug-provider.ts +90 -0
  532. package/examples/extensions/gondolin/package-lock.json +2 -2
  533. package/examples/extensions/gondolin/package.json +1 -1
  534. package/examples/extensions/jev-router.ts +113 -0
  535. package/examples/extensions/sandbox/package-lock.json +2 -2
  536. package/examples/extensions/sandbox/package.json +1 -1
  537. package/examples/extensions/with-deps/package-lock.json +2 -2
  538. package/examples/extensions/with-deps/package.json +1 -1
  539. package/examples/rpc-client.ts +1 -1
  540. package/examples/rpc-extension-ui.ts +1 -1
  541. package/examples/sdk/14-codemode-mcp.ts +61 -0
  542. package/examples/sdk/README.md +1 -0
  543. package/npm-shrinkwrap.json +409 -423
  544. package/package.json +13 -10
  545. package/dist/bundle/chunks/anthropic-messages-XWFTZP2N.js +0 -6
  546. package/dist/bundle/chunks/azure-openai-responses-HS35BQV6.js +0 -2
  547. package/dist/bundle/chunks/chunk-2IO5GDBS.js +0 -11
  548. package/dist/bundle/chunks/chunk-EDBLK2JQ.js +0 -2
  549. package/dist/bundle/chunks/chunk-IORR2FW4.js +0 -2
  550. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  551. package/dist/bundle/chunks/google-generative-ai-NOVAJBFC.js +0 -2
  552. package/dist/bundle/chunks/google-vertex-4VHCZJV5.js +0 -2
  553. package/dist/bundle/chunks/mistral-conversations-WC6A2WCJ.js +0 -5
  554. package/dist/bundle/chunks/openai-codex-responses-XCDG75W2.js +0 -10
  555. package/dist/bundle/chunks/openai-completions-SHS3CAEL.js +0 -7
  556. package/dist/bundle/chunks/openai-responses-UT6XFKC7.js +0 -2
  557. package/dist/bundle/chunks/virtual-modules-KUEIEAZN.js +0 -2
  558. package/dist/core/background/history.d.ts +0 -4
  559. package/dist/core/background/history.d.ts.map +0 -1
  560. package/dist/core/background/history.js.map +0 -1
  561. package/dist/core/background/output.d.ts.map +0 -1
  562. package/dist/core/background/output.js.map +0 -1
  563. package/dist/core/background/presentation.d.ts +0 -9
  564. package/dist/core/background/presentation.d.ts.map +0 -1
  565. package/dist/core/background/presentation.js.map +0 -1
  566. package/dist/core/background/service.d.ts.map +0 -1
  567. package/dist/core/background/service.js.map +0 -1
  568. package/dist/core/background/session.d.ts +0 -67
  569. package/dist/core/background/session.d.ts.map +0 -1
  570. package/dist/core/background/session.js +0 -248
  571. package/dist/core/background/session.js.map +0 -1
  572. package/dist/core/background/types.d.ts.map +0 -1
  573. package/dist/core/background/types.js.map +0 -1
  574. package/dist/extensions/background/actions.d.ts +0 -11
  575. package/dist/extensions/background/actions.d.ts.map +0 -1
  576. package/dist/extensions/background/actions.js.map +0 -1
  577. package/dist/extensions/background/completion-render.d.ts +0 -8
  578. package/dist/extensions/background/completion-render.d.ts.map +0 -1
  579. package/dist/extensions/background/completion-render.js.map +0 -1
  580. package/dist/extensions/background/constants.d.ts.map +0 -1
  581. package/dist/extensions/background/constants.js.map +0 -1
  582. package/dist/extensions/background/index.d.ts +0 -7
  583. package/dist/extensions/background/index.d.ts.map +0 -1
  584. package/dist/extensions/background/index.js +0 -135
  585. package/dist/extensions/background/index.js.map +0 -1
  586. package/dist/extensions/background/keybindings.d.ts +0 -10
  587. package/dist/extensions/background/keybindings.d.ts.map +0 -1
  588. package/dist/extensions/background/keybindings.js +0 -14
  589. package/dist/extensions/background/keybindings.js.map +0 -1
  590. package/dist/extensions/background/manager.d.ts +0 -80
  591. package/dist/extensions/background/manager.d.ts.map +0 -1
  592. package/dist/extensions/background/manager.js +0 -673
  593. package/dist/extensions/background/manager.js.map +0 -1
  594. package/dist/extensions/background/render.d.ts.map +0 -1
  595. package/dist/extensions/background/render.js.map +0 -1
  596. package/dist/extensions/background/schema.d.ts.map +0 -1
  597. package/dist/extensions/background/schema.js.map +0 -1
  598. package/dist/extensions/background/task-view.d.ts.map +0 -1
  599. package/dist/extensions/background/task-view.js.map +0 -1
  600. package/dist/extensions/background/text.d.ts.map +0 -1
  601. package/dist/extensions/background/text.js.map +0 -1
  602. package/dist/extensions/background/types.d.ts.map +0 -1
  603. package/dist/extensions/background/types.js.map +0 -1
  604. package/dist/extensions/subagent/activity.d.ts +0 -34
  605. package/dist/extensions/subagent/activity.d.ts.map +0 -1
  606. package/dist/extensions/subagent/activity.js +0 -192
  607. package/dist/extensions/subagent/activity.js.map +0 -1
  608. package/dist/extensions/subagent/agents-command.d.ts +0 -4
  609. package/dist/extensions/subagent/agents-command.d.ts.map +0 -1
  610. package/dist/extensions/subagent/agents-command.js +0 -230
  611. package/dist/extensions/subagent/agents-command.js.map +0 -1
  612. package/dist/extensions/subagent/agents.d.ts +0 -6
  613. package/dist/extensions/subagent/agents.d.ts.map +0 -1
  614. package/dist/extensions/subagent/agents.js +0 -53
  615. package/dist/extensions/subagent/agents.js.map +0 -1
  616. package/dist/extensions/subagent/budget.d.ts +0 -15
  617. package/dist/extensions/subagent/budget.d.ts.map +0 -1
  618. package/dist/extensions/subagent/budget.js +0 -123
  619. package/dist/extensions/subagent/budget.js.map +0 -1
  620. package/dist/extensions/subagent/cancellation.d.ts +0 -29
  621. package/dist/extensions/subagent/cancellation.d.ts.map +0 -1
  622. package/dist/extensions/subagent/cancellation.js +0 -91
  623. package/dist/extensions/subagent/cancellation.js.map +0 -1
  624. package/dist/extensions/subagent/constants.d.ts +0 -25
  625. package/dist/extensions/subagent/constants.d.ts.map +0 -1
  626. package/dist/extensions/subagent/constants.js +0 -50
  627. package/dist/extensions/subagent/constants.js.map +0 -1
  628. package/dist/extensions/subagent/index.d.ts +0 -3
  629. package/dist/extensions/subagent/index.d.ts.map +0 -1
  630. package/dist/extensions/subagent/index.js +0 -151
  631. package/dist/extensions/subagent/index.js.map +0 -1
  632. package/dist/extensions/subagent/model-selection.d.ts +0 -16
  633. package/dist/extensions/subagent/model-selection.d.ts.map +0 -1
  634. package/dist/extensions/subagent/model-selection.js +0 -51
  635. package/dist/extensions/subagent/model-selection.js.map +0 -1
  636. package/dist/extensions/subagent/render.d.ts +0 -24
  637. package/dist/extensions/subagent/render.d.ts.map +0 -1
  638. package/dist/extensions/subagent/render.js +0 -336
  639. package/dist/extensions/subagent/render.js.map +0 -1
  640. package/dist/extensions/subagent/resolve.d.ts +0 -31
  641. package/dist/extensions/subagent/resolve.d.ts.map +0 -1
  642. package/dist/extensions/subagent/resolve.js +0 -111
  643. package/dist/extensions/subagent/resolve.js.map +0 -1
  644. package/dist/extensions/subagent/runner.d.ts +0 -35
  645. package/dist/extensions/subagent/runner.d.ts.map +0 -1
  646. package/dist/extensions/subagent/runner.js +0 -255
  647. package/dist/extensions/subagent/runner.js.map +0 -1
  648. package/dist/extensions/subagent/schema.d.ts +0 -28
  649. package/dist/extensions/subagent/schema.d.ts.map +0 -1
  650. package/dist/extensions/subagent/schema.js +0 -58
  651. package/dist/extensions/subagent/schema.js.map +0 -1
  652. package/dist/extensions/subagent/sdk-runner.d.ts +0 -33
  653. package/dist/extensions/subagent/sdk-runner.d.ts.map +0 -1
  654. package/dist/extensions/subagent/sdk-runner.js +0 -331
  655. package/dist/extensions/subagent/sdk-runner.js.map +0 -1
  656. package/dist/extensions/subagent/settings.d.ts +0 -8
  657. package/dist/extensions/subagent/settings.d.ts.map +0 -1
  658. package/dist/extensions/subagent/settings.js +0 -206
  659. package/dist/extensions/subagent/settings.js.map +0 -1
  660. package/dist/extensions/subagent/state.d.ts +0 -102
  661. package/dist/extensions/subagent/state.d.ts.map +0 -1
  662. package/dist/extensions/subagent/state.js +0 -383
  663. package/dist/extensions/subagent/state.js.map +0 -1
  664. package/dist/extensions/subagent/text.d.ts +0 -6
  665. package/dist/extensions/subagent/text.d.ts.map +0 -1
  666. package/dist/extensions/subagent/text.js +0 -66
  667. package/dist/extensions/subagent/text.js.map +0 -1
  668. package/dist/extensions/subagent/types.d.ts +0 -91
  669. package/dist/extensions/subagent/types.d.ts.map +0 -1
  670. package/dist/extensions/subagent/types.js +0 -2
  671. package/dist/extensions/subagent/types.js.map +0 -1
  672. package/dist/extensions/subagent/ui/agents-dialog.d.ts +0 -4
  673. package/dist/extensions/subagent/ui/agents-dialog.d.ts.map +0 -1
  674. package/dist/extensions/subagent/ui/agents-dialog.js +0 -84
  675. package/dist/extensions/subagent/ui/agents-dialog.js.map +0 -1
  676. package/dist/extensions/subagent/ui/choice-menu.d.ts +0 -39
  677. package/dist/extensions/subagent/ui/choice-menu.d.ts.map +0 -1
  678. package/dist/extensions/subagent/ui/choice-menu.js +0 -93
  679. package/dist/extensions/subagent/ui/choice-menu.js.map +0 -1
  680. package/dist/extensions/subagent/ui/choices.d.ts +0 -36
  681. package/dist/extensions/subagent/ui/choices.d.ts.map +0 -1
  682. package/dist/extensions/subagent/ui/choices.js +0 -54
  683. package/dist/extensions/subagent/ui/choices.js.map +0 -1
  684. package/dist/extensions/subagent/ui/model-list.d.ts +0 -66
  685. package/dist/extensions/subagent/ui/model-list.d.ts.map +0 -1
  686. package/dist/extensions/subagent/ui/model-list.js +0 -235
  687. package/dist/extensions/subagent/ui/model-list.js.map +0 -1
  688. package/dist/extensions/subagent/ui/model-picker.d.ts +0 -47
  689. package/dist/extensions/subagent/ui/model-picker.d.ts.map +0 -1
  690. package/dist/extensions/subagent/ui/model-picker.js +0 -143
  691. package/dist/extensions/subagent/ui/model-picker.js.map +0 -1
  692. package/dist/extensions/subagent/ui/profile-settings-menu.d.ts +0 -41
  693. package/dist/extensions/subagent/ui/profile-settings-menu.d.ts.map +0 -1
  694. package/dist/extensions/subagent/ui/profile-settings-menu.js +0 -98
  695. package/dist/extensions/subagent/ui/profile-settings-menu.js.map +0 -1
  696. package/docs/bundled/extensions/background.md +0 -132
  697. package/docs/bundled/extensions/subagent.md +0 -148
  698. /package/dist/{extensions/background → core/tools/tasks}/types.js +0 -0
@@ -1,135 +0,0 @@
1
- /** bg is an observer/controller of the public session-owned Background capability. */
2
- import "./keybindings.js";
3
- import { getKeybindings } from "@earendil-works/pi-tui";
4
- import { isBackgroundTerminal } from "../../core/background/types.js";
5
- import { keyLabel } from "../../modes/interactive/components/keybinding-hints.js";
6
- import { boundedText, describeTaskLine, runKill, runList, runRead, runWait } from "./actions.js";
7
- import { renderBackgroundCompletion } from "./completion-render.js";
8
- import { BG_COMPLETION_TYPE, BG_DETACH_HINT_DELAY_MS, BG_NOTIFICATION_TYPE } from "./constants.js";
9
- import { BackgroundTasksMenu } from "./manager.js";
10
- import { renderBackgroundNotification, renderBgCall, renderBgResult } from "./render.js";
11
- import { BG_PROMPT_GUIDELINES, BG_PROMPT_SNIPPET, BG_TOOL_DESCRIPTION, bgSchema } from "./schema.js";
12
- export function createBackgroundExtension() {
13
- return (pi) => {
14
- let unsubscribe;
15
- let unsubscribeDetachKey;
16
- let closeMenu;
17
- let hintTimer;
18
- pi.on("session_start", (_event, ctx) => {
19
- unsubscribe?.();
20
- unsubscribeDetachKey?.();
21
- const update = () => {
22
- clearTimeout(hintTimer);
23
- hintTimer = undefined;
24
- const all = ctx.background.list();
25
- // The counts cover backgrounded work only; foreground executions are already
26
- // visible as ordinary tool rows in the transcript.
27
- const tasks = all.filter((task) => task.mode === "background");
28
- const running = tasks.filter((task) => !isBackgroundTerminal(task.status)).length;
29
- const parts = [];
30
- if (tasks.length)
31
- parts.push(`bg ${running} active · ${tasks.length - running} finished`);
32
- // Teach the detach key once something has run long enough to be worth moving, and
33
- // only while it can move: a stopping execution is aborted, so the key does nothing.
34
- const detachKey = keyLabel("app.backgroundTasks.detach");
35
- const now = Date.now();
36
- const movable = all.filter((task) => task.mode === "foreground" && (task.status === "running" || task.status === "queued"));
37
- const waits = movable
38
- .map((task) => task.startedAt + BG_DETACH_HINT_DELAY_MS - now)
39
- .filter((wait) => wait > 0);
40
- if (detachKey && movable.length > waits.length)
41
- parts.push(`${detachKey} to background`);
42
- if (detachKey && waits.length > 0) {
43
- // The service notifies on state changes, not on time, so wake up when the next
44
- // execution crosses the threshold.
45
- hintTimer = setTimeout(update, Math.min(...waits));
46
- hintTimer.unref?.();
47
- }
48
- ctx.ui.setStatus("background", parts.length ? parts.join(" · ") : undefined);
49
- };
50
- unsubscribe = ctx.background.subscribe(update);
51
- unsubscribeDetachKey = ctx.ui.onTerminalInput((data) => {
52
- if (!getKeybindings().matches(data, "app.backgroundTasks.detach"))
53
- return undefined;
54
- const count = ctx.background.detachForeground();
55
- // Nothing can move: let the key fall through to editor bindings instead of
56
- // spending it on a "nothing happened" status line.
57
- if (count === 0)
58
- return undefined;
59
- ctx.ui.notify(`Moved ${count} execution${count === 1 ? "" : "s"} to the background. Use /bg to manage tasks.`);
60
- return { consume: true };
61
- });
62
- update();
63
- });
64
- pi.on("session_shutdown", (_event, ctx) => {
65
- unsubscribe?.();
66
- unsubscribe = undefined;
67
- unsubscribeDetachKey?.();
68
- unsubscribeDetachKey = undefined;
69
- clearTimeout(hintTimer);
70
- hintTimer = undefined;
71
- closeMenu?.();
72
- closeMenu = undefined;
73
- ctx.ui.setStatus("background", undefined);
74
- });
75
- pi.registerTool({
76
- name: "bg",
77
- label: "bg",
78
- description: BG_TOOL_DESCRIPTION,
79
- promptSnippet: BG_PROMPT_SNIPPET,
80
- promptGuidelines: BG_PROMPT_GUIDELINES,
81
- parameters: bgSchema,
82
- constrainedSampling: { type: "json_schema", strict: "prefer" },
83
- async execute(_id, params, signal, _onUpdate, ctx) {
84
- try {
85
- switch (params.action) {
86
- case "read":
87
- return await runRead(ctx.background, params);
88
- case "wait":
89
- return await runWait(ctx.background, params, signal);
90
- case "kill":
91
- return runKill(ctx.background, params);
92
- case "list":
93
- return runList(ctx.background);
94
- }
95
- }
96
- catch (error) {
97
- // Lookup failures already carry the current task list from actions.ts.
98
- const message = error instanceof Error ? error.message : String(error);
99
- throw new Error(boundedText(message));
100
- }
101
- },
102
- renderCall: renderBgCall,
103
- renderResult: renderBgResult,
104
- });
105
- // Stored legacy create results and notification details remain renderable.
106
- pi.registerMessageRenderer(BG_NOTIFICATION_TYPE, renderBackgroundNotification);
107
- pi.registerMessageRenderer(BG_COMPLETION_TYPE, renderBackgroundCompletion);
108
- pi.registerCommand("bg", {
109
- description: "View and manage Bash tasks and Subagent groups",
110
- handler: async (_args, ctx) => {
111
- if (ctx.mode !== "tui") {
112
- ctx.ui.notify(boundedText(ctx.background
113
- .list()
114
- .filter((task) => task.mode === "background")
115
- .slice(0, 10)
116
- .map((task) => describeTaskLine(task))
117
- .join("\n")) || "No background tasks.", "info");
118
- return;
119
- }
120
- closeMenu?.();
121
- await ctx.ui.custom((tui, theme, keybindings, done) => {
122
- const close = () => {
123
- if (closeMenu === close)
124
- closeMenu = undefined;
125
- done();
126
- };
127
- closeMenu = close;
128
- return new BackgroundTasksMenu({ tui, theme, keybindings, host: ctx.background, onClose: close });
129
- }, { overlay: true, overlayOptions: { anchor: "center", width: "100%", maxHeight: "100%" } });
130
- },
131
- });
132
- };
133
- }
134
- export default createBackgroundExtension();
135
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/background/index.ts"],"names":[],"mappings":"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","sourcesContent":["/** bg is an observer/controller of the public session-owned Background capability. */\nimport \"./keybindings.ts\";\nimport { getKeybindings } from \"@earendil-works/pi-tui\";\nimport { isBackgroundTerminal } from \"../../core/background/types.ts\";\nimport type { ExtensionAPI } from \"../../core/extensions/types.ts\";\nimport { keyLabel } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport { boundedText, describeTaskLine, runKill, runList, runRead, runWait } from \"./actions.ts\";\nimport { renderBackgroundCompletion } from \"./completion-render.ts\";\nimport { BG_COMPLETION_TYPE, BG_DETACH_HINT_DELAY_MS, BG_NOTIFICATION_TYPE } from \"./constants.ts\";\nimport { BackgroundTasksMenu } from \"./manager.ts\";\nimport { type BgRenderState, renderBackgroundNotification, renderBgCall, renderBgResult } from \"./render.ts\";\nimport { BG_PROMPT_GUIDELINES, BG_PROMPT_SNIPPET, BG_TOOL_DESCRIPTION, bgSchema } from \"./schema.ts\";\nimport type { BgDetails, BgNotificationDetails } from \"./types.ts\";\n\nexport function createBackgroundExtension(): (pi: ExtensionAPI) => void {\n\treturn (pi) => {\n\t\tlet unsubscribe: (() => void) | undefined;\n\t\tlet unsubscribeDetachKey: (() => void) | undefined;\n\t\tlet closeMenu: (() => void) | undefined;\n\t\tlet hintTimer: ReturnType<typeof setTimeout> | undefined;\n\t\tpi.on(\"session_start\", (_event, ctx) => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribeDetachKey?.();\n\t\t\tconst update = () => {\n\t\t\t\tclearTimeout(hintTimer);\n\t\t\t\thintTimer = undefined;\n\t\t\t\tconst all = ctx.background.list();\n\t\t\t\t// The counts cover backgrounded work only; foreground executions are already\n\t\t\t\t// visible as ordinary tool rows in the transcript.\n\t\t\t\tconst tasks = all.filter((task) => task.mode === \"background\");\n\t\t\t\tconst running = tasks.filter((task) => !isBackgroundTerminal(task.status)).length;\n\t\t\t\tconst parts: string[] = [];\n\t\t\t\tif (tasks.length) parts.push(`bg ${running} active · ${tasks.length - running} finished`);\n\t\t\t\t// Teach the detach key once something has run long enough to be worth moving, and\n\t\t\t\t// only while it can move: a stopping execution is aborted, so the key does nothing.\n\t\t\t\tconst detachKey = keyLabel(\"app.backgroundTasks.detach\");\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst movable = all.filter(\n\t\t\t\t\t(task) => task.mode === \"foreground\" && (task.status === \"running\" || task.status === \"queued\"),\n\t\t\t\t);\n\t\t\t\tconst waits = movable\n\t\t\t\t\t.map((task) => task.startedAt + BG_DETACH_HINT_DELAY_MS - now)\n\t\t\t\t\t.filter((wait) => wait > 0);\n\t\t\t\tif (detachKey && movable.length > waits.length) parts.push(`${detachKey} to background`);\n\t\t\t\tif (detachKey && waits.length > 0) {\n\t\t\t\t\t// The service notifies on state changes, not on time, so wake up when the next\n\t\t\t\t\t// execution crosses the threshold.\n\t\t\t\t\thintTimer = setTimeout(update, Math.min(...waits));\n\t\t\t\t\thintTimer.unref?.();\n\t\t\t\t}\n\t\t\t\tctx.ui.setStatus(\"background\", parts.length ? parts.join(\" · \") : undefined);\n\t\t\t};\n\t\t\tunsubscribe = ctx.background.subscribe(update);\n\t\t\tunsubscribeDetachKey = ctx.ui.onTerminalInput((data) => {\n\t\t\t\tif (!getKeybindings().matches(data, \"app.backgroundTasks.detach\")) return undefined;\n\t\t\t\tconst count = ctx.background.detachForeground();\n\t\t\t\t// Nothing can move: let the key fall through to editor bindings instead of\n\t\t\t\t// spending it on a \"nothing happened\" status line.\n\t\t\t\tif (count === 0) return undefined;\n\t\t\t\tctx.ui.notify(\n\t\t\t\t\t`Moved ${count} execution${count === 1 ? \"\" : \"s\"} to the background. Use /bg to manage tasks.`,\n\t\t\t\t);\n\t\t\t\treturn { consume: true };\n\t\t\t});\n\t\t\tupdate();\n\t\t});\n\t\tpi.on(\"session_shutdown\", (_event, ctx) => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribe = undefined;\n\t\t\tunsubscribeDetachKey?.();\n\t\t\tunsubscribeDetachKey = undefined;\n\t\t\tclearTimeout(hintTimer);\n\t\t\thintTimer = undefined;\n\t\t\tcloseMenu?.();\n\t\t\tcloseMenu = undefined;\n\t\t\tctx.ui.setStatus(\"background\", undefined);\n\t\t});\n\t\tpi.registerTool<typeof bgSchema, BgDetails, BgRenderState>({\n\t\t\tname: \"bg\",\n\t\t\tlabel: \"bg\",\n\t\t\tdescription: BG_TOOL_DESCRIPTION,\n\t\t\tpromptSnippet: BG_PROMPT_SNIPPET,\n\t\t\tpromptGuidelines: BG_PROMPT_GUIDELINES,\n\t\t\tparameters: bgSchema,\n\t\t\tconstrainedSampling: { type: \"json_schema\", strict: \"prefer\" },\n\t\t\tasync execute(_id, params, signal, _onUpdate, ctx) {\n\t\t\t\ttry {\n\t\t\t\t\tswitch (params.action) {\n\t\t\t\t\t\tcase \"read\":\n\t\t\t\t\t\t\treturn await runRead(ctx.background, params);\n\t\t\t\t\t\tcase \"wait\":\n\t\t\t\t\t\t\treturn await runWait(ctx.background, params, signal);\n\t\t\t\t\t\tcase \"kill\":\n\t\t\t\t\t\t\treturn runKill(ctx.background, params);\n\t\t\t\t\t\tcase \"list\":\n\t\t\t\t\t\t\treturn runList(ctx.background);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// Lookup failures already carry the current task list from actions.ts.\n\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\t\tthrow new Error(boundedText(message));\n\t\t\t\t}\n\t\t\t},\n\t\t\trenderCall: renderBgCall,\n\t\t\trenderResult: renderBgResult,\n\t\t});\n\t\t// Stored legacy create results and notification details remain renderable.\n\t\tpi.registerMessageRenderer<BgNotificationDetails>(BG_NOTIFICATION_TYPE, renderBackgroundNotification);\n\t\tpi.registerMessageRenderer(BG_COMPLETION_TYPE, renderBackgroundCompletion);\n\t\tpi.registerCommand(\"bg\", {\n\t\t\tdescription: \"View and manage Bash tasks and Subagent groups\",\n\t\t\thandler: async (_args, ctx) => {\n\t\t\t\tif (ctx.mode !== \"tui\") {\n\t\t\t\t\tctx.ui.notify(\n\t\t\t\t\t\tboundedText(\n\t\t\t\t\t\t\tctx.background\n\t\t\t\t\t\t\t\t.list()\n\t\t\t\t\t\t\t\t.filter((task) => task.mode === \"background\")\n\t\t\t\t\t\t\t\t.slice(0, 10)\n\t\t\t\t\t\t\t\t.map((task) => describeTaskLine(task))\n\t\t\t\t\t\t\t\t.join(\"\\n\"),\n\t\t\t\t\t\t) || \"No background tasks.\",\n\t\t\t\t\t\t\"info\",\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcloseMenu?.();\n\t\t\t\tawait ctx.ui.custom<void>(\n\t\t\t\t\t(tui, theme, keybindings, done) => {\n\t\t\t\t\t\tconst close = () => {\n\t\t\t\t\t\t\tif (closeMenu === close) closeMenu = undefined;\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcloseMenu = close;\n\t\t\t\t\t\treturn new BackgroundTasksMenu({ tui, theme, keybindings, host: ctx.background, onClose: close });\n\t\t\t\t\t},\n\t\t\t\t\t{ overlay: true, overlayOptions: { anchor: \"center\", width: \"100%\", maxHeight: \"100%\" } },\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t};\n}\nexport default createBackgroundExtension();\n"]}
@@ -1,10 +0,0 @@
1
- declare module "../../core/keybindings.ts" {
2
- interface AppKeybindings {
3
- "app.backgroundTasks.detach": true;
4
- "app.backgroundTasks.focusList": true;
5
- "app.backgroundTasks.focusPreview": true;
6
- "app.backgroundTasks.kill": true;
7
- }
8
- }
9
- export {};
10
- //# sourceMappingURL=keybindings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keybindings.d.ts","sourceRoot":"","sources":["../../../src/extensions/background/keybindings.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,2BAA2B,CAAC;IAC1C,UAAU,cAAc;QACvB,4BAA4B,EAAE,IAAI,CAAC;QACnC,+BAA+B,EAAE,IAAI,CAAC;QACtC,kCAAkC,EAAE,IAAI,CAAC;QACzC,0BAA0B,EAAE,IAAI,CAAC;KACjC;CACD"}
@@ -1,14 +0,0 @@
1
- import { TUI_KEYBINDINGS } from "@earendil-works/pi-tui";
2
- import { registerKeybindings } from "../../core/keybinding-registry.js";
3
- registerKeybindings({
4
- "app.backgroundTasks.detach": {
5
- defaultKeys: "ctrl+b",
6
- description: "Move foreground Bash and Subagent executions to the background",
7
- },
8
- "app.backgroundTasks.focusList": { defaultKeys: "left", description: "Focus the background task list" },
9
- "app.backgroundTasks.focusPreview": { defaultKeys: "right", description: "Focus the background task preview" },
10
- "app.backgroundTasks.kill": { defaultKeys: "k", description: "Kill selected background task" },
11
- // Detach takes ctrl+b, which the editor otherwise binds as a second cursor-left key.
12
- "tui.editor.cursorLeft": { ...TUI_KEYBINDINGS["tui.editor.cursorLeft"], defaultKeys: "left" },
13
- });
14
- //# sourceMappingURL=keybindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../../src/extensions/background/keybindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAWxE,mBAAmB,CAAC;IACnB,4BAA4B,EAAE;QAC7B,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,gEAAgE;KAC7E;IACD,+BAA+B,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,gCAAgC,EAAE;IACvG,kCAAkC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,mCAAmC,EAAE;IAC9G,0BAA0B,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAC9F,qFAAqF;IACrF,uBAAuB,EAAE,EAAE,GAAG,eAAe,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE;CAC7F,CAAC,CAAC","sourcesContent":["import { TUI_KEYBINDINGS } from \"@earendil-works/pi-tui\";\nimport { registerKeybindings } from \"../../core/keybinding-registry.ts\";\n\ndeclare module \"../../core/keybindings.ts\" {\n\tinterface AppKeybindings {\n\t\t\"app.backgroundTasks.detach\": true;\n\t\t\"app.backgroundTasks.focusList\": true;\n\t\t\"app.backgroundTasks.focusPreview\": true;\n\t\t\"app.backgroundTasks.kill\": true;\n\t}\n}\n\nregisterKeybindings({\n\t\"app.backgroundTasks.detach\": {\n\t\tdefaultKeys: \"ctrl+b\",\n\t\tdescription: \"Move foreground Bash and Subagent executions to the background\",\n\t},\n\t\"app.backgroundTasks.focusList\": { defaultKeys: \"left\", description: \"Focus the background task list\" },\n\t\"app.backgroundTasks.focusPreview\": { defaultKeys: \"right\", description: \"Focus the background task preview\" },\n\t\"app.backgroundTasks.kill\": { defaultKeys: \"k\", description: \"Kill selected background task\" },\n\t// Detach takes ctrl+b, which the editor otherwise binds as a second cursor-left key.\n\t\"tui.editor.cursorLeft\": { ...TUI_KEYBINDINGS[\"tui.editor.cursorLeft\"], defaultKeys: \"left\" },\n});\n"]}
@@ -1,80 +0,0 @@
1
- /** Inline observer: selecting or closing a view never changes execution ownership. */
2
- import "./keybindings.ts";
3
- import { type Component, type Focusable } from "@earendil-works/pi-tui";
4
- import { type BackgroundContext } from "../../core/background/types.ts";
5
- import type { KeybindingsManager } from "../../core/keybindings.ts";
6
- import { type Theme } from "../../modes/interactive/theme/theme.ts";
7
- export type BackgroundManagerHost = Pick<BackgroundContext, "list" | "read" | "kill" | "subscribe" | "pin">;
8
- export interface BackgroundTasksMenuOptions {
9
- tui: {
10
- requestRender(): void;
11
- terminal: {
12
- rows: number;
13
- columns: number;
14
- };
15
- };
16
- theme: Theme;
17
- keybindings: Pick<KeybindingsManager, "matches" | "getKeys">;
18
- host: BackgroundManagerHost;
19
- onClose(): void;
20
- pollIntervalMs?: number;
21
- }
22
- export declare class BackgroundTasksMenu implements Component, Focusable {
23
- focused: boolean;
24
- private readonly options;
25
- private rows;
26
- private runningCount;
27
- private finishedCount;
28
- private completedCount;
29
- private failedCount;
30
- private hiddenFinished;
31
- private selected?;
32
- private pinned?;
33
- private releasePin?;
34
- private unsubscribe;
35
- private pollTimer;
36
- private animationTimer;
37
- private disposed;
38
- private focus;
39
- private pendingKill?;
40
- private pendingKillTimer?;
41
- private readonly positions;
42
- private readonly renderCache;
43
- private width;
44
- private busy;
45
- private feedback?;
46
- private lastFrame;
47
- constructor(options: BackgroundTasksMenuOptions);
48
- private queueTick;
49
- invalidate(): void;
50
- dispose(): void;
51
- private clearPendingKill;
52
- private current;
53
- private wide;
54
- /** Fullscreen overlay: body fills the terminal minus the frame (rule, title, rule, hints, rule). */
55
- private bodyHeight;
56
- private sync;
57
- private tick;
58
- private refresh;
59
- handleInput(data: string): void;
60
- private position;
61
- /** Selectable rows interleaved with their section headers; headers are display-only and never selected. */
62
- private listItems;
63
- private cacheSet;
64
- private commandLines;
65
- private markdownLines;
66
- private detailLines;
67
- private workerLines;
68
- private contentLines;
69
- /** One geometry calculation shared by rendering and page/line navigation. */
70
- private layout;
71
- private scrollPreview;
72
- private listRowLine;
73
- private emptyLine;
74
- /** Tiny-terminal fallback: the frame stays, the layout steps aside. */
75
- private renderTooSmall;
76
- private centered;
77
- private dividerLine;
78
- render(width: number): string[];
79
- }
80
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/extensions/background/manager.ts"],"names":[],"mappings":"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"}