@eminent337/aery 0.1.11 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/CHANGELOG.md +898 -898
  2. package/README.md +2 -32
  3. package/docs/compaction.md +14 -14
  4. package/docs/custom-provider.md +9 -9
  5. package/docs/development.md +2 -2
  6. package/docs/extensions.md +25 -25
  7. package/docs/json.md +4 -4
  8. package/docs/packages.md +2 -2
  9. package/docs/providers.md +1 -1
  10. package/docs/rpc.md +1 -1
  11. package/docs/sdk.md +22 -22
  12. package/docs/session.md +7 -7
  13. package/docs/termux.md +1 -1
  14. package/docs/themes.md +2 -2
  15. package/docs/tui.md +7 -7
  16. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  17. package/package.json +5 -5
  18. package/dist/bun/cli.d.ts +0 -3
  19. package/dist/bun/cli.d.ts.map +0 -1
  20. package/dist/bun/cli.js +0 -7
  21. package/dist/bun/cli.js.map +0 -1
  22. package/dist/bun/register-bedrock.d.ts +0 -2
  23. package/dist/bun/register-bedrock.d.ts.map +0 -1
  24. package/dist/bun/register-bedrock.js +0 -4
  25. package/dist/bun/register-bedrock.js.map +0 -1
  26. package/dist/cli/args.d.ts +0 -52
  27. package/dist/cli/args.d.ts.map +0 -1
  28. package/dist/cli/args.js +0 -321
  29. package/dist/cli/args.js.map +0 -1
  30. package/dist/cli/config-selector.d.ts +0 -14
  31. package/dist/cli/config-selector.d.ts.map +0 -1
  32. package/dist/cli/config-selector.js +0 -31
  33. package/dist/cli/config-selector.js.map +0 -1
  34. package/dist/cli/file-processor.d.ts +0 -15
  35. package/dist/cli/file-processor.d.ts.map +0 -1
  36. package/dist/cli/file-processor.js +0 -83
  37. package/dist/cli/file-processor.js.map +0 -1
  38. package/dist/cli/initial-message.d.ts +0 -18
  39. package/dist/cli/initial-message.d.ts.map +0 -1
  40. package/dist/cli/initial-message.js +0 -22
  41. package/dist/cli/initial-message.js.map +0 -1
  42. package/dist/cli/list-models.d.ts +0 -9
  43. package/dist/cli/list-models.d.ts.map +0 -1
  44. package/dist/cli/list-models.js +0 -97
  45. package/dist/cli/list-models.js.map +0 -1
  46. package/dist/cli/session-picker.d.ts +0 -9
  47. package/dist/cli/session-picker.d.ts.map +0 -1
  48. package/dist/cli/session-picker.js +0 -35
  49. package/dist/cli/session-picker.js.map +0 -1
  50. package/dist/cli.d.ts +0 -3
  51. package/dist/cli.d.ts.map +0 -1
  52. package/dist/cli.js +0 -15
  53. package/dist/cli.js.map +0 -1
  54. package/dist/config.d.ts +0 -77
  55. package/dist/config.d.ts.map +0 -1
  56. package/dist/config.js +0 -221
  57. package/dist/config.js.map +0 -1
  58. package/dist/core/agent-session-runtime.d.ts +0 -99
  59. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  60. package/dist/core/agent-session-runtime.js +0 -261
  61. package/dist/core/agent-session-runtime.js.map +0 -1
  62. package/dist/core/agent-session-services.d.ts +0 -85
  63. package/dist/core/agent-session-services.d.ts.map +0 -1
  64. package/dist/core/agent-session-services.js +0 -116
  65. package/dist/core/agent-session-services.js.map +0 -1
  66. package/dist/core/agent-session.d.ts +0 -590
  67. package/dist/core/agent-session.d.ts.map +0 -1
  68. package/dist/core/agent-session.js +0 -2505
  69. package/dist/core/agent-session.js.map +0 -1
  70. package/dist/core/auth-storage.d.ts +0 -132
  71. package/dist/core/auth-storage.d.ts.map +0 -1
  72. package/dist/core/auth-storage.js +0 -422
  73. package/dist/core/auth-storage.js.map +0 -1
  74. package/dist/core/bash-executor.d.ts +0 -32
  75. package/dist/core/bash-executor.d.ts.map +0 -1
  76. package/dist/core/bash-executor.js +0 -108
  77. package/dist/core/bash-executor.js.map +0 -1
  78. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  79. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  80. package/dist/core/compaction/branch-summarization.js +0 -243
  81. package/dist/core/compaction/branch-summarization.js.map +0 -1
  82. package/dist/core/compaction/compaction.d.ts +0 -121
  83. package/dist/core/compaction/compaction.d.ts.map +0 -1
  84. package/dist/core/compaction/compaction.js +0 -615
  85. package/dist/core/compaction/compaction.js.map +0 -1
  86. package/dist/core/compaction/index.d.ts +0 -7
  87. package/dist/core/compaction/index.d.ts.map +0 -1
  88. package/dist/core/compaction/index.js +0 -7
  89. package/dist/core/compaction/index.js.map +0 -1
  90. package/dist/core/compaction/utils.d.ts +0 -38
  91. package/dist/core/compaction/utils.d.ts.map +0 -1
  92. package/dist/core/compaction/utils.js +0 -153
  93. package/dist/core/compaction/utils.js.map +0 -1
  94. package/dist/core/defaults.d.ts +0 -3
  95. package/dist/core/defaults.d.ts.map +0 -1
  96. package/dist/core/defaults.js +0 -2
  97. package/dist/core/defaults.js.map +0 -1
  98. package/dist/core/diagnostics.d.ts +0 -15
  99. package/dist/core/diagnostics.d.ts.map +0 -1
  100. package/dist/core/diagnostics.js +0 -2
  101. package/dist/core/diagnostics.js.map +0 -1
  102. package/dist/core/event-bus.d.ts +0 -9
  103. package/dist/core/event-bus.d.ts.map +0 -1
  104. package/dist/core/event-bus.js +0 -25
  105. package/dist/core/event-bus.js.map +0 -1
  106. package/dist/core/exec.d.ts +0 -29
  107. package/dist/core/exec.d.ts.map +0 -1
  108. package/dist/core/exec.js +0 -75
  109. package/dist/core/exec.js.map +0 -1
  110. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  111. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  112. package/dist/core/export-html/ansi-to-html.js +0 -249
  113. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  114. package/dist/core/export-html/index.d.ts +0 -37
  115. package/dist/core/export-html/index.d.ts.map +0 -1
  116. package/dist/core/export-html/index.js +0 -224
  117. package/dist/core/export-html/index.js.map +0 -1
  118. package/dist/core/export-html/template.css +0 -1017
  119. package/dist/core/export-html/template.html +0 -55
  120. package/dist/core/export-html/template.js +0 -1729
  121. package/dist/core/export-html/tool-renderer.d.ts +0 -40
  122. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  123. package/dist/core/export-html/tool-renderer.js +0 -95
  124. package/dist/core/export-html/tool-renderer.js.map +0 -1
  125. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  126. package/dist/core/export-html/vendor/marked.min.js +0 -6
  127. package/dist/core/extensions/index.d.ts +0 -12
  128. package/dist/core/extensions/index.d.ts.map +0 -1
  129. package/dist/core/extensions/index.js +0 -9
  130. package/dist/core/extensions/index.js.map +0 -1
  131. package/dist/core/extensions/loader.d.ts +0 -25
  132. package/dist/core/extensions/loader.d.ts.map +0 -1
  133. package/dist/core/extensions/loader.js +0 -436
  134. package/dist/core/extensions/loader.js.map +0 -1
  135. package/dist/core/extensions/runner.d.ts +0 -150
  136. package/dist/core/extensions/runner.d.ts.map +0 -1
  137. package/dist/core/extensions/runner.js +0 -706
  138. package/dist/core/extensions/runner.js.map +0 -1
  139. package/dist/core/extensions/types.d.ts +0 -1111
  140. package/dist/core/extensions/types.d.ts.map +0 -1
  141. package/dist/core/extensions/types.js +0 -45
  142. package/dist/core/extensions/types.js.map +0 -1
  143. package/dist/core/extensions/wrapper.d.ts +0 -20
  144. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  145. package/dist/core/extensions/wrapper.js +0 -22
  146. package/dist/core/extensions/wrapper.js.map +0 -1
  147. package/dist/core/footer-data-provider.d.ts +0 -48
  148. package/dist/core/footer-data-provider.d.ts.map +0 -1
  149. package/dist/core/footer-data-provider.js +0 -314
  150. package/dist/core/footer-data-provider.js.map +0 -1
  151. package/dist/core/index.d.ts +0 -12
  152. package/dist/core/index.d.ts.map +0 -1
  153. package/dist/core/index.js +0 -12
  154. package/dist/core/index.js.map +0 -1
  155. package/dist/core/keybindings.d.ts +0 -353
  156. package/dist/core/keybindings.d.ts.map +0 -1
  157. package/dist/core/keybindings.js +0 -295
  158. package/dist/core/keybindings.js.map +0 -1
  159. package/dist/core/messages.d.ts +0 -77
  160. package/dist/core/messages.d.ts.map +0 -1
  161. package/dist/core/messages.js +0 -123
  162. package/dist/core/messages.js.map +0 -1
  163. package/dist/core/model-registry.d.ts +0 -132
  164. package/dist/core/model-registry.d.ts.map +0 -1
  165. package/dist/core/model-registry.js +0 -635
  166. package/dist/core/model-registry.js.map +0 -1
  167. package/dist/core/model-resolver.d.ts +0 -110
  168. package/dist/core/model-resolver.d.ts.map +0 -1
  169. package/dist/core/model-resolver.js +0 -486
  170. package/dist/core/model-resolver.js.map +0 -1
  171. package/dist/core/output-guard.d.ts +0 -6
  172. package/dist/core/output-guard.d.ts.map +0 -1
  173. package/dist/core/output-guard.js +0 -59
  174. package/dist/core/output-guard.js.map +0 -1
  175. package/dist/core/package-manager.d.ts +0 -194
  176. package/dist/core/package-manager.d.ts.map +0 -1
  177. package/dist/core/package-manager.js +0 -1882
  178. package/dist/core/package-manager.js.map +0 -1
  179. package/dist/core/prompt-templates.d.ts +0 -52
  180. package/dist/core/prompt-templates.d.ts.map +0 -1
  181. package/dist/core/prompt-templates.js +0 -250
  182. package/dist/core/prompt-templates.js.map +0 -1
  183. package/dist/core/resolve-config-value.d.ts +0 -23
  184. package/dist/core/resolve-config-value.d.ts.map +0 -1
  185. package/dist/core/resolve-config-value.js +0 -126
  186. package/dist/core/resolve-config-value.js.map +0 -1
  187. package/dist/core/resource-loader.d.ts +0 -194
  188. package/dist/core/resource-loader.d.ts.map +0 -1
  189. package/dist/core/resource-loader.js +0 -726
  190. package/dist/core/resource-loader.js.map +0 -1
  191. package/dist/core/sdk.d.ts +0 -99
  192. package/dist/core/sdk.d.ts.map +0 -1
  193. package/dist/core/sdk.js +0 -261
  194. package/dist/core/sdk.js.map +0 -1
  195. package/dist/core/session-cwd.d.ts +0 -19
  196. package/dist/core/session-cwd.d.ts.map +0 -1
  197. package/dist/core/session-cwd.js +0 -38
  198. package/dist/core/session-cwd.js.map +0 -1
  199. package/dist/core/session-manager.d.ts +0 -333
  200. package/dist/core/session-manager.d.ts.map +0 -1
  201. package/dist/core/session-manager.js +0 -1109
  202. package/dist/core/session-manager.js.map +0 -1
  203. package/dist/core/settings-manager.d.ts +0 -240
  204. package/dist/core/settings-manager.d.ts.map +0 -1
  205. package/dist/core/settings-manager.js +0 -711
  206. package/dist/core/settings-manager.js.map +0 -1
  207. package/dist/core/skills.d.ts +0 -60
  208. package/dist/core/skills.d.ts.map +0 -1
  209. package/dist/core/skills.js +0 -409
  210. package/dist/core/skills.js.map +0 -1
  211. package/dist/core/slash-commands.d.ts +0 -14
  212. package/dist/core/slash-commands.d.ts.map +0 -1
  213. package/dist/core/slash-commands.js +0 -24
  214. package/dist/core/slash-commands.js.map +0 -1
  215. package/dist/core/source-info.d.ts +0 -18
  216. package/dist/core/source-info.d.ts.map +0 -1
  217. package/dist/core/source-info.js +0 -19
  218. package/dist/core/source-info.js.map +0 -1
  219. package/dist/core/system-prompt.d.ts +0 -28
  220. package/dist/core/system-prompt.d.ts.map +0 -1
  221. package/dist/core/system-prompt.js +0 -120
  222. package/dist/core/system-prompt.js.map +0 -1
  223. package/dist/core/telemetry.d.ts +0 -3
  224. package/dist/core/telemetry.d.ts.map +0 -1
  225. package/dist/core/telemetry.js +0 -9
  226. package/dist/core/telemetry.js.map +0 -1
  227. package/dist/core/timings.d.ts +0 -8
  228. package/dist/core/timings.d.ts.map +0 -1
  229. package/dist/core/timings.js +0 -31
  230. package/dist/core/timings.js.map +0 -1
  231. package/dist/core/tools/bash.d.ts +0 -64
  232. package/dist/core/tools/bash.d.ts.map +0 -1
  233. package/dist/core/tools/bash.js +0 -355
  234. package/dist/core/tools/bash.js.map +0 -1
  235. package/dist/core/tools/edit-diff.d.ts +0 -85
  236. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  237. package/dist/core/tools/edit-diff.js +0 -337
  238. package/dist/core/tools/edit-diff.js.map +0 -1
  239. package/dist/core/tools/edit.d.ts +0 -49
  240. package/dist/core/tools/edit.d.ts.map +0 -1
  241. package/dist/core/tools/edit.js +0 -323
  242. package/dist/core/tools/edit.js.map +0 -1
  243. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  244. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  245. package/dist/core/tools/file-mutation-queue.js +0 -37
  246. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  247. package/dist/core/tools/find.d.ts +0 -35
  248. package/dist/core/tools/find.d.ts.map +0 -1
  249. package/dist/core/tools/find.js +0 -298
  250. package/dist/core/tools/find.js.map +0 -1
  251. package/dist/core/tools/grep.d.ts +0 -37
  252. package/dist/core/tools/grep.d.ts.map +0 -1
  253. package/dist/core/tools/grep.js +0 -304
  254. package/dist/core/tools/grep.js.map +0 -1
  255. package/dist/core/tools/index.d.ts +0 -40
  256. package/dist/core/tools/index.d.ts.map +0 -1
  257. package/dist/core/tools/index.js +0 -112
  258. package/dist/core/tools/index.js.map +0 -1
  259. package/dist/core/tools/ls.d.ts +0 -37
  260. package/dist/core/tools/ls.d.ts.map +0 -1
  261. package/dist/core/tools/ls.js +0 -169
  262. package/dist/core/tools/ls.js.map +0 -1
  263. package/dist/core/tools/path-utils.d.ts +0 -8
  264. package/dist/core/tools/path-utils.d.ts.map +0 -1
  265. package/dist/core/tools/path-utils.js +0 -81
  266. package/dist/core/tools/path-utils.js.map +0 -1
  267. package/dist/core/tools/read.d.ts +0 -35
  268. package/dist/core/tools/read.d.ts.map +0 -1
  269. package/dist/core/tools/read.js +0 -232
  270. package/dist/core/tools/read.js.map +0 -1
  271. package/dist/core/tools/render-utils.d.ts +0 -21
  272. package/dist/core/tools/render-utils.d.ts.map +0 -1
  273. package/dist/core/tools/render-utils.js +0 -49
  274. package/dist/core/tools/render-utils.js.map +0 -1
  275. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  276. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  277. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  278. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  279. package/dist/core/tools/truncate.d.ts +0 -70
  280. package/dist/core/tools/truncate.d.ts.map +0 -1
  281. package/dist/core/tools/truncate.js +0 -205
  282. package/dist/core/tools/truncate.js.map +0 -1
  283. package/dist/core/tools/write.d.ts +0 -26
  284. package/dist/core/tools/write.d.ts.map +0 -1
  285. package/dist/core/tools/write.js +0 -213
  286. package/dist/core/tools/write.js.map +0 -1
  287. package/dist/index.d.ts +0 -28
  288. package/dist/index.d.ts.map +0 -1
  289. package/dist/index.js +0 -41
  290. package/dist/index.js.map +0 -1
  291. package/dist/main.d.ts +0 -12
  292. package/dist/main.d.ts.map +0 -1
  293. package/dist/main.js +0 -589
  294. package/dist/main.js.map +0 -1
  295. package/dist/migrations.d.ts +0 -33
  296. package/dist/migrations.d.ts.map +0 -1
  297. package/dist/migrations.js +0 -281
  298. package/dist/migrations.js.map +0 -1
  299. package/dist/modes/index.d.ts +0 -9
  300. package/dist/modes/index.d.ts.map +0 -1
  301. package/dist/modes/index.js +0 -8
  302. package/dist/modes/index.js.map +0 -1
  303. package/dist/modes/interactive/assets/clankolas.png +0 -0
  304. package/dist/modes/interactive/components/armin.d.ts +0 -34
  305. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  306. package/dist/modes/interactive/components/armin.js +0 -333
  307. package/dist/modes/interactive/components/armin.js.map +0 -1
  308. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  309. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  310. package/dist/modes/interactive/components/assistant-message.js +0 -121
  311. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  312. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  313. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  314. package/dist/modes/interactive/components/bash-execution.js +0 -175
  315. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  316. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  317. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  318. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  319. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  320. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  321. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  322. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  323. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  324. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  325. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  326. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  327. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  328. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  329. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  330. package/dist/modes/interactive/components/config-selector.js +0 -479
  331. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  332. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  333. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  334. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  335. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  336. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  337. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  338. package/dist/modes/interactive/components/custom-editor.js +0 -70
  339. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  340. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  341. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  342. package/dist/modes/interactive/components/custom-message.js +0 -79
  343. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  344. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  345. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  346. package/dist/modes/interactive/components/daxnuts.js +0 -140
  347. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  348. package/dist/modes/interactive/components/diff.d.ts +0 -12
  349. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  350. package/dist/modes/interactive/components/diff.js +0 -133
  351. package/dist/modes/interactive/components/diff.js.map +0 -1
  352. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  353. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  354. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  355. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  356. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  357. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  358. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  359. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  360. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  361. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  362. package/dist/modes/interactive/components/extension-editor.js +0 -111
  363. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  364. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  365. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  366. package/dist/modes/interactive/components/extension-input.js +0 -61
  367. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  368. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  369. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  370. package/dist/modes/interactive/components/extension-selector.js +0 -78
  371. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  372. package/dist/modes/interactive/components/footer.d.ts +0 -27
  373. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  374. package/dist/modes/interactive/components/footer.js +0 -201
  375. package/dist/modes/interactive/components/footer.js.map +0 -1
  376. package/dist/modes/interactive/components/index.d.ts +0 -32
  377. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  378. package/dist/modes/interactive/components/index.js +0 -33
  379. package/dist/modes/interactive/components/index.js.map +0 -1
  380. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  381. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  382. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  383. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  384. package/dist/modes/interactive/components/login-dialog.d.ts +0 -42
  385. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  386. package/dist/modes/interactive/components/login-dialog.js +0 -145
  387. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  388. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  389. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  390. package/dist/modes/interactive/components/model-selector.js +0 -278
  391. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  392. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  393. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  394. package/dist/modes/interactive/components/oauth-selector.js +0 -97
  395. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  396. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  397. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  398. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  399. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  400. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  401. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  402. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  403. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  404. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  405. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  406. package/dist/modes/interactive/components/session-selector.js +0 -865
  407. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  408. package/dist/modes/interactive/components/settings-selector.d.ts +0 -60
  409. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  410. package/dist/modes/interactive/components/settings-selector.js +0 -311
  411. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  412. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  413. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  414. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  415. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  416. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  417. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  418. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  419. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  420. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  421. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  422. package/dist/modes/interactive/components/theme-selector.js +0 -50
  423. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  424. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  425. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  426. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  427. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  428. package/dist/modes/interactive/components/tool-execution.d.ts +0 -60
  429. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  430. package/dist/modes/interactive/components/tool-execution.js +0 -289
  431. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  432. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  433. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  434. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  435. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  436. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  437. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  438. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  439. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  440. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  441. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  442. package/dist/modes/interactive/components/user-message.js +0 -29
  443. package/dist/modes/interactive/components/user-message.js.map +0 -1
  444. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  445. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  446. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  447. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  448. package/dist/modes/interactive/interactive-mode.d.ts +0 -343
  449. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  450. package/dist/modes/interactive/interactive-mode.js +0 -4315
  451. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  452. package/dist/modes/interactive/theme/aery.json +0 -84
  453. package/dist/modes/interactive/theme/dark.json +0 -85
  454. package/dist/modes/interactive/theme/light.json +0 -84
  455. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  456. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  457. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  458. package/dist/modes/interactive/theme/theme.js +0 -979
  459. package/dist/modes/interactive/theme/theme.js.map +0 -1
  460. package/dist/modes/print-mode.d.ts +0 -28
  461. package/dist/modes/print-mode.d.ts.map +0 -1
  462. package/dist/modes/print-mode.js +0 -141
  463. package/dist/modes/print-mode.js.map +0 -1
  464. package/dist/modes/rpc/jsonl.d.ts +0 -17
  465. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  466. package/dist/modes/rpc/jsonl.js +0 -49
  467. package/dist/modes/rpc/jsonl.js.map +0 -1
  468. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  469. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  470. package/dist/modes/rpc/rpc-client.js +0 -410
  471. package/dist/modes/rpc/rpc-client.js.map +0 -1
  472. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  473. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  474. package/dist/modes/rpc/rpc-mode.js +0 -601
  475. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  476. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  477. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  478. package/dist/modes/rpc/rpc-types.js +0 -8
  479. package/dist/modes/rpc/rpc-types.js.map +0 -1
  480. package/dist/package-manager-cli.d.ts +0 -4
  481. package/dist/package-manager-cli.d.ts.map +0 -1
  482. package/dist/package-manager-cli.js +0 -234
  483. package/dist/package-manager-cli.js.map +0 -1
  484. package/dist/utils/changelog.d.ts +0 -21
  485. package/dist/utils/changelog.d.ts.map +0 -1
  486. package/dist/utils/changelog.js +0 -87
  487. package/dist/utils/changelog.js.map +0 -1
  488. package/dist/utils/child-process.d.ts +0 -11
  489. package/dist/utils/child-process.d.ts.map +0 -1
  490. package/dist/utils/child-process.js +0 -78
  491. package/dist/utils/child-process.js.map +0 -1
  492. package/dist/utils/clipboard-image.d.ts +0 -11
  493. package/dist/utils/clipboard-image.d.ts.map +0 -1
  494. package/dist/utils/clipboard-image.js +0 -245
  495. package/dist/utils/clipboard-image.js.map +0 -1
  496. package/dist/utils/clipboard-native.d.ts +0 -8
  497. package/dist/utils/clipboard-native.d.ts.map +0 -1
  498. package/dist/utils/clipboard-native.js +0 -14
  499. package/dist/utils/clipboard-native.js.map +0 -1
  500. package/dist/utils/clipboard.d.ts +0 -2
  501. package/dist/utils/clipboard.d.ts.map +0 -1
  502. package/dist/utils/clipboard.js +0 -78
  503. package/dist/utils/clipboard.js.map +0 -1
  504. package/dist/utils/exif-orientation.d.ts +0 -5
  505. package/dist/utils/exif-orientation.d.ts.map +0 -1
  506. package/dist/utils/exif-orientation.js +0 -158
  507. package/dist/utils/exif-orientation.js.map +0 -1
  508. package/dist/utils/frontmatter.d.ts +0 -8
  509. package/dist/utils/frontmatter.d.ts.map +0 -1
  510. package/dist/utils/frontmatter.js +0 -26
  511. package/dist/utils/frontmatter.js.map +0 -1
  512. package/dist/utils/git.d.ts +0 -26
  513. package/dist/utils/git.d.ts.map +0 -1
  514. package/dist/utils/git.js +0 -163
  515. package/dist/utils/git.js.map +0 -1
  516. package/dist/utils/image-convert.d.ts +0 -9
  517. package/dist/utils/image-convert.d.ts.map +0 -1
  518. package/dist/utils/image-convert.js +0 -39
  519. package/dist/utils/image-convert.js.map +0 -1
  520. package/dist/utils/image-resize.d.ts +0 -36
  521. package/dist/utils/image-resize.d.ts.map +0 -1
  522. package/dist/utils/image-resize.js +0 -137
  523. package/dist/utils/image-resize.js.map +0 -1
  524. package/dist/utils/mime.d.ts +0 -2
  525. package/dist/utils/mime.d.ts.map +0 -1
  526. package/dist/utils/mime.js +0 -26
  527. package/dist/utils/mime.js.map +0 -1
  528. package/dist/utils/paths.d.ts +0 -7
  529. package/dist/utils/paths.d.ts.map +0 -1
  530. package/dist/utils/paths.js +0 -19
  531. package/dist/utils/paths.js.map +0 -1
  532. package/dist/utils/photon.d.ts +0 -21
  533. package/dist/utils/photon.d.ts.map +0 -1
  534. package/dist/utils/photon.js +0 -121
  535. package/dist/utils/photon.js.map +0 -1
  536. package/dist/utils/shell.d.ts +0 -29
  537. package/dist/utils/shell.d.ts.map +0 -1
  538. package/dist/utils/shell.js +0 -203
  539. package/dist/utils/shell.js.map +0 -1
  540. package/dist/utils/sleep.d.ts +0 -5
  541. package/dist/utils/sleep.d.ts.map +0 -1
  542. package/dist/utils/sleep.js +0 -17
  543. package/dist/utils/sleep.js.map +0 -1
  544. package/dist/utils/tools-manager.d.ts +0 -3
  545. package/dist/utils/tools-manager.d.ts.map +0 -1
  546. package/dist/utils/tools-manager.js +0 -252
  547. 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