@eminent337/aery 0.1.62 → 0.1.64

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 (714) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +0 -0
  3. package/docs/compaction.md +0 -0
  4. package/docs/custom-provider.md +1 -1
  5. package/docs/development.md +0 -0
  6. package/docs/docs.json +0 -0
  7. package/docs/extensions.md +18 -18
  8. package/docs/images/doom-extension.png +0 -0
  9. package/docs/images/exy.png +0 -0
  10. package/docs/images/interactive-mode.png +0 -0
  11. package/docs/images/tree-view.png +0 -0
  12. package/docs/index.md +5 -5
  13. package/docs/json.md +1 -1
  14. package/docs/keybindings.md +2 -2
  15. package/docs/models.md +2 -2
  16. package/docs/packages.md +13 -13
  17. package/docs/prompt-templates.md +0 -0
  18. package/docs/providers.md +5 -5
  19. package/docs/quickstart.md +19 -19
  20. package/docs/rpc.md +3 -3
  21. package/docs/sdk.md +1 -1
  22. package/docs/session-format.md +3 -3
  23. package/docs/sessions.md +10 -10
  24. package/docs/settings.md +7 -5
  25. package/docs/shell-aliases.md +0 -0
  26. package/docs/skills.md +2 -2
  27. package/docs/terminal-setup.md +6 -6
  28. package/docs/termux.md +3 -3
  29. package/docs/themes.md +3 -3
  30. package/docs/tmux.md +1 -1
  31. package/docs/tui.md +2 -2
  32. package/docs/usage.md +33 -33
  33. package/docs/windows.md +0 -0
  34. package/examples/README.md +0 -0
  35. package/examples/extensions/README.md +3 -3
  36. package/examples/extensions/antigravity-image-gen.ts +6 -6
  37. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  38. package/examples/extensions/bash-spawn-hook.ts +1 -1
  39. package/examples/extensions/bookmark.ts +0 -0
  40. package/examples/extensions/border-status-editor.ts +0 -0
  41. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  42. package/examples/extensions/claude-rules.ts +1 -1
  43. package/examples/extensions/commands.ts +1 -1
  44. package/examples/extensions/confirm-destructive.ts +0 -0
  45. package/examples/extensions/custom-compaction.ts +1 -1
  46. package/examples/extensions/custom-footer.ts +0 -0
  47. package/examples/extensions/custom-header.ts +2 -2
  48. package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
  49. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -0
  50. package/examples/extensions/custom-provider-anthropic/package.json +0 -0
  51. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  52. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -0
  53. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -0
  54. package/examples/extensions/custom-provider-qwen-cli/index.ts +1 -1
  55. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -0
  56. package/examples/extensions/dirty-repo-guard.ts +0 -0
  57. package/examples/extensions/doom-overlay/README.md +2 -2
  58. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
  59. package/examples/extensions/doom-overlay/doom/build.sh +2 -2
  60. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
  61. package/examples/extensions/doom-overlay/doom-component.ts +0 -0
  62. package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
  63. package/examples/extensions/doom-overlay/doom-keys.ts +0 -0
  64. package/examples/extensions/doom-overlay/index.ts +1 -1
  65. package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
  66. package/examples/extensions/dynamic-resources/SKILL.md +0 -0
  67. package/examples/extensions/dynamic-resources/dynamic.json +0 -0
  68. package/examples/extensions/dynamic-resources/dynamic.md +0 -0
  69. package/examples/extensions/dynamic-resources/index.ts +0 -0
  70. package/examples/extensions/dynamic-tools.ts +0 -0
  71. package/examples/extensions/event-bus.ts +0 -0
  72. package/examples/extensions/file-trigger.ts +0 -0
  73. package/examples/extensions/git-checkpoint.ts +0 -0
  74. package/examples/extensions/github-issue-autocomplete.ts +0 -0
  75. package/examples/extensions/handoff.ts +0 -0
  76. package/examples/extensions/hello.ts +0 -0
  77. package/examples/extensions/hidden-thinking-label.ts +1 -1
  78. package/examples/extensions/inline-bash.ts +2 -2
  79. package/examples/extensions/input-transform.ts +3 -3
  80. package/examples/extensions/interactive-shell.ts +1 -1
  81. package/examples/extensions/mac-system-theme.ts +2 -2
  82. package/examples/extensions/message-renderer.ts +0 -0
  83. package/examples/extensions/minimal-mode.ts +1 -1
  84. package/examples/extensions/modal-editor.ts +1 -1
  85. package/examples/extensions/model-status.ts +1 -1
  86. package/examples/extensions/notify.ts +0 -0
  87. package/examples/extensions/overlay-qa-tests.ts +1 -1
  88. package/examples/extensions/overlay-test.ts +1 -1
  89. package/examples/extensions/permission-gate.ts +0 -0
  90. package/examples/extensions/pirate.ts +1 -1
  91. package/examples/extensions/plan-mode/README.md +0 -0
  92. package/examples/extensions/plan-mode/index.ts +0 -0
  93. package/examples/extensions/plan-mode/utils.ts +0 -0
  94. package/examples/extensions/preset.ts +12 -6
  95. package/examples/extensions/prompt-customizer.ts +1 -1
  96. package/examples/extensions/protected-paths.ts +0 -0
  97. package/examples/extensions/provider-payload.ts +1 -1
  98. package/examples/extensions/qna.ts +0 -0
  99. package/examples/extensions/question.ts +0 -0
  100. package/examples/extensions/questionnaire.ts +0 -0
  101. package/examples/extensions/rainbow-editor.ts +1 -1
  102. package/examples/extensions/reload-runtime.ts +0 -0
  103. package/examples/extensions/rpc-demo.ts +1 -1
  104. package/examples/extensions/sandbox/index.ts +8 -8
  105. package/examples/extensions/sandbox/package-lock.json +0 -0
  106. package/examples/extensions/sandbox/package.json +0 -0
  107. package/examples/extensions/send-user-message.ts +0 -0
  108. package/examples/extensions/session-name.ts +0 -0
  109. package/examples/extensions/shutdown-command.ts +5 -5
  110. package/examples/extensions/snake.ts +0 -0
  111. package/examples/extensions/space-invaders.ts +0 -0
  112. package/examples/extensions/ssh.ts +2 -2
  113. package/examples/extensions/status-line.ts +0 -0
  114. package/examples/extensions/structured-output.ts +0 -0
  115. package/examples/extensions/subagent/README.md +13 -13
  116. package/examples/extensions/subagent/agents/planner.md +0 -0
  117. package/examples/extensions/subagent/agents/reviewer.md +0 -0
  118. package/examples/extensions/subagent/agents/scout.md +0 -0
  119. package/examples/extensions/subagent/agents/worker.md +0 -0
  120. package/examples/extensions/subagent/agents.ts +1 -1
  121. package/examples/extensions/subagent/index.ts +5 -5
  122. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
  123. package/examples/extensions/subagent/prompts/implement.md +0 -0
  124. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
  125. package/examples/extensions/summarize.ts +0 -0
  126. package/examples/extensions/system-prompt-header.ts +0 -0
  127. package/examples/extensions/tic-tac-toe.ts +0 -0
  128. package/examples/extensions/timed-confirm.ts +0 -0
  129. package/examples/extensions/titlebar-spinner.ts +1 -1
  130. package/examples/extensions/todo.ts +0 -0
  131. package/examples/extensions/tool-override.ts +2 -2
  132. package/examples/extensions/tools.ts +1 -1
  133. package/examples/extensions/trigger-compact.ts +0 -0
  134. package/examples/extensions/truncated-tool.ts +1 -1
  135. package/examples/extensions/widget-placement.ts +0 -0
  136. package/examples/extensions/with-deps/index.ts +0 -0
  137. package/examples/extensions/with-deps/package-lock.json +0 -0
  138. package/examples/extensions/with-deps/package.json +0 -0
  139. package/examples/extensions/working-indicator.ts +4 -4
  140. package/examples/extensions/working-message-test.ts +1 -1
  141. package/examples/rpc-extension-ui.ts +0 -0
  142. package/examples/sdk/01-minimal.ts +1 -1
  143. package/examples/sdk/02-custom-model.ts +0 -0
  144. package/examples/sdk/03-custom-prompt.ts +1 -1
  145. package/examples/sdk/04-skills.ts +1 -1
  146. package/examples/sdk/05-tools.ts +0 -0
  147. package/examples/sdk/06-extensions.ts +2 -2
  148. package/examples/sdk/07-context-files.ts +0 -0
  149. package/examples/sdk/08-prompt-templates.ts +1 -1
  150. package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
  151. package/examples/sdk/10-settings.ts +0 -0
  152. package/examples/sdk/11-sessions.ts +0 -0
  153. package/examples/sdk/12-full-control.ts +0 -0
  154. package/examples/sdk/13-session-runtime.ts +0 -0
  155. package/examples/sdk/README.md +1 -1
  156. package/package.json +4 -4
  157. package/dist/bun/cli.d.ts +0 -3
  158. package/dist/bun/cli.d.ts.map +0 -1
  159. package/dist/bun/cli.js +0 -8
  160. package/dist/bun/cli.js.map +0 -1
  161. package/dist/bun/register-bedrock.d.ts +0 -2
  162. package/dist/bun/register-bedrock.d.ts.map +0 -1
  163. package/dist/bun/register-bedrock.js +0 -4
  164. package/dist/bun/register-bedrock.js.map +0 -1
  165. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  166. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  167. package/dist/bun/restore-sandbox-env.js +0 -32
  168. package/dist/bun/restore-sandbox-env.js.map +0 -1
  169. package/dist/cli/args.d.ts +0 -53
  170. package/dist/cli/args.d.ts.map +0 -1
  171. package/dist/cli/args.js +0 -329
  172. package/dist/cli/args.js.map +0 -1
  173. package/dist/cli/config-selector.d.ts +0 -14
  174. package/dist/cli/config-selector.d.ts.map +0 -1
  175. package/dist/cli/config-selector.js +0 -31
  176. package/dist/cli/config-selector.js.map +0 -1
  177. package/dist/cli/file-processor.d.ts +0 -15
  178. package/dist/cli/file-processor.d.ts.map +0 -1
  179. package/dist/cli/file-processor.js +0 -83
  180. package/dist/cli/file-processor.js.map +0 -1
  181. package/dist/cli/initial-message.d.ts +0 -18
  182. package/dist/cli/initial-message.d.ts.map +0 -1
  183. package/dist/cli/initial-message.js +0 -22
  184. package/dist/cli/initial-message.js.map +0 -1
  185. package/dist/cli/list-models.d.ts +0 -9
  186. package/dist/cli/list-models.d.ts.map +0 -1
  187. package/dist/cli/list-models.js +0 -98
  188. package/dist/cli/list-models.js.map +0 -1
  189. package/dist/cli/session-picker.d.ts +0 -9
  190. package/dist/cli/session-picker.d.ts.map +0 -1
  191. package/dist/cli/session-picker.js +0 -35
  192. package/dist/cli/session-picker.js.map +0 -1
  193. package/dist/cli.d.ts +0 -3
  194. package/dist/cli.d.ts.map +0 -1
  195. package/dist/cli.js +0 -19
  196. package/dist/cli.js.map +0 -1
  197. package/dist/config.d.ts +0 -86
  198. package/dist/config.d.ts.map +0 -1
  199. package/dist/config.js +0 -332
  200. package/dist/config.js.map +0 -1
  201. package/dist/core/agent-session-runtime.d.ts +0 -117
  202. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  203. package/dist/core/agent-session-runtime.js +0 -300
  204. package/dist/core/agent-session-runtime.js.map +0 -1
  205. package/dist/core/agent-session-services.d.ts +0 -86
  206. package/dist/core/agent-session-services.d.ts.map +0 -1
  207. package/dist/core/agent-session-services.js +0 -117
  208. package/dist/core/agent-session-services.js.map +0 -1
  209. package/dist/core/agent-session.d.ts +0 -595
  210. package/dist/core/agent-session.d.ts.map +0 -1
  211. package/dist/core/agent-session.js +0 -2520
  212. package/dist/core/agent-session.js.map +0 -1
  213. package/dist/core/auth-guidance.d.ts +0 -5
  214. package/dist/core/auth-guidance.d.ts.map +0 -1
  215. package/dist/core/auth-guidance.js +0 -21
  216. package/dist/core/auth-guidance.js.map +0 -1
  217. package/dist/core/auth-storage.d.ts +0 -141
  218. package/dist/core/auth-storage.d.ts.map +0 -1
  219. package/dist/core/auth-storage.js +0 -441
  220. package/dist/core/auth-storage.js.map +0 -1
  221. package/dist/core/bash-executor.d.ts +0 -32
  222. package/dist/core/bash-executor.d.ts.map +0 -1
  223. package/dist/core/bash-executor.js +0 -111
  224. package/dist/core/bash-executor.js.map +0 -1
  225. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  226. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  227. package/dist/core/compaction/branch-summarization.js +0 -243
  228. package/dist/core/compaction/branch-summarization.js.map +0 -1
  229. package/dist/core/compaction/compaction.d.ts +0 -121
  230. package/dist/core/compaction/compaction.d.ts.map +0 -1
  231. package/dist/core/compaction/compaction.js +0 -615
  232. package/dist/core/compaction/compaction.js.map +0 -1
  233. package/dist/core/compaction/index.d.ts +0 -7
  234. package/dist/core/compaction/index.d.ts.map +0 -1
  235. package/dist/core/compaction/index.js +0 -7
  236. package/dist/core/compaction/index.js.map +0 -1
  237. package/dist/core/compaction/utils.d.ts +0 -38
  238. package/dist/core/compaction/utils.d.ts.map +0 -1
  239. package/dist/core/compaction/utils.js +0 -153
  240. package/dist/core/compaction/utils.js.map +0 -1
  241. package/dist/core/defaults.d.ts +0 -3
  242. package/dist/core/defaults.d.ts.map +0 -1
  243. package/dist/core/defaults.js +0 -2
  244. package/dist/core/defaults.js.map +0 -1
  245. package/dist/core/diagnostics.d.ts +0 -15
  246. package/dist/core/diagnostics.d.ts.map +0 -1
  247. package/dist/core/diagnostics.js +0 -2
  248. package/dist/core/diagnostics.js.map +0 -1
  249. package/dist/core/event-bus.d.ts +0 -9
  250. package/dist/core/event-bus.d.ts.map +0 -1
  251. package/dist/core/event-bus.js +0 -25
  252. package/dist/core/event-bus.js.map +0 -1
  253. package/dist/core/exec.d.ts +0 -29
  254. package/dist/core/exec.d.ts.map +0 -1
  255. package/dist/core/exec.js +0 -75
  256. package/dist/core/exec.js.map +0 -1
  257. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  258. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  259. package/dist/core/export-html/ansi-to-html.js +0 -249
  260. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  261. package/dist/core/export-html/index.d.ts +0 -37
  262. package/dist/core/export-html/index.d.ts.map +0 -1
  263. package/dist/core/export-html/index.js +0 -224
  264. package/dist/core/export-html/index.js.map +0 -1
  265. package/dist/core/export-html/template.css +0 -1022
  266. package/dist/core/export-html/template.html +0 -55
  267. package/dist/core/export-html/template.js +0 -1770
  268. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  269. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  270. package/dist/core/export-html/tool-renderer.js +0 -108
  271. package/dist/core/export-html/tool-renderer.js.map +0 -1
  272. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  273. package/dist/core/export-html/vendor/marked.min.js +0 -6
  274. package/dist/core/extensions/index.d.ts +0 -12
  275. package/dist/core/extensions/index.d.ts.map +0 -1
  276. package/dist/core/extensions/index.js +0 -9
  277. package/dist/core/extensions/index.js.map +0 -1
  278. package/dist/core/extensions/loader.d.ts +0 -25
  279. package/dist/core/extensions/loader.d.ts.map +0 -1
  280. package/dist/core/extensions/loader.js +0 -476
  281. package/dist/core/extensions/loader.js.map +0 -1
  282. package/dist/core/extensions/runner.d.ts +0 -158
  283. package/dist/core/extensions/runner.d.ts.map +0 -1
  284. package/dist/core/extensions/runner.js +0 -784
  285. package/dist/core/extensions/runner.js.map +0 -1
  286. package/dist/core/extensions/types.d.ts +0 -1153
  287. package/dist/core/extensions/types.d.ts.map +0 -1
  288. package/dist/core/extensions/types.js +0 -45
  289. package/dist/core/extensions/types.js.map +0 -1
  290. package/dist/core/extensions/wrapper.d.ts +0 -20
  291. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  292. package/dist/core/extensions/wrapper.js +0 -22
  293. package/dist/core/extensions/wrapper.js.map +0 -1
  294. package/dist/core/footer-data-provider.d.ts +0 -52
  295. package/dist/core/footer-data-provider.d.ts.map +0 -1
  296. package/dist/core/footer-data-provider.js +0 -310
  297. package/dist/core/footer-data-provider.js.map +0 -1
  298. package/dist/core/index.d.ts +0 -12
  299. package/dist/core/index.d.ts.map +0 -1
  300. package/dist/core/index.js +0 -12
  301. package/dist/core/index.js.map +0 -1
  302. package/dist/core/keybindings.d.ts +0 -353
  303. package/dist/core/keybindings.d.ts.map +0 -1
  304. package/dist/core/keybindings.js +0 -295
  305. package/dist/core/keybindings.js.map +0 -1
  306. package/dist/core/messages.d.ts +0 -77
  307. package/dist/core/messages.d.ts.map +0 -1
  308. package/dist/core/messages.js +0 -123
  309. package/dist/core/messages.js.map +0 -1
  310. package/dist/core/model-registry.d.ts +0 -144
  311. package/dist/core/model-registry.d.ts.map +0 -1
  312. package/dist/core/model-registry.js +0 -699
  313. package/dist/core/model-registry.js.map +0 -1
  314. package/dist/core/model-resolver.d.ts +0 -110
  315. package/dist/core/model-resolver.d.ts.map +0 -1
  316. package/dist/core/model-resolver.js +0 -489
  317. package/dist/core/model-resolver.js.map +0 -1
  318. package/dist/core/output-guard.d.ts +0 -6
  319. package/dist/core/output-guard.d.ts.map +0 -1
  320. package/dist/core/output-guard.js +0 -59
  321. package/dist/core/output-guard.js.map +0 -1
  322. package/dist/core/package-manager.d.ts +0 -199
  323. package/dist/core/package-manager.d.ts.map +0 -1
  324. package/dist/core/package-manager.js +0 -1973
  325. package/dist/core/package-manager.js.map +0 -1
  326. package/dist/core/prompt-templates.d.ts +0 -52
  327. package/dist/core/prompt-templates.d.ts.map +0 -1
  328. package/dist/core/prompt-templates.js +0 -250
  329. package/dist/core/prompt-templates.js.map +0 -1
  330. package/dist/core/resolve-config-value.d.ts +0 -23
  331. package/dist/core/resolve-config-value.d.ts.map +0 -1
  332. package/dist/core/resolve-config-value.js +0 -126
  333. package/dist/core/resolve-config-value.js.map +0 -1
  334. package/dist/core/resource-loader.d.ts +0 -194
  335. package/dist/core/resource-loader.d.ts.map +0 -1
  336. package/dist/core/resource-loader.js +0 -727
  337. package/dist/core/resource-loader.js.map +0 -1
  338. package/dist/core/sdk.d.ts +0 -107
  339. package/dist/core/sdk.d.ts.map +0 -1
  340. package/dist/core/sdk.js +0 -274
  341. package/dist/core/sdk.js.map +0 -1
  342. package/dist/core/session-cwd.d.ts +0 -19
  343. package/dist/core/session-cwd.d.ts.map +0 -1
  344. package/dist/core/session-cwd.js +0 -38
  345. package/dist/core/session-cwd.js.map +0 -1
  346. package/dist/core/session-manager.d.ts +0 -333
  347. package/dist/core/session-manager.d.ts.map +0 -1
  348. package/dist/core/session-manager.js +0 -1109
  349. package/dist/core/session-manager.js.map +0 -1
  350. package/dist/core/settings-manager.d.ts +0 -261
  351. package/dist/core/settings-manager.d.ts.map +0 -1
  352. package/dist/core/settings-manager.js +0 -782
  353. package/dist/core/settings-manager.js.map +0 -1
  354. package/dist/core/skills.d.ts +0 -60
  355. package/dist/core/skills.d.ts.map +0 -1
  356. package/dist/core/skills.js +0 -404
  357. package/dist/core/skills.js.map +0 -1
  358. package/dist/core/slash-commands.d.ts +0 -14
  359. package/dist/core/slash-commands.d.ts.map +0 -1
  360. package/dist/core/slash-commands.js +0 -25
  361. package/dist/core/slash-commands.js.map +0 -1
  362. package/dist/core/source-info.d.ts +0 -18
  363. package/dist/core/source-info.d.ts.map +0 -1
  364. package/dist/core/source-info.js +0 -19
  365. package/dist/core/source-info.js.map +0 -1
  366. package/dist/core/system-prompt.d.ts +0 -28
  367. package/dist/core/system-prompt.d.ts.map +0 -1
  368. package/dist/core/system-prompt.js +0 -120
  369. package/dist/core/system-prompt.js.map +0 -1
  370. package/dist/core/telemetry.d.ts +0 -3
  371. package/dist/core/telemetry.d.ts.map +0 -1
  372. package/dist/core/telemetry.js +0 -9
  373. package/dist/core/telemetry.js.map +0 -1
  374. package/dist/core/timings.d.ts +0 -8
  375. package/dist/core/timings.d.ts.map +0 -1
  376. package/dist/core/timings.js +0 -31
  377. package/dist/core/timings.js.map +0 -1
  378. package/dist/core/tools/bash.d.ts +0 -68
  379. package/dist/core/tools/bash.d.ts.map +0 -1
  380. package/dist/core/tools/bash.js +0 -355
  381. package/dist/core/tools/bash.js.map +0 -1
  382. package/dist/core/tools/edit-diff.d.ts +0 -85
  383. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  384. package/dist/core/tools/edit-diff.js +0 -337
  385. package/dist/core/tools/edit-diff.js.map +0 -1
  386. package/dist/core/tools/edit.d.ts +0 -49
  387. package/dist/core/tools/edit.d.ts.map +0 -1
  388. package/dist/core/tools/edit.js +0 -323
  389. package/dist/core/tools/edit.js.map +0 -1
  390. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  391. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  392. package/dist/core/tools/file-mutation-queue.js +0 -37
  393. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  394. package/dist/core/tools/find.d.ts +0 -35
  395. package/dist/core/tools/find.d.ts.map +0 -1
  396. package/dist/core/tools/find.js +0 -298
  397. package/dist/core/tools/find.js.map +0 -1
  398. package/dist/core/tools/grep.d.ts +0 -37
  399. package/dist/core/tools/grep.d.ts.map +0 -1
  400. package/dist/core/tools/grep.js +0 -304
  401. package/dist/core/tools/grep.js.map +0 -1
  402. package/dist/core/tools/index.d.ts +0 -40
  403. package/dist/core/tools/index.d.ts.map +0 -1
  404. package/dist/core/tools/index.js +0 -112
  405. package/dist/core/tools/index.js.map +0 -1
  406. package/dist/core/tools/ls.d.ts +0 -37
  407. package/dist/core/tools/ls.d.ts.map +0 -1
  408. package/dist/core/tools/ls.js +0 -169
  409. package/dist/core/tools/ls.js.map +0 -1
  410. package/dist/core/tools/path-utils.d.ts +0 -8
  411. package/dist/core/tools/path-utils.d.ts.map +0 -1
  412. package/dist/core/tools/path-utils.js +0 -81
  413. package/dist/core/tools/path-utils.js.map +0 -1
  414. package/dist/core/tools/read.d.ts +0 -35
  415. package/dist/core/tools/read.d.ts.map +0 -1
  416. package/dist/core/tools/read.js +0 -232
  417. package/dist/core/tools/read.js.map +0 -1
  418. package/dist/core/tools/render-utils.d.ts +0 -21
  419. package/dist/core/tools/render-utils.d.ts.map +0 -1
  420. package/dist/core/tools/render-utils.js +0 -49
  421. package/dist/core/tools/render-utils.js.map +0 -1
  422. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  423. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  424. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  425. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  426. package/dist/core/tools/truncate.d.ts +0 -70
  427. package/dist/core/tools/truncate.d.ts.map +0 -1
  428. package/dist/core/tools/truncate.js +0 -205
  429. package/dist/core/tools/truncate.js.map +0 -1
  430. package/dist/core/tools/write.d.ts +0 -26
  431. package/dist/core/tools/write.d.ts.map +0 -1
  432. package/dist/core/tools/write.js +0 -213
  433. package/dist/core/tools/write.js.map +0 -1
  434. package/dist/index.d.ts +0 -28
  435. package/dist/index.d.ts.map +0 -1
  436. package/dist/index.js +0 -41
  437. package/dist/index.js.map +0 -1
  438. package/dist/main.d.ts +0 -12
  439. package/dist/main.d.ts.map +0 -1
  440. package/dist/main.js +0 -589
  441. package/dist/main.js.map +0 -1
  442. package/dist/migrations.d.ts +0 -33
  443. package/dist/migrations.d.ts.map +0 -1
  444. package/dist/migrations.js +0 -281
  445. package/dist/migrations.js.map +0 -1
  446. package/dist/modes/index.d.ts +0 -9
  447. package/dist/modes/index.d.ts.map +0 -1
  448. package/dist/modes/index.js +0 -8
  449. package/dist/modes/index.js.map +0 -1
  450. package/dist/modes/interactive/assets/clankolas.png +0 -0
  451. package/dist/modes/interactive/components/aery-splash.d.ts +0 -18
  452. package/dist/modes/interactive/components/aery-splash.d.ts.map +0 -1
  453. package/dist/modes/interactive/components/aery-splash.js +0 -60
  454. package/dist/modes/interactive/components/aery-splash.js.map +0 -1
  455. package/dist/modes/interactive/components/armin.d.ts +0 -34
  456. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  457. package/dist/modes/interactive/components/armin.js +0 -333
  458. package/dist/modes/interactive/components/armin.js.map +0 -1
  459. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  460. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  461. package/dist/modes/interactive/components/assistant-message.js +0 -121
  462. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  463. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  464. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  465. package/dist/modes/interactive/components/bash-execution.js +0 -175
  466. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  467. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  468. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  469. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  470. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  471. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  472. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  473. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  474. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  475. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  476. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  477. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  478. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  479. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  480. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  481. package/dist/modes/interactive/components/config-selector.js +0 -481
  482. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  483. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  484. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  485. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  486. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  487. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  488. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  489. package/dist/modes/interactive/components/custom-editor.js +0 -70
  490. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  491. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  492. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  493. package/dist/modes/interactive/components/custom-message.js +0 -79
  494. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  495. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  496. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  497. package/dist/modes/interactive/components/daxnuts.js +0 -140
  498. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  499. package/dist/modes/interactive/components/diff.d.ts +0 -12
  500. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  501. package/dist/modes/interactive/components/diff.js +0 -133
  502. package/dist/modes/interactive/components/diff.js.map +0 -1
  503. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  504. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  505. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  506. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  507. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  508. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  509. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  510. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  511. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  512. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  513. package/dist/modes/interactive/components/extension-editor.js +0 -111
  514. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  515. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  516. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  517. package/dist/modes/interactive/components/extension-input.js +0 -61
  518. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  519. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  520. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  521. package/dist/modes/interactive/components/extension-selector.js +0 -78
  522. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  523. package/dist/modes/interactive/components/footer.d.ts +0 -27
  524. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  525. package/dist/modes/interactive/components/footer.js +0 -201
  526. package/dist/modes/interactive/components/footer.js.map +0 -1
  527. package/dist/modes/interactive/components/index.d.ts +0 -32
  528. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  529. package/dist/modes/interactive/components/index.js +0 -33
  530. package/dist/modes/interactive/components/index.js.map +0 -1
  531. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  532. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  533. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  534. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  535. package/dist/modes/interactive/components/login-dialog.d.ts +0 -46
  536. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  537. package/dist/modes/interactive/components/login-dialog.js +0 -158
  538. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  539. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  540. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  541. package/dist/modes/interactive/components/model-selector.js +0 -278
  542. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  543. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -29
  544. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  545. package/dist/modes/interactive/components/oauth-selector.js +0 -141
  546. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  547. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  548. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  549. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  550. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  551. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  552. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  553. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  554. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  555. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  556. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  557. package/dist/modes/interactive/components/session-selector.js +0 -861
  558. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  559. package/dist/modes/interactive/components/settings-selector.d.ts +0 -67
  560. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  561. package/dist/modes/interactive/components/settings-selector.js +0 -373
  562. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  563. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  564. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  565. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  566. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  567. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  568. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  569. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  570. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  571. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  572. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  573. package/dist/modes/interactive/components/theme-selector.js +0 -50
  574. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  575. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  576. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  577. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  578. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  579. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  580. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  581. package/dist/modes/interactive/components/tool-execution.js +0 -295
  582. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  583. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  584. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  585. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  586. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  587. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  588. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  589. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  590. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  591. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  592. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  593. package/dist/modes/interactive/components/user-message.js +0 -29
  594. package/dist/modes/interactive/components/user-message.js.map +0 -1
  595. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  596. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  597. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  598. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  599. package/dist/modes/interactive/interactive-mode.d.ts +0 -359
  600. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  601. package/dist/modes/interactive/interactive-mode.js +0 -4573
  602. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  603. package/dist/modes/interactive/theme/aery.json +0 -84
  604. package/dist/modes/interactive/theme/catppuccin-mocha.json +0 -81
  605. package/dist/modes/interactive/theme/dark.json +0 -85
  606. package/dist/modes/interactive/theme/dracula.json +0 -81
  607. package/dist/modes/interactive/theme/light.json +0 -84
  608. package/dist/modes/interactive/theme/nord.json +0 -81
  609. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  610. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  611. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  612. package/dist/modes/interactive/theme/theme.js +0 -975
  613. package/dist/modes/interactive/theme/theme.js.map +0 -1
  614. package/dist/modes/interactive/theme/tokyo-night.json +0 -81
  615. package/dist/modes/print-mode.d.ts +0 -28
  616. package/dist/modes/print-mode.d.ts.map +0 -1
  617. package/dist/modes/print-mode.js +0 -131
  618. package/dist/modes/print-mode.js.map +0 -1
  619. package/dist/modes/rpc/jsonl.d.ts +0 -17
  620. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  621. package/dist/modes/rpc/jsonl.js +0 -49
  622. package/dist/modes/rpc/jsonl.js.map +0 -1
  623. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  624. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  625. package/dist/modes/rpc/rpc-client.js +0 -410
  626. package/dist/modes/rpc/rpc-client.js.map +0 -1
  627. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  628. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  629. package/dist/modes/rpc/rpc-mode.js +0 -597
  630. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  631. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  632. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  633. package/dist/modes/rpc/rpc-types.js +0 -8
  634. package/dist/modes/rpc/rpc-types.js.map +0 -1
  635. package/dist/package-manager-cli.d.ts +0 -4
  636. package/dist/package-manager-cli.d.ts.map +0 -1
  637. package/dist/package-manager-cli.js +0 -468
  638. package/dist/package-manager-cli.js.map +0 -1
  639. package/dist/utils/aery-user-agent.d.ts +0 -2
  640. package/dist/utils/aery-user-agent.d.ts.map +0 -1
  641. package/dist/utils/aery-user-agent.js +0 -5
  642. package/dist/utils/aery-user-agent.js.map +0 -1
  643. package/dist/utils/changelog.d.ts +0 -21
  644. package/dist/utils/changelog.d.ts.map +0 -1
  645. package/dist/utils/changelog.js +0 -87
  646. package/dist/utils/changelog.js.map +0 -1
  647. package/dist/utils/child-process.d.ts +0 -11
  648. package/dist/utils/child-process.d.ts.map +0 -1
  649. package/dist/utils/child-process.js +0 -78
  650. package/dist/utils/child-process.js.map +0 -1
  651. package/dist/utils/clipboard-image.d.ts +0 -11
  652. package/dist/utils/clipboard-image.d.ts.map +0 -1
  653. package/dist/utils/clipboard-image.js +0 -245
  654. package/dist/utils/clipboard-image.js.map +0 -1
  655. package/dist/utils/clipboard-native.d.ts +0 -8
  656. package/dist/utils/clipboard-native.d.ts.map +0 -1
  657. package/dist/utils/clipboard-native.js +0 -14
  658. package/dist/utils/clipboard-native.js.map +0 -1
  659. package/dist/utils/clipboard.d.ts +0 -2
  660. package/dist/utils/clipboard.d.ts.map +0 -1
  661. package/dist/utils/clipboard.js +0 -110
  662. package/dist/utils/clipboard.js.map +0 -1
  663. package/dist/utils/exif-orientation.d.ts +0 -5
  664. package/dist/utils/exif-orientation.d.ts.map +0 -1
  665. package/dist/utils/exif-orientation.js +0 -158
  666. package/dist/utils/exif-orientation.js.map +0 -1
  667. package/dist/utils/frontmatter.d.ts +0 -8
  668. package/dist/utils/frontmatter.d.ts.map +0 -1
  669. package/dist/utils/frontmatter.js +0 -26
  670. package/dist/utils/frontmatter.js.map +0 -1
  671. package/dist/utils/fs-watch.d.ts +0 -5
  672. package/dist/utils/fs-watch.d.ts.map +0 -1
  673. package/dist/utils/fs-watch.js +0 -25
  674. package/dist/utils/fs-watch.js.map +0 -1
  675. package/dist/utils/git.d.ts +0 -26
  676. package/dist/utils/git.d.ts.map +0 -1
  677. package/dist/utils/git.js +0 -163
  678. package/dist/utils/git.js.map +0 -1
  679. package/dist/utils/image-convert.d.ts +0 -9
  680. package/dist/utils/image-convert.d.ts.map +0 -1
  681. package/dist/utils/image-convert.js +0 -39
  682. package/dist/utils/image-convert.js.map +0 -1
  683. package/dist/utils/image-resize.d.ts +0 -36
  684. package/dist/utils/image-resize.d.ts.map +0 -1
  685. package/dist/utils/image-resize.js +0 -137
  686. package/dist/utils/image-resize.js.map +0 -1
  687. package/dist/utils/mime.d.ts +0 -2
  688. package/dist/utils/mime.d.ts.map +0 -1
  689. package/dist/utils/mime.js +0 -26
  690. package/dist/utils/mime.js.map +0 -1
  691. package/dist/utils/paths.d.ts +0 -14
  692. package/dist/utils/paths.d.ts.map +0 -1
  693. package/dist/utils/paths.js +0 -34
  694. package/dist/utils/paths.js.map +0 -1
  695. package/dist/utils/photon.d.ts +0 -21
  696. package/dist/utils/photon.d.ts.map +0 -1
  697. package/dist/utils/photon.js +0 -121
  698. package/dist/utils/photon.js.map +0 -1
  699. package/dist/utils/shell.d.ts +0 -30
  700. package/dist/utils/shell.d.ts.map +0 -1
  701. package/dist/utils/shell.js +0 -190
  702. package/dist/utils/shell.js.map +0 -1
  703. package/dist/utils/sleep.d.ts +0 -5
  704. package/dist/utils/sleep.d.ts.map +0 -1
  705. package/dist/utils/sleep.js +0 -17
  706. package/dist/utils/sleep.js.map +0 -1
  707. package/dist/utils/tools-manager.d.ts +0 -3
  708. package/dist/utils/tools-manager.d.ts.map +0 -1
  709. package/dist/utils/tools-manager.js +0 -256
  710. package/dist/utils/tools-manager.js.map +0 -1
  711. package/dist/utils/version-check.d.ts +0 -7
  712. package/dist/utils/version-check.d.ts.map +0 -1
  713. package/dist/utils/version-check.js +0 -70
  714. package/dist/utils/version-check.js.map +0 -1
