@subimpact/e 0.99.12 → 0.100.1

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 (930) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +7 -1
  3. package/dist/bundle/chunks/anthropic-messages-BGDBSRR2.js +6 -0
  4. package/dist/bundle/chunks/azure-openai-responses-ZCNWFVTX.js +2 -0
  5. package/dist/bundle/chunks/bedrock-converse-stream.js +3 -3
  6. package/dist/bundle/chunks/chunk-35AZPBGE.js +11 -0
  7. package/dist/bundle/chunks/{chunk-C47CLQZK.js → chunk-CMZY6PM7.js} +1 -1
  8. package/dist/bundle/chunks/{chunk-XVIZD2L5.js → chunk-DOSAFY5Y.js} +3 -3
  9. package/dist/bundle/chunks/{chunk-KAXC2ESR.js → chunk-GICF34HK.js} +8 -8
  10. package/dist/bundle/chunks/{chunk-GYREDKZT.js → chunk-HKQXO4IQ.js} +1 -1
  11. package/dist/bundle/chunks/chunk-K4O5WZC5.js +11 -0
  12. package/dist/bundle/chunks/{chunk-SVKJCAH2.js → chunk-NBSSK56J.js} +1 -1
  13. package/dist/bundle/chunks/{chunk-XZYVF4BW.js → chunk-RAB4RJZ2.js} +60 -60
  14. package/dist/bundle/chunks/{cloudflare-workers-ai-system-one-NHSAQJW5.js → cloudflare-workers-ai-system-one-6FXZDK6A.js} +1 -1
  15. package/dist/bundle/chunks/{easter-egg-3d-DD22MRM3.js → easter-egg-3d-JQPBRQEU.js} +1 -1
  16. package/dist/bundle/chunks/github-copilot.js +1 -1
  17. package/dist/bundle/chunks/{google-generative-ai-ON7RPJHF.js → google-generative-ai-VJA5IOK3.js} +1 -1
  18. package/dist/bundle/chunks/{google-vertex-6YO5GV2H.js → google-vertex-TI6AJXT2.js} +1 -1
  19. package/dist/bundle/chunks/{mistral-conversations-NN33SMJ6.js → mistral-conversations-XTWEX6FG.js} +1 -1
  20. package/dist/bundle/chunks/openai-codex-responses-WGH4GHLE.js +10 -0
  21. package/dist/bundle/chunks/openai-completions-GXGEEHZH.js +7 -0
  22. package/dist/bundle/chunks/openai-responses-NLSL5UY4.js +3 -0
  23. package/dist/bundle/chunks/{typesafe-system-one-PRR5K6CI.js → typesafe-system-one-3OTHQPDL.js} +1 -1
  24. package/dist/bundle/chunks/{virtual-modules-6MDPJKNE.js → virtual-modules-L22CHFWU.js} +1 -1
  25. package/dist/bundle/cli-runtime.js +1 -1
  26. package/dist/bundle/index.js +1 -1
  27. package/dist/bundle/rpc-entry.js +1 -1
  28. package/docs/compaction.md +2 -2
  29. package/docs/extensions.md +4 -10
  30. package/docs/message-types.md +2 -4
  31. package/docs/session-format.md +4 -4
  32. package/docs/settings.md +1 -1
  33. package/docs/tui.md +1 -1
  34. package/examples/extensions/overlay-test.ts +2 -2
  35. package/package.json +31 -31
  36. package/dist/bun/cli.d.ts +0 -5
  37. package/dist/bun/cli.d.ts.map +0 -1
  38. package/dist/bun/cli.js +0 -5
  39. package/dist/bun/cli.js.map +0 -1
  40. package/dist/bun/restore-sandbox-env.d.ts +0 -17
  41. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  42. package/dist/bun/restore-sandbox-env.js +0 -36
  43. package/dist/bun/restore-sandbox-env.js.map +0 -1
  44. package/dist/bun/runtime-setup.d.ts +0 -2
  45. package/dist/bun/runtime-setup.d.ts.map +0 -1
  46. package/dist/bun/runtime-setup.js +0 -9
  47. package/dist/bun/runtime-setup.js.map +0 -1
  48. package/dist/bun/sandbox-env-setup.d.ts +0 -2
  49. package/dist/bun/sandbox-env-setup.d.ts.map +0 -1
  50. package/dist/bun/sandbox-env-setup.js +0 -4
  51. package/dist/bun/sandbox-env-setup.js.map +0 -1
  52. package/dist/bundle/chunks/anthropic-messages-EGJT3PY6.js +0 -6
  53. package/dist/bundle/chunks/azure-openai-responses-JEEXH6HK.js +0 -2
  54. package/dist/bundle/chunks/chunk-IOJUMBW3.js +0 -11
  55. package/dist/bundle/chunks/chunk-KJUDFE6Y.js +0 -11
  56. package/dist/bundle/chunks/openai-codex-responses-CPSVXTKM.js +0 -10
  57. package/dist/bundle/chunks/openai-completions-T7GN33JE.js +0 -7
  58. package/dist/bundle/chunks/openai-responses-GPE3ZQ46.js +0 -3
  59. package/dist/cli/args.d.ts +0 -61
  60. package/dist/cli/args.d.ts.map +0 -1
  61. package/dist/cli/args.js +0 -453
  62. package/dist/cli/args.js.map +0 -1
  63. package/dist/cli/auth-check.d.ts +0 -19
  64. package/dist/cli/auth-check.d.ts.map +0 -1
  65. package/dist/cli/auth-check.js +0 -50
  66. package/dist/cli/auth-check.js.map +0 -1
  67. package/dist/cli/auth-command.d.ts +0 -24
  68. package/dist/cli/auth-command.d.ts.map +0 -1
  69. package/dist/cli/auth-command.js +0 -103
  70. package/dist/cli/auth-command.js.map +0 -1
  71. package/dist/cli/config-selector.d.ts +0 -16
  72. package/dist/cli/config-selector.d.ts.map +0 -1
  73. package/dist/cli/config-selector.js +0 -32
  74. package/dist/cli/config-selector.js.map +0 -1
  75. package/dist/cli/credential-print.d.ts +0 -13
  76. package/dist/cli/credential-print.d.ts.map +0 -1
  77. package/dist/cli/credential-print.js +0 -76
  78. package/dist/cli/credential-print.js.map +0 -1
  79. package/dist/cli/file-processor.d.ts +0 -15
  80. package/dist/cli/file-processor.d.ts.map +0 -1
  81. package/dist/cli/file-processor.js +0 -71
  82. package/dist/cli/file-processor.js.map +0 -1
  83. package/dist/cli/initial-message.d.ts +0 -18
  84. package/dist/cli/initial-message.d.ts.map +0 -1
  85. package/dist/cli/initial-message.js +0 -22
  86. package/dist/cli/initial-message.js.map +0 -1
  87. package/dist/cli/list-models.d.ts +0 -9
  88. package/dist/cli/list-models.d.ts.map +0 -1
  89. package/dist/cli/list-models.js +0 -98
  90. package/dist/cli/list-models.js.map +0 -1
  91. package/dist/cli/project-trust.d.ts +0 -10
  92. package/dist/cli/project-trust.d.ts.map +0 -1
  93. package/dist/cli/project-trust.js +0 -48
  94. package/dist/cli/project-trust.js.map +0 -1
  95. package/dist/cli/session-picker.d.ts +0 -10
  96. package/dist/cli/session-picker.d.ts.map +0 -1
  97. package/dist/cli/session-picker.js +0 -36
  98. package/dist/cli/session-picker.js.map +0 -1
  99. package/dist/cli/setup.d.ts +0 -2
  100. package/dist/cli/setup.d.ts.map +0 -1
  101. package/dist/cli/setup.js +0 -12
  102. package/dist/cli/setup.js.map +0 -1
  103. package/dist/cli/startup-ui.d.ts +0 -20
  104. package/dist/cli/startup-ui.d.ts.map +0 -1
  105. package/dist/cli/startup-ui.js +0 -193
  106. package/dist/cli/startup-ui.js.map +0 -1
  107. package/dist/cli.d.ts +0 -3
  108. package/dist/cli.d.ts.map +0 -1
  109. package/dist/cli.js +0 -6
  110. package/dist/cli.js.map +0 -1
  111. package/dist/config.d.ts +0 -107
  112. package/dist/config.d.ts.map +0 -1
  113. package/dist/config.js +0 -486
  114. package/dist/config.js.map +0 -1
  115. package/dist/core/agent-session-runtime.d.ts +0 -119
  116. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  117. package/dist/core/agent-session-runtime.js +0 -317
  118. package/dist/core/agent-session-runtime.js.map +0 -1
  119. package/dist/core/agent-session-services.d.ts +0 -86
  120. package/dist/core/agent-session-services.d.ts.map +0 -1
  121. package/dist/core/agent-session-services.js +0 -147
  122. package/dist/core/agent-session-services.js.map +0 -1
  123. package/dist/core/agent-session.d.ts +0 -881
  124. package/dist/core/agent-session.d.ts.map +0 -1
  125. package/dist/core/agent-session.js +0 -3524
  126. package/dist/core/agent-session.js.map +0 -1
  127. package/dist/core/auth-guidance.d.ts +0 -5
  128. package/dist/core/auth-guidance.d.ts.map +0 -1
  129. package/dist/core/auth-guidance.js +0 -21
  130. package/dist/core/auth-guidance.js.map +0 -1
  131. package/dist/core/auth-storage.d.ts +0 -72
  132. package/dist/core/auth-storage.d.ts.map +0 -1
  133. package/dist/core/auth-storage.js +0 -426
  134. package/dist/core/auth-storage.js.map +0 -1
  135. package/dist/core/bash-executor.d.ts +0 -32
  136. package/dist/core/bash-executor.d.ts.map +0 -1
  137. package/dist/core/bash-executor.js +0 -106
  138. package/dist/core/bash-executor.js.map +0 -1
  139. package/dist/core/bug-report-upload.d.ts +0 -12
  140. package/dist/core/bug-report-upload.d.ts.map +0 -1
  141. package/dist/core/bug-report-upload.js +0 -22
  142. package/dist/core/bug-report-upload.js.map +0 -1
  143. package/dist/core/bug-report.d.ts +0 -176
  144. package/dist/core/bug-report.d.ts.map +0 -1
  145. package/dist/core/bug-report.js +0 -292
  146. package/dist/core/bug-report.js.map +0 -1
  147. package/dist/core/cache-stats.d.ts +0 -49
  148. package/dist/core/cache-stats.d.ts.map +0 -1
  149. package/dist/core/cache-stats.js +0 -112
  150. package/dist/core/cache-stats.js.map +0 -1
  151. package/dist/core/cache-warmer.d.ts +0 -103
  152. package/dist/core/cache-warmer.d.ts.map +0 -1
  153. package/dist/core/cache-warmer.js +0 -359
  154. package/dist/core/cache-warmer.js.map +0 -1
  155. package/dist/core/compaction/branch-summarization.d.ts +0 -98
  156. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  157. package/dist/core/compaction/branch-summarization.js +0 -251
  158. package/dist/core/compaction/branch-summarization.js.map +0 -1
  159. package/dist/core/compaction/compaction.d.ts +0 -145
  160. package/dist/core/compaction/compaction.d.ts.map +0 -1
  161. package/dist/core/compaction/compaction.js +0 -744
  162. package/dist/core/compaction/compaction.js.map +0 -1
  163. package/dist/core/compaction/index.d.ts +0 -7
  164. package/dist/core/compaction/index.d.ts.map +0 -1
  165. package/dist/core/compaction/index.js +0 -7
  166. package/dist/core/compaction/index.js.map +0 -1
  167. package/dist/core/compaction/utils.d.ts +0 -39
  168. package/dist/core/compaction/utils.d.ts.map +0 -1
  169. package/dist/core/compaction/utils.js +0 -149
  170. package/dist/core/compaction/utils.js.map +0 -1
  171. package/dist/core/crash-log.d.ts +0 -27
  172. package/dist/core/crash-log.d.ts.map +0 -1
  173. package/dist/core/crash-log.js +0 -140
  174. package/dist/core/crash-log.js.map +0 -1
  175. package/dist/core/defaults.d.ts +0 -4
  176. package/dist/core/defaults.d.ts.map +0 -1
  177. package/dist/core/defaults.js +0 -11
  178. package/dist/core/defaults.js.map +0 -1
  179. package/dist/core/diagnostics.d.ts +0 -15
  180. package/dist/core/diagnostics.d.ts.map +0 -1
  181. package/dist/core/diagnostics.js +0 -2
  182. package/dist/core/diagnostics.js.map +0 -1
  183. package/dist/core/event-bus.d.ts +0 -9
  184. package/dist/core/event-bus.d.ts.map +0 -1
  185. package/dist/core/event-bus.js +0 -25
  186. package/dist/core/event-bus.js.map +0 -1
  187. package/dist/core/exec.d.ts +0 -29
  188. package/dist/core/exec.d.ts.map +0 -1
  189. package/dist/core/exec.js +0 -75
  190. package/dist/core/exec.js.map +0 -1
  191. package/dist/core/experimental.d.ts +0 -2
  192. package/dist/core/experimental.d.ts.map +0 -1
  193. package/dist/core/experimental.js +0 -6
  194. package/dist/core/experimental.js.map +0 -1
  195. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  196. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  197. package/dist/core/export-html/ansi-to-html.js +0 -249
  198. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  199. package/dist/core/export-html/index.d.ts +0 -37
  200. package/dist/core/export-html/index.d.ts.map +0 -1
  201. package/dist/core/export-html/index.js +0 -226
  202. package/dist/core/export-html/index.js.map +0 -1
  203. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  204. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  205. package/dist/core/export-html/tool-renderer.js +0 -109
  206. package/dist/core/export-html/tool-renderer.js.map +0 -1
  207. package/dist/core/extensions/index.d.ts +0 -12
  208. package/dist/core/extensions/index.d.ts.map +0 -1
  209. package/dist/core/extensions/index.js +0 -9
  210. package/dist/core/extensions/index.js.map +0 -1
  211. package/dist/core/extensions/jiti-loader.d.ts +0 -2
  212. package/dist/core/extensions/jiti-loader.d.ts.map +0 -1
  213. package/dist/core/extensions/jiti-loader.js +0 -4
  214. package/dist/core/extensions/jiti-loader.js.map +0 -1
  215. package/dist/core/extensions/jiti-static-loader.d.ts +0 -2
  216. package/dist/core/extensions/jiti-static-loader.d.ts.map +0 -1
  217. package/dist/core/extensions/jiti-static-loader.js +0 -4
  218. package/dist/core/extensions/jiti-static-loader.js.map +0 -1
  219. package/dist/core/extensions/loader.d.ts +0 -23
  220. package/dist/core/extensions/loader.d.ts.map +0 -1
  221. package/dist/core/extensions/loader.js +0 -667
  222. package/dist/core/extensions/loader.js.map +0 -1
  223. package/dist/core/extensions/runner.d.ts +0 -204
  224. package/dist/core/extensions/runner.d.ts.map +0 -1
  225. package/dist/core/extensions/runner.js +0 -1207
  226. package/dist/core/extensions/runner.js.map +0 -1
  227. package/dist/core/extensions/types.d.ts +0 -1669
  228. package/dist/core/extensions/types.d.ts.map +0 -1
  229. package/dist/core/extensions/types.js +0 -48
  230. package/dist/core/extensions/types.js.map +0 -1
  231. package/dist/core/extensions/virtual-modules.d.ts +0 -3
  232. package/dist/core/extensions/virtual-modules.d.ts.map +0 -1
  233. package/dist/core/extensions/virtual-modules.js +0 -38
  234. package/dist/core/extensions/virtual-modules.js.map +0 -1
  235. package/dist/core/extensions/wrapper.d.ts +0 -20
  236. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  237. package/dist/core/extensions/wrapper.js +0 -22
  238. package/dist/core/extensions/wrapper.js.map +0 -1
  239. package/dist/core/footer-data-provider.d.ts +0 -64
  240. package/dist/core/footer-data-provider.d.ts.map +0 -1
  241. package/dist/core/footer-data-provider.js +0 -338
  242. package/dist/core/footer-data-provider.js.map +0 -1
  243. package/dist/core/http-dispatcher.d.ts +0 -22
  244. package/dist/core/http-dispatcher.d.ts.map +0 -1
  245. package/dist/core/http-dispatcher.js +0 -98
  246. package/dist/core/http-dispatcher.js.map +0 -1
  247. package/dist/core/index.d.ts +0 -14
  248. package/dist/core/index.d.ts.map +0 -1
  249. package/dist/core/index.js +0 -13
  250. package/dist/core/index.js.map +0 -1
  251. package/dist/core/keybindings.d.ts +0 -428
  252. package/dist/core/keybindings.d.ts.map +0 -1
  253. package/dist/core/keybindings.js +0 -321
  254. package/dist/core/keybindings.js.map +0 -1
  255. package/dist/core/messages.d.ts +0 -77
  256. package/dist/core/messages.d.ts.map +0 -1
  257. package/dist/core/messages.js +0 -124
  258. package/dist/core/messages.js.map +0 -1
  259. package/dist/core/model-config.d.ts +0 -760
  260. package/dist/core/model-config.d.ts.map +0 -1
  261. package/dist/core/model-config.js +0 -294
  262. package/dist/core/model-config.js.map +0 -1
  263. package/dist/core/model-registry.d.ts +0 -61
  264. package/dist/core/model-registry.d.ts.map +0 -1
  265. package/dist/core/model-registry.js +0 -140
  266. package/dist/core/model-registry.js.map +0 -1
  267. package/dist/core/model-resolver.d.ts +0 -124
  268. package/dist/core/model-resolver.d.ts.map +0 -1
  269. package/dist/core/model-resolver.js +0 -590
  270. package/dist/core/model-resolver.js.map +0 -1
  271. package/dist/core/model-runtime.d.ts +0 -145
  272. package/dist/core/model-runtime.d.ts.map +0 -1
  273. package/dist/core/model-runtime.js +0 -758
  274. package/dist/core/model-runtime.js.map +0 -1
  275. package/dist/core/models-store.d.ts +0 -22
  276. package/dist/core/models-store.d.ts.map +0 -1
  277. package/dist/core/models-store.js +0 -115
  278. package/dist/core/models-store.js.map +0 -1
  279. package/dist/core/nested-tool-calls.d.ts +0 -102
  280. package/dist/core/nested-tool-calls.d.ts.map +0 -1
  281. package/dist/core/nested-tool-calls.js +0 -178
  282. package/dist/core/nested-tool-calls.js.map +0 -1
  283. package/dist/core/output-guard.d.ts +0 -7
  284. package/dist/core/output-guard.d.ts.map +0 -1
  285. package/dist/core/output-guard.js +0 -89
  286. package/dist/core/output-guard.js.map +0 -1
  287. package/dist/core/package-manager.d.ts +0 -217
  288. package/dist/core/package-manager.d.ts.map +0 -1
  289. package/dist/core/package-manager.js +0 -2224
  290. package/dist/core/package-manager.js.map +0 -1
  291. package/dist/core/pi-manifest.d.ts +0 -8
  292. package/dist/core/pi-manifest.d.ts.map +0 -1
  293. package/dist/core/pi-manifest.js +0 -26
  294. package/dist/core/pi-manifest.js.map +0 -1
  295. package/dist/core/project-trust.d.ts +0 -15
  296. package/dist/core/project-trust.d.ts.map +0 -1
  297. package/dist/core/project-trust.js +0 -59
  298. package/dist/core/project-trust.js.map +0 -1
  299. package/dist/core/prompt-templates.d.ts +0 -59
  300. package/dist/core/prompt-templates.d.ts.map +0 -1
  301. package/dist/core/prompt-templates.js +0 -262
  302. package/dist/core/prompt-templates.js.map +0 -1
  303. package/dist/core/provider-attribution.d.ts +0 -4
  304. package/dist/core/provider-attribution.d.ts.map +0 -1
  305. package/dist/core/provider-attribution.js +0 -72
  306. package/dist/core/provider-attribution.js.map +0 -1
  307. package/dist/core/provider-composer.d.ts +0 -80
  308. package/dist/core/provider-composer.d.ts.map +0 -1
  309. package/dist/core/provider-composer.js +0 -488
  310. package/dist/core/provider-composer.js.map +0 -1
  311. package/dist/core/radius.d.ts +0 -5
  312. package/dist/core/radius.d.ts.map +0 -1
  313. package/dist/core/radius.js +0 -9
  314. package/dist/core/radius.js.map +0 -1
  315. package/dist/core/remote-catalog-provider.d.ts +0 -12
  316. package/dist/core/remote-catalog-provider.d.ts.map +0 -1
  317. package/dist/core/remote-catalog-provider.js +0 -132
  318. package/dist/core/remote-catalog-provider.js.map +0 -1
  319. package/dist/core/resolve-config-value.d.ts +0 -30
  320. package/dist/core/resolve-config-value.d.ts.map +0 -1
  321. package/dist/core/resolve-config-value.js +0 -247
  322. package/dist/core/resolve-config-value.js.map +0 -1
  323. package/dist/core/resource-loader.d.ts +0 -227
  324. package/dist/core/resource-loader.d.ts.map +0 -1
  325. package/dist/core/resource-loader.js +0 -1008
  326. package/dist/core/resource-loader.js.map +0 -1
  327. package/dist/core/runtime-credentials.d.ts +0 -15
  328. package/dist/core/runtime-credentials.d.ts.map +0 -1
  329. package/dist/core/runtime-credentials.js +0 -39
  330. package/dist/core/runtime-credentials.js.map +0 -1
  331. package/dist/core/sdk.d.ts +0 -108
  332. package/dist/core/sdk.d.ts.map +0 -1
  333. package/dist/core/sdk.js +0 -315
  334. package/dist/core/sdk.js.map +0 -1
  335. package/dist/core/session-cwd.d.ts +0 -19
  336. package/dist/core/session-cwd.d.ts.map +0 -1
  337. package/dist/core/session-cwd.js +0 -38
  338. package/dist/core/session-cwd.js.map +0 -1
  339. package/dist/core/session-export.d.ts +0 -8
  340. package/dist/core/session-export.d.ts.map +0 -1
  341. package/dist/core/session-export.js +0 -33
  342. package/dist/core/session-export.js.map +0 -1
  343. package/dist/core/session-manager.d.ts +0 -416
  344. package/dist/core/session-manager.d.ts.map +0 -1
  345. package/dist/core/session-manager.js +0 -1523
  346. package/dist/core/session-manager.js.map +0 -1
  347. package/dist/core/settings-diagnostics.d.ts +0 -9
  348. package/dist/core/settings-diagnostics.d.ts.map +0 -1
  349. package/dist/core/settings-diagnostics.js +0 -21
  350. package/dist/core/settings-diagnostics.js.map +0 -1
  351. package/dist/core/settings-manager.d.ts +0 -362
  352. package/dist/core/settings-manager.d.ts.map +0 -1
  353. package/dist/core/settings-manager.js +0 -1107
  354. package/dist/core/settings-manager.js.map +0 -1
  355. package/dist/core/skills.d.ts +0 -60
  356. package/dist/core/skills.d.ts.map +0 -1
  357. package/dist/core/skills.js +0 -407
  358. package/dist/core/skills.js.map +0 -1
  359. package/dist/core/slash-commands.d.ts +0 -15
  360. package/dist/core/slash-commands.d.ts.map +0 -1
  361. package/dist/core/slash-commands.js +0 -28
  362. package/dist/core/slash-commands.js.map +0 -1
  363. package/dist/core/source-info.d.ts +0 -26
  364. package/dist/core/source-info.d.ts.map +0 -1
  365. package/dist/core/source-info.js +0 -35
  366. package/dist/core/source-info.js.map +0 -1
  367. package/dist/core/system-prompt.d.ts +0 -71
  368. package/dist/core/system-prompt.d.ts.map +0 -1
  369. package/dist/core/system-prompt.js +0 -147
  370. package/dist/core/system-prompt.js.map +0 -1
  371. package/dist/core/telemetry.d.ts +0 -3
  372. package/dist/core/telemetry.d.ts.map +0 -1
  373. package/dist/core/telemetry.js +0 -10
  374. package/dist/core/telemetry.js.map +0 -1
  375. package/dist/core/timings.d.ts +0 -6
  376. package/dist/core/timings.d.ts.map +0 -1
  377. package/dist/core/timings.js +0 -42
  378. package/dist/core/timings.js.map +0 -1
  379. package/dist/core/tools/bash.d.ts +0 -101
  380. package/dist/core/tools/bash.d.ts.map +0 -1
  381. package/dist/core/tools/bash.js +0 -348
  382. package/dist/core/tools/bash.js.map +0 -1
  383. package/dist/core/tools/edit-diff.d.ts +0 -101
  384. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  385. package/dist/core/tools/edit-diff.js +0 -421
  386. package/dist/core/tools/edit-diff.js.map +0 -1
  387. package/dist/core/tools/edit.d.ts +0 -44
  388. package/dist/core/tools/edit.d.ts.map +0 -1
  389. package/dist/core/tools/edit.js +0 -147
  390. package/dist/core/tools/edit.js.map +0 -1
  391. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  392. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  393. package/dist/core/tools/file-mutation-queue.js +0 -52
  394. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  395. package/dist/core/tools/find.d.ts +0 -42
  396. package/dist/core/tools/find.d.ts.map +0 -1
  397. package/dist/core/tools/find.js +0 -251
  398. package/dist/core/tools/find.js.map +0 -1
  399. package/dist/core/tools/grep.d.ts +0 -41
  400. package/dist/core/tools/grep.d.ts.map +0 -1
  401. package/dist/core/tools/grep.js +0 -252
  402. package/dist/core/tools/grep.js.map +0 -1
  403. package/dist/core/tools/index.d.ts +0 -43
  404. package/dist/core/tools/index.d.ts.map +0 -1
  405. package/dist/core/tools/index.js +0 -129
  406. package/dist/core/tools/index.js.map +0 -1
  407. package/dist/core/tools/ls.d.ts +0 -41
  408. package/dist/core/tools/ls.d.ts.map +0 -1
  409. package/dist/core/tools/ls.js +0 -126
  410. package/dist/core/tools/ls.js.map +0 -1
  411. package/dist/core/tools/output-accumulator.d.ts +0 -63
  412. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  413. package/dist/core/tools/output-accumulator.js +0 -220
  414. package/dist/core/tools/output-accumulator.js.map +0 -1
  415. package/dist/core/tools/path-utils.d.ts +0 -10
  416. package/dist/core/tools/path-utils.d.ts.map +0 -1
  417. package/dist/core/tools/path-utils.js +0 -99
  418. package/dist/core/tools/path-utils.js.map +0 -1
  419. package/dist/core/tools/powershell.d.ts +0 -16
  420. package/dist/core/tools/powershell.d.ts.map +0 -1
  421. package/dist/core/tools/powershell.js +0 -39
  422. package/dist/core/tools/powershell.js.map +0 -1
  423. package/dist/core/tools/read.d.ts +0 -42
  424. package/dist/core/tools/read.d.ts.map +0 -1
  425. package/dist/core/tools/read.js +0 -169
  426. package/dist/core/tools/read.js.map +0 -1
  427. package/dist/core/tools/render-utils.d.ts +0 -30
  428. package/dist/core/tools/render-utils.d.ts.map +0 -1
  429. package/dist/core/tools/render-utils.js +0 -91
  430. package/dist/core/tools/render-utils.js.map +0 -1
  431. package/dist/core/tools/renderers/bash.d.ts +0 -12
  432. package/dist/core/tools/renderers/bash.d.ts.map +0 -1
  433. package/dist/core/tools/renderers/bash.js +0 -117
  434. package/dist/core/tools/renderers/bash.js.map +0 -1
  435. package/dist/core/tools/renderers/edit.d.ts +0 -23
  436. package/dist/core/tools/renderers/edit.d.ts.map +0 -1
  437. package/dist/core/tools/renderers/edit.js +0 -168
  438. package/dist/core/tools/renderers/edit.js.map +0 -1
  439. package/dist/core/tools/renderers/find.d.ts +0 -10
  440. package/dist/core/tools/renderers/find.d.ts.map +0 -1
  441. package/dist/core/tools/renderers/find.js +0 -64
  442. package/dist/core/tools/renderers/find.js.map +0 -1
  443. package/dist/core/tools/renderers/grep.d.ts +0 -10
  444. package/dist/core/tools/renderers/grep.d.ts.map +0 -1
  445. package/dist/core/tools/renderers/grep.js +0 -69
  446. package/dist/core/tools/renderers/grep.js.map +0 -1
  447. package/dist/core/tools/renderers/index.d.ts +0 -28
  448. package/dist/core/tools/renderers/index.d.ts.map +0 -1
  449. package/dist/core/tools/renderers/index.js +0 -47
  450. package/dist/core/tools/renderers/index.js.map +0 -1
  451. package/dist/core/tools/renderers/ls.d.ts +0 -10
  452. package/dist/core/tools/renderers/ls.d.ts.map +0 -1
  453. package/dist/core/tools/renderers/ls.js +0 -58
  454. package/dist/core/tools/renderers/ls.js.map +0 -1
  455. package/dist/core/tools/renderers/read.d.ts +0 -11
  456. package/dist/core/tools/renderers/read.d.ts.map +0 -1
  457. package/dist/core/tools/renderers/read.js +0 -130
  458. package/dist/core/tools/renderers/read.js.map +0 -1
  459. package/dist/core/tools/renderers/write.d.ts +0 -10
  460. package/dist/core/tools/renderers/write.d.ts.map +0 -1
  461. package/dist/core/tools/renderers/write.js +0 -153
  462. package/dist/core/tools/renderers/write.js.map +0 -1
  463. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -16
  464. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  465. package/dist/core/tools/tool-definition-wrapper.js +0 -38
  466. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  467. package/dist/core/tools/truncate.d.ts +0 -84
  468. package/dist/core/tools/truncate.d.ts.map +0 -1
  469. package/dist/core/tools/truncate.js +0 -244
  470. package/dist/core/tools/truncate.js.map +0 -1
  471. package/dist/core/tools/write.d.ts +0 -30
  472. package/dist/core/tools/write.d.ts.map +0 -1
  473. package/dist/core/tools/write.js +0 -61
  474. package/dist/core/tools/write.js.map +0 -1
  475. package/dist/core/trust-manager.d.ts +0 -36
  476. package/dist/core/trust-manager.d.ts.map +0 -1
  477. package/dist/core/trust-manager.js +0 -203
  478. package/dist/core/trust-manager.js.map +0 -1
  479. package/dist/core/usage-totals.d.ts +0 -21
  480. package/dist/core/usage-totals.d.ts.map +0 -1
  481. package/dist/core/usage-totals.js +0 -79
  482. package/dist/core/usage-totals.js.map +0 -1
  483. package/dist/core/virtual-models.d.ts +0 -117
  484. package/dist/core/virtual-models.d.ts.map +0 -1
  485. package/dist/core/virtual-models.js +0 -124
  486. package/dist/core/virtual-models.js.map +0 -1
  487. package/dist/extensions/index.d.ts +0 -3
  488. package/dist/extensions/index.d.ts.map +0 -1
  489. package/dist/extensions/index.js +0 -3
  490. package/dist/extensions/index.js.map +0 -1
  491. package/dist/extensions/llama/client.d.ts +0 -69
  492. package/dist/extensions/llama/client.d.ts.map +0 -1
  493. package/dist/extensions/llama/client.js +0 -313
  494. package/dist/extensions/llama/client.js.map +0 -1
  495. package/dist/extensions/llama/huggingface.d.ts +0 -23
  496. package/dist/extensions/llama/huggingface.d.ts.map +0 -1
  497. package/dist/extensions/llama/huggingface.js +0 -141
  498. package/dist/extensions/llama/huggingface.js.map +0 -1
  499. package/dist/extensions/llama/index.d.ts +0 -3
  500. package/dist/extensions/llama/index.d.ts.map +0 -1
  501. package/dist/extensions/llama/index.js +0 -219
  502. package/dist/extensions/llama/index.js.map +0 -1
  503. package/dist/extensions/llama/provider.d.ts +0 -12
  504. package/dist/extensions/llama/provider.d.ts.map +0 -1
  505. package/dist/extensions/llama/provider.js +0 -213
  506. package/dist/extensions/llama/provider.js.map +0 -1
  507. package/dist/extensions/llama/ui.d.ts +0 -42
  508. package/dist/extensions/llama/ui.d.ts.map +0 -1
  509. package/dist/extensions/llama/ui.js +0 -416
  510. package/dist/extensions/llama/ui.js.map +0 -1
  511. package/dist/index.d.ts +0 -38
  512. package/dist/index.d.ts.map +0 -1
  513. package/dist/index.js +0 -49
  514. package/dist/index.js.map +0 -1
  515. package/dist/main.d.ts +0 -16
  516. package/dist/main.d.ts.map +0 -1
  517. package/dist/main.js +0 -819
  518. package/dist/main.js.map +0 -1
  519. package/dist/migrations.d.ts +0 -33
  520. package/dist/migrations.d.ts.map +0 -1
  521. package/dist/migrations.js +0 -282
  522. package/dist/migrations.js.map +0 -1
  523. package/dist/modes/index.d.ts +0 -10
  524. package/dist/modes/index.d.ts.map +0 -1
  525. package/dist/modes/index.js +0 -8
  526. package/dist/modes/index.js.map +0 -1
  527. package/dist/modes/interactive/bug-report.d.ts +0 -16
  528. package/dist/modes/interactive/bug-report.d.ts.map +0 -1
  529. package/dist/modes/interactive/bug-report.js +0 -210
  530. package/dist/modes/interactive/bug-report.js.map +0 -1
  531. package/dist/modes/interactive/chat-viewport.d.ts +0 -20
  532. package/dist/modes/interactive/chat-viewport.d.ts.map +0 -1
  533. package/dist/modes/interactive/chat-viewport.js +0 -28
  534. package/dist/modes/interactive/chat-viewport.js.map +0 -1
  535. package/dist/modes/interactive/components/armin.d.ts +0 -37
  536. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  537. package/dist/modes/interactive/components/armin.js +0 -335
  538. package/dist/modes/interactive/components/armin.js.map +0 -1
  539. package/dist/modes/interactive/components/assistant-message.d.ts +0 -26
  540. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  541. package/dist/modes/interactive/components/assistant-message.js +0 -158
  542. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  543. package/dist/modes/interactive/components/bash-execution.d.ts +0 -38
  544. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  545. package/dist/modes/interactive/components/bash-execution.js +0 -178
  546. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  547. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  548. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  549. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  550. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  551. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -17
  552. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  553. package/dist/modes/interactive/components/branch-summary-message.js +0 -54
  554. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  555. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -17
  556. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  557. package/dist/modes/interactive/components/compaction-summary-message.js +0 -55
  558. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  559. package/dist/modes/interactive/components/config-selector.d.ts +0 -102
  560. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  561. package/dist/modes/interactive/components/config-selector.js +0 -771
  562. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  563. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  564. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  565. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  566. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  567. package/dist/modes/interactive/components/custom-editor.d.ts +0 -30
  568. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  569. package/dist/modes/interactive/components/custom-editor.js +0 -115
  570. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  571. package/dist/modes/interactive/components/custom-entry.d.ts +0 -21
  572. package/dist/modes/interactive/components/custom-entry.d.ts.map +0 -1
  573. package/dist/modes/interactive/components/custom-entry.js +0 -58
  574. package/dist/modes/interactive/components/custom-entry.js.map +0 -1
  575. package/dist/modes/interactive/components/custom-message.d.ts +0 -22
  576. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  577. package/dist/modes/interactive/components/custom-message.js +0 -88
  578. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  579. package/dist/modes/interactive/components/diff.d.ts +0 -12
  580. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  581. package/dist/modes/interactive/components/diff.js +0 -133
  582. package/dist/modes/interactive/components/diff.js.map +0 -1
  583. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  584. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  585. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  586. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  587. package/dist/modes/interactive/components/e-logo.d.ts +0 -16
  588. package/dist/modes/interactive/components/e-logo.d.ts.map +0 -1
  589. package/dist/modes/interactive/components/e-logo.js +0 -29
  590. package/dist/modes/interactive/components/e-logo.js.map +0 -1
  591. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  592. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  593. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  594. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  595. package/dist/modes/interactive/components/easter-egg-3d.d.ts +0 -104
  596. package/dist/modes/interactive/components/easter-egg-3d.d.ts.map +0 -1
  597. package/dist/modes/interactive/components/easter-egg-3d.js +0 -1138
  598. package/dist/modes/interactive/components/easter-egg-3d.js.map +0 -1
  599. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts +0 -6
  600. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts.map +0 -1
  601. package/dist/modes/interactive/components/easter-egg-3d.lazy.js +0 -23
  602. package/dist/modes/interactive/components/easter-egg-3d.lazy.js.map +0 -1
  603. package/dist/modes/interactive/components/extension-editor.d.ts +0 -24
  604. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  605. package/dist/modes/interactive/components/extension-editor.js +0 -103
  606. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  607. package/dist/modes/interactive/components/extension-input.d.ts +0 -25
  608. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  609. package/dist/modes/interactive/components/extension-input.js +0 -67
  610. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  611. package/dist/modes/interactive/components/extension-selector.d.ts +0 -27
  612. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  613. package/dist/modes/interactive/components/extension-selector.js +0 -87
  614. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  615. package/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  616. package/dist/modes/interactive/components/first-time-setup.d.ts.map +0 -1
  617. package/dist/modes/interactive/components/first-time-setup.js +0 -109
  618. package/dist/modes/interactive/components/first-time-setup.js.map +0 -1
  619. package/dist/modes/interactive/components/footer.d.ts +0 -39
  620. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  621. package/dist/modes/interactive/components/footer.js +0 -265
  622. package/dist/modes/interactive/components/footer.js.map +0 -1
  623. package/dist/modes/interactive/components/index.d.ts +0 -33
  624. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  625. package/dist/modes/interactive/components/index.js +0 -34
  626. package/dist/modes/interactive/components/index.js.map +0 -1
  627. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  628. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  629. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  630. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  631. package/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  632. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  633. package/dist/modes/interactive/components/login-dialog.js +0 -188
  634. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  635. package/dist/modes/interactive/components/markdown-transform.d.ts +0 -3
  636. package/dist/modes/interactive/components/markdown-transform.d.ts.map +0 -1
  637. package/dist/modes/interactive/components/markdown-transform.js +0 -19
  638. package/dist/modes/interactive/components/markdown-transform.js.map +0 -1
  639. package/dist/modes/interactive/components/mermaid.d.ts +0 -11
  640. package/dist/modes/interactive/components/mermaid.d.ts.map +0 -1
  641. package/dist/modes/interactive/components/mermaid.js +0 -75
  642. package/dist/modes/interactive/components/mermaid.js.map +0 -1
  643. package/dist/modes/interactive/components/model-selector.d.ts +0 -60
  644. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  645. package/dist/modes/interactive/components/model-selector.js +0 -361
  646. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  647. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  648. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  649. package/dist/modes/interactive/components/oauth-selector.js +0 -163
  650. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  651. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -46
  652. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  653. package/dist/modes/interactive/components/scoped-models-selector.js +0 -326
  654. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  655. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  656. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  657. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  658. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  659. package/dist/modes/interactive/components/session-selector.d.ts +0 -95
  660. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  661. package/dist/modes/interactive/components/session-selector.js +0 -893
  662. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  663. package/dist/modes/interactive/components/settings-selector.d.ts +0 -96
  664. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  665. package/dist/modes/interactive/components/settings-selector.js +0 -742
  666. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  667. package/dist/modes/interactive/components/settings-submenu.d.ts +0 -72
  668. package/dist/modes/interactive/components/settings-submenu.d.ts.map +0 -1
  669. package/dist/modes/interactive/components/settings-submenu.js +0 -165
  670. package/dist/modes/interactive/components/settings-submenu.js.map +0 -1
  671. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  672. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  673. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  674. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  675. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -18
  676. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  677. package/dist/modes/interactive/components/skill-invocation-message.js +0 -57
  678. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  679. package/dist/modes/interactive/components/status-indicator.d.ts +0 -30
  680. package/dist/modes/interactive/components/status-indicator.d.ts.map +0 -1
  681. package/dist/modes/interactive/components/status-indicator.js +0 -67
  682. package/dist/modes/interactive/components/status-indicator.js.map +0 -1
  683. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  684. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  685. package/dist/modes/interactive/components/theme-selector.js +0 -50
  686. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  687. package/dist/modes/interactive/components/themed-text.d.ts +0 -17
  688. package/dist/modes/interactive/components/themed-text.d.ts.map +0 -1
  689. package/dist/modes/interactive/components/themed-text.js +0 -29
  690. package/dist/modes/interactive/components/themed-text.js.map +0 -1
  691. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -23
  692. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  693. package/dist/modes/interactive/components/thinking-selector.js +0 -109
  694. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  695. package/dist/modes/interactive/components/tool-execution.d.ts +0 -83
  696. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  697. package/dist/modes/interactive/components/tool-execution.js +0 -323
  698. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  699. package/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  700. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  701. package/dist/modes/interactive/components/tree-selector.js +0 -1254
  702. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  703. package/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  704. package/dist/modes/interactive/components/trust-selector.d.ts.map +0 -1
  705. package/dist/modes/interactive/components/trust-selector.js +0 -91
  706. package/dist/modes/interactive/components/trust-selector.js.map +0 -1
  707. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  708. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  709. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  710. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  711. package/dist/modes/interactive/components/user-message.d.ts +0 -16
  712. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  713. package/dist/modes/interactive/components/user-message.js +0 -50
  714. package/dist/modes/interactive/components/user-message.js.map +0 -1
  715. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -48
  716. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  717. package/dist/modes/interactive/components/visual-truncate.js +0 -66
  718. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  719. package/dist/modes/interactive/external-editor.d.ts +0 -12
  720. package/dist/modes/interactive/external-editor.d.ts.map +0 -1
  721. package/dist/modes/interactive/external-editor.js +0 -38
  722. package/dist/modes/interactive/external-editor.js.map +0 -1
  723. package/dist/modes/interactive/interactive-mode.d.ts +0 -470
  724. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  725. package/dist/modes/interactive/interactive-mode.js +0 -5795
  726. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  727. package/dist/modes/interactive/model-catalog-refresh.d.ts +0 -7
  728. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
  729. package/dist/modes/interactive/model-catalog-refresh.js +0 -34
  730. package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
  731. package/dist/modes/interactive/model-search.d.ts +0 -12
  732. package/dist/modes/interactive/model-search.d.ts.map +0 -1
  733. package/dist/modes/interactive/model-search.js +0 -15
  734. package/dist/modes/interactive/model-search.js.map +0 -1
  735. package/dist/modes/interactive/session-share.d.ts +0 -18
  736. package/dist/modes/interactive/session-share.d.ts.map +0 -1
  737. package/dist/modes/interactive/session-share.js +0 -188
  738. package/dist/modes/interactive/session-share.js.map +0 -1
  739. package/dist/modes/interactive/theme/system-theme.d.ts +0 -55
  740. package/dist/modes/interactive/theme/system-theme.d.ts.map +0 -1
  741. package/dist/modes/interactive/theme/system-theme.js +0 -546
  742. package/dist/modes/interactive/theme/system-theme.js.map +0 -1
  743. package/dist/modes/interactive/theme/theme-controller.d.ts +0 -81
  744. package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
  745. package/dist/modes/interactive/theme/theme-controller.js +0 -210
  746. package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
  747. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  748. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  749. package/dist/modes/interactive/theme/theme-json.js +0 -132
  750. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  751. package/dist/modes/interactive/theme/theme.d.ts +0 -158
  752. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  753. package/dist/modes/interactive/theme/theme.js +0 -913
  754. package/dist/modes/interactive/theme/theme.js.map +0 -1
  755. package/dist/modes/interactive/tui-renderer.d.ts +0 -22
  756. package/dist/modes/interactive/tui-renderer.d.ts.map +0 -1
  757. package/dist/modes/interactive/tui-renderer.js +0 -67
  758. package/dist/modes/interactive/tui-renderer.js.map +0 -1
  759. package/dist/modes/json-event.d.ts +0 -34
  760. package/dist/modes/json-event.d.ts.map +0 -1
  761. package/dist/modes/json-event.js +0 -29
  762. package/dist/modes/json-event.js.map +0 -1
  763. package/dist/modes/print-mode.d.ts +0 -28
  764. package/dist/modes/print-mode.d.ts.map +0 -1
  765. package/dist/modes/print-mode.js +0 -142
  766. package/dist/modes/print-mode.js.map +0 -1
  767. package/dist/modes/rpc/jsonl.d.ts +0 -17
  768. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  769. package/dist/modes/rpc/jsonl.js +0 -49
  770. package/dist/modes/rpc/jsonl.js.map +0 -1
  771. package/dist/modes/rpc/rpc-client.d.ts +0 -254
  772. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  773. package/dist/modes/rpc/rpc-client.js +0 -499
  774. package/dist/modes/rpc/rpc-client.js.map +0 -1
  775. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  776. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  777. package/dist/modes/rpc/rpc-mode.js +0 -655
  778. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  779. package/dist/modes/rpc/rpc-types.d.ts +0 -478
  780. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  781. package/dist/modes/rpc/rpc-types.js +0 -8
  782. package/dist/modes/rpc/rpc-types.js.map +0 -1
  783. package/dist/package-manager-cli.d.ts +0 -9
  784. package/dist/package-manager-cli.d.ts.map +0 -1
  785. package/dist/package-manager-cli.js +0 -1000
  786. package/dist/package-manager-cli.js.map +0 -1
  787. package/dist/rpc-entry.d.ts +0 -3
  788. package/dist/rpc-entry.d.ts.map +0 -1
  789. package/dist/rpc-entry.js +0 -11
  790. package/dist/rpc-entry.js.map +0 -1
  791. package/dist/utils/abort.d.ts +0 -5
  792. package/dist/utils/abort.d.ts.map +0 -1
  793. package/dist/utils/abort.js +0 -48
  794. package/dist/utils/abort.js.map +0 -1
  795. package/dist/utils/ansi.d.ts +0 -10
  796. package/dist/utils/ansi.d.ts.map +0 -1
  797. package/dist/utils/ansi.js +0 -71
  798. package/dist/utils/ansi.js.map +0 -1
  799. package/dist/utils/changelog.d.ts +0 -22
  800. package/dist/utils/changelog.d.ts.map +0 -1
  801. package/dist/utils/changelog.js +0 -165
  802. package/dist/utils/changelog.js.map +0 -1
  803. package/dist/utils/child-process.d.ts +0 -18
  804. package/dist/utils/child-process.d.ts.map +0 -1
  805. package/dist/utils/child-process.js +0 -106
  806. package/dist/utils/child-process.js.map +0 -1
  807. package/dist/utils/clipboard-command.d.ts +0 -7
  808. package/dist/utils/clipboard-command.d.ts.map +0 -1
  809. package/dist/utils/clipboard-command.js +0 -45
  810. package/dist/utils/clipboard-command.js.map +0 -1
  811. package/dist/utils/clipboard-image.d.ts +0 -11
  812. package/dist/utils/clipboard-image.d.ts.map +0 -1
  813. package/dist/utils/clipboard-image.js +0 -214
  814. package/dist/utils/clipboard-image.js.map +0 -1
  815. package/dist/utils/clipboard.d.ts +0 -6
  816. package/dist/utils/clipboard.d.ts.map +0 -1
  817. package/dist/utils/clipboard.js +0 -157
  818. package/dist/utils/clipboard.js.map +0 -1
  819. package/dist/utils/deprecation.d.ts +0 -4
  820. package/dist/utils/deprecation.d.ts.map +0 -1
  821. package/dist/utils/deprecation.js +0 -13
  822. package/dist/utils/deprecation.js.map +0 -1
  823. package/dist/utils/exif-orientation.d.ts +0 -5
  824. package/dist/utils/exif-orientation.d.ts.map +0 -1
  825. package/dist/utils/exif-orientation.js +0 -157
  826. package/dist/utils/exif-orientation.js.map +0 -1
  827. package/dist/utils/frontmatter.d.ts +0 -8
  828. package/dist/utils/frontmatter.d.ts.map +0 -1
  829. package/dist/utils/frontmatter.js +0 -27
  830. package/dist/utils/frontmatter.js.map +0 -1
  831. package/dist/utils/fs-watch.d.ts +0 -5
  832. package/dist/utils/fs-watch.d.ts.map +0 -1
  833. package/dist/utils/fs-watch.js +0 -25
  834. package/dist/utils/fs-watch.js.map +0 -1
  835. package/dist/utils/git.d.ts +0 -26
  836. package/dist/utils/git.d.ts.map +0 -1
  837. package/dist/utils/git.js +0 -195
  838. package/dist/utils/git.js.map +0 -1
  839. package/dist/utils/html.d.ts +0 -7
  840. package/dist/utils/html.d.ts.map +0 -1
  841. package/dist/utils/html.js +0 -40
  842. package/dist/utils/html.js.map +0 -1
  843. package/dist/utils/image-convert.d.ts +0 -22
  844. package/dist/utils/image-convert.d.ts.map +0 -1
  845. package/dist/utils/image-convert.js +0 -84
  846. package/dist/utils/image-convert.js.map +0 -1
  847. package/dist/utils/image-process.d.ts +0 -18
  848. package/dist/utils/image-process.d.ts.map +0 -1
  849. package/dist/utils/image-process.js +0 -83
  850. package/dist/utils/image-process.js.map +0 -1
  851. package/dist/utils/image-resize-core.d.ts +0 -42
  852. package/dist/utils/image-resize-core.d.ts.map +0 -1
  853. package/dist/utils/image-resize-core.js +0 -129
  854. package/dist/utils/image-resize-core.js.map +0 -1
  855. package/dist/utils/image-resize-worker.d.ts +0 -2
  856. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  857. package/dist/utils/image-resize-worker.js +0 -32
  858. package/dist/utils/image-resize-worker.js.map +0 -1
  859. package/dist/utils/image-resize.d.ts +0 -16
  860. package/dist/utils/image-resize.d.ts.map +0 -1
  861. package/dist/utils/image-resize.js +0 -96
  862. package/dist/utils/image-resize.js.map +0 -1
  863. package/dist/utils/json.d.ts +0 -3
  864. package/dist/utils/json.d.ts.map +0 -1
  865. package/dist/utils/json.js +0 -7
  866. package/dist/utils/json.js.map +0 -1
  867. package/dist/utils/management-http.d.ts +0 -25
  868. package/dist/utils/management-http.d.ts.map +0 -1
  869. package/dist/utils/management-http.js +0 -54
  870. package/dist/utils/management-http.js.map +0 -1
  871. package/dist/utils/mime.d.ts +0 -3
  872. package/dist/utils/mime.d.ts.map +0 -1
  873. package/dist/utils/mime.js +0 -110
  874. package/dist/utils/mime.js.map +0 -1
  875. package/dist/utils/open-browser.d.ts +0 -9
  876. package/dist/utils/open-browser.d.ts.map +0 -1
  877. package/dist/utils/open-browser.js +0 -22
  878. package/dist/utils/open-browser.js.map +0 -1
  879. package/dist/utils/paths.d.ts +0 -34
  880. package/dist/utils/paths.d.ts.map +0 -1
  881. package/dist/utils/paths.js +0 -115
  882. package/dist/utils/paths.js.map +0 -1
  883. package/dist/utils/photon.d.ts +0 -21
  884. package/dist/utils/photon.d.ts.map +0 -1
  885. package/dist/utils/photon.js +0 -121
  886. package/dist/utils/photon.js.map +0 -1
  887. package/dist/utils/pi-user-agent.d.ts +0 -2
  888. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  889. package/dist/utils/pi-user-agent.js +0 -5
  890. package/dist/utils/pi-user-agent.js.map +0 -1
  891. package/dist/utils/shell.d.ts +0 -32
  892. package/dist/utils/shell.d.ts.map +0 -1
  893. package/dist/utils/shell.js +0 -189
  894. package/dist/utils/shell.js.map +0 -1
  895. package/dist/utils/sleep.d.ts +0 -5
  896. package/dist/utils/sleep.d.ts.map +0 -1
  897. package/dist/utils/sleep.js +0 -17
  898. package/dist/utils/sleep.js.map +0 -1
  899. package/dist/utils/syntax-highlight.d.ts +0 -13
  900. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  901. package/dist/utils/syntax-highlight.js +0 -184
  902. package/dist/utils/syntax-highlight.js.map +0 -1
  903. package/dist/utils/text.d.ts +0 -8
  904. package/dist/utils/text.d.ts.map +0 -1
  905. package/dist/utils/text.js +0 -9
  906. package/dist/utils/text.js.map +0 -1
  907. package/dist/utils/tool-result-images.d.ts +0 -21
  908. package/dist/utils/tool-result-images.d.ts.map +0 -1
  909. package/dist/utils/tool-result-images.js +0 -48
  910. package/dist/utils/tool-result-images.js.map +0 -1
  911. package/dist/utils/tools-manager.d.ts +0 -13
  912. package/dist/utils/tools-manager.d.ts.map +0 -1
  913. package/dist/utils/tools-manager.js +0 -343
  914. package/dist/utils/tools-manager.js.map +0 -1
  915. package/dist/utils/version-check.d.ts +0 -19
  916. package/dist/utils/version-check.d.ts.map +0 -1
  917. package/dist/utils/version-check.js +0 -72
  918. package/dist/utils/version-check.js.map +0 -1
  919. package/dist/utils/windows-self-update.d.ts +0 -3
  920. package/dist/utils/windows-self-update.d.ts.map +0 -1
  921. package/dist/utils/windows-self-update.js +0 -77
  922. package/dist/utils/windows-self-update.js.map +0 -1
  923. package/dist/utils/wsl.d.ts +0 -3
  924. package/dist/utils/wsl.d.ts.map +0 -1
  925. package/dist/utils/wsl.js +0 -15
  926. package/dist/utils/wsl.js.map +0 -1
  927. package/dist/utils/zip.d.ts +0 -7
  928. package/dist/utils/zip.d.ts.map +0 -1
  929. package/dist/utils/zip.js +0 -60
  930. package/dist/utils/zip.js.map +0 -1
