@subimpact/e 0.100.0 → 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 (911) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +7 -1
  3. package/dist/bundle/chunks/{chunk-KAXC2ESR.js → chunk-GICF34HK.js} +8 -8
  4. package/dist/bundle/chunks/{chunk-FBZU53S6.js → chunk-NBSSK56J.js} +1 -1
  5. package/dist/bundle/chunks/{chunk-QSDAQKAU.js → chunk-RAB4RJZ2.js} +11 -12
  6. package/dist/bundle/chunks/{easter-egg-3d-DD22MRM3.js → easter-egg-3d-JQPBRQEU.js} +1 -1
  7. package/dist/bundle/chunks/{openai-codex-responses-YOLBMQOC.js → openai-codex-responses-WGH4GHLE.js} +1 -1
  8. package/dist/bundle/chunks/{virtual-modules-YQUQNKDN.js → virtual-modules-L22CHFWU.js} +1 -1
  9. package/dist/bundle/cli-runtime.js +1 -1
  10. package/dist/bundle/index.js +1 -1
  11. package/dist/bundle/rpc-entry.js +1 -1
  12. package/docs/compaction.md +2 -2
  13. package/docs/extensions.md +4 -10
  14. package/docs/message-types.md +2 -4
  15. package/docs/session-format.md +4 -4
  16. package/docs/settings.md +1 -1
  17. package/docs/tui.md +1 -1
  18. package/examples/extensions/overlay-test.ts +2 -2
  19. package/package.json +31 -31
  20. package/dist/bun/cli.d.ts +0 -5
  21. package/dist/bun/cli.d.ts.map +0 -1
  22. package/dist/bun/cli.js +0 -5
  23. package/dist/bun/cli.js.map +0 -1
  24. package/dist/bun/restore-sandbox-env.d.ts +0 -17
  25. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  26. package/dist/bun/restore-sandbox-env.js +0 -36
  27. package/dist/bun/restore-sandbox-env.js.map +0 -1
  28. package/dist/bun/runtime-setup.d.ts +0 -2
  29. package/dist/bun/runtime-setup.d.ts.map +0 -1
  30. package/dist/bun/runtime-setup.js +0 -9
  31. package/dist/bun/runtime-setup.js.map +0 -1
  32. package/dist/bun/sandbox-env-setup.d.ts +0 -2
  33. package/dist/bun/sandbox-env-setup.d.ts.map +0 -1
  34. package/dist/bun/sandbox-env-setup.js +0 -4
  35. package/dist/bun/sandbox-env-setup.js.map +0 -1
  36. package/dist/cli/args.d.ts +0 -61
  37. package/dist/cli/args.d.ts.map +0 -1
  38. package/dist/cli/args.js +0 -453
  39. package/dist/cli/args.js.map +0 -1
  40. package/dist/cli/auth-check.d.ts +0 -19
  41. package/dist/cli/auth-check.d.ts.map +0 -1
  42. package/dist/cli/auth-check.js +0 -50
  43. package/dist/cli/auth-check.js.map +0 -1
  44. package/dist/cli/auth-command.d.ts +0 -24
  45. package/dist/cli/auth-command.d.ts.map +0 -1
  46. package/dist/cli/auth-command.js +0 -103
  47. package/dist/cli/auth-command.js.map +0 -1
  48. package/dist/cli/config-selector.d.ts +0 -16
  49. package/dist/cli/config-selector.d.ts.map +0 -1
  50. package/dist/cli/config-selector.js +0 -32
  51. package/dist/cli/config-selector.js.map +0 -1
  52. package/dist/cli/credential-print.d.ts +0 -13
  53. package/dist/cli/credential-print.d.ts.map +0 -1
  54. package/dist/cli/credential-print.js +0 -76
  55. package/dist/cli/credential-print.js.map +0 -1
  56. package/dist/cli/file-processor.d.ts +0 -15
  57. package/dist/cli/file-processor.d.ts.map +0 -1
  58. package/dist/cli/file-processor.js +0 -71
  59. package/dist/cli/file-processor.js.map +0 -1
  60. package/dist/cli/initial-message.d.ts +0 -18
  61. package/dist/cli/initial-message.d.ts.map +0 -1
  62. package/dist/cli/initial-message.js +0 -22
  63. package/dist/cli/initial-message.js.map +0 -1
  64. package/dist/cli/list-models.d.ts +0 -9
  65. package/dist/cli/list-models.d.ts.map +0 -1
  66. package/dist/cli/list-models.js +0 -98
  67. package/dist/cli/list-models.js.map +0 -1
  68. package/dist/cli/project-trust.d.ts +0 -10
  69. package/dist/cli/project-trust.d.ts.map +0 -1
  70. package/dist/cli/project-trust.js +0 -48
  71. package/dist/cli/project-trust.js.map +0 -1
  72. package/dist/cli/session-picker.d.ts +0 -10
  73. package/dist/cli/session-picker.d.ts.map +0 -1
  74. package/dist/cli/session-picker.js +0 -36
  75. package/dist/cli/session-picker.js.map +0 -1
  76. package/dist/cli/setup.d.ts +0 -2
  77. package/dist/cli/setup.d.ts.map +0 -1
  78. package/dist/cli/setup.js +0 -12
  79. package/dist/cli/setup.js.map +0 -1
  80. package/dist/cli/startup-ui.d.ts +0 -20
  81. package/dist/cli/startup-ui.d.ts.map +0 -1
  82. package/dist/cli/startup-ui.js +0 -193
  83. package/dist/cli/startup-ui.js.map +0 -1
  84. package/dist/cli.d.ts +0 -3
  85. package/dist/cli.d.ts.map +0 -1
  86. package/dist/cli.js +0 -6
  87. package/dist/cli.js.map +0 -1
  88. package/dist/config.d.ts +0 -107
  89. package/dist/config.d.ts.map +0 -1
  90. package/dist/config.js +0 -486
  91. package/dist/config.js.map +0 -1
  92. package/dist/core/agent-session-runtime.d.ts +0 -119
  93. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  94. package/dist/core/agent-session-runtime.js +0 -317
  95. package/dist/core/agent-session-runtime.js.map +0 -1
  96. package/dist/core/agent-session-services.d.ts +0 -86
  97. package/dist/core/agent-session-services.d.ts.map +0 -1
  98. package/dist/core/agent-session-services.js +0 -147
  99. package/dist/core/agent-session-services.js.map +0 -1
  100. package/dist/core/agent-session.d.ts +0 -859
  101. package/dist/core/agent-session.d.ts.map +0 -1
  102. package/dist/core/agent-session.js +0 -3416
  103. package/dist/core/agent-session.js.map +0 -1
  104. package/dist/core/auth-guidance.d.ts +0 -5
  105. package/dist/core/auth-guidance.d.ts.map +0 -1
  106. package/dist/core/auth-guidance.js +0 -21
  107. package/dist/core/auth-guidance.js.map +0 -1
  108. package/dist/core/auth-storage.d.ts +0 -72
  109. package/dist/core/auth-storage.d.ts.map +0 -1
  110. package/dist/core/auth-storage.js +0 -426
  111. package/dist/core/auth-storage.js.map +0 -1
  112. package/dist/core/bash-executor.d.ts +0 -32
  113. package/dist/core/bash-executor.d.ts.map +0 -1
  114. package/dist/core/bash-executor.js +0 -106
  115. package/dist/core/bash-executor.js.map +0 -1
  116. package/dist/core/bug-report-upload.d.ts +0 -12
  117. package/dist/core/bug-report-upload.d.ts.map +0 -1
  118. package/dist/core/bug-report-upload.js +0 -22
  119. package/dist/core/bug-report-upload.js.map +0 -1
  120. package/dist/core/bug-report.d.ts +0 -176
  121. package/dist/core/bug-report.d.ts.map +0 -1
  122. package/dist/core/bug-report.js +0 -292
  123. package/dist/core/bug-report.js.map +0 -1
  124. package/dist/core/cache-stats.d.ts +0 -49
  125. package/dist/core/cache-stats.d.ts.map +0 -1
  126. package/dist/core/cache-stats.js +0 -112
  127. package/dist/core/cache-stats.js.map +0 -1
  128. package/dist/core/cache-warmer.d.ts +0 -103
  129. package/dist/core/cache-warmer.d.ts.map +0 -1
  130. package/dist/core/cache-warmer.js +0 -359
  131. package/dist/core/cache-warmer.js.map +0 -1
  132. package/dist/core/compaction/branch-summarization.d.ts +0 -98
  133. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  134. package/dist/core/compaction/branch-summarization.js +0 -251
  135. package/dist/core/compaction/branch-summarization.js.map +0 -1
  136. package/dist/core/compaction/compaction.d.ts +0 -145
  137. package/dist/core/compaction/compaction.d.ts.map +0 -1
  138. package/dist/core/compaction/compaction.js +0 -744
  139. package/dist/core/compaction/compaction.js.map +0 -1
  140. package/dist/core/compaction/index.d.ts +0 -7
  141. package/dist/core/compaction/index.d.ts.map +0 -1
  142. package/dist/core/compaction/index.js +0 -7
  143. package/dist/core/compaction/index.js.map +0 -1
  144. package/dist/core/compaction/utils.d.ts +0 -39
  145. package/dist/core/compaction/utils.d.ts.map +0 -1
  146. package/dist/core/compaction/utils.js +0 -149
  147. package/dist/core/compaction/utils.js.map +0 -1
  148. package/dist/core/crash-log.d.ts +0 -27
  149. package/dist/core/crash-log.d.ts.map +0 -1
  150. package/dist/core/crash-log.js +0 -140
  151. package/dist/core/crash-log.js.map +0 -1
  152. package/dist/core/defaults.d.ts +0 -4
  153. package/dist/core/defaults.d.ts.map +0 -1
  154. package/dist/core/defaults.js +0 -11
  155. package/dist/core/defaults.js.map +0 -1
  156. package/dist/core/diagnostics.d.ts +0 -15
  157. package/dist/core/diagnostics.d.ts.map +0 -1
  158. package/dist/core/diagnostics.js +0 -2
  159. package/dist/core/diagnostics.js.map +0 -1
  160. package/dist/core/event-bus.d.ts +0 -9
  161. package/dist/core/event-bus.d.ts.map +0 -1
  162. package/dist/core/event-bus.js +0 -25
  163. package/dist/core/event-bus.js.map +0 -1
  164. package/dist/core/exec.d.ts +0 -29
  165. package/dist/core/exec.d.ts.map +0 -1
  166. package/dist/core/exec.js +0 -75
  167. package/dist/core/exec.js.map +0 -1
  168. package/dist/core/experimental.d.ts +0 -2
  169. package/dist/core/experimental.d.ts.map +0 -1
  170. package/dist/core/experimental.js +0 -6
  171. package/dist/core/experimental.js.map +0 -1
  172. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  173. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  174. package/dist/core/export-html/ansi-to-html.js +0 -249
  175. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  176. package/dist/core/export-html/index.d.ts +0 -37
  177. package/dist/core/export-html/index.d.ts.map +0 -1
  178. package/dist/core/export-html/index.js +0 -226
  179. package/dist/core/export-html/index.js.map +0 -1
  180. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  181. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  182. package/dist/core/export-html/tool-renderer.js +0 -109
  183. package/dist/core/export-html/tool-renderer.js.map +0 -1
  184. package/dist/core/extensions/compat-check.d.ts +0 -26
  185. package/dist/core/extensions/compat-check.d.ts.map +0 -1
  186. package/dist/core/extensions/compat-check.js +0 -129
  187. package/dist/core/extensions/compat-check.js.map +0 -1
  188. package/dist/core/extensions/index.d.ts +0 -12
  189. package/dist/core/extensions/index.d.ts.map +0 -1
  190. package/dist/core/extensions/index.js +0 -9
  191. package/dist/core/extensions/index.js.map +0 -1
  192. package/dist/core/extensions/jiti-loader.d.ts +0 -2
  193. package/dist/core/extensions/jiti-loader.d.ts.map +0 -1
  194. package/dist/core/extensions/jiti-loader.js +0 -4
  195. package/dist/core/extensions/jiti-loader.js.map +0 -1
  196. package/dist/core/extensions/jiti-static-loader.d.ts +0 -2
  197. package/dist/core/extensions/jiti-static-loader.d.ts.map +0 -1
  198. package/dist/core/extensions/jiti-static-loader.js +0 -4
  199. package/dist/core/extensions/jiti-static-loader.js.map +0 -1
  200. package/dist/core/extensions/loader.d.ts +0 -23
  201. package/dist/core/extensions/loader.d.ts.map +0 -1
  202. package/dist/core/extensions/loader.js +0 -689
  203. package/dist/core/extensions/loader.js.map +0 -1
  204. package/dist/core/extensions/runner.d.ts +0 -204
  205. package/dist/core/extensions/runner.d.ts.map +0 -1
  206. package/dist/core/extensions/runner.js +0 -1207
  207. package/dist/core/extensions/runner.js.map +0 -1
  208. package/dist/core/extensions/types.d.ts +0 -1623
  209. package/dist/core/extensions/types.d.ts.map +0 -1
  210. package/dist/core/extensions/types.js +0 -48
  211. package/dist/core/extensions/types.js.map +0 -1
  212. package/dist/core/extensions/virtual-modules.d.ts +0 -3
  213. package/dist/core/extensions/virtual-modules.d.ts.map +0 -1
  214. package/dist/core/extensions/virtual-modules.js +0 -38
  215. package/dist/core/extensions/virtual-modules.js.map +0 -1
  216. package/dist/core/extensions/wrapper.d.ts +0 -20
  217. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  218. package/dist/core/extensions/wrapper.js +0 -22
  219. package/dist/core/extensions/wrapper.js.map +0 -1
  220. package/dist/core/footer-data-provider.d.ts +0 -64
  221. package/dist/core/footer-data-provider.d.ts.map +0 -1
  222. package/dist/core/footer-data-provider.js +0 -338
  223. package/dist/core/footer-data-provider.js.map +0 -1
  224. package/dist/core/http-dispatcher.d.ts +0 -22
  225. package/dist/core/http-dispatcher.d.ts.map +0 -1
  226. package/dist/core/http-dispatcher.js +0 -98
  227. package/dist/core/http-dispatcher.js.map +0 -1
  228. package/dist/core/index.d.ts +0 -14
  229. package/dist/core/index.d.ts.map +0 -1
  230. package/dist/core/index.js +0 -13
  231. package/dist/core/index.js.map +0 -1
  232. package/dist/core/keybindings.d.ts +0 -428
  233. package/dist/core/keybindings.d.ts.map +0 -1
  234. package/dist/core/keybindings.js +0 -321
  235. package/dist/core/keybindings.js.map +0 -1
  236. package/dist/core/messages.d.ts +0 -77
  237. package/dist/core/messages.d.ts.map +0 -1
  238. package/dist/core/messages.js +0 -124
  239. package/dist/core/messages.js.map +0 -1
  240. package/dist/core/model-config.d.ts +0 -760
  241. package/dist/core/model-config.d.ts.map +0 -1
  242. package/dist/core/model-config.js +0 -294
  243. package/dist/core/model-config.js.map +0 -1
  244. package/dist/core/model-registry.d.ts +0 -61
  245. package/dist/core/model-registry.d.ts.map +0 -1
  246. package/dist/core/model-registry.js +0 -140
  247. package/dist/core/model-registry.js.map +0 -1
  248. package/dist/core/model-resolver.d.ts +0 -124
  249. package/dist/core/model-resolver.d.ts.map +0 -1
  250. package/dist/core/model-resolver.js +0 -590
  251. package/dist/core/model-resolver.js.map +0 -1
  252. package/dist/core/model-runtime.d.ts +0 -145
  253. package/dist/core/model-runtime.d.ts.map +0 -1
  254. package/dist/core/model-runtime.js +0 -758
  255. package/dist/core/model-runtime.js.map +0 -1
  256. package/dist/core/models-store.d.ts +0 -22
  257. package/dist/core/models-store.d.ts.map +0 -1
  258. package/dist/core/models-store.js +0 -115
  259. package/dist/core/models-store.js.map +0 -1
  260. package/dist/core/nested-tool-calls.d.ts +0 -102
  261. package/dist/core/nested-tool-calls.d.ts.map +0 -1
  262. package/dist/core/nested-tool-calls.js +0 -178
  263. package/dist/core/nested-tool-calls.js.map +0 -1
  264. package/dist/core/output-guard.d.ts +0 -7
  265. package/dist/core/output-guard.d.ts.map +0 -1
  266. package/dist/core/output-guard.js +0 -89
  267. package/dist/core/output-guard.js.map +0 -1
  268. package/dist/core/package-manager.d.ts +0 -222
  269. package/dist/core/package-manager.d.ts.map +0 -1
  270. package/dist/core/package-manager.js +0 -2258
  271. package/dist/core/package-manager.js.map +0 -1
  272. package/dist/core/pi-manifest.d.ts +0 -8
  273. package/dist/core/pi-manifest.d.ts.map +0 -1
  274. package/dist/core/pi-manifest.js +0 -26
  275. package/dist/core/pi-manifest.js.map +0 -1
  276. package/dist/core/project-trust.d.ts +0 -15
  277. package/dist/core/project-trust.d.ts.map +0 -1
  278. package/dist/core/project-trust.js +0 -59
  279. package/dist/core/project-trust.js.map +0 -1
  280. package/dist/core/prompt-templates.d.ts +0 -59
  281. package/dist/core/prompt-templates.d.ts.map +0 -1
  282. package/dist/core/prompt-templates.js +0 -262
  283. package/dist/core/prompt-templates.js.map +0 -1
  284. package/dist/core/provider-attribution.d.ts +0 -4
  285. package/dist/core/provider-attribution.d.ts.map +0 -1
  286. package/dist/core/provider-attribution.js +0 -72
  287. package/dist/core/provider-attribution.js.map +0 -1
  288. package/dist/core/provider-composer.d.ts +0 -80
  289. package/dist/core/provider-composer.d.ts.map +0 -1
  290. package/dist/core/provider-composer.js +0 -488
  291. package/dist/core/provider-composer.js.map +0 -1
  292. package/dist/core/radius.d.ts +0 -5
  293. package/dist/core/radius.d.ts.map +0 -1
  294. package/dist/core/radius.js +0 -9
  295. package/dist/core/radius.js.map +0 -1
  296. package/dist/core/remote-catalog-provider.d.ts +0 -12
  297. package/dist/core/remote-catalog-provider.d.ts.map +0 -1
  298. package/dist/core/remote-catalog-provider.js +0 -132
  299. package/dist/core/remote-catalog-provider.js.map +0 -1
  300. package/dist/core/resolve-config-value.d.ts +0 -30
  301. package/dist/core/resolve-config-value.d.ts.map +0 -1
  302. package/dist/core/resolve-config-value.js +0 -247
  303. package/dist/core/resolve-config-value.js.map +0 -1
  304. package/dist/core/resource-loader.d.ts +0 -227
  305. package/dist/core/resource-loader.d.ts.map +0 -1
  306. package/dist/core/resource-loader.js +0 -1008
  307. package/dist/core/resource-loader.js.map +0 -1
  308. package/dist/core/runtime-credentials.d.ts +0 -15
  309. package/dist/core/runtime-credentials.d.ts.map +0 -1
  310. package/dist/core/runtime-credentials.js +0 -39
  311. package/dist/core/runtime-credentials.js.map +0 -1
  312. package/dist/core/sdk.d.ts +0 -108
  313. package/dist/core/sdk.d.ts.map +0 -1
  314. package/dist/core/sdk.js +0 -315
  315. package/dist/core/sdk.js.map +0 -1
  316. package/dist/core/session-cwd.d.ts +0 -19
  317. package/dist/core/session-cwd.d.ts.map +0 -1
  318. package/dist/core/session-cwd.js +0 -38
  319. package/dist/core/session-cwd.js.map +0 -1
  320. package/dist/core/session-export.d.ts +0 -8
  321. package/dist/core/session-export.d.ts.map +0 -1
  322. package/dist/core/session-export.js +0 -33
  323. package/dist/core/session-export.js.map +0 -1
  324. package/dist/core/session-manager.d.ts +0 -416
  325. package/dist/core/session-manager.d.ts.map +0 -1
  326. package/dist/core/session-manager.js +0 -1537
  327. package/dist/core/session-manager.js.map +0 -1
  328. package/dist/core/settings-diagnostics.d.ts +0 -9
  329. package/dist/core/settings-diagnostics.d.ts.map +0 -1
  330. package/dist/core/settings-diagnostics.js +0 -21
  331. package/dist/core/settings-diagnostics.js.map +0 -1
  332. package/dist/core/settings-manager.d.ts +0 -362
  333. package/dist/core/settings-manager.d.ts.map +0 -1
  334. package/dist/core/settings-manager.js +0 -1107
  335. package/dist/core/settings-manager.js.map +0 -1
  336. package/dist/core/skills.d.ts +0 -60
  337. package/dist/core/skills.d.ts.map +0 -1
  338. package/dist/core/skills.js +0 -407
  339. package/dist/core/skills.js.map +0 -1
  340. package/dist/core/slash-commands.d.ts +0 -15
  341. package/dist/core/slash-commands.d.ts.map +0 -1
  342. package/dist/core/slash-commands.js +0 -28
  343. package/dist/core/slash-commands.js.map +0 -1
  344. package/dist/core/source-info.d.ts +0 -26
  345. package/dist/core/source-info.d.ts.map +0 -1
  346. package/dist/core/source-info.js +0 -35
  347. package/dist/core/source-info.js.map +0 -1
  348. package/dist/core/system-prompt.d.ts +0 -71
  349. package/dist/core/system-prompt.d.ts.map +0 -1
  350. package/dist/core/system-prompt.js +0 -147
  351. package/dist/core/system-prompt.js.map +0 -1
  352. package/dist/core/telemetry.d.ts +0 -3
  353. package/dist/core/telemetry.d.ts.map +0 -1
  354. package/dist/core/telemetry.js +0 -10
  355. package/dist/core/telemetry.js.map +0 -1
  356. package/dist/core/timings.d.ts +0 -6
  357. package/dist/core/timings.d.ts.map +0 -1
  358. package/dist/core/timings.js +0 -42
  359. package/dist/core/timings.js.map +0 -1
  360. package/dist/core/tools/bash.d.ts +0 -101
  361. package/dist/core/tools/bash.d.ts.map +0 -1
  362. package/dist/core/tools/bash.js +0 -348
  363. package/dist/core/tools/bash.js.map +0 -1
  364. package/dist/core/tools/edit-diff.d.ts +0 -101
  365. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  366. package/dist/core/tools/edit-diff.js +0 -421
  367. package/dist/core/tools/edit-diff.js.map +0 -1
  368. package/dist/core/tools/edit.d.ts +0 -44
  369. package/dist/core/tools/edit.d.ts.map +0 -1
  370. package/dist/core/tools/edit.js +0 -147
  371. package/dist/core/tools/edit.js.map +0 -1
  372. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  373. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  374. package/dist/core/tools/file-mutation-queue.js +0 -52
  375. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  376. package/dist/core/tools/find.d.ts +0 -42
  377. package/dist/core/tools/find.d.ts.map +0 -1
  378. package/dist/core/tools/find.js +0 -251
  379. package/dist/core/tools/find.js.map +0 -1
  380. package/dist/core/tools/grep.d.ts +0 -41
  381. package/dist/core/tools/grep.d.ts.map +0 -1
  382. package/dist/core/tools/grep.js +0 -252
  383. package/dist/core/tools/grep.js.map +0 -1
  384. package/dist/core/tools/index.d.ts +0 -43
  385. package/dist/core/tools/index.d.ts.map +0 -1
  386. package/dist/core/tools/index.js +0 -129
  387. package/dist/core/tools/index.js.map +0 -1
  388. package/dist/core/tools/ls.d.ts +0 -41
  389. package/dist/core/tools/ls.d.ts.map +0 -1
  390. package/dist/core/tools/ls.js +0 -126
  391. package/dist/core/tools/ls.js.map +0 -1
  392. package/dist/core/tools/output-accumulator.d.ts +0 -63
  393. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  394. package/dist/core/tools/output-accumulator.js +0 -220
  395. package/dist/core/tools/output-accumulator.js.map +0 -1
  396. package/dist/core/tools/path-utils.d.ts +0 -10
  397. package/dist/core/tools/path-utils.d.ts.map +0 -1
  398. package/dist/core/tools/path-utils.js +0 -99
  399. package/dist/core/tools/path-utils.js.map +0 -1
  400. package/dist/core/tools/powershell.d.ts +0 -16
  401. package/dist/core/tools/powershell.d.ts.map +0 -1
  402. package/dist/core/tools/powershell.js +0 -39
  403. package/dist/core/tools/powershell.js.map +0 -1
  404. package/dist/core/tools/read.d.ts +0 -42
  405. package/dist/core/tools/read.d.ts.map +0 -1
  406. package/dist/core/tools/read.js +0 -169
  407. package/dist/core/tools/read.js.map +0 -1
  408. package/dist/core/tools/render-utils.d.ts +0 -30
  409. package/dist/core/tools/render-utils.d.ts.map +0 -1
  410. package/dist/core/tools/render-utils.js +0 -91
  411. package/dist/core/tools/render-utils.js.map +0 -1
  412. package/dist/core/tools/renderers/bash.d.ts +0 -12
  413. package/dist/core/tools/renderers/bash.d.ts.map +0 -1
  414. package/dist/core/tools/renderers/bash.js +0 -117
  415. package/dist/core/tools/renderers/bash.js.map +0 -1
  416. package/dist/core/tools/renderers/edit.d.ts +0 -23
  417. package/dist/core/tools/renderers/edit.d.ts.map +0 -1
  418. package/dist/core/tools/renderers/edit.js +0 -168
  419. package/dist/core/tools/renderers/edit.js.map +0 -1
  420. package/dist/core/tools/renderers/find.d.ts +0 -10
  421. package/dist/core/tools/renderers/find.d.ts.map +0 -1
  422. package/dist/core/tools/renderers/find.js +0 -64
  423. package/dist/core/tools/renderers/find.js.map +0 -1
  424. package/dist/core/tools/renderers/grep.d.ts +0 -10
  425. package/dist/core/tools/renderers/grep.d.ts.map +0 -1
  426. package/dist/core/tools/renderers/grep.js +0 -69
  427. package/dist/core/tools/renderers/grep.js.map +0 -1
  428. package/dist/core/tools/renderers/index.d.ts +0 -28
  429. package/dist/core/tools/renderers/index.d.ts.map +0 -1
  430. package/dist/core/tools/renderers/index.js +0 -47
  431. package/dist/core/tools/renderers/index.js.map +0 -1
  432. package/dist/core/tools/renderers/ls.d.ts +0 -10
  433. package/dist/core/tools/renderers/ls.d.ts.map +0 -1
  434. package/dist/core/tools/renderers/ls.js +0 -58
  435. package/dist/core/tools/renderers/ls.js.map +0 -1
  436. package/dist/core/tools/renderers/read.d.ts +0 -11
  437. package/dist/core/tools/renderers/read.d.ts.map +0 -1
  438. package/dist/core/tools/renderers/read.js +0 -130
  439. package/dist/core/tools/renderers/read.js.map +0 -1
  440. package/dist/core/tools/renderers/write.d.ts +0 -10
  441. package/dist/core/tools/renderers/write.d.ts.map +0 -1
  442. package/dist/core/tools/renderers/write.js +0 -153
  443. package/dist/core/tools/renderers/write.js.map +0 -1
  444. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -16
  445. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  446. package/dist/core/tools/tool-definition-wrapper.js +0 -38
  447. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  448. package/dist/core/tools/truncate.d.ts +0 -84
  449. package/dist/core/tools/truncate.d.ts.map +0 -1
  450. package/dist/core/tools/truncate.js +0 -244
  451. package/dist/core/tools/truncate.js.map +0 -1
  452. package/dist/core/tools/write.d.ts +0 -30
  453. package/dist/core/tools/write.d.ts.map +0 -1
  454. package/dist/core/tools/write.js +0 -61
  455. package/dist/core/tools/write.js.map +0 -1
  456. package/dist/core/trust-manager.d.ts +0 -36
  457. package/dist/core/trust-manager.d.ts.map +0 -1
  458. package/dist/core/trust-manager.js +0 -203
  459. package/dist/core/trust-manager.js.map +0 -1
  460. package/dist/core/usage-totals.d.ts +0 -21
  461. package/dist/core/usage-totals.d.ts.map +0 -1
  462. package/dist/core/usage-totals.js +0 -79
  463. package/dist/core/usage-totals.js.map +0 -1
  464. package/dist/core/virtual-models.d.ts +0 -117
  465. package/dist/core/virtual-models.d.ts.map +0 -1
  466. package/dist/core/virtual-models.js +0 -124
  467. package/dist/core/virtual-models.js.map +0 -1
  468. package/dist/extensions/index.d.ts +0 -3
  469. package/dist/extensions/index.d.ts.map +0 -1
  470. package/dist/extensions/index.js +0 -3
  471. package/dist/extensions/index.js.map +0 -1
  472. package/dist/extensions/llama/client.d.ts +0 -69
  473. package/dist/extensions/llama/client.d.ts.map +0 -1
  474. package/dist/extensions/llama/client.js +0 -313
  475. package/dist/extensions/llama/client.js.map +0 -1
  476. package/dist/extensions/llama/huggingface.d.ts +0 -23
  477. package/dist/extensions/llama/huggingface.d.ts.map +0 -1
  478. package/dist/extensions/llama/huggingface.js +0 -141
  479. package/dist/extensions/llama/huggingface.js.map +0 -1
  480. package/dist/extensions/llama/index.d.ts +0 -3
  481. package/dist/extensions/llama/index.d.ts.map +0 -1
  482. package/dist/extensions/llama/index.js +0 -219
  483. package/dist/extensions/llama/index.js.map +0 -1
  484. package/dist/extensions/llama/provider.d.ts +0 -12
  485. package/dist/extensions/llama/provider.d.ts.map +0 -1
  486. package/dist/extensions/llama/provider.js +0 -213
  487. package/dist/extensions/llama/provider.js.map +0 -1
  488. package/dist/extensions/llama/ui.d.ts +0 -42
  489. package/dist/extensions/llama/ui.d.ts.map +0 -1
  490. package/dist/extensions/llama/ui.js +0 -416
  491. package/dist/extensions/llama/ui.js.map +0 -1
  492. package/dist/index.d.ts +0 -38
  493. package/dist/index.d.ts.map +0 -1
  494. package/dist/index.js +0 -49
  495. package/dist/index.js.map +0 -1
  496. package/dist/main.d.ts +0 -16
  497. package/dist/main.d.ts.map +0 -1
  498. package/dist/main.js +0 -819
  499. package/dist/main.js.map +0 -1
  500. package/dist/migrations.d.ts +0 -33
  501. package/dist/migrations.d.ts.map +0 -1
  502. package/dist/migrations.js +0 -282
  503. package/dist/migrations.js.map +0 -1
  504. package/dist/modes/index.d.ts +0 -10
  505. package/dist/modes/index.d.ts.map +0 -1
  506. package/dist/modes/index.js +0 -8
  507. package/dist/modes/index.js.map +0 -1
  508. package/dist/modes/interactive/bug-report.d.ts +0 -16
  509. package/dist/modes/interactive/bug-report.d.ts.map +0 -1
  510. package/dist/modes/interactive/bug-report.js +0 -210
  511. package/dist/modes/interactive/bug-report.js.map +0 -1
  512. package/dist/modes/interactive/chat-viewport.d.ts +0 -20
  513. package/dist/modes/interactive/chat-viewport.d.ts.map +0 -1
  514. package/dist/modes/interactive/chat-viewport.js +0 -28
  515. package/dist/modes/interactive/chat-viewport.js.map +0 -1
  516. package/dist/modes/interactive/components/armin.d.ts +0 -37
  517. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  518. package/dist/modes/interactive/components/armin.js +0 -335
  519. package/dist/modes/interactive/components/armin.js.map +0 -1
  520. package/dist/modes/interactive/components/assistant-message.d.ts +0 -26
  521. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  522. package/dist/modes/interactive/components/assistant-message.js +0 -158
  523. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  524. package/dist/modes/interactive/components/bash-execution.d.ts +0 -38
  525. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  526. package/dist/modes/interactive/components/bash-execution.js +0 -178
  527. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  528. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  529. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  530. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  531. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  532. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -17
  533. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  534. package/dist/modes/interactive/components/branch-summary-message.js +0 -54
  535. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  536. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -17
  537. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  538. package/dist/modes/interactive/components/compaction-summary-message.js +0 -55
  539. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  540. package/dist/modes/interactive/components/config-selector.d.ts +0 -102
  541. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  542. package/dist/modes/interactive/components/config-selector.js +0 -771
  543. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  544. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  545. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  546. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  547. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  548. package/dist/modes/interactive/components/custom-editor.d.ts +0 -30
  549. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  550. package/dist/modes/interactive/components/custom-editor.js +0 -115
  551. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  552. package/dist/modes/interactive/components/custom-entry.d.ts +0 -21
  553. package/dist/modes/interactive/components/custom-entry.d.ts.map +0 -1
  554. package/dist/modes/interactive/components/custom-entry.js +0 -58
  555. package/dist/modes/interactive/components/custom-entry.js.map +0 -1
  556. package/dist/modes/interactive/components/custom-message.d.ts +0 -22
  557. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  558. package/dist/modes/interactive/components/custom-message.js +0 -88
  559. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  560. package/dist/modes/interactive/components/diff.d.ts +0 -12
  561. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  562. package/dist/modes/interactive/components/diff.js +0 -133
  563. package/dist/modes/interactive/components/diff.js.map +0 -1
  564. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  565. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  566. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  567. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  568. package/dist/modes/interactive/components/e-logo.d.ts +0 -16
  569. package/dist/modes/interactive/components/e-logo.d.ts.map +0 -1
  570. package/dist/modes/interactive/components/e-logo.js +0 -29
  571. package/dist/modes/interactive/components/e-logo.js.map +0 -1
  572. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  573. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  574. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  575. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  576. package/dist/modes/interactive/components/easter-egg-3d.d.ts +0 -104
  577. package/dist/modes/interactive/components/easter-egg-3d.d.ts.map +0 -1
  578. package/dist/modes/interactive/components/easter-egg-3d.js +0 -1138
  579. package/dist/modes/interactive/components/easter-egg-3d.js.map +0 -1
  580. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts +0 -6
  581. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts.map +0 -1
  582. package/dist/modes/interactive/components/easter-egg-3d.lazy.js +0 -23
  583. package/dist/modes/interactive/components/easter-egg-3d.lazy.js.map +0 -1
  584. package/dist/modes/interactive/components/extension-editor.d.ts +0 -24
  585. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  586. package/dist/modes/interactive/components/extension-editor.js +0 -103
  587. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  588. package/dist/modes/interactive/components/extension-input.d.ts +0 -25
  589. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  590. package/dist/modes/interactive/components/extension-input.js +0 -67
  591. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  592. package/dist/modes/interactive/components/extension-selector.d.ts +0 -27
  593. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  594. package/dist/modes/interactive/components/extension-selector.js +0 -87
  595. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  596. package/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  597. package/dist/modes/interactive/components/first-time-setup.d.ts.map +0 -1
  598. package/dist/modes/interactive/components/first-time-setup.js +0 -109
  599. package/dist/modes/interactive/components/first-time-setup.js.map +0 -1
  600. package/dist/modes/interactive/components/footer.d.ts +0 -39
  601. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  602. package/dist/modes/interactive/components/footer.js +0 -265
  603. package/dist/modes/interactive/components/footer.js.map +0 -1
  604. package/dist/modes/interactive/components/index.d.ts +0 -33
  605. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  606. package/dist/modes/interactive/components/index.js +0 -34
  607. package/dist/modes/interactive/components/index.js.map +0 -1
  608. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  609. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  610. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  611. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  612. package/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  613. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  614. package/dist/modes/interactive/components/login-dialog.js +0 -188
  615. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  616. package/dist/modes/interactive/components/markdown-transform.d.ts +0 -3
  617. package/dist/modes/interactive/components/markdown-transform.d.ts.map +0 -1
  618. package/dist/modes/interactive/components/markdown-transform.js +0 -19
  619. package/dist/modes/interactive/components/markdown-transform.js.map +0 -1
  620. package/dist/modes/interactive/components/mermaid.d.ts +0 -11
  621. package/dist/modes/interactive/components/mermaid.d.ts.map +0 -1
  622. package/dist/modes/interactive/components/mermaid.js +0 -75
  623. package/dist/modes/interactive/components/mermaid.js.map +0 -1
  624. package/dist/modes/interactive/components/model-selector.d.ts +0 -60
  625. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  626. package/dist/modes/interactive/components/model-selector.js +0 -361
  627. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  628. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  629. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  630. package/dist/modes/interactive/components/oauth-selector.js +0 -163
  631. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  632. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -46
  633. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  634. package/dist/modes/interactive/components/scoped-models-selector.js +0 -326
  635. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  636. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  637. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  638. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  639. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  640. package/dist/modes/interactive/components/session-selector.d.ts +0 -95
  641. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  642. package/dist/modes/interactive/components/session-selector.js +0 -893
  643. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  644. package/dist/modes/interactive/components/settings-selector.d.ts +0 -96
  645. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  646. package/dist/modes/interactive/components/settings-selector.js +0 -742
  647. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  648. package/dist/modes/interactive/components/settings-submenu.d.ts +0 -72
  649. package/dist/modes/interactive/components/settings-submenu.d.ts.map +0 -1
  650. package/dist/modes/interactive/components/settings-submenu.js +0 -165
  651. package/dist/modes/interactive/components/settings-submenu.js.map +0 -1
  652. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  653. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  654. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  655. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  656. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -18
  657. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  658. package/dist/modes/interactive/components/skill-invocation-message.js +0 -57
  659. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  660. package/dist/modes/interactive/components/status-indicator.d.ts +0 -30
  661. package/dist/modes/interactive/components/status-indicator.d.ts.map +0 -1
  662. package/dist/modes/interactive/components/status-indicator.js +0 -67
  663. package/dist/modes/interactive/components/status-indicator.js.map +0 -1
  664. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  665. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  666. package/dist/modes/interactive/components/theme-selector.js +0 -50
  667. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  668. package/dist/modes/interactive/components/themed-text.d.ts +0 -17
  669. package/dist/modes/interactive/components/themed-text.d.ts.map +0 -1
  670. package/dist/modes/interactive/components/themed-text.js +0 -29
  671. package/dist/modes/interactive/components/themed-text.js.map +0 -1
  672. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -23
  673. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  674. package/dist/modes/interactive/components/thinking-selector.js +0 -109
  675. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  676. package/dist/modes/interactive/components/tool-execution.d.ts +0 -83
  677. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  678. package/dist/modes/interactive/components/tool-execution.js +0 -323
  679. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  680. package/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  681. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  682. package/dist/modes/interactive/components/tree-selector.js +0 -1254
  683. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  684. package/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  685. package/dist/modes/interactive/components/trust-selector.d.ts.map +0 -1
  686. package/dist/modes/interactive/components/trust-selector.js +0 -91
  687. package/dist/modes/interactive/components/trust-selector.js.map +0 -1
  688. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  689. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  690. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  691. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  692. package/dist/modes/interactive/components/user-message.d.ts +0 -16
  693. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  694. package/dist/modes/interactive/components/user-message.js +0 -50
  695. package/dist/modes/interactive/components/user-message.js.map +0 -1
  696. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -48
  697. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  698. package/dist/modes/interactive/components/visual-truncate.js +0 -66
  699. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  700. package/dist/modes/interactive/external-editor.d.ts +0 -12
  701. package/dist/modes/interactive/external-editor.d.ts.map +0 -1
  702. package/dist/modes/interactive/external-editor.js +0 -38
  703. package/dist/modes/interactive/external-editor.js.map +0 -1
  704. package/dist/modes/interactive/interactive-mode.d.ts +0 -470
  705. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  706. package/dist/modes/interactive/interactive-mode.js +0 -5795
  707. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  708. package/dist/modes/interactive/model-catalog-refresh.d.ts +0 -7
  709. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
  710. package/dist/modes/interactive/model-catalog-refresh.js +0 -34
  711. package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
  712. package/dist/modes/interactive/model-search.d.ts +0 -12
  713. package/dist/modes/interactive/model-search.d.ts.map +0 -1
  714. package/dist/modes/interactive/model-search.js +0 -15
  715. package/dist/modes/interactive/model-search.js.map +0 -1
  716. package/dist/modes/interactive/session-share.d.ts +0 -18
  717. package/dist/modes/interactive/session-share.d.ts.map +0 -1
  718. package/dist/modes/interactive/session-share.js +0 -188
  719. package/dist/modes/interactive/session-share.js.map +0 -1
  720. package/dist/modes/interactive/theme/system-theme.d.ts +0 -55
  721. package/dist/modes/interactive/theme/system-theme.d.ts.map +0 -1
  722. package/dist/modes/interactive/theme/system-theme.js +0 -546
  723. package/dist/modes/interactive/theme/system-theme.js.map +0 -1
  724. package/dist/modes/interactive/theme/theme-controller.d.ts +0 -81
  725. package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
  726. package/dist/modes/interactive/theme/theme-controller.js +0 -210
  727. package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
  728. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  729. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  730. package/dist/modes/interactive/theme/theme-json.js +0 -132
  731. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  732. package/dist/modes/interactive/theme/theme.d.ts +0 -158
  733. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  734. package/dist/modes/interactive/theme/theme.js +0 -913
  735. package/dist/modes/interactive/theme/theme.js.map +0 -1
  736. package/dist/modes/interactive/tui-renderer.d.ts +0 -22
  737. package/dist/modes/interactive/tui-renderer.d.ts.map +0 -1
  738. package/dist/modes/interactive/tui-renderer.js +0 -67
  739. package/dist/modes/interactive/tui-renderer.js.map +0 -1
  740. package/dist/modes/json-event.d.ts +0 -34
  741. package/dist/modes/json-event.d.ts.map +0 -1
  742. package/dist/modes/json-event.js +0 -29
  743. package/dist/modes/json-event.js.map +0 -1
  744. package/dist/modes/print-mode.d.ts +0 -28
  745. package/dist/modes/print-mode.d.ts.map +0 -1
  746. package/dist/modes/print-mode.js +0 -142
  747. package/dist/modes/print-mode.js.map +0 -1
  748. package/dist/modes/rpc/jsonl.d.ts +0 -17
  749. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  750. package/dist/modes/rpc/jsonl.js +0 -49
  751. package/dist/modes/rpc/jsonl.js.map +0 -1
  752. package/dist/modes/rpc/rpc-client.d.ts +0 -254
  753. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  754. package/dist/modes/rpc/rpc-client.js +0 -499
  755. package/dist/modes/rpc/rpc-client.js.map +0 -1
  756. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  757. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  758. package/dist/modes/rpc/rpc-mode.js +0 -655
  759. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  760. package/dist/modes/rpc/rpc-types.d.ts +0 -478
  761. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  762. package/dist/modes/rpc/rpc-types.js +0 -8
  763. package/dist/modes/rpc/rpc-types.js.map +0 -1
  764. package/dist/package-manager-cli.d.ts +0 -9
  765. package/dist/package-manager-cli.d.ts.map +0 -1
  766. package/dist/package-manager-cli.js +0 -1003
  767. package/dist/package-manager-cli.js.map +0 -1
  768. package/dist/rpc-entry.d.ts +0 -3
  769. package/dist/rpc-entry.d.ts.map +0 -1
  770. package/dist/rpc-entry.js +0 -11
  771. package/dist/rpc-entry.js.map +0 -1
  772. package/dist/utils/abort.d.ts +0 -5
  773. package/dist/utils/abort.d.ts.map +0 -1
  774. package/dist/utils/abort.js +0 -48
  775. package/dist/utils/abort.js.map +0 -1
  776. package/dist/utils/ansi.d.ts +0 -10
  777. package/dist/utils/ansi.d.ts.map +0 -1
  778. package/dist/utils/ansi.js +0 -71
  779. package/dist/utils/ansi.js.map +0 -1
  780. package/dist/utils/changelog.d.ts +0 -22
  781. package/dist/utils/changelog.d.ts.map +0 -1
  782. package/dist/utils/changelog.js +0 -165
  783. package/dist/utils/changelog.js.map +0 -1
  784. package/dist/utils/child-process.d.ts +0 -18
  785. package/dist/utils/child-process.d.ts.map +0 -1
  786. package/dist/utils/child-process.js +0 -106
  787. package/dist/utils/child-process.js.map +0 -1
  788. package/dist/utils/clipboard-command.d.ts +0 -7
  789. package/dist/utils/clipboard-command.d.ts.map +0 -1
  790. package/dist/utils/clipboard-command.js +0 -45
  791. package/dist/utils/clipboard-command.js.map +0 -1
  792. package/dist/utils/clipboard-image.d.ts +0 -11
  793. package/dist/utils/clipboard-image.d.ts.map +0 -1
  794. package/dist/utils/clipboard-image.js +0 -214
  795. package/dist/utils/clipboard-image.js.map +0 -1
  796. package/dist/utils/clipboard.d.ts +0 -6
  797. package/dist/utils/clipboard.d.ts.map +0 -1
  798. package/dist/utils/clipboard.js +0 -157
  799. package/dist/utils/clipboard.js.map +0 -1
  800. package/dist/utils/deprecation.d.ts +0 -4
  801. package/dist/utils/deprecation.d.ts.map +0 -1
  802. package/dist/utils/deprecation.js +0 -13
  803. package/dist/utils/deprecation.js.map +0 -1
  804. package/dist/utils/exif-orientation.d.ts +0 -5
  805. package/dist/utils/exif-orientation.d.ts.map +0 -1
  806. package/dist/utils/exif-orientation.js +0 -157
  807. package/dist/utils/exif-orientation.js.map +0 -1
  808. package/dist/utils/frontmatter.d.ts +0 -8
  809. package/dist/utils/frontmatter.d.ts.map +0 -1
  810. package/dist/utils/frontmatter.js +0 -27
  811. package/dist/utils/frontmatter.js.map +0 -1
  812. package/dist/utils/fs-watch.d.ts +0 -5
  813. package/dist/utils/fs-watch.d.ts.map +0 -1
  814. package/dist/utils/fs-watch.js +0 -25
  815. package/dist/utils/fs-watch.js.map +0 -1
  816. package/dist/utils/git.d.ts +0 -26
  817. package/dist/utils/git.d.ts.map +0 -1
  818. package/dist/utils/git.js +0 -195
  819. package/dist/utils/git.js.map +0 -1
  820. package/dist/utils/html.d.ts +0 -7
  821. package/dist/utils/html.d.ts.map +0 -1
  822. package/dist/utils/html.js +0 -40
  823. package/dist/utils/html.js.map +0 -1
  824. package/dist/utils/image-convert.d.ts +0 -22
  825. package/dist/utils/image-convert.d.ts.map +0 -1
  826. package/dist/utils/image-convert.js +0 -84
  827. package/dist/utils/image-convert.js.map +0 -1
  828. package/dist/utils/image-process.d.ts +0 -18
  829. package/dist/utils/image-process.d.ts.map +0 -1
  830. package/dist/utils/image-process.js +0 -83
  831. package/dist/utils/image-process.js.map +0 -1
  832. package/dist/utils/image-resize-core.d.ts +0 -42
  833. package/dist/utils/image-resize-core.d.ts.map +0 -1
  834. package/dist/utils/image-resize-core.js +0 -129
  835. package/dist/utils/image-resize-core.js.map +0 -1
  836. package/dist/utils/image-resize-worker.d.ts +0 -2
  837. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  838. package/dist/utils/image-resize-worker.js +0 -32
  839. package/dist/utils/image-resize-worker.js.map +0 -1
  840. package/dist/utils/image-resize.d.ts +0 -16
  841. package/dist/utils/image-resize.d.ts.map +0 -1
  842. package/dist/utils/image-resize.js +0 -96
  843. package/dist/utils/image-resize.js.map +0 -1
  844. package/dist/utils/json.d.ts +0 -3
  845. package/dist/utils/json.d.ts.map +0 -1
  846. package/dist/utils/json.js +0 -7
  847. package/dist/utils/json.js.map +0 -1
  848. package/dist/utils/management-http.d.ts +0 -25
  849. package/dist/utils/management-http.d.ts.map +0 -1
  850. package/dist/utils/management-http.js +0 -54
  851. package/dist/utils/management-http.js.map +0 -1
  852. package/dist/utils/mime.d.ts +0 -3
  853. package/dist/utils/mime.d.ts.map +0 -1
  854. package/dist/utils/mime.js +0 -110
  855. package/dist/utils/mime.js.map +0 -1
  856. package/dist/utils/open-browser.d.ts +0 -9
  857. package/dist/utils/open-browser.d.ts.map +0 -1
  858. package/dist/utils/open-browser.js +0 -22
  859. package/dist/utils/open-browser.js.map +0 -1
  860. package/dist/utils/paths.d.ts +0 -34
  861. package/dist/utils/paths.d.ts.map +0 -1
  862. package/dist/utils/paths.js +0 -115
  863. package/dist/utils/paths.js.map +0 -1
  864. package/dist/utils/photon.d.ts +0 -21
  865. package/dist/utils/photon.d.ts.map +0 -1
  866. package/dist/utils/photon.js +0 -121
  867. package/dist/utils/photon.js.map +0 -1
  868. package/dist/utils/pi-user-agent.d.ts +0 -2
  869. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  870. package/dist/utils/pi-user-agent.js +0 -5
  871. package/dist/utils/pi-user-agent.js.map +0 -1
  872. package/dist/utils/shell.d.ts +0 -32
  873. package/dist/utils/shell.d.ts.map +0 -1
  874. package/dist/utils/shell.js +0 -189
  875. package/dist/utils/shell.js.map +0 -1
  876. package/dist/utils/sleep.d.ts +0 -5
  877. package/dist/utils/sleep.d.ts.map +0 -1
  878. package/dist/utils/sleep.js +0 -17
  879. package/dist/utils/sleep.js.map +0 -1
  880. package/dist/utils/syntax-highlight.d.ts +0 -13
  881. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  882. package/dist/utils/syntax-highlight.js +0 -184
  883. package/dist/utils/syntax-highlight.js.map +0 -1
  884. package/dist/utils/text.d.ts +0 -8
  885. package/dist/utils/text.d.ts.map +0 -1
  886. package/dist/utils/text.js +0 -9
  887. package/dist/utils/text.js.map +0 -1
  888. package/dist/utils/tool-result-images.d.ts +0 -21
  889. package/dist/utils/tool-result-images.d.ts.map +0 -1
  890. package/dist/utils/tool-result-images.js +0 -48
  891. package/dist/utils/tool-result-images.js.map +0 -1
  892. package/dist/utils/tools-manager.d.ts +0 -13
  893. package/dist/utils/tools-manager.d.ts.map +0 -1
  894. package/dist/utils/tools-manager.js +0 -343
  895. package/dist/utils/tools-manager.js.map +0 -1
  896. package/dist/utils/version-check.d.ts +0 -19
  897. package/dist/utils/version-check.d.ts.map +0 -1
  898. package/dist/utils/version-check.js +0 -72
  899. package/dist/utils/version-check.js.map +0 -1
  900. package/dist/utils/windows-self-update.d.ts +0 -3
  901. package/dist/utils/windows-self-update.d.ts.map +0 -1
  902. package/dist/utils/windows-self-update.js +0 -77
  903. package/dist/utils/windows-self-update.js.map +0 -1
  904. package/dist/utils/wsl.d.ts +0 -3
  905. package/dist/utils/wsl.d.ts.map +0 -1
  906. package/dist/utils/wsl.js +0 -15
  907. package/dist/utils/wsl.js.map +0 -1
  908. package/dist/utils/zip.d.ts +0 -7
  909. package/dist/utils/zip.d.ts.map +0 -1
  910. package/dist/utils/zip.js +0 -60
  911. 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