@eminent337/aery 0.1.44 → 0.1.52

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