@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
@@ -7,8 +7,8 @@
7
7
  * - Register commands, keyboard shortcuts, and CLI flags
8
8
  * - Interact with the user via UI primitives
9
9
  */
10
- import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@earendil-works/pi-agent-core";
11
- import type { Api, AssistantMessageEvent, AssistantMessageEventStream, ConstrainedSamplingConfig, ImageContent, Message, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderHeaders, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, TranscriptContext, Usage } from "@earendil-works/pi-ai";
10
+ import type { AgentMessage, AgentTool, AgentToolCallOutcome, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@earendil-works/pi-agent-core";
11
+ import type { AnyModel, Api, AssistantMessageEvent, AssistantMessageEventStream, ClassifierApi, ConstrainedSamplingConfig, ImageApi, ImageContent, JsonValue, Message, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderClassifier, ProviderHeaders, ProviderId, ProviderImages, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, TranscriptContext, Usage } from "@earendil-works/pi-ai";
12
12
  import type { AutocompleteItem, AutocompleteProvider, Component, EditorComponent, EditorTheme, KeyId, OverlayHandle, OverlayOptions, TUI } from "@earendil-works/pi-tui";
13
13
  import type { Static, TSchema } from "typebox";
14
14
  import type { Theme } from "../../modes/interactive/theme/theme.ts";
@@ -19,21 +19,24 @@ import type { EventBus } from "../event-bus.ts";
19
19
  import type { ExecOptions, ExecResult } from "../exec.ts";
20
20
  import type { ReadonlyFooterDataProvider } from "../footer-data-provider.ts";
21
21
  import type { KeybindingsManager } from "../keybindings.ts";
22
+ import type { McpServerConfig, McpServerRegistry, RegisteredMcpServer } from "../mcp-servers.ts";
22
23
  import type { CustomMessage } from "../messages.ts";
23
24
  import type { ModelRegistry } from "../model-registry.ts";
24
25
  import type { ScopedModel } from "../model-resolver.ts";
25
26
  import type { BranchSummaryEntry, CompactionEntry, ContextEditEntry, CustomEntry, ProjectedSessionEntry, ReadonlySessionManager, SessionEntry, SessionManager } from "../session-manager.ts";
27
+ import type { Settings } from "../settings-manager.ts";
26
28
  import type { SlashCommandInfo } from "../slash-commands.ts";
27
29
  import type { SourceInfo } from "../source-info.ts";
28
30
  import type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
29
31
  import type { BashOperations } from "../tools/bash.ts";
30
32
  import type { EditToolDetails } from "../tools/edit.ts";
31
33
  import type { BashToolDetails, BashToolInput, EditToolInput, FindToolDetails, FindToolInput, GrepToolDetails, GrepToolInput, LsToolDetails, LsToolInput, PowerShellToolDetails, PowerShellToolInput, ReadToolDetails, ReadToolInput, WriteToolInput } from "../tools/index.ts";
32
- import type { BackgroundContext, ContextSnapshot, EditorHost, ModelRuntime } from "./distribution-api.ts";
34
+ import type { ModelRoute, ModelRouteRequest, VirtualModelDefinition } from "../virtual-models.ts";
35
+ import type { ContextSnapshot, EditorHost, ModelRuntime, TasksContext } from "./distribution-api.ts";
33
36
  export type { ExecOptions, ExecResult } from "../exec.ts";
34
37
  export type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
35
38
  export type { ContextSnapshot, EditorHost, EditorSubmitEvent, EditorSubmitHandler } from "./distribution-api.ts";
36
- export { isStaleExtensionContextError, STALE_EXTENSION_CONTEXT_MESSAGE } from "./distribution-api.ts";
39
+ export { isStaleExtensionContextError } from "./distribution-api.ts";
37
40
  export type { AgentToolResult, AgentToolUpdateCallback, ToolExecutionMode };
38
41
  export type { AppKeybinding, KeybindingsManager } from "../keybindings.ts";
39
42
  /** Options for extension UI dialogs. */
@@ -213,6 +216,10 @@ export interface CompactOptions {
213
216
  */
214
217
  export type ExtensionMode = "tui" | "rpc" | "json" | "print";
215
218
  export interface ExtensionContext {
219
+ /** Read detached global JSON settings for an extension namespace. */
220
+ getExtensionSettings(namespace: string): Record<string, unknown>;
221
+ /** Replace one global namespace; rejects on invalid data or failed persistence. */
222
+ setExtensionSettings(namespace: string, value: Record<string, unknown>): Promise<void>;
216
223
  /** UI methods for user interaction */
217
224
  ui: ExtensionUIContext;
218
225
  /** Current run mode. Use "tui" to guard terminal-only UI such as custom components. */
@@ -228,7 +235,7 @@ export interface ExtensionContext {
228
235
  /** Canonical model and authentication runtime shared by the current session. */
229
236
  readonly modelRuntime: ModelRuntime;
230
237
  /** Session-owned execution capability; disabled unless the host explicitly enables it. */
231
- readonly background: BackgroundContext;
238
+ readonly tasks: TasksContext;
232
239
  /** Capture detached, stable model input and request settings without writing to the session. */
233
240
  getContextSnapshot(): Promise<ContextSnapshot>;
234
241
  /** Current model (may be undefined) */
@@ -259,6 +266,34 @@ export interface ExtensionContext {
259
266
  /** Get the current effective system prompt. */
260
267
  getSystemPrompt(): string;
261
268
  }
269
+ /** Options for {@link ExtensionToolContext.executeTool}. */
270
+ export interface ExecuteToolOptions {
271
+ /** Defaults to the calling tool's signal. */
272
+ signal?: AbortSignal;
273
+ /** Receives partial results of the nested tool, in addition to `tool_execution_update` events. */
274
+ onUpdate?: AgentToolUpdateCallback;
275
+ }
276
+ /**
277
+ * Context passed to tool `execute()` in a session: the extension context plus `executeTool()`
278
+ * for running other tools through the same validation, hooks, and permission checks as
279
+ * model-issued calls.
280
+ *
281
+ * A tool wrapped with `wrapToolDefinition()` without a context factory, such as a built-in tool
282
+ * created with `createBashTool()` and run in a plain `Agent` or called directly, gets no context.
283
+ */
284
+ export interface ExtensionToolContext extends ExtensionContext {
285
+ /** Tools {@link executeTool} can call. */
286
+ readonly tools: readonly AgentTool[];
287
+ /**
288
+ * Run another tool. The call gets the id `<calling id>/<n>`, and the `tool_call`, `tool_result`,
289
+ * and `tool_execution_*` events carry `parentToolCallId`. It does not appear in the transcript;
290
+ * a bounded record of it is kept as `nestedCalls` on the calling tool's result message.
291
+ *
292
+ * Never rejects for tool failures: unknown tools, validation errors, blocked calls, and thrown
293
+ * errors come back as `isError: true`.
294
+ */
295
+ executeTool(name: string, args: unknown, options?: ExecuteToolOptions): Promise<AgentToolCallOutcome>;
296
+ }
262
297
  /**
263
298
  * Extended context for command handlers.
264
299
  * Includes session control methods only safe in user-initiated commands.
@@ -329,8 +364,6 @@ export interface ToolRenderContext<TState = any, TArgs = any, TDetails = unknown
329
364
  args: TArgs;
330
365
  /** Current final or partial result, when one has been received. Error state remains available through isError. */
331
366
  result?: AgentToolResult<TDetails>;
332
- /** True when renderCall is producing a collapsed grouped-tool summary. */
333
- toolGroupSummary?: boolean;
334
367
  /** Unique id for this tool execution. Stable across call/result renders for the same tool call. */
335
368
  toolCallId: string;
336
369
  /** Invalidate just this tool execution component for redraw. */
@@ -357,6 +390,64 @@ export interface ToolRenderContext<TState = any, TArgs = any, TDetails = unknown
357
390
  /** Whether the current result is an error. */
358
391
  isError: boolean;
359
392
  }
393
+ /**
394
+ * How the model reaches a tool. "Callable" means callable from other tools through
395
+ * `ctx.executeTool()`, as the `codemode` tool does.
396
+ *
397
+ * - `direct`: declared to the model while active, and callable while active.
398
+ * - `model-only`: declared to the model while active, never callable. Use it for orchestrating or
399
+ * interactive tools.
400
+ * - `codemode`: callable whenever registered. Not declared to the model unless explicitly
401
+ * activated. Codemode tools list it in their description.
402
+ * - `deferred`: like `codemode`, but codemode tools do not list it; tool search can find it.
403
+ * - `hidden`: registered but unreachable. Activating it has no effect.
404
+ *
405
+ * `direct` and `model-only` tools are activated when they are registered; the others are not.
406
+ * The active tool set (`getActiveTools`/`setActiveTools`) is the set declared to the model.
407
+ */
408
+ export type ToolExposure = "direct" | "model-only" | "codemode" | "deferred" | "hidden";
409
+ /**
410
+ * Hints about what a tool does, with the meaning of MCP tool annotations. They come from the tool's
411
+ * author and are not verified; permission extensions can use them to decide which calls to confirm.
412
+ */
413
+ export interface ToolAnnotations {
414
+ /** The tool does not modify its environment. */
415
+ readOnlyHint?: boolean;
416
+ /** The tool may delete or overwrite data, rather than only add to it. Meaningful when not read-only. */
417
+ destructiveHint?: boolean;
418
+ /** Repeating a call with the same arguments has no further effect. Meaningful when not read-only. */
419
+ idempotentHint?: boolean;
420
+ /** The tool reaches an open world of external entities, such as the web, rather than a closed domain. */
421
+ openWorldHint?: boolean;
422
+ }
423
+ /** A group of related tools, such as the tools of one MCP server. Codemode tools list them together. */
424
+ export interface ToolNamespace {
425
+ /** For example `mcp__docs`. */
426
+ name: string;
427
+ /** Shown once above the group's tools. */
428
+ description?: string;
429
+ }
430
+ /** The tools of a session as {@link ToolDefinition.prepareLoadout} sees them. */
431
+ export interface ToolLoadout {
432
+ /** Tools declared to the model (the active tools), in order, with their original descriptions. */
433
+ readonly declared: readonly AgentTool[];
434
+ /** Tools callable through `ctx.executeTool()`. */
435
+ readonly callable: readonly AgentTool[];
436
+ /** Every registered tool. */
437
+ readonly registered: readonly AgentTool[];
438
+ getExposure(name: string): ToolExposure;
439
+ getNamespace(name: string): ToolNamespace | undefined;
440
+ }
441
+ /** Changes {@link ToolDefinition.prepareLoadout} makes to what the model sees. */
442
+ export interface ToolLoadoutChanges {
443
+ /** Model-facing descriptions of declared tools, by tool name. */
444
+ descriptions?: Readonly<Record<string, string>>;
445
+ /**
446
+ * Declared tools whose declarations requests leave out. They stay active and callable, and the
447
+ * transcript still declares them, so the active set survives `/tree` and resume.
448
+ */
449
+ hiddenDeclarations?: readonly string[];
450
+ }
360
451
  /**
361
452
  * Tool definition for registerTool().
362
453
  */
@@ -375,12 +466,35 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
375
466
  parameters: TParams;
376
467
  /** Optional provider-side constrained sampling request for this tool. Set false to explicitly disable it, equivalent to leaving it undefined. */
377
468
  constrainedSampling?: false | ConstrainedSamplingConfig;
378
- /** Optional freeform group identifier for collapsed tool-call aggregation. */
379
- toolGroup?: string;
380
469
  /** Controls whether ToolExecutionComponent renders the standard colored shell or the tool renders its own framing. */
381
470
  renderShell?: "default" | "self";
382
471
  /** Optional compatibility shim to prepare raw tool call arguments before schema validation. Must return an object conforming to TParams. */
383
472
  prepareArguments?: (args: unknown) => Static<TParams>;
473
+ /**
474
+ * JSON Schema of `structuredContent` in successful results. Tools that declare it should always
475
+ * set `structuredContent`; codemode scripts then receive it instead of the text content.
476
+ */
477
+ outputSchema?: TSchema;
478
+ /**
479
+ * How the model reaches the tool. Default: `"direct"`. See {@link ToolExposure}.
480
+ */
481
+ exposure?: ToolExposure;
482
+ /** Group the tool belongs to, for example its MCP server. */
483
+ namespace?: ToolNamespace;
484
+ /** Hints about what the tool does, for example from an MCP server. */
485
+ annotations?: ToolAnnotations;
486
+ /**
487
+ * Whether registering the tool activates it. Default: `true` for `direct` and `model-only` tools;
488
+ * other exposures are never activated on registration. A tool with `defaultActive: false` is
489
+ * activated by naming it in `--tools` or the `defaultTools` setting, or with `setActiveTools()`.
490
+ */
491
+ defaultActive?: boolean;
492
+ /**
493
+ * Adjust how the loadout is presented to the model while this tool is active. Called whenever
494
+ * the active tools change. Tools that orchestrate other tools use it, for example to list the
495
+ * callable tools in their own description.
496
+ */
497
+ prepareLoadout?: (loadout: ToolLoadout) => ToolLoadoutChanges | undefined;
384
498
  /**
385
499
  * Per-tool execution mode override.
386
500
  * - "sequential": this tool must execute one at a time with other tool calls.
@@ -390,7 +504,7 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
390
504
  */
391
505
  executionMode?: ToolExecutionMode;
392
506
  /** Execute the tool. */
393
- execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx: ExtensionContext): Promise<AgentToolResult<TDetails>>;
507
+ execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx: ExtensionToolContext): Promise<AgentToolResult<TDetails>>;
394
508
  /** Custom rendering for tool call display */
395
509
  renderCall?: (args: Static<TParams>, theme: Theme, context: ToolRenderContext<TState, Static<TParams>, TDetails>) => Component;
396
510
  /** Custom rendering for tool result display */
@@ -433,6 +547,17 @@ export interface ResourcesDiscoverResult {
433
547
  promptPaths?: string[];
434
548
  themePaths?: string[];
435
549
  }
550
+ /**
551
+ * Fired when an extension registers or unregisters an MCP server after the extensions are bound
552
+ * (see {@link ExtensionAPI.registerMcpServer}). Servers registered while extensions load are read
553
+ * with `pi.getMcpServers()` on `session_start`. Handling this event marks an extension as the one
554
+ * that connects registered servers.
555
+ */
556
+ export interface McpServersChangeEvent {
557
+ type: "mcp_servers_change";
558
+ /** Every registered server after the change. */
559
+ servers: RegisteredMcpServer[];
560
+ }
436
561
  /** Fired when a session is started, loaded, or reloaded */
437
562
  export interface SessionStartEvent {
438
563
  type: "session_start";
@@ -571,6 +696,14 @@ export interface AfterProviderResponseEvent {
571
696
  status: number;
572
697
  headers: Record<string, string>;
573
698
  }
699
+ /** Fired for a parsed provider stream event before Pi normalizes it. */
700
+ export interface ProviderStreamEvent {
701
+ type: "provider_stream_event";
702
+ provider: ProviderId;
703
+ api: Api;
704
+ model: string;
705
+ data: unknown;
706
+ }
574
707
  /** Fired after user submits prompt but before agent loop. */
575
708
  export interface BeforeAgentStartEvent {
576
709
  type: "before_agent_start";
@@ -696,6 +829,8 @@ export interface ToolExecutionStartEvent {
696
829
  toolCallId: string;
697
830
  toolName: string;
698
831
  args: any;
832
+ /** Set when another tool (for example a codemode script) made this call. */
833
+ parentToolCallId?: string;
699
834
  }
700
835
  /** Fired during tool execution with partial/streaming output */
701
836
  export interface ToolExecutionUpdateEvent {
@@ -704,6 +839,8 @@ export interface ToolExecutionUpdateEvent {
704
839
  toolName: string;
705
840
  args: any;
706
841
  partialResult: any;
842
+ /** Set when another tool (for example a codemode script) made this call. */
843
+ parentToolCallId?: string;
707
844
  }
708
845
  /** Fired when a tool finishes executing */
709
846
  export interface ToolExecutionEndEvent {
@@ -712,6 +849,8 @@ export interface ToolExecutionEndEvent {
712
849
  toolName: string;
713
850
  result: any;
714
851
  isError: boolean;
852
+ /** Set when another tool (for example a codemode script) made this call. */
853
+ parentToolCallId?: string;
715
854
  }
716
855
  export type ModelSelectSource = "set" | "cycle" | "restore";
717
856
  /** Fired when a new model is selected */
@@ -763,7 +902,14 @@ export type InputEventResult = {
763
902
  };
764
903
  interface ToolCallEventBase {
765
904
  type: "tool_call";
905
+ /**
906
+ * The call's id. For calls another tool made (with `parentToolCallId` set), pi assigns
907
+ * `<parent id>/<n>`; such ids never appear as tool calls or tool results in the transcript, only
908
+ * in the parent result's `nestedCalls` record.
909
+ */
766
910
  toolCallId: string;
911
+ /** Set when another tool (for example a codemode script) issued this call. */
912
+ parentToolCallId?: string;
767
913
  }
768
914
  export interface BashToolCallEvent extends ToolCallEventBase {
769
915
  toolName: "bash";
@@ -810,9 +956,17 @@ export interface CustomToolCallEvent extends ToolCallEventBase {
810
956
  export type ToolCallEvent = BashToolCallEvent | PowerShellToolCallEvent | ReadToolCallEvent | EditToolCallEvent | WriteToolCallEvent | GrepToolCallEvent | FindToolCallEvent | LsToolCallEvent | CustomToolCallEvent;
811
957
  interface ToolResultEventBase {
812
958
  type: "tool_result";
959
+ /** The call's id; `<parent id>/<n>` for nested calls, see `ToolCallEvent`. */
813
960
  toolCallId: string;
961
+ /** Set when another tool (for example a codemode script) issued this call. */
962
+ parentToolCallId?: string;
814
963
  input: Record<string, unknown>;
815
964
  content: (TextContent | ImageContent)[];
965
+ /**
966
+ * Machine-readable result for tools that declare an `outputSchema`. Handlers that redact
967
+ * `content` should also replace this; replacing `content` alone drops it.
968
+ */
969
+ structuredContent?: JsonValue;
816
970
  isError: boolean;
817
971
  /** Usage from the tool execution itself, if available. */
818
972
  usage?: Usage;
@@ -896,7 +1050,7 @@ export declare function isToolCallEventType<TName extends string, TInput extends
896
1050
  input: TInput;
897
1051
  };
898
1052
  /** Union of all event types */
899
- export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | SessionEvent | ContextEvent | ContextWithSystemEvent | CacheWarmingDecisionEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentBeforeSettleEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
1053
+ export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | McpServersChangeEvent | SessionEvent | ContextEvent | ContextWithSystemEvent | CacheWarmingDecisionEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | ProviderStreamEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentBeforeSettleEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
900
1054
  export interface ContextEventResult {
901
1055
  messages?: AgentMessage[];
902
1056
  }
@@ -924,9 +1078,15 @@ export type UserBashEventResult = {
924
1078
  /** Full replacement: extension handled execution, use this result */
925
1079
  result: BashResult;
926
1080
  };
1081
+ /**
1082
+ * Changes a `tool_result` handler makes. Omitted fields stay as they are, except that replacing
1083
+ * `content` without returning `structuredContent` drops the structured content, because it may no
1084
+ * longer match. Return it along with `content` to keep it.
1085
+ */
927
1086
  export interface ToolResultEventResult {
928
1087
  content?: (TextContent | ImageContent)[];
929
1088
  details?: unknown;
1089
+ structuredContent?: JsonValue;
930
1090
  isError?: boolean;
931
1091
  usage?: Usage;
932
1092
  }
@@ -1006,6 +1166,7 @@ export interface ExtensionAPI {
1006
1166
  on(event: "session_compact", handler: ExtensionHandler<SessionCompactEvent>): () => void;
1007
1167
  on(event: "session_compact_failed", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;
1008
1168
  on(event: "session_shutdown", handler: ExtensionHandler<SessionShutdownEvent>): () => void;
1169
+ on(event: "mcp_servers_change", handler: ExtensionHandler<McpServersChangeEvent>): () => void;
1009
1170
  on(event: "session_before_tree", handler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>): () => void;
1010
1171
  on(event: "session_tree", handler: ExtensionHandler<SessionTreeEvent>): () => void;
1011
1172
  on(event: "context", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;
@@ -1014,6 +1175,7 @@ export interface ExtensionAPI {
1014
1175
  on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): () => void;
1015
1176
  on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;
1016
1177
  on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;
1178
+ on(event: "provider_stream_event", handler: ExtensionHandler<ProviderStreamEvent>): () => void;
1017
1179
  on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): () => void;
1018
1180
  on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): () => void;
1019
1181
  on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): () => void;
@@ -1086,11 +1248,16 @@ export interface ExtensionAPI {
1086
1248
  setLabel(entryId: string, label: string | undefined): void;
1087
1249
  /** Execute a shell command. */
1088
1250
  exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
1089
- /** Get the list of currently active tool names. */
1251
+ /** Get the names of the active tools, which are the tools declared to the model. */
1090
1252
  getActiveTools(): string[];
1091
- /** Get all configured tools with parameter schema, prompt guidelines, and source metadata. */
1253
+ /** Get all configured tools with parameter schema, prompt guidelines, exposure, and source metadata. */
1092
1254
  getAllTools(): ToolInfo[];
1093
- /** Set the active tools by name. */
1255
+ /** Get a copy of the effective settings (global and project settings merged, with overrides). */
1256
+ getSettings(): Settings;
1257
+ /**
1258
+ * Set the active tools by name. Unknown and `hidden` tools are ignored. Tools with `codemode` or
1259
+ * `deferred` exposure stay callable from codemode scripts whether active or not.
1260
+ */
1094
1261
  setActiveTools(toolNames: string[]): void;
1095
1262
  /** Get available slash commands in the current session. */
1096
1263
  getCommands(): SlashCommandInfo[];
@@ -1174,9 +1341,45 @@ export interface ExtensionAPI {
1174
1341
  * pi.unregisterProvider("my-proxy");
1175
1342
  */
1176
1343
  unregisterProvider(name: string): void;
1344
+ /**
1345
+ * Register an MCP server for this session, with the same config as an `mcpServers` entry in
1346
+ * `mcp.json`. The server connects next to the configured servers: on `session_start` when
1347
+ * registered during extension load, right away when registered later. Registering a name again
1348
+ * replaces the extension's earlier registration.
1349
+ *
1350
+ * The registration is not saved; register again on every load. A server of the same name in
1351
+ * `mcp.json` takes precedence. Throws for invalid configs and for names another extension
1352
+ * registered. When no loaded extension handles MCP servers (for example because another MCP
1353
+ * extension replaced the built-in one), the registration is reported as an extension error.
1354
+ *
1355
+ * @example
1356
+ * pi.registerMcpServer("jira", { url: "https://mcp.example.com/jira" });
1357
+ */
1358
+ registerMcpServer(name: string, config: McpServerConfig): void;
1359
+ /** Remove an MCP server this extension registered and close its connection. */
1360
+ unregisterMcpServer(name: string): void;
1361
+ /** Every MCP server registered by extensions. For extensions that connect MCP servers. */
1362
+ getMcpServers(): RegisteredMcpServer[];
1363
+ /**
1364
+ * Register a virtual model: a selectable catalog entry that routes each request to a physical
1365
+ * model. The selection (`ctx.model`, `model_change` entries) names the virtual model; assistant
1366
+ * messages record the physical model and thinking level the router picked.
1367
+ *
1368
+ * `provider` may be any provider id, including one with physical models, and may list several
1369
+ * virtual models. Registering the same provider and id again replaces the virtual model. See
1370
+ * docs/virtual-models.md.
1371
+ */
1372
+ registerVirtualModel<TState = unknown>(model: ExtensionVirtualModel<TState>): void;
1373
+ /** Remove a virtual model registered with `registerVirtualModel()`. */
1374
+ unregisterVirtualModel(provider: string, id: string): void;
1177
1375
  /** Shared event bus for extension communication. */
1178
1376
  events: EventBus;
1179
1377
  }
1378
+ /** Virtual model registered via pi.registerVirtualModel(). */
1379
+ export interface ExtensionVirtualModel<TState = unknown> extends Omit<VirtualModelDefinition<TState>, "route"> {
1380
+ /** Like `VirtualModelDefinition.route`, with an extension context. */
1381
+ route(request: ModelRouteRequest<TState>, ctx: ExtensionContext): ModelRoute<TState> | Promise<ModelRoute<TState>>;
1382
+ }
1180
1383
  /** Configuration for registering a provider via pi.registerProvider(). */
1181
1384
  export interface ProviderConfig {
1182
1385
  /** Display name for the provider in UI. */
@@ -1193,9 +1396,15 @@ export interface ProviderConfig {
1193
1396
  * (`getCurrentSystemPrompt(context.messages)`, `getCurrentTools(context.messages)`).
1194
1397
  * Implementations must invoke `options.onPayload` before sending the provider request and use any
1195
1398
  * returned replacement payload. They must invoke `options.onResponse` after receiving the response
1196
- * and before consuming its body, matching built-in providers.
1399
+ * and before consuming its body, matching built-in providers. Implementations may invoke
1400
+ * `options.onProviderStreamEvent(data, model)` with parsed stream events before normalization.
1401
+ * Event data is adapter-owned and must be treated as read-only.
1197
1402
  */
1198
1403
  streamSimple?: (model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions) => AssistantMessageEventStream;
1404
+ /** Image-generation implementations keyed by image API. */
1405
+ images?: Partial<Record<ImageApi, ProviderImages>>;
1406
+ /** Classifier implementations keyed by classifier API. */
1407
+ classifiers?: Partial<Record<ClassifierApi, ProviderClassifier>>;
1199
1408
  /** Custom headers to include in requests. */
1200
1409
  headers?: Record<string, string>;
1201
1410
  /** If true, adds Authorization: Bearer header with the resolved API key. */
@@ -1225,45 +1434,84 @@ export interface ProviderConfig {
1225
1434
  modifyModels?(models: Model<Api>[], credentials: OAuthCredentials): Model<Api>[];
1226
1435
  };
1227
1436
  }
1228
- /** Configuration for a model within a provider. */
1229
- export interface ProviderModelConfig {
1230
- /** Model ID (e.g., "claude-sonnet-4-20250514"). */
1437
+ interface ProviderModelConfigBase {
1438
+ /** Model ID. */
1231
1439
  id: string;
1232
- /** Display name (e.g., "Claude 4 Sonnet"). */
1440
+ /** Display name. */
1233
1441
  name: string;
1234
1442
  /** API type override for this model. */
1235
- api?: Api;
1443
+ api?: string;
1236
1444
  /** API endpoint URL override for this model. */
1237
1445
  baseUrl?: string;
1238
- /** Whether the model supports extended thinking. */
1239
- reasoning: boolean;
1240
- /** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
1241
- thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
1242
1446
  /** Supported input types. */
1243
1447
  input: ("text" | "image")[];
1244
1448
  /** Provider input limits and cache-safe image preprocessing metadata. */
1245
- inputLimits?: Model<Api>["inputLimits"];
1449
+ inputLimits?: AnyModel["inputLimits"];
1246
1450
  /** Per-million-token cost rates and optional request-wide input pricing tiers. */
1247
- cost: Model<Api>["cost"];
1451
+ cost: AnyModel["cost"];
1452
+ /** Custom headers for this model. */
1453
+ headers?: Record<string, string>;
1454
+ }
1455
+ /** Chat model configuration. Omitted `type` is normalized to `"chat"`. */
1456
+ export interface ProviderChatModelConfig extends ProviderModelConfigBase {
1457
+ type?: "chat";
1458
+ api?: Api;
1459
+ /** Whether the model supports extended thinking. */
1460
+ reasoning: boolean;
1461
+ /** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
1462
+ thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
1248
1463
  /** Best-effort prompt cache lifetime in seconds per retention tier. Unset disables cache warming. */
1249
1464
  promptCache?: Model<Api>["promptCache"];
1250
1465
  /** Maximum context window size in tokens. */
1251
1466
  contextWindow: number;
1252
1467
  /** Maximum output tokens. */
1253
1468
  maxTokens: number;
1254
- /** Custom headers for this model. */
1255
- headers?: Record<string, string>;
1469
+ samplingParams?: Record<string, unknown>;
1256
1470
  /** OpenAI compatibility settings. */
1257
1471
  compat?: Model<Api>["compat"];
1258
1472
  }
1473
+ /** Image-generation model configuration. */
1474
+ export interface ProviderImageModelConfig extends ProviderModelConfigBase {
1475
+ type: "image";
1476
+ api?: ImageApi;
1477
+ output: ("text" | "image")[];
1478
+ }
1479
+ /** Structured classifier model configuration. */
1480
+ export interface ProviderClassifierModelConfig extends ProviderModelConfigBase {
1481
+ type: "classifier";
1482
+ api?: ClassifierApi;
1483
+ contextWindow: number;
1484
+ }
1485
+ /** Configuration for a model within a provider. */
1486
+ export type ProviderModelConfig = ProviderChatModelConfig | ProviderImageModelConfig | ProviderClassifierModelConfig;
1259
1487
  /** Extension factory function type. Supports both sync and async initialization. */
1260
1488
  export type ExtensionFactory = (pi: ExtensionAPI) => void | Promise<void>;
1261
1489
  export type InlineExtension = ExtensionFactory | {
1262
- /** Display name shown as `<inline:name>` in the startup Extensions list. */
1490
+ /**
1491
+ * Display name shown as `<inline:name>` in the startup Extensions list and errors. With
1492
+ * `builtin`, the extension is named `builtin:name` in errors and diagnostics.
1493
+ */
1263
1494
  name: string;
1264
1495
  factory: ExtensionFactory;
1265
1496
  /** Omit this extension from the startup Extensions list. */
1266
1497
  hidden?: boolean;
1498
+ /**
1499
+ * Leave this extension out when another extension registers a tool, command, or flag with a
1500
+ * name it registers during loading, instead of reporting a conflict. The CLI's built-in MCP,
1501
+ * codemode, and tool search extensions use it, so for example an MCP extension that registers
1502
+ * `/mcp` replaces the built-in MCP support. The factory still runs, so it should only register
1503
+ * tools, commands, flags, and event handlers.
1504
+ */
1505
+ replaceable?: boolean;
1506
+ /**
1507
+ * Supply the code of the `builtin:<name>` extension instead of loading as an inline extension.
1508
+ * `builtin:<name>` is an extension resource like a file: it loads by default, `pi config` lists
1509
+ * it, `-builtin:<name>` in the `extensions` setting and `--no-extensions` disable it, and
1510
+ * `-e builtin:<name>` loads it explicitly. It is hidden from the startup Extensions list and
1511
+ * loads after project trust is resolved, so it cannot handle `project_trust`. The CLI's built-in
1512
+ * extensions use it.
1513
+ */
1514
+ builtin?: boolean;
1267
1515
  };
1268
1516
  export interface RegisteredTool {
1269
1517
  definition: ToolDefinition;
@@ -1297,9 +1545,13 @@ export type GetSessionNameHandler = () => string | undefined;
1297
1545
  export type GetActiveToolsHandler = () => string[];
1298
1546
  /** Tool info with name, description, parameter schema, prompt guidelines, and source metadata. */
1299
1547
  export type ToolInfo = Pick<ToolDefinition, "name" | "description" | "parameters" | "promptGuidelines"> & {
1548
+ exposure: ToolExposure;
1549
+ namespace?: ToolNamespace;
1550
+ annotations?: ToolAnnotations;
1300
1551
  sourceInfo: SourceInfo;
1301
1552
  };
1302
1553
  export type GetAllToolsHandler = () => ToolInfo[];
1554
+ export type GetSettingsHandler = () => Settings;
1303
1555
  export type GetCommandsHandler = () => SlashCommandInfo[];
1304
1556
  export type SetActiveToolsHandler = (toolNames: string[]) => void;
1305
1557
  export type RefreshToolsHandler = () => void;
@@ -1324,6 +1576,13 @@ export interface ExtensionRuntimeState {
1324
1576
  provider: Provider;
1325
1577
  extensionPath: string;
1326
1578
  }>;
1579
+ /** Virtual model registrations queued during extension loading, processed when runner binds. */
1580
+ pendingVirtualModelRegistrations: Array<{
1581
+ definition: VirtualModelDefinition;
1582
+ extensionPath: string;
1583
+ }>;
1584
+ /** Create an extension context. Throws before the runner binds. */
1585
+ createContext: () => ExtensionContext;
1327
1586
  /** Throws when this extension instance is stale after runtime replacement. */
1328
1587
  assertActive: () => void;
1329
1588
  /** Marks this extension instance as stale after runtime replacement or reload. */
@@ -1339,6 +1598,10 @@ export interface ExtensionRuntimeState {
1339
1598
  registerProvider: (name: string, config: ProviderConfig, extensionPath?: string) => void;
1340
1599
  registerNativeProvider: (provider: Provider, extensionPath?: string) => void;
1341
1600
  unregisterProvider: (name: string, extensionPath?: string) => void;
1601
+ /** Servers registered with `pi.registerMcpServer()`. */
1602
+ mcpServers: McpServerRegistry;
1603
+ registerVirtualModel: (definition: VirtualModelDefinition, extensionPath?: string) => void;
1604
+ unregisterVirtualModel: (provider: string, id: string) => void;
1342
1605
  }
1343
1606
  /**
1344
1607
  * Action implementations for pi.* API methods.
@@ -1353,6 +1616,7 @@ export interface ExtensionActions {
1353
1616
  setLabel: SetLabelHandler;
1354
1617
  getActiveTools: GetActiveToolsHandler;
1355
1618
  getAllTools: GetAllToolsHandler;
1619
+ getSettings: GetSettingsHandler;
1356
1620
  setActiveTools: SetActiveToolsHandler;
1357
1621
  refreshTools: RefreshToolsHandler;
1358
1622
  getCommands: GetCommandsHandler;
@@ -1365,7 +1629,9 @@ export interface ExtensionActions {
1365
1629
  * Required by all modes.
1366
1630
  */
1367
1631
  export interface ExtensionContextActions {
1368
- getBackground?: () => BackgroundContext;
1632
+ getExtensionSettings?: ExtensionContext["getExtensionSettings"];
1633
+ setExtensionSettings?: ExtensionContext["setExtensionSettings"];
1634
+ getTasks?: () => TasksContext;
1369
1635
  getModel: () => Model<any> | undefined;
1370
1636
  getScopedModels: () => readonly ScopedModel[];
1371
1637
  isIdle: () => boolean;
@@ -1379,6 +1645,10 @@ export interface ExtensionContextActions {
1379
1645
  compact: (options?: CompactOptions) => void;
1380
1646
  getSystemPrompt: () => string;
1381
1647
  getSystemPromptOptions?: () => BuildSystemPromptOptions;
1648
+ /** Backs `ExtensionToolContext.executeTool()`. Without it, nested calls fail. */
1649
+ executeTool?: (callerId: string, name: string, args: unknown, options: ExecuteToolOptions) => Promise<AgentToolCallOutcome>;
1650
+ /** Backs `ExtensionToolContext.tools`. */
1651
+ getCallableTools?: () => readonly AgentTool[];
1382
1652
  }
1383
1653
  /**
1384
1654
  * Actions for ExtensionCommandContext (ctx.* in command handlers).
@@ -1425,6 +1695,8 @@ export interface Extension {
1425
1695
  path: string;
1426
1696
  resolvedPath: string;
1427
1697
  hidden?: boolean;
1698
+ /** See {@link InlineExtension}. */
1699
+ replaceable?: boolean;
1428
1700
  sourceInfo: SourceInfo;
1429
1701
  handlers: Map<string, HandlerFn[]>;
1430
1702
  tools: Map<string, RegisteredTool>;
@@ -1442,6 +1714,10 @@ export interface LoadExtensionsResult {
1442
1714
  path: string;
1443
1715
  error: string;
1444
1716
  }>;
1717
+ warnings?: Array<{
1718
+ path: string;
1719
+ warning: string;
1720
+ }>;
1445
1721
  /** Shared runtime - actions are throwing stubs until runner.initialize() */
1446
1722
  runtime: ExtensionRuntime;
1447
1723
  }