@@ -1,784 +0,0 @@
1
- /**
2
- * Extension runner - executes extensions and manages their lifecycle.
3
- */
4
- import { theme } from "../../modes/interactive/theme/theme.js";
5
- // Extension shortcuts compete with canonical keybinding ids from keybindings.json.
6
- // Only editor-global shortcuts are reserved here. Picker-specific bindings are not.
7
- const RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS = [
8
- "app.interrupt",
9
- "app.clear",
10
- "app.exit",
11
- "app.suspend",
12
- "app.thinking.cycle",
13
- "app.model.cycleForward",
14
- "app.model.cycleBackward",
15
- "app.model.select",
16
- "app.tools.expand",
17
- "app.thinking.toggle",
18
- "app.editor.external",
19
- "app.message.followUp",
20
- "tui.input.submit",
21
- "tui.select.confirm",
22
- "tui.select.cancel",
23
- "tui.input.copy",
24
- "tui.editor.deleteToLineEnd",
25
- ];
26
- const buildBuiltinKeybindings = (resolvedKeybindings) => {
27
- const builtinKeybindings = {};
28
- for (const [keybinding, keys] of Object.entries(resolvedKeybindings)) {
29
- if (keys === undefined)
30
- continue;
31
- const keyList = Array.isArray(keys) ? keys : [keys];
32
- const restrictOverride = RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS.includes(keybinding);
33
- for (const key of keyList) {
34
- const normalizedKey = key.toLowerCase();
35
- // If multiple actions bind the same key, the reserved action wins so extensions
36
- // remain blocked by reserved shortcuts regardless of iteration order.
37
- const existing = builtinKeybindings[normalizedKey];
38
- if (existing?.restrictOverride && !restrictOverride)
39
- continue;
40
- builtinKeybindings[normalizedKey] = {
41
- keybinding,
42
- restrictOverride,
43
- };
44
- }
45
- }
46
- return builtinKeybindings;
47
- };
48
- /**
49
- * Helper function to emit session_shutdown event to extensions.
50
- * Returns true if the event was emitted, false if there were no handlers.
51
- */
52
- export async function emitSessionShutdownEvent(extensionRunner, event) {
53
- if (extensionRunner.hasHandlers("session_shutdown")) {
54
- await extensionRunner.emit(event);
55
- return true;
56
- }
57
- return false;
58
- }
59
- const noOpUIContext = {
60
- select: async () => undefined,
61
- confirm: async () => false,
62
- input: async () => undefined,
63
- notify: () => { },
64
- onTerminalInput: () => () => { },
65
- setStatus: () => { },
66
- setWorkingMessage: () => { },
67
- setWorkingVisible: () => { },
68
- setWorkingIndicator: () => { },
69
- setHiddenThinkingLabel: () => { },
70
- setWidget: () => { },
71
- setFooter: () => { },
72
- setHeader: () => { },
73
- setTitle: () => { },
74
- custom: async () => undefined,
75
- pasteToEditor: () => { },
76
- setEditorText: () => { },
77
- getEditorText: () => "",
78
- editor: async () => undefined,
79
- addAutocompleteProvider: () => { },
80
- setEditorComponent: () => { },
81
- get theme() {
82
- return theme;
83
- },
84
- getAllThemes: () => [],
85
- getTheme: () => undefined,
86
- setTheme: (_theme) => ({ success: false, error: "UI not available" }),
87
- getToolsExpanded: () => false,
88
- setToolsExpanded: () => { },
89
- };
90
- export class ExtensionRunner {
91
- extensions;
92
- runtime;
93
- uiContext;
94
- cwd;
95
- sessionManager;
96
- modelRegistry;
97
- errorListeners = new Set();
98
- getModel = () => undefined;
99
- isIdleFn = () => true;
100
- getSignalFn = () => undefined;
101
- waitForIdleFn = async () => { };
102
- abortFn = () => { };
103
- hasPendingMessagesFn = () => false;
104
- getContextUsageFn = () => undefined;
105
- compactFn = () => { };
106
- getSystemPromptFn = () => "";
107
- newSessionHandler = async () => ({ cancelled: false });
108
- forkHandler = async () => ({ cancelled: false });
109
- navigateTreeHandler = async () => ({ cancelled: false });
110
- switchSessionHandler = async () => ({ cancelled: false });
111
- reloadHandler = async () => { };
112
- shutdownHandler = () => { };
113
- shortcutDiagnostics = [];
114
- commandDiagnostics = [];
115
- staleMessage;
116
- constructor(extensions, runtime, cwd, sessionManager, modelRegistry) {
117
- this.extensions = extensions;
118
- this.runtime = runtime;
119
- this.uiContext = noOpUIContext;
120
- this.cwd = cwd;
121
- this.sessionManager = sessionManager;
122
- this.modelRegistry = modelRegistry;
123
- }
124
- bindCore(actions, contextActions, providerActions) {
125
- // Copy actions into the shared runtime (all extension APIs reference this)
126
- this.runtime.sendMessage = actions.sendMessage;
127
- this.runtime.sendUserMessage = actions.sendUserMessage;
128
- this.runtime.appendEntry = actions.appendEntry;
129
- this.runtime.setSessionName = actions.setSessionName;
130
- this.runtime.getSessionName = actions.getSessionName;
131
- this.runtime.setLabel = actions.setLabel;
132
- this.runtime.getActiveTools = actions.getActiveTools;
133
- this.runtime.getAllTools = actions.getAllTools;
134
- this.runtime.setActiveTools = actions.setActiveTools;
135
- this.runtime.refreshTools = actions.refreshTools;
136
- this.runtime.getCommands = actions.getCommands;
137
- this.runtime.setModel = actions.setModel;
138
- this.runtime.getThinkingLevel = actions.getThinkingLevel;
139
- this.runtime.setThinkingLevel = actions.setThinkingLevel;
140
- // Context actions (required)
141
- this.getModel = contextActions.getModel;
142
- this.isIdleFn = contextActions.isIdle;
143
- this.getSignalFn = contextActions.getSignal;
144
- this.abortFn = contextActions.abort;
145
- this.hasPendingMessagesFn = contextActions.hasPendingMessages;
146
- this.shutdownHandler = contextActions.shutdown;
147
- this.getContextUsageFn = contextActions.getContextUsage;
148
- this.compactFn = contextActions.compact;
149
- this.getSystemPromptFn = contextActions.getSystemPrompt;
150
- // Flush provider registrations queued during extension loading
151
- for (const { name, config, extensionPath } of this.runtime.pendingProviderRegistrations) {
152
- try {
153
- if (providerActions?.registerProvider) {
154
- providerActions.registerProvider(name, config);
155
- }
156
- else {
157
- this.modelRegistry.registerProvider(name, config);
158
- }
159
- }
160
- catch (err) {
161
- this.emitError({
162
- extensionPath,
163
- event: "register_provider",
164
- error: err instanceof Error ? err.message : String(err),
165
- stack: err instanceof Error ? err.stack : undefined,
166
- });
167
- }
168
- }
169
- this.runtime.pendingProviderRegistrations = [];
170
- // From this point on, provider registration/unregistration takes effect immediately
171
- // without requiring a /reload.
172
- this.runtime.registerProvider = (name, config) => {
173
- if (providerActions?.registerProvider) {
174
- providerActions.registerProvider(name, config);
175
- return;
176
- }
177
- this.modelRegistry.registerProvider(name, config);
178
- };
179
- this.runtime.unregisterProvider = (name) => {
180
- if (providerActions?.unregisterProvider) {
181
- providerActions.unregisterProvider(name);
182
- return;
183
- }
184
- this.modelRegistry.unregisterProvider(name);
185
- };
186
- }
187
- bindCommandContext(actions) {
188
- if (actions) {
189
- this.waitForIdleFn = actions.waitForIdle;
190
- this.newSessionHandler = actions.newSession;
191
- this.forkHandler = actions.fork;
192
- this.navigateTreeHandler = actions.navigateTree;
193
- this.switchSessionHandler = actions.switchSession;
194
- this.reloadHandler = actions.reload;
195
- return;
196
- }
197
- this.waitForIdleFn = async () => { };
198
- this.newSessionHandler = async () => ({ cancelled: false });
199
- this.forkHandler = async () => ({ cancelled: false });
200
- this.navigateTreeHandler = async () => ({ cancelled: false });
201
- this.switchSessionHandler = async () => ({ cancelled: false });
202
- this.reloadHandler = async () => { };
203
- }
204
- setUIContext(uiContext) {
205
- this.uiContext = uiContext ?? noOpUIContext;
206
- }
207
- getUIContext() {
208
- return this.uiContext;
209
- }
210
- hasUI() {
211
- return this.uiContext !== noOpUIContext;
212
- }
213
- getExtensionPaths() {
214
- return this.extensions.map((e) => e.path);
215
- }
216
- /** Get all registered tools from all extensions (first registration per name wins). */
217
- getAllRegisteredTools() {
218
- const toolsByName = new Map();
219
- for (const ext of this.extensions) {
220
- for (const tool of ext.tools.values()) {
221
- if (!toolsByName.has(tool.definition.name)) {
222
- toolsByName.set(tool.definition.name, tool);
223
- }
224
- }
225
- }
226
- return Array.from(toolsByName.values());
227
- }
228
- /** Get a tool definition by name. Returns undefined if not found. */
229
- getToolDefinition(toolName) {
230
- for (const ext of this.extensions) {
231
- const tool = ext.tools.get(toolName);
232
- if (tool) {
233
- return tool.definition;
234
- }
235
- }
236
- return undefined;
237
- }
238
- getFlags() {
239
- const allFlags = new Map();
240
- for (const ext of this.extensions) {
241
- for (const [name, flag] of ext.flags) {
242
- if (!allFlags.has(name)) {
243
- allFlags.set(name, flag);
244
- }
245
- }
246
- }
247
- return allFlags;
248
- }
249
- setFlagValue(name, value) {
250
- this.runtime.flagValues.set(name, value);
251
- }
252
- getFlagValues() {
253
- return new Map(this.runtime.flagValues);
254
- }
255
- getShortcuts(resolvedKeybindings) {
256
- this.shortcutDiagnostics = [];
257
- const builtinKeybindings = buildBuiltinKeybindings(resolvedKeybindings);
258
- const extensionShortcuts = new Map();
259
- const addDiagnostic = (message, extensionPath) => {
260
- this.shortcutDiagnostics.push({ type: "warning", message, path: extensionPath });
261
- if (!this.hasUI()) {
262
- console.warn(message);
263
- }
264
- };
265
- for (const ext of this.extensions) {
266
- for (const [key, shortcut] of ext.shortcuts) {
267
- const normalizedKey = key.toLowerCase();
268
- const builtInKeybinding = builtinKeybindings[normalizedKey];
269
- if (builtInKeybinding?.restrictOverride === true) {
270
- addDiagnostic(`Extension shortcut '${key}' from ${shortcut.extensionPath} conflicts with built-in shortcut. Skipping.`, shortcut.extensionPath);
271
- continue;
272
- }
273
- if (builtInKeybinding?.restrictOverride === false) {
274
- addDiagnostic(`Extension shortcut conflict: '${key}' is built-in shortcut for ${builtInKeybinding.keybinding} and ${shortcut.extensionPath}. Using ${shortcut.extensionPath}.`, shortcut.extensionPath);
275
- }
276
- const existingExtensionShortcut = extensionShortcuts.get(normalizedKey);
277
- if (existingExtensionShortcut) {
278
- addDiagnostic(`Extension shortcut conflict: '${key}' registered by both ${existingExtensionShortcut.extensionPath} and ${shortcut.extensionPath}. Using ${shortcut.extensionPath}.`, shortcut.extensionPath);
279
- }
280
- extensionShortcuts.set(normalizedKey, shortcut);
281
- }
282
- }
283
- return extensionShortcuts;
284
- }
285
- getShortcutDiagnostics() {
286
- return this.shortcutDiagnostics;
287
- }
288
- 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().") {
289
- if (!this.staleMessage) {
290
- this.staleMessage = message;
291
- this.runtime.invalidate(message);
292
- }
293
- }
294
- assertActive() {
295
- if (this.staleMessage) {
296
- throw new Error(this.staleMessage);
297
- }
298
- }
299
- onError(listener) {
300
- this.errorListeners.add(listener);
301
- return () => this.errorListeners.delete(listener);
302
- }
303
- emitError(error) {
304
- for (const listener of this.errorListeners) {
305
- listener(error);
306
- }
307
- }
308
- hasHandlers(eventType) {
309
- for (const ext of this.extensions) {
310
- const handlers = ext.handlers.get(eventType);
311
- if (handlers && handlers.length > 0) {
312
- return true;
313
- }
314
- }
315
- return false;
316
- }
317
- getMessageRenderer(customType) {
318
- for (const ext of this.extensions) {
319
- const renderer = ext.messageRenderers.get(customType);
320
- if (renderer) {
321
- return renderer;
322
- }
323
- }
324
- return undefined;
325
- }
326
- resolveRegisteredCommands() {
327
- const commands = [];
328
- const counts = new Map();
329
- for (const ext of this.extensions) {
330
- for (const command of ext.commands.values()) {
331
- commands.push(command);
332
- counts.set(command.name, (counts.get(command.name) ?? 0) + 1);
333
- }
334
- }
335
- const seen = new Map();
336
- const takenInvocationNames = new Set();
337
- return commands.map((command) => {
338
- const occurrence = (seen.get(command.name) ?? 0) + 1;
339
- seen.set(command.name, occurrence);
340
- let invocationName = (counts.get(command.name) ?? 0) > 1 ? `${command.name}:${occurrence}` : command.name;
341
- if (takenInvocationNames.has(invocationName)) {
342
- let suffix = occurrence;
343
- do {
344
- suffix++;
345
- invocationName = `${command.name}:${suffix}`;
346
- } while (takenInvocationNames.has(invocationName));
347
- }
348
- takenInvocationNames.add(invocationName);
349
- return {
350
- ...command,
351
- invocationName,
352
- };
353
- });
354
- }
355
- getRegisteredCommands() {
356
- this.commandDiagnostics = [];
357
- return this.resolveRegisteredCommands();
358
- }
359
- getCommandDiagnostics() {
360
- return this.commandDiagnostics;
361
- }
362
- getCommand(name) {
363
- return this.resolveRegisteredCommands().find((command) => command.invocationName === name);
364
- }
365
- /**
366
- * Request a graceful shutdown. Called by extension tools and event handlers.
367
- * The actual shutdown behavior is provided by the mode via bindExtensions().
368
- */
369
- shutdown() {
370
- this.shutdownHandler();
371
- }
372
- /**
373
- * Create an ExtensionContext for use in event handlers and tool execution.
374
- * Context values are resolved at call time, so changes via bindCore/bindUI are reflected.
375
- */
376
- createContext() {
377
- const runner = this;
378
- const getModel = this.getModel;
379
- return {
380
- get ui() {
381
- runner.assertActive();
382
- return runner.uiContext;
383
- },
384
- get hasUI() {
385
- runner.assertActive();
386
- return runner.hasUI();
387
- },
388
- get cwd() {
389
- runner.assertActive();
390
- return runner.cwd;
391
- },
392
- get sessionManager() {
393
- runner.assertActive();
394
- return runner.sessionManager;
395
- },
396
- get modelRegistry() {
397
- runner.assertActive();
398
- return runner.modelRegistry;
399
- },
400
- get model() {
401
- runner.assertActive();
402
- return getModel();
403
- },
404
- isIdle: () => {
405
- runner.assertActive();
406
- return runner.isIdleFn();
407
- },
408
- get signal() {
409
- runner.assertActive();
410
- return runner.getSignalFn();
411
- },
412
- abort: () => {
413
- runner.assertActive();
414
- runner.abortFn();
415
- },
416
- hasPendingMessages: () => {
417
- runner.assertActive();
418
- return runner.hasPendingMessagesFn();
419
- },
420
- shutdown: () => {
421
- runner.assertActive();
422
- runner.shutdownHandler();
423
- },
424
- getContextUsage: () => {
425
- runner.assertActive();
426
- return runner.getContextUsageFn();
427
- },
428
- compact: (options) => {
429
- runner.assertActive();
430
- runner.compactFn(options);
431
- },
432
- getSystemPrompt: () => {
433
- runner.assertActive();
434
- return runner.getSystemPromptFn();
435
- },
436
- };
437
- }
438
- createCommandContext() {
439
- // Use property descriptors instead of object spread so the guarded getters from
440
- // createContext() stay lazy. A spread would eagerly read them once and freeze the
441
- // old values into the returned object, bypassing stale-instance checks.
442
- const context = Object.defineProperties({}, Object.getOwnPropertyDescriptors(this.createContext()));
443
- context.waitForIdle = () => {
444
- this.assertActive();
445
- return this.waitForIdleFn();
446
- };
447
- context.newSession = (options) => {
448
- this.assertActive();
449
- return this.newSessionHandler(options);
450
- };
451
- context.fork = (entryId, options) => {
452
- this.assertActive();
453
- return this.forkHandler(entryId, options);
454
- };
455
- context.navigateTree = (targetId, options) => {
456
- this.assertActive();
457
- return this.navigateTreeHandler(targetId, options);
458
- };
459
- context.switchSession = (sessionPath, options) => {
460
- this.assertActive();
461
- return this.switchSessionHandler(sessionPath, options);
462
- };
463
- context.reload = () => {
464
- this.assertActive();
465
- return this.reloadHandler();
466
- };
467
- return context;
468
- }
469
- isSessionBeforeEvent(event) {
470
- return (event.type === "session_before_switch" ||
471
- event.type === "session_before_fork" ||
472
- event.type === "session_before_compact" ||
473
- event.type === "session_before_tree");
474
- }
475
- async emit(event) {
476
- const ctx = this.createContext();
477
- let result;
478
- for (const ext of this.extensions) {
479
- const handlers = ext.handlers.get(event.type);
480
- if (!handlers || handlers.length === 0)
481
- continue;
482
- for (const handler of handlers) {
483
- try {
484
- const handlerResult = await handler(event, ctx);
485
- if (this.isSessionBeforeEvent(event) && handlerResult) {
486
- result = handlerResult;
487
- if (result.cancel) {
488
- return result;
489
- }
490
- }
491
- }
492
- catch (err) {
493
- const message = err instanceof Error ? err.message : String(err);
494
- const stack = err instanceof Error ? err.stack : undefined;
495
- this.emitError({
496
- extensionPath: ext.path,
497
- event: event.type,
498
- error: message,
499
- stack,
500
- });
501
- }
502
- }
503
- }
504
- return result;
505
- }
506
- async emitToolResult(event) {
507
- const ctx = this.createContext();
508
- const currentEvent = { ...event };
509
- let modified = false;
510
- for (const ext of this.extensions) {
511
- const handlers = ext.handlers.get("tool_result");
512
- if (!handlers || handlers.length === 0)
513
- continue;
514
- for (const handler of handlers) {
515
- try {
516
- const handlerResult = (await handler(currentEvent, ctx));
517
- if (!handlerResult)
518
- continue;
519
- if (handlerResult.content !== undefined) {
520
- currentEvent.content = handlerResult.content;
521
- modified = true;
522
- }
523
- if (handlerResult.details !== undefined) {
524
- currentEvent.details = handlerResult.details;
525
- modified = true;
526
- }
527
- if (handlerResult.isError !== undefined) {
528
- currentEvent.isError = handlerResult.isError;
529
- modified = true;
530
- }
531
- }
532
- catch (err) {
533
- const message = err instanceof Error ? err.message : String(err);
534
- const stack = err instanceof Error ? err.stack : undefined;
535
- this.emitError({
536
- extensionPath: ext.path,
537
- event: "tool_result",
538
- error: message,
539
- stack,
540
- });
541
- }
542
- }
543
- }
544
- if (!modified) {
545
- return undefined;
546
- }
547
- return {
548
- content: currentEvent.content,
549
- details: currentEvent.details,
550
- isError: currentEvent.isError,
551
- };
552
- }
553
- async emitToolCall(event) {
554
- const ctx = this.createContext();
555
- let result;
556
- for (const ext of this.extensions) {
557
- const handlers = ext.handlers.get("tool_call");
558
- if (!handlers || handlers.length === 0)
559
- continue;
560
- for (const handler of handlers) {
561
- const handlerResult = await handler(event, ctx);
562
- if (handlerResult) {
563
- result = handlerResult;
564
- if (result.block) {
565
- return result;
566
- }
567
- }
568
- }
569
- }
570
- return result;
571
- }
572
- async emitUserBash(event) {
573
- const ctx = this.createContext();
574
- for (const ext of this.extensions) {
575
- const handlers = ext.handlers.get("user_bash");
576
- if (!handlers || handlers.length === 0)
577
- continue;
578
- for (const handler of handlers) {
579
- try {
580
- const handlerResult = await handler(event, ctx);
581
- if (handlerResult) {
582
- return handlerResult;
583
- }
584
- }
585
- catch (err) {
586
- const message = err instanceof Error ? err.message : String(err);
587
- const stack = err instanceof Error ? err.stack : undefined;
588
- this.emitError({
589
- extensionPath: ext.path,
590
- event: "user_bash",
591
- error: message,
592
- stack,
593
- });
594
- }
595
- }
596
- }
597
- return undefined;
598
- }
599
- async emitContext(messages) {
600
- const ctx = this.createContext();
601
- let currentMessages = structuredClone(messages);
602
- for (const ext of this.extensions) {
603
- const handlers = ext.handlers.get("context");
604
- if (!handlers || handlers.length === 0)
605
- continue;
606
- for (const handler of handlers) {
607
- try {
608
- const event = { type: "context", messages: currentMessages };
609
- const handlerResult = await handler(event, ctx);
610
- if (handlerResult && handlerResult.messages) {
611
- currentMessages = handlerResult.messages;
612
- }
613
- }
614
- catch (err) {
615
- const message = err instanceof Error ? err.message : String(err);
616
- const stack = err instanceof Error ? err.stack : undefined;
617
- this.emitError({
618
- extensionPath: ext.path,
619
- event: "context",
620
- error: message,
621
- stack,
622
- });
623
- }
624
- }
625
- }
626
- return currentMessages;
627
- }
628
- async emitBeforeProviderRequest(payload) {
629
- const ctx = this.createContext();
630
- let currentPayload = payload;
631
- for (const ext of this.extensions) {
632
- const handlers = ext.handlers.get("before_provider_request");
633
- if (!handlers || handlers.length === 0)
634
- continue;
635
- for (const handler of handlers) {
636
- try {
637
- const event = {
638
- type: "before_provider_request",
639
- payload: currentPayload,
640
- };
641
- const handlerResult = await handler(event, ctx);
642
- if (handlerResult !== undefined) {
643
- currentPayload = handlerResult;
644
- }
645
- }
646
- catch (err) {
647
- const message = err instanceof Error ? err.message : String(err);
648
- const stack = err instanceof Error ? err.stack : undefined;
649
- this.emitError({
650
- extensionPath: ext.path,
651
- event: "before_provider_request",
652
- error: message,
653
- stack,
654
- });
655
- }
656
- }
657
- }
658
- return currentPayload;
659
- }
660
- async emitBeforeAgentStart(prompt, images, systemPrompt, systemPromptOptions) {
661
- let currentSystemPrompt = systemPrompt;
662
- const ctx = Object.defineProperties({}, Object.getOwnPropertyDescriptors(this.createContext()));
663
- ctx.getSystemPrompt = () => {
664
- this.assertActive();
665
- return currentSystemPrompt;
666
- };
667
- const messages = [];
668
- let systemPromptModified = false;
669
- for (const ext of this.extensions) {
670
- const handlers = ext.handlers.get("before_agent_start");
671
- if (!handlers || handlers.length === 0)
672
- continue;
673
- for (const handler of handlers) {
674
- try {
675
- const event = {
676
- type: "before_agent_start",
677
- prompt,
678
- images,
679
- systemPrompt: currentSystemPrompt,
680
- systemPromptOptions,
681
- };
682
- const handlerResult = await handler(event, ctx);
683
- if (handlerResult) {
684
- const result = handlerResult;
685
- if (result.message) {
686
- messages.push(result.message);
687
- }
688
- if (result.systemPrompt !== undefined) {
689
- currentSystemPrompt = result.systemPrompt;
690
- systemPromptModified = true;
691
- }
692
- }
693
- }
694
- catch (err) {
695
- const message = err instanceof Error ? err.message : String(err);
696
- const stack = err instanceof Error ? err.stack : undefined;
697
- this.emitError({
698
- extensionPath: ext.path,
699
- event: "before_agent_start",
700
- error: message,
701
- stack,
702
- });
703
- }
704
- }
705
- }
706
- if (messages.length > 0 || systemPromptModified) {
707
- return {
708
- messages: messages.length > 0 ? messages : undefined,
709
- systemPrompt: systemPromptModified ? currentSystemPrompt : undefined,
710
- };
711
- }
712
- return undefined;
713
- }
714
- async emitResourcesDiscover(cwd, reason) {
715
- const ctx = this.createContext();
716
- const skillPaths = [];
717
- const promptPaths = [];
718
- const themePaths = [];
719
- for (const ext of this.extensions) {
720
- const handlers = ext.handlers.get("resources_discover");
721
- if (!handlers || handlers.length === 0)
722
- continue;
723
- for (const handler of handlers) {
724
- try {
725
- const event = { type: "resources_discover", cwd, reason };
726
- const handlerResult = await handler(event, ctx);
727
- const result = handlerResult;
728
- if (result?.skillPaths?.length) {
729
- skillPaths.push(...result.skillPaths.map((path) => ({ path, extensionPath: ext.path })));
730
- }
731
- if (result?.promptPaths?.length) {
732
- promptPaths.push(...result.promptPaths.map((path) => ({ path, extensionPath: ext.path })));
733
- }
734
- if (result?.themePaths?.length) {
735
- themePaths.push(...result.themePaths.map((path) => ({ path, extensionPath: ext.path })));
736
- }
737
- }
738
- catch (err) {
739
- const message = err instanceof Error ? err.message : String(err);
740
- const stack = err instanceof Error ? err.stack : undefined;
741
- this.emitError({
742
- extensionPath: ext.path,
743
- event: "resources_discover",
744
- error: message,
745
- stack,
746
- });
747
- }
748
- }
749
- }
750
- return { skillPaths, promptPaths, themePaths };
751
- }
752
- /** Emit input event. Transforms chain, "handled" short-circuits. */
753
- async emitInput(text, images, source) {
754
- const ctx = this.createContext();
755
- let currentText = text;
756
- let currentImages = images;
757
- for (const ext of this.extensions) {
758
- for (const handler of ext.handlers.get("input") ?? []) {
759
- try {
760
- const event = { type: "input", text: currentText, images: currentImages, source };
761
- const result = (await handler(event, ctx));
762
- if (result?.action === "handled")
763
- return result;
764
- if (result?.action === "transform") {
765
- currentText = result.text;
766
- currentImages = result.images ?? currentImages;
767
- }
768
- }
769
- catch (err) {
770
- this.emitError({
771
- extensionPath: ext.path,
772
- event: "input",
773
- error: err instanceof Error ? err.message : String(err),
774
- stack: err instanceof Error ? err.stack : undefined,
775
- });
776
- }
777
- }
778
- }
779
- return currentText !== text || currentImages !== images
780
- ? { action: "transform", text: currentText, images: currentImages }
781
- : { action: "continue" };
782
- }
783
- }
784
- //# sourceMappingURL=runner.js.map