meetsoma 0.3.2 → 0.3.4

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