@@ -1,1207 +0,0 @@
1
- /**
2
- * Extension runner - executes extensions and manages their lifecycle.
3
- */
4
- import { getCurrentSystemMessage, } from "@earendil-works/pi-ai";
5
- import { theme } from "../../modes/interactive/theme/theme.js";
6
- import { buildSystemPrompt, normalizeBuildSystemPromptOptions, } from "../system-prompt.js";
7
- // Extension shortcuts compete with canonical keybinding ids from keybindings.json.
8
- // Only editor-global shortcuts are reserved here. Picker-specific bindings are not.
9
- const RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS = [
10
- "app.interrupt",
11
- "app.clear",
12
- "app.exit",
13
- "app.suspend",
14
- "app.thinking.cycle",
15
- "app.model.cycleForward",
16
- "app.model.cycleBackward",
17
- "app.model.select",
18
- "app.tools.expand",
19
- "app.thinking.toggle",
20
- "app.editor.external",
21
- "app.message.copy",
22
- "app.message.followUp",
23
- "tui.input.submit",
24
- "tui.select.confirm",
25
- "tui.select.cancel",
26
- "tui.input.copy",
27
- "tui.editor.deleteToLineEnd",
28
- ];
29
- const buildBuiltinKeybindings = (resolvedKeybindings) => {
30
- const builtinKeybindings = {};
31
- for (const [keybinding, keys] of Object.entries(resolvedKeybindings)) {
32
- if (keys === undefined)
33
- continue;
34
- const keyList = Array.isArray(keys) ? keys : [keys];
35
- const restrictOverride = RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS.includes(keybinding);
36
- for (const key of keyList) {
37
- const normalizedKey = key.toLowerCase();
38
- // If multiple actions bind the same key, the reserved action wins so extensions
39
- // remain blocked by reserved shortcuts regardless of iteration order.
40
- const existing = builtinKeybindings[normalizedKey];
41
- if (existing?.restrictOverride && !restrictOverride)
42
- continue;
43
- builtinKeybindings[normalizedKey] = {
44
- keybinding,
45
- restrictOverride,
46
- };
47
- }
48
- }
49
- return builtinKeybindings;
50
- };
51
- function isUserBashEventResult(value) {
52
- if (typeof value !== "object" || value === null)
53
- return false;
54
- const candidate = value;
55
- const hasOperations = candidate.operations !== undefined;
56
- const hasResult = candidate.result !== undefined;
57
- if (hasOperations === hasResult)
58
- return false;
59
- if (hasOperations) {
60
- const operations = candidate.operations;
61
- if (typeof operations !== "object" || operations === null)
62
- return false;
63
- return typeof operations.exec === "function";
64
- }
65
- const result = candidate.result;
66
- if (typeof result !== "object" || result === null)
67
- return false;
68
- const resultRecord = result;
69
- return (typeof resultRecord.output === "string" &&
70
- "exitCode" in resultRecord &&
71
- (resultRecord.exitCode === undefined || typeof resultRecord.exitCode === "number") &&
72
- typeof resultRecord.cancelled === "boolean" &&
73
- typeof resultRecord.truncated === "boolean" &&
74
- (resultRecord.fullOutputPath === undefined || typeof resultRecord.fullOutputPath === "string"));
75
- }
76
- /**
77
- * Helper function to emit session_shutdown event to extensions.
78
- * Returns true if the event was emitted, false if there were no handlers.
79
- */
80
- export async function emitSessionShutdownEvent(extensionRunner, event) {
81
- if (extensionRunner.hasHandlers("session_shutdown")) {
82
- await extensionRunner.emit(event);
83
- return true;
84
- }
85
- return false;
86
- }
87
- function snapshotEventHandlers(extensions, event) {
88
- return extensions.map((ext) => ({ ext, handlers: ext.handlers.get(event)?.slice() ?? [] }));
89
- }
90
- function sameMessages(left, right) {
91
- return left.length === right.length && left.every((message, index) => message === right[index]);
92
- }
93
- /**
94
- * Re-attach the prompt and tool state after a `context` handler. Handlers only see the
95
- * conversation; the system messages belong to Pi. An unchanged conversation keeps every
96
- * system message in place, so models with mid-conversation support keep their cached
97
- * prefix. A changed one gets the replayed prompt sections and tool declarations as one
98
- * leading system message, so pruning, windowing, or slicing from a compaction summary
99
- * cannot drop them.
100
- */
101
- function restoreSystemMessages(current, visible, returned) {
102
- if (sameMessages(returned, visible))
103
- return current;
104
- const head = getCurrentSystemMessage(current);
105
- return head ? [head, ...returned] : returned;
106
- }
107
- export async function emitProjectTrustEvent(extensionsResult, event, ctx) {
108
- const errors = [];
109
- for (const { ext, handlers } of snapshotEventHandlers(extensionsResult.extensions, "project_trust")) {
110
- // A single extension may register multiple handlers for the same event.
111
- // The first project_trust handler that returns yes/no wins; undecided falls through.
112
- for (const handler of handlers) {
113
- try {
114
- const handlerResult = (await handler(event, ctx));
115
- if (handlerResult.trusted === "undecided") {
116
- continue;
117
- }
118
- return { result: handlerResult, errors };
119
- }
120
- catch (error) {
121
- errors.push({
122
- extensionPath: ext.path,
123
- event: event.type,
124
- error: error instanceof Error ? error.message : String(error),
125
- stack: error instanceof Error ? error.stack : undefined,
126
- });
127
- }
128
- }
129
- }
130
- return { errors };
131
- }
132
- const noOpUIContext = {
133
- select: async () => undefined,
134
- confirm: async () => false,
135
- input: async () => undefined,
136
- notify: () => { },
137
- onTerminalInput: () => () => { },
138
- setStatus: () => { },
139
- setWorkingMessage: () => { },
140
- setWorkingVisible: () => { },
141
- setWorkingIndicator: () => { },
142
- setHiddenThinkingLabel: () => { },
143
- setWidget: () => { },
144
- setFooter: () => { },
145
- setHeader: () => { },
146
- setTitle: () => { },
147
- custom: async () => undefined,
148
- pasteToEditor: () => { },
149
- setEditorText: () => { },
150
- getEditorText: () => "",
151
- editor: async () => undefined,
152
- addAutocompleteProvider: () => { },
153
- setEditorComponent: () => { },
154
- getEditorComponent: () => undefined,
155
- get theme() {
156
- return theme;
157
- },
158
- getAllThemes: () => [],
159
- getTheme: () => undefined,
160
- setTheme: (_theme) => ({ success: false, error: "UI not available" }),
161
- getToolsExpanded: () => false,
162
- setToolsExpanded: () => { },
163
- };
164
- export class ExtensionRunner {
165
- extensions;
166
- runtime;
167
- uiContext;
168
- mode = "print";
169
- cwd;
170
- sessionManager;
171
- modelRegistry;
172
- errorListeners = new Set();
173
- getModel = () => undefined;
174
- getScopedModels = () => [];
175
- isIdleFn = () => true;
176
- isProjectTrustedFn = () => true;
177
- getSignalFn = () => undefined;
178
- waitForIdleFn = async () => { };
179
- abortFn = () => { };
180
- hasPendingMessagesFn = () => false;
181
- getContextUsageFn = () => undefined;
182
- compactFn = () => { };
183
- getSystemPromptFn = () => "";
184
- getSystemPromptOptionsFn = () => normalizeBuildSystemPromptOptions({ cwd: this.cwd });
185
- executeToolFn;
186
- getCallableToolsFn = () => [];
187
- newSessionHandler = async () => ({ cancelled: false });
188
- forkHandler = async () => ({ cancelled: false });
189
- navigateTreeHandler = async () => ({ cancelled: false });
190
- switchSessionHandler = async () => ({ cancelled: false });
191
- reloadHandler = async () => { };
192
- shutdownHandler = () => { };
193
- shortcutDiagnostics = [];
194
- commandDiagnostics = [];
195
- staleMessage;
196
- uiPromptDepth = 0;
197
- activeUIPrompt;
198
- constructor(extensions, runtime, cwd, sessionManager, modelRegistry) {
199
- this.extensions = extensions;
200
- this.runtime = runtime;
201
- this.uiContext = noOpUIContext;
202
- this.cwd = cwd;
203
- this.sessionManager = sessionManager;
204
- this.modelRegistry = modelRegistry;
205
- }
206
- bindCore(actions, contextActions, providerActions) {
207
- // Copy actions into the shared runtime (all extension APIs reference this)
208
- this.runtime.sendMessage = actions.sendMessage;
209
- this.runtime.sendUserMessage = actions.sendUserMessage;
210
- this.runtime.appendEntry = actions.appendEntry;
211
- this.runtime.setSessionName = actions.setSessionName;
212
- this.runtime.getSessionName = actions.getSessionName;
213
- this.runtime.setLabel = actions.setLabel;
214
- this.runtime.getActiveTools = actions.getActiveTools;
215
- this.runtime.getAllTools = actions.getAllTools;
216
- this.runtime.getSettings = actions.getSettings;
217
- this.runtime.setActiveTools = actions.setActiveTools;
218
- this.runtime.refreshTools = actions.refreshTools;
219
- this.runtime.getCommands = actions.getCommands;
220
- this.runtime.setModel = actions.setModel;
221
- this.runtime.getThinkingLevel = actions.getThinkingLevel;
222
- this.runtime.setThinkingLevel = actions.setThinkingLevel;
223
- this.runtime.createContext = () => this.createContext();
224
- // Context actions (required)
225
- this.getModel = contextActions.getModel;
226
- this.getScopedModels = contextActions.getScopedModels;
227
- this.isIdleFn = contextActions.isIdle;
228
- this.isProjectTrustedFn = contextActions.isProjectTrusted;
229
- this.getSignalFn = contextActions.getSignal;
230
- this.abortFn = contextActions.abort;
231
- this.hasPendingMessagesFn = contextActions.hasPendingMessages;
232
- this.shutdownHandler = contextActions.shutdown;
233
- this.getContextUsageFn = contextActions.getContextUsage;
234
- this.compactFn = contextActions.compact;
235
- this.getSystemPromptFn = contextActions.getSystemPrompt;
236
- this.getSystemPromptOptionsFn =
237
- contextActions.getSystemPromptOptions ?? (() => normalizeBuildSystemPromptOptions({ cwd: this.cwd }));
238
- this.executeToolFn = contextActions.executeTool;
239
- this.getCallableToolsFn = contextActions.getCallableTools ?? (() => []);
240
- // Flush provider registrations queued during extension loading
241
- for (const { name, config, extensionPath } of this.runtime.pendingProviderRegistrations) {
242
- try {
243
- if (providerActions?.registerProvider) {
244
- providerActions.registerProvider(name, config);
245
- }
246
- else {
247
- this.modelRegistry.registerProvider(name, config);
248
- }
249
- }
250
- catch (err) {
251
- this.emitError({
252
- extensionPath,
253
- event: "register_provider",
254
- error: err instanceof Error ? err.message : String(err),
255
- stack: err instanceof Error ? err.stack : undefined,
256
- });
257
- }
258
- }
259
- this.runtime.pendingProviderRegistrations = [];
260
- for (const { provider, extensionPath } of this.runtime.pendingNativeProviderRegistrations) {
261
- try {
262
- if (providerActions?.registerNativeProvider) {
263
- providerActions.registerNativeProvider(provider);
264
- }
265
- else {
266
- this.modelRegistry.registerProvider(provider);
267
- }
268
- }
269
- catch (err) {
270
- this.emitError({
271
- extensionPath,
272
- event: "register_provider",
273
- error: err instanceof Error ? err.message : String(err),
274
- stack: err instanceof Error ? err.stack : undefined,
275
- });
276
- }
277
- }
278
- this.runtime.pendingNativeProviderRegistrations = [];
279
- const registerVirtualModel = (definition) => {
280
- if (providerActions?.registerVirtualModel)
281
- providerActions.registerVirtualModel(definition);
282
- else
283
- this.modelRegistry.registerVirtualModel(definition);
284
- };
285
- for (const { definition, extensionPath } of this.runtime.pendingVirtualModelRegistrations) {
286
- try {
287
- registerVirtualModel(definition);
288
- }
289
- catch (err) {
290
- this.emitError({
291
- extensionPath,
292
- event: "register_virtual_model",
293
- error: err instanceof Error ? err.message : String(err),
294
- stack: err instanceof Error ? err.stack : undefined,
295
- });
296
- }
297
- }
298
- this.runtime.pendingVirtualModelRegistrations = [];
299
- // From this point on, provider registration/unregistration takes effect immediately
300
- // without requiring a /reload.
301
- this.runtime.registerProvider = (name, config) => {
302
- if (providerActions?.registerProvider) {
303
- providerActions.registerProvider(name, config);
304
- return;
305
- }
306
- this.modelRegistry.registerProvider(name, config);
307
- };
308
- this.runtime.registerNativeProvider = (provider) => {
309
- if (providerActions?.registerNativeProvider) {
310
- providerActions.registerNativeProvider(provider);
311
- return;
312
- }
313
- this.modelRegistry.registerProvider(provider);
314
- };
315
- this.runtime.unregisterProvider = (name) => {
316
- if (providerActions?.unregisterProvider) {
317
- providerActions.unregisterProvider(name);
318
- return;
319
- }
320
- this.modelRegistry.unregisterProvider(name);
321
- };
322
- this.runtime.registerVirtualModel = registerVirtualModel;
323
- this.runtime.unregisterVirtualModel = (provider, id) => {
324
- if (providerActions?.unregisterVirtualModel)
325
- providerActions.unregisterVirtualModel(provider, id);
326
- else
327
- this.modelRegistry.unregisterVirtualModel(provider, id);
328
- };
329
- }
330
- bindCommandContext(actions) {
331
- if (actions) {
332
- this.waitForIdleFn = actions.waitForIdle;
333
- this.newSessionHandler = actions.newSession;
334
- this.forkHandler = actions.fork;
335
- this.navigateTreeHandler = actions.navigateTree;
336
- this.switchSessionHandler = actions.switchSession;
337
- this.reloadHandler = actions.reload;
338
- return;
339
- }
340
- this.waitForIdleFn = async () => { };
341
- this.newSessionHandler = async () => ({ cancelled: false });
342
- this.forkHandler = async () => ({ cancelled: false });
343
- this.navigateTreeHandler = async () => ({ cancelled: false });
344
- this.switchSessionHandler = async () => ({ cancelled: false });
345
- this.reloadHandler = async () => { };
346
- }
347
- setUIContext(uiContext, mode = "print") {
348
- this.uiContext = uiContext ? this.wrapUIPromptContext(uiContext) : noOpUIContext;
349
- this.mode = mode;
350
- }
351
- wrapUIPromptContext(ui) {
352
- return {
353
- ...ui,
354
- select: (title, options, opts) => this.withUIPrompt("select", title, () => ui.select(title, options, opts)),
355
- confirm: (title, message, opts) => this.withUIPrompt("confirm", title, () => ui.confirm(title, message, opts)),
356
- input: (title, placeholder, opts) => this.withUIPrompt("input", title, () => ui.input(title, placeholder, opts)),
357
- editor: (title, prefill) => this.withUIPrompt("editor", title, () => ui.editor(title, prefill)),
358
- custom: (factory, options) => this.withUIPrompt("custom", undefined, () => ui.custom(factory, options)),
359
- };
360
- }
361
- withUIPrompt(kind, title, run) {
362
- const outerPrompt = this.uiPromptDepth++ === 0;
363
- if (outerPrompt) {
364
- this.activeUIPrompt = { kind, title };
365
- this.emitUIPromptEvent({ type: "ui_prompt_start", reason: "ui_prompt", kind, ...(title ? { title } : {}) });
366
- }
367
- const finish = () => {
368
- if (--this.uiPromptDepth > 0)
369
- return;
370
- this.uiPromptDepth = 0;
371
- const prompt = this.activeUIPrompt ?? { kind, title };
372
- this.activeUIPrompt = undefined;
373
- this.emitUIPromptEvent({
374
- type: "ui_prompt_end",
375
- reason: "ui_prompt",
376
- kind: prompt.kind,
377
- ...(prompt.title ? { title: prompt.title } : {}),
378
- });
379
- };
380
- try {
381
- return run().finally(finish);
382
- }
383
- catch (err) {
384
- finish();
385
- throw err;
386
- }
387
- }
388
- emitUIPromptEvent(event) {
389
- queueMicrotask(() => {
390
- void this.emit(event);
391
- });
392
- }
393
- getUIContext() {
394
- return this.uiContext;
395
- }
396
- hasUI() {
397
- return this.uiContext !== noOpUIContext;
398
- }
399
- getExtensionPaths() {
400
- return this.extensions.map((e) => e.path);
401
- }
402
- /** Get all registered tools from all extensions (first registration per name wins). */
403
- getAllRegisteredTools() {
404
- const toolsByName = new Map();
405
- for (const ext of this.extensions) {
406
- for (const tool of ext.tools.values()) {
407
- if (!toolsByName.has(tool.definition.name)) {
408
- toolsByName.set(tool.definition.name, tool);
409
- }
410
- }
411
- }
412
- return Array.from(toolsByName.values());
413
- }
414
- /** Get a tool definition by name. Returns undefined if not found. */
415
- getToolDefinition(toolName) {
416
- for (const ext of this.extensions) {
417
- const tool = ext.tools.get(toolName);
418
- if (tool) {
419
- return tool.definition;
420
- }
421
- }
422
- return undefined;
423
- }
424
- getFlags() {
425
- const allFlags = new Map();
426
- for (const ext of this.extensions) {
427
- for (const [name, flag] of ext.flags) {
428
- if (!allFlags.has(name)) {
429
- allFlags.set(name, flag);
430
- }
431
- }
432
- }
433
- return allFlags;
434
- }
435
- setFlagValue(name, value) {
436
- this.runtime.flagValues.set(name, value);
437
- }
438
- getFlagValues() {
439
- return new Map(this.runtime.flagValues);
440
- }
441
- getShortcuts(resolvedKeybindings) {
442
- this.shortcutDiagnostics = [];
443
- const builtinKeybindings = buildBuiltinKeybindings(resolvedKeybindings);
444
- const extensionShortcuts = new Map();
445
- const addDiagnostic = (message, extensionPath) => {
446
- this.shortcutDiagnostics.push({ type: "warning", message, path: extensionPath });
447
- if (!this.hasUI()) {
448
- console.warn(message);
449
- }
450
- };
451
- for (const ext of this.extensions) {
452
- for (const [key, shortcut] of ext.shortcuts) {
453
- const normalizedKey = key.toLowerCase();
454
- const builtInKeybinding = builtinKeybindings[normalizedKey];
455
- if (builtInKeybinding?.restrictOverride === true) {
456
- addDiagnostic(`Extension shortcut '${key}' from ${shortcut.extensionPath} conflicts with built-in shortcut. Skipping.`, shortcut.extensionPath);
457
- continue;
458
- }
459
- if (builtInKeybinding?.restrictOverride === false) {
460
- addDiagnostic(`Extension shortcut conflict: '${key}' is built-in shortcut for ${builtInKeybinding.keybinding} and ${shortcut.extensionPath}. Using ${shortcut.extensionPath}.`, shortcut.extensionPath);
461
- }
462
- const existingExtensionShortcut = extensionShortcuts.get(normalizedKey);
463
- if (existingExtensionShortcut) {
464
- addDiagnostic(`Extension shortcut conflict: '${key}' registered by both ${existingExtensionShortcut.extensionPath} and ${shortcut.extensionPath}. Using ${shortcut.extensionPath}.`, shortcut.extensionPath);
465
- }
466
- extensionShortcuts.set(normalizedKey, shortcut);
467
- }
468
- }
469
- return extensionShortcuts;
470
- }
471
- getShortcutDiagnostics() {
472
- return this.shortcutDiagnostics;
473
- }
474
- invalidate(message = "This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().") {
475
- if (!this.staleMessage) {
476
- this.staleMessage = message;
477
- this.runtime.invalidate(message);
478
- }
479
- }
480
- assertActive() {
481
- if (this.staleMessage) {
482
- throw new Error(this.staleMessage);
483
- }
484
- }
485
- onError(listener) {
486
- this.errorListeners.add(listener);
487
- return () => this.errorListeners.delete(listener);
488
- }
489
- emitError(error) {
490
- for (const listener of this.errorListeners) {
491
- listener(error);
492
- }
493
- }
494
- hasHandlers(eventType) {
495
- for (const ext of this.extensions) {
496
- const handlers = ext.handlers.get(eventType);
497
- if (handlers && handlers.length > 0) {
498
- return true;
499
- }
500
- }
501
- return false;
502
- }
503
- getMessageRenderer(customType) {
504
- for (const ext of this.extensions) {
505
- const renderer = ext.messageRenderers.get(customType);
506
- if (renderer) {
507
- return renderer;
508
- }
509
- }
510
- return undefined;
511
- }
512
- getMarkdownTransformers() {
513
- return this.extensions.flatMap((ext) => (ext.markdownTransformer ? [ext.markdownTransformer] : []));
514
- }
515
- getEntryRenderer(customType) {
516
- for (const ext of this.extensions) {
517
- const renderer = ext.entryRenderers?.get(customType);
518
- if (renderer) {
519
- return renderer;
520
- }
521
- }
522
- return undefined;
523
- }
524
- resolveRegisteredCommands() {
525
- const commands = [];
526
- const counts = new Map();
527
- for (const ext of this.extensions) {
528
- for (const command of ext.commands.values()) {
529
- commands.push(command);
530
- counts.set(command.name, (counts.get(command.name) ?? 0) + 1);
531
- }
532
- }
533
- const seen = new Map();
534
- const takenInvocationNames = new Set();
535
- return commands.map((command) => {
536
- const occurrence = (seen.get(command.name) ?? 0) + 1;
537
- seen.set(command.name, occurrence);
538
- let invocationName = (counts.get(command.name) ?? 0) > 1 ? `${command.name}:${occurrence}` : command.name;
539
- if (takenInvocationNames.has(invocationName)) {
540
- let suffix = occurrence;
541
- do {
542
- suffix++;
543
- invocationName = `${command.name}:${suffix}`;
544
- } while (takenInvocationNames.has(invocationName));
545
- }
546
- takenInvocationNames.add(invocationName);
547
- return {
548
- ...command,
549
- invocationName,
550
- };
551
- });
552
- }
553
- getModelRegistry() {
554
- return this.modelRegistry;
555
- }
556
- getRegisteredCommands() {
557
- this.commandDiagnostics = [];
558
- return this.resolveRegisteredCommands();
559
- }
560
- getCommandDiagnostics() {
561
- return this.commandDiagnostics;
562
- }
563
- getCommand(name) {
564
- return this.resolveRegisteredCommands().find((command) => command.invocationName === name);
565
- }
566
- /**
567
- * Request a graceful shutdown. Called by extension tools and event handlers.
568
- * The actual shutdown behavior is provided by the mode via bindExtensions().
569
- */
570
- shutdown() {
571
- this.shutdownHandler();
572
- }
573
- getActiveTools() {
574
- this.assertActive();
575
- return this.runtime.getActiveTools();
576
- }
577
- /**
578
- * Create an ExtensionContext for use in event handlers and tool execution.
579
- * Context values are resolved at call time, so changes via bindCore/bindUI are reflected.
580
- */
581
- createContext() {
582
- const runner = this;
583
- const getModel = this.getModel;
584
- const getScopedModels = this.getScopedModels;
585
- return {
586
- get ui() {
587
- runner.assertActive();
588
- return runner.uiContext;
589
- },
590
- get mode() {
591
- runner.assertActive();
592
- return runner.mode;
593
- },
594
- get hasUI() {
595
- runner.assertActive();
596
- return runner.hasUI();
597
- },
598
- get cwd() {
599
- runner.assertActive();
600
- return runner.cwd;
601
- },
602
- get sessionManager() {
603
- runner.assertActive();
604
- return runner.sessionManager;
605
- },
606
- get modelRegistry() {
607
- runner.assertActive();
608
- return runner.modelRegistry;
609
- },
610
- get model() {
611
- runner.assertActive();
612
- return getModel();
613
- },
614
- get scopedModels() {
615
- runner.assertActive();
616
- return getScopedModels();
617
- },
618
- get thinkingLevel() {
619
- runner.assertActive();
620
- return runner.runtime.getThinkingLevel();
621
- },
622
- isIdle: () => {
623
- runner.assertActive();
624
- return runner.isIdleFn();
625
- },
626
- isProjectTrusted: () => {
627
- runner.assertActive();
628
- return runner.isProjectTrustedFn();
629
- },
630
- get signal() {
631
- runner.assertActive();
632
- return runner.getSignalFn();
633
- },
634
- abort: () => {
635
- runner.assertActive();
636
- runner.abortFn();
637
- },
638
- hasPendingMessages: () => {
639
- runner.assertActive();
640
- return runner.hasPendingMessagesFn();
641
- },
642
- shutdown: () => {
643
- runner.assertActive();
644
- runner.shutdownHandler();
645
- },
646
- getContextUsage: () => {
647
- runner.assertActive();
648
- return runner.getContextUsageFn();
649
- },
650
- compact: (options) => {
651
- runner.assertActive();
652
- runner.compactFn(options);
653
- },
654
- getSystemPrompt: () => {
655
- runner.assertActive();
656
- return runner.getSystemPromptFn();
657
- },
658
- };
659
- }
660
- /**
661
- * Create the context for executing the tool call `toolCallId`: the extension context plus
662
- * `tools` and `executeTool()`. `signal` is the default signal of nested calls.
663
- */
664
- createToolContext(toolCallId, signal) {
665
- const runner = this;
666
- // createContext() returns a fresh object, so adding properties does not affect other contexts.
667
- return Object.defineProperties(this.createContext(), {
668
- tools: {
669
- get() {
670
- runner.assertActive();
671
- return runner.getCallableToolsFn();
672
- },
673
- },
674
- executeTool: {
675
- value: async (name, args, options = {}) => {
676
- runner.assertActive();
677
- if (!runner.executeToolFn) {
678
- return {
679
- toolCall: { type: "toolCall", id: `${toolCallId}/0`, name, arguments: {} },
680
- result: {
681
- content: [{ type: "text", text: "Nested tool calls are not available in this context" }],
682
- details: {},
683
- },
684
- isError: true,
685
- };
686
- }
687
- return runner.executeToolFn(toolCallId, name, args, { ...options, signal: options.signal ?? signal });
688
- },
689
- },
690
- });
691
- }
692
- createCommandContext() {
693
- // Use property descriptors instead of object spread so the guarded getters from
694
- // createContext() stay lazy. A spread would eagerly read them once and freeze the
695
- // old values into the returned object, bypassing stale-instance checks.
696
- const context = Object.defineProperties({}, Object.getOwnPropertyDescriptors(this.createContext()));
697
- context.getSystemPromptOptions = () => {
698
- this.assertActive();
699
- return this.getSystemPromptOptionsFn();
700
- };
701
- context.waitForIdle = () => {
702
- this.assertActive();
703
- return this.waitForIdleFn();
704
- };
705
- context.newSession = (options) => {
706
- this.assertActive();
707
- return this.newSessionHandler(options);
708
- };
709
- context.fork = (entryId, options) => {
710
- this.assertActive();
711
- return this.forkHandler(entryId, options);
712
- };
713
- context.navigateTree = (targetId, options) => {
714
- this.assertActive();
715
- return this.navigateTreeHandler(targetId, options);
716
- };
717
- context.switchSession = (sessionPath, options) => {
718
- this.assertActive();
719
- return this.switchSessionHandler(sessionPath, options);
720
- };
721
- context.reload = () => {
722
- this.assertActive();
723
- return this.reloadHandler();
724
- };
725
- return context;
726
- }
727
- async emitBoundary(baseEvent, buildContext) {
728
- const ctx = this.createContext();
729
- let entries = [];
730
- let shouldContinue = false;
731
- let context = await buildContext(entries);
732
- let valid = true;
733
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, baseEvent.type)) {
734
- for (const handler of handlers) {
735
- const event = {
736
- ...baseEvent,
737
- entries,
738
- continue: shouldContinue,
739
- context,
740
- };
741
- try {
742
- const handlerResult = (await handler(event, ctx));
743
- if (handlerResult?.entries !== undefined)
744
- entries = handlerResult.entries;
745
- if (handlerResult?.continue !== undefined)
746
- shouldContinue = handlerResult.continue;
747
- }
748
- catch (err) {
749
- this.emitError({
750
- extensionPath: ext.path,
751
- event: baseEvent.type,
752
- error: err instanceof Error ? err.message : String(err),
753
- stack: err instanceof Error ? err.stack : undefined,
754
- });
755
- }
756
- try {
757
- context = await buildContext(entries);
758
- valid = true;
759
- }
760
- catch (err) {
761
- valid = false;
762
- this.emitError({
763
- extensionPath: ext.path,
764
- event: baseEvent.type,
765
- error: `Invalid boundary entries: ${err instanceof Error ? err.message : String(err)}`,
766
- stack: err instanceof Error ? err.stack : undefined,
767
- });
768
- }
769
- }
770
- }
771
- return valid
772
- ? { entries, continue: shouldContinue, context, valid: true }
773
- : { entries: [], continue: false, context, valid: false };
774
- }
775
- isSessionBeforeEvent(event) {
776
- return (event.type === "session_before_switch" ||
777
- event.type === "session_before_fork" ||
778
- event.type === "session_before_compact" ||
779
- event.type === "session_before_tree");
780
- }
781
- async emit(event) {
782
- const ctx = this.createContext();
783
- let result;
784
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, event.type)) {
785
- for (const handler of handlers) {
786
- try {
787
- const handlerResult = await handler(event, ctx);
788
- if (this.isSessionBeforeEvent(event) && handlerResult) {
789
- result = handlerResult;
790
- if (result.cancel) {
791
- return result;
792
- }
793
- }
794
- }
795
- catch (err) {
796
- const message = err instanceof Error ? err.message : String(err);
797
- const stack = err instanceof Error ? err.stack : undefined;
798
- this.emitError({
799
- extensionPath: ext.path,
800
- event: event.type,
801
- error: message,
802
- stack,
803
- });
804
- }
805
- }
806
- }
807
- return result;
808
- }
809
- /** Returns the event's own action unless a handler overrides it; the last override wins. */
810
- async emitCacheWarmingDecision(event) {
811
- const ctx = this.createContext();
812
- let action = event.action;
813
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, event.type)) {
814
- for (const handler of handlers) {
815
- try {
816
- const result = (await handler(event, ctx));
817
- if (result?.action !== undefined)
818
- action = result.action;
819
- }
820
- catch (err) {
821
- this.emitError({
822
- extensionPath: ext.path,
823
- event: event.type,
824
- error: err instanceof Error ? err.message : String(err),
825
- stack: err instanceof Error ? err.stack : undefined,
826
- });
827
- }
828
- }
829
- }
830
- return action;
831
- }
832
- async emitMessageEnd(event) {
833
- const ctx = this.createContext();
834
- let currentMessage = event.message;
835
- let modified = false;
836
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "message_end")) {
837
- for (const handler of handlers) {
838
- try {
839
- const currentEvent = { ...event, message: currentMessage };
840
- const handlerResult = (await handler(currentEvent, ctx));
841
- if (!handlerResult?.message)
842
- continue;
843
- if (handlerResult.message.role !== currentMessage.role) {
844
- this.emitError({
845
- extensionPath: ext.path,
846
- event: "message_end",
847
- error: "message_end handlers must return a message with the same role",
848
- });
849
- continue;
850
- }
851
- currentMessage = handlerResult.message;
852
- modified = true;
853
- }
854
- catch (err) {
855
- const message = err instanceof Error ? err.message : String(err);
856
- const stack = err instanceof Error ? err.stack : undefined;
857
- this.emitError({
858
- extensionPath: ext.path,
859
- event: "message_end",
860
- error: message,
861
- stack,
862
- });
863
- }
864
- }
865
- }
866
- return modified ? currentMessage : undefined;
867
- }
868
- async emitToolResult(event) {
869
- const ctx = this.createContext();
870
- const currentEvent = { ...event };
871
- let modified = false;
872
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "tool_result")) {
873
- for (const handler of handlers) {
874
- try {
875
- const handlerResult = (await handler(currentEvent, ctx));
876
- if (!handlerResult)
877
- continue;
878
- if (handlerResult.content !== undefined) {
879
- currentEvent.content = handlerResult.content;
880
- // Structured content that is not replaced along with the content may no longer match it.
881
- if (handlerResult.structuredContent === undefined)
882
- delete currentEvent.structuredContent;
883
- modified = true;
884
- }
885
- if (handlerResult.details !== undefined) {
886
- currentEvent.details = handlerResult.details;
887
- modified = true;
888
- }
889
- if (handlerResult.structuredContent !== undefined) {
890
- currentEvent.structuredContent = handlerResult.structuredContent;
891
- modified = true;
892
- }
893
- if (handlerResult.isError !== undefined) {
894
- currentEvent.isError = handlerResult.isError;
895
- modified = true;
896
- }
897
- if (handlerResult.usage !== undefined) {
898
- currentEvent.usage = handlerResult.usage;
899
- modified = true;
900
- }
901
- }
902
- catch (err) {
903
- const message = err instanceof Error ? err.message : String(err);
904
- const stack = err instanceof Error ? err.stack : undefined;
905
- this.emitError({
906
- extensionPath: ext.path,
907
- event: "tool_result",
908
- error: message,
909
- stack,
910
- });
911
- }
912
- }
913
- }
914
- if (!modified) {
915
- return undefined;
916
- }
917
- return {
918
- content: currentEvent.content,
919
- details: currentEvent.details,
920
- structuredContent: currentEvent.structuredContent,
921
- isError: currentEvent.isError,
922
- usage: currentEvent.usage,
923
- };
924
- }
925
- async emitToolCall(event) {
926
- const ctx = this.createContext();
927
- let result;
928
- for (const { handlers } of snapshotEventHandlers(this.extensions, "tool_call")) {
929
- for (const handler of handlers) {
930
- const handlerResult = await handler(event, ctx);
931
- if (handlerResult) {
932
- result = handlerResult;
933
- if (result.block) {
934
- return result;
935
- }
936
- }
937
- }
938
- }
939
- return result;
940
- }
941
- async emitUserBash(event) {
942
- const ctx = this.createContext();
943
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "user_bash")) {
944
- for (const handler of handlers) {
945
- try {
946
- const handlerResult = await handler(event, ctx);
947
- if (handlerResult === undefined)
948
- continue;
949
- if (!isUserBashEventResult(handlerResult)) {
950
- throw new Error("Invalid user_bash handler result: return undefined for local execution or exactly one valid { operations } or { result } object");
951
- }
952
- return handlerResult;
953
- }
954
- catch (err) {
955
- const message = err instanceof Error ? err.message : String(err);
956
- const stack = err instanceof Error ? err.stack : undefined;
957
- this.emitError({
958
- extensionPath: ext.path,
959
- event: "user_bash",
960
- error: message,
961
- stack,
962
- });
963
- throw err;
964
- }
965
- }
966
- }
967
- return undefined;
968
- }
969
- /**
970
- * Run the request-time transforms in two phases. `context` handlers see the conversation
971
- * only and Pi restores the prompt and tool state after each; `context_with_system`
972
- * handlers then see the full transcript and their output is used as returned.
973
- */
974
- async emitContext(messages) {
975
- const ctx = this.createContext();
976
- let currentMessages = structuredClone(messages);
977
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "context")) {
978
- for (const handler of handlers) {
979
- try {
980
- const visibleMessages = currentMessages.filter((message) => message.role !== "system");
981
- const visibleSnapshot = visibleMessages.slice();
982
- const event = { type: "context", messages: visibleMessages };
983
- const handlerResult = (await handler(event, ctx));
984
- // Handlers may return a new list or edit event.messages in place.
985
- const returned = handlerResult?.messages ??
986
- (sameMessages(visibleMessages, visibleSnapshot) ? undefined : visibleMessages);
987
- if (!returned)
988
- continue;
989
- currentMessages = restoreSystemMessages(currentMessages, visibleSnapshot, returned);
990
- }
991
- catch (err) {
992
- const message = err instanceof Error ? err.message : String(err);
993
- const stack = err instanceof Error ? err.stack : undefined;
994
- this.emitError({
995
- extensionPath: ext.path,
996
- event: "context",
997
- error: message,
998
- stack,
999
- });
1000
- }
1001
- }
1002
- }
1003
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "context_with_system")) {
1004
- for (const handler of handlers) {
1005
- try {
1006
- const hadLeadingSystemMessage = currentMessages[0]?.role === "system";
1007
- const event = { type: "context_with_system", messages: currentMessages };
1008
- const handlerResult = (await handler(event, ctx));
1009
- currentMessages = handlerResult?.messages ?? currentMessages;
1010
- // Providers read the prompt and initial tools from the leading system message.
1011
- // Losing it is never intended; report it but honor the handler's output.
1012
- if (hadLeadingSystemMessage && currentMessages[0]?.role !== "system") {
1013
- this.emitError({
1014
- extensionPath: ext.path,
1015
- event: "context_with_system",
1016
- error: "Handler removed the leading system message; the request has no prompt or initial tool declarations. Keep it at index 0 or replace a dropped prefix with getCurrentSystemMessage().",
1017
- });
1018
- }
1019
- }
1020
- catch (err) {
1021
- const message = err instanceof Error ? err.message : String(err);
1022
- const stack = err instanceof Error ? err.stack : undefined;
1023
- this.emitError({
1024
- extensionPath: ext.path,
1025
- event: "context_with_system",
1026
- error: message,
1027
- stack,
1028
- });
1029
- }
1030
- }
1031
- }
1032
- return currentMessages;
1033
- }
1034
- async emitBeforeProviderRequest(payload) {
1035
- const ctx = this.createContext();
1036
- let currentPayload = payload;
1037
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "before_provider_request")) {
1038
- for (const handler of handlers) {
1039
- try {
1040
- const event = {
1041
- type: "before_provider_request",
1042
- payload: currentPayload,
1043
- };
1044
- const handlerResult = await handler(event, ctx);
1045
- if (handlerResult !== undefined) {
1046
- currentPayload = handlerResult;
1047
- }
1048
- }
1049
- catch (err) {
1050
- const message = err instanceof Error ? err.message : String(err);
1051
- const stack = err instanceof Error ? err.stack : undefined;
1052
- this.emitError({
1053
- extensionPath: ext.path,
1054
- event: "before_provider_request",
1055
- error: message,
1056
- stack,
1057
- });
1058
- }
1059
- }
1060
- }
1061
- return currentPayload;
1062
- }
1063
- async emitBeforeProviderHeaders(headers) {
1064
- const ctx = this.createContext();
1065
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "before_provider_headers")) {
1066
- for (const handler of handlers) {
1067
- try {
1068
- // Handlers mutate `headers` in place; the return value is ignored.
1069
- const event = {
1070
- type: "before_provider_headers",
1071
- headers,
1072
- };
1073
- await handler(event, ctx);
1074
- }
1075
- catch (err) {
1076
- const message = err instanceof Error ? err.message : String(err);
1077
- const stack = err instanceof Error ? err.stack : undefined;
1078
- this.emitError({
1079
- extensionPath: ext.path,
1080
- event: "before_provider_headers",
1081
- error: message,
1082
- stack,
1083
- });
1084
- }
1085
- }
1086
- }
1087
- return headers;
1088
- }
1089
- async emitBeforeAgentStart(prompt, images, systemPromptOptions) {
1090
- const currentOptions = normalizeBuildSystemPromptOptions(systemPromptOptions);
1091
- const renderCurrentSystemPrompt = () => buildSystemPrompt(currentOptions);
1092
- const ctx = Object.defineProperties({}, Object.getOwnPropertyDescriptors(this.createContext()));
1093
- ctx.getSystemPrompt = () => {
1094
- this.assertActive();
1095
- return renderCurrentSystemPrompt();
1096
- };
1097
- const messages = [];
1098
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "before_agent_start")) {
1099
- for (const handler of handlers) {
1100
- try {
1101
- const event = {
1102
- type: "before_agent_start",
1103
- prompt,
1104
- images,
1105
- get systemPrompt() {
1106
- return renderCurrentSystemPrompt();
1107
- },
1108
- systemPromptOptions: currentOptions,
1109
- };
1110
- const handlerResult = await handler(event, ctx);
1111
- if (handlerResult) {
1112
- const result = handlerResult;
1113
- if (result.message)
1114
- messages.push(result.message);
1115
- if (result.systemPrompt !== undefined) {
1116
- currentOptions.forceSystemPrompt = result.systemPrompt;
1117
- }
1118
- }
1119
- }
1120
- catch (err) {
1121
- const message = err instanceof Error ? err.message : String(err);
1122
- const stack = err instanceof Error ? err.stack : undefined;
1123
- this.emitError({
1124
- extensionPath: ext.path,
1125
- event: "before_agent_start",
1126
- error: message,
1127
- stack,
1128
- });
1129
- }
1130
- }
1131
- }
1132
- return { messages, systemPromptOptions: currentOptions };
1133
- }
1134
- async emitResourcesDiscover(cwd, reason) {
1135
- const ctx = this.createContext();
1136
- const skillPaths = [];
1137
- const promptPaths = [];
1138
- const themePaths = [];
1139
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "resources_discover")) {
1140
- for (const handler of handlers) {
1141
- try {
1142
- const event = { type: "resources_discover", cwd, reason };
1143
- const handlerResult = await handler(event, ctx);
1144
- const result = handlerResult;
1145
- if (result?.skillPaths?.length) {
1146
- skillPaths.push(...result.skillPaths.map((path) => ({ path, extensionPath: ext.path })));
1147
- }
1148
- if (result?.promptPaths?.length) {
1149
- promptPaths.push(...result.promptPaths.map((path) => ({ path, extensionPath: ext.path })));
1150
- }
1151
- if (result?.themePaths?.length) {
1152
- themePaths.push(...result.themePaths.map((path) => ({ path, extensionPath: ext.path })));
1153
- }
1154
- }
1155
- catch (err) {
1156
- const message = err instanceof Error ? err.message : String(err);
1157
- const stack = err instanceof Error ? err.stack : undefined;
1158
- this.emitError({
1159
- extensionPath: ext.path,
1160
- event: "resources_discover",
1161
- error: message,
1162
- stack,
1163
- });
1164
- }
1165
- }
1166
- }
1167
- return { skillPaths, promptPaths, themePaths };
1168
- }
1169
- /** Emit input event. Transforms chain, "handled" short-circuits. */
1170
- async emitInput(text, images, source, streamingBehavior) {
1171
- const ctx = this.createContext();
1172
- let currentText = text;
1173
- let currentImages = images;
1174
- for (const { ext, handlers } of snapshotEventHandlers(this.extensions, "input")) {
1175
- for (const handler of handlers) {
1176
- try {
1177
- const event = {
1178
- type: "input",
1179
- text: currentText,
1180
- images: currentImages,
1181
- source,
1182
- streamingBehavior,
1183
- };
1184
- const result = (await handler(event, ctx));
1185
- if (result?.action === "handled")
1186
- return result;
1187
- if (result?.action === "transform") {
1188
- currentText = result.text;
1189
- currentImages = result.images ?? currentImages;
1190
- }
1191
- }
1192
- catch (err) {
1193
- this.emitError({
1194
- extensionPath: ext.path,
1195
- event: "input",
1196
- error: err instanceof Error ? err.message : String(err),
1197
- stack: err instanceof Error ? err.stack : undefined,
1198
- });
1199
- }
1200
- }
1201
- }
1202
- return currentText !== text || currentImages !== images
1203
- ? { action: "transform", text: currentText, images: currentImages }
1204
- : { action: "continue" };
1205
- }
1206
- }
1207
- //# sourceMappingURL=runner.js.map