@eminent337/aery 0.1.43 → 0.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +0 -0
  3. package/docs/compaction.md +18 -18
  4. package/docs/custom-provider.md +21 -21
  5. package/docs/development.md +0 -0
  6. package/docs/extensions.md +104 -102
  7. package/docs/images/doom-extension.png +0 -0
  8. package/docs/images/exy.png +0 -0
  9. package/docs/images/interactive-mode.png +0 -0
  10. package/docs/images/tree-view.png +0 -0
  11. package/docs/json.md +5 -5
  12. package/docs/keybindings.md +3 -3
  13. package/docs/models.md +2 -2
  14. package/docs/packages.md +21 -21
  15. package/docs/prompt-templates.md +1 -1
  16. package/docs/providers.md +3 -1
  17. package/docs/rpc.md +1 -1
  18. package/docs/sdk.md +7 -5
  19. package/docs/session.md +4 -4
  20. package/docs/settings.md +0 -0
  21. package/docs/shell-aliases.md +0 -0
  22. package/docs/skills.md +2 -2
  23. package/docs/terminal-setup.md +1 -1
  24. package/docs/termux.md +0 -0
  25. package/docs/themes.md +1 -1
  26. package/docs/tmux.md +0 -0
  27. package/docs/tree.md +1 -1
  28. package/docs/tui.md +7 -7
  29. package/docs/windows.md +0 -0
  30. package/examples/README.md +0 -0
  31. package/examples/extensions/README.md +0 -0
  32. package/examples/extensions/antigravity-image-gen.ts +0 -0
  33. package/examples/extensions/auto-commit-on-exit.ts +0 -0
  34. package/examples/extensions/bash-spawn-hook.ts +0 -0
  35. package/examples/extensions/bookmark.ts +0 -0
  36. package/examples/extensions/built-in-tool-renderer.ts +0 -0
  37. package/examples/extensions/claude-rules.ts +0 -0
  38. package/examples/extensions/commands.ts +0 -0
  39. package/examples/extensions/confirm-destructive.ts +0 -0
  40. package/examples/extensions/custom-compaction.ts +0 -0
  41. package/examples/extensions/custom-footer.ts +0 -0
  42. package/examples/extensions/custom-header.ts +0 -0
  43. package/examples/extensions/custom-provider-anthropic/index.ts +0 -0
  44. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -0
  45. package/examples/extensions/custom-provider-anthropic/package.json +0 -0
  46. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -0
  47. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -0
  48. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -0
  49. package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -0
  50. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -0
  51. package/examples/extensions/dirty-repo-guard.ts +0 -0
  52. package/examples/extensions/doom-overlay/README.md +0 -0
  53. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
  54. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
  55. package/examples/extensions/doom-overlay/doom-component.ts +0 -0
  56. package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
  57. package/examples/extensions/doom-overlay/doom-keys.ts +0 -0
  58. package/examples/extensions/doom-overlay/index.ts +0 -0
  59. package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
  60. package/examples/extensions/dynamic-resources/SKILL.md +0 -0
  61. package/examples/extensions/dynamic-resources/dynamic.json +0 -0
  62. package/examples/extensions/dynamic-resources/dynamic.md +0 -0
  63. package/examples/extensions/dynamic-resources/index.ts +0 -0
  64. package/examples/extensions/dynamic-tools.ts +0 -0
  65. package/examples/extensions/event-bus.ts +0 -0
  66. package/examples/extensions/file-trigger.ts +0 -0
  67. package/examples/extensions/git-checkpoint.ts +0 -0
  68. package/examples/extensions/handoff.ts +0 -0
  69. package/examples/extensions/hello.ts +0 -0
  70. package/examples/extensions/hidden-thinking-label.ts +0 -0
  71. package/examples/extensions/inline-bash.ts +0 -0
  72. package/examples/extensions/input-transform.ts +0 -0
  73. package/examples/extensions/interactive-shell.ts +0 -0
  74. package/examples/extensions/mac-system-theme.ts +0 -0
  75. package/examples/extensions/message-renderer.ts +0 -0
  76. package/examples/extensions/minimal-mode.ts +0 -0
  77. package/examples/extensions/modal-editor.ts +0 -0
  78. package/examples/extensions/model-status.ts +0 -0
  79. package/examples/extensions/notify.ts +0 -0
  80. package/examples/extensions/overlay-qa-tests.ts +0 -0
  81. package/examples/extensions/overlay-test.ts +0 -0
  82. package/examples/extensions/permission-gate.ts +0 -0
  83. package/examples/extensions/pirate.ts +0 -0
  84. package/examples/extensions/plan-mode/README.md +0 -0
  85. package/examples/extensions/plan-mode/index.ts +0 -0
  86. package/examples/extensions/plan-mode/utils.ts +0 -0
  87. package/examples/extensions/preset.ts +0 -0
  88. package/examples/extensions/protected-paths.ts +0 -0
  89. package/examples/extensions/provider-payload.ts +0 -0
  90. package/examples/extensions/qna.ts +0 -0
  91. package/examples/extensions/question.ts +0 -0
  92. package/examples/extensions/questionnaire.ts +0 -0
  93. package/examples/extensions/rainbow-editor.ts +0 -0
  94. package/examples/extensions/reload-runtime.ts +0 -0
  95. package/examples/extensions/rpc-demo.ts +0 -0
  96. package/examples/extensions/sandbox/index.ts +0 -0
  97. package/examples/extensions/sandbox/package-lock.json +0 -0
  98. package/examples/extensions/sandbox/package.json +0 -0
  99. package/examples/extensions/send-user-message.ts +0 -0
  100. package/examples/extensions/session-name.ts +0 -0
  101. package/examples/extensions/shutdown-command.ts +0 -0
  102. package/examples/extensions/snake.ts +0 -0
  103. package/examples/extensions/space-invaders.ts +0 -0
  104. package/examples/extensions/ssh.ts +0 -0
  105. package/examples/extensions/status-line.ts +0 -0
  106. package/examples/extensions/subagent/README.md +0 -0
  107. package/examples/extensions/subagent/agents/planner.md +0 -0
  108. package/examples/extensions/subagent/agents/reviewer.md +0 -0
  109. package/examples/extensions/subagent/agents/scout.md +0 -0
  110. package/examples/extensions/subagent/agents/worker.md +0 -0
  111. package/examples/extensions/subagent/agents.ts +0 -0
  112. package/examples/extensions/subagent/index.ts +0 -0
  113. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
  114. package/examples/extensions/subagent/prompts/implement.md +0 -0
  115. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
  116. package/examples/extensions/summarize.ts +0 -0
  117. package/examples/extensions/system-prompt-header.ts +0 -0
  118. package/examples/extensions/tic-tac-toe.ts +0 -0
  119. package/examples/extensions/timed-confirm.ts +0 -0
  120. package/examples/extensions/titlebar-spinner.ts +0 -0
  121. package/examples/extensions/todo.ts +0 -0
  122. package/examples/extensions/tool-override.ts +0 -0
  123. package/examples/extensions/tools.ts +0 -0
  124. package/examples/extensions/trigger-compact.ts +0 -0
  125. package/examples/extensions/truncated-tool.ts +0 -0
  126. package/examples/extensions/widget-placement.ts +0 -0
  127. package/examples/extensions/with-deps/index.ts +0 -0
  128. package/examples/extensions/with-deps/package-lock.json +0 -0
  129. package/examples/extensions/with-deps/package.json +0 -0
  130. package/examples/extensions/working-indicator.ts +0 -0
  131. package/examples/rpc-extension-ui.ts +0 -0
  132. package/examples/sdk/01-minimal.ts +0 -0
  133. package/examples/sdk/02-custom-model.ts +0 -0
  134. package/examples/sdk/03-custom-prompt.ts +0 -0
  135. package/examples/sdk/04-skills.ts +0 -0
  136. package/examples/sdk/05-tools.ts +0 -0
  137. package/examples/sdk/06-extensions.ts +0 -0
  138. package/examples/sdk/07-context-files.ts +0 -0
  139. package/examples/sdk/08-prompt-templates.ts +0 -0
  140. package/examples/sdk/09-api-keys-and-oauth.ts +0 -0
  141. package/examples/sdk/10-settings.ts +0 -0
  142. package/examples/sdk/11-sessions.ts +0 -0
  143. package/examples/sdk/12-full-control.ts +0 -0
  144. package/examples/sdk/13-session-runtime.ts +0 -0
  145. package/examples/sdk/README.md +0 -0
  146. package/package.json +4 -4
  147. package/dist/bun/cli.d.ts +0 -3
  148. package/dist/bun/cli.d.ts.map +0 -1
  149. package/dist/bun/cli.js +0 -7
  150. package/dist/bun/cli.js.map +0 -1
  151. package/dist/bun/register-bedrock.d.ts +0 -2
  152. package/dist/bun/register-bedrock.d.ts.map +0 -1
  153. package/dist/bun/register-bedrock.js +0 -4
  154. package/dist/bun/register-bedrock.js.map +0 -1
  155. package/dist/cli/args.d.ts +0 -52
  156. package/dist/cli/args.d.ts.map +0 -1
  157. package/dist/cli/args.js +0 -321
  158. package/dist/cli/args.js.map +0 -1
  159. package/dist/cli/config-selector.d.ts +0 -14
  160. package/dist/cli/config-selector.d.ts.map +0 -1
  161. package/dist/cli/config-selector.js +0 -31
  162. package/dist/cli/config-selector.js.map +0 -1
  163. package/dist/cli/file-processor.d.ts +0 -15
  164. package/dist/cli/file-processor.d.ts.map +0 -1
  165. package/dist/cli/file-processor.js +0 -83
  166. package/dist/cli/file-processor.js.map +0 -1
  167. package/dist/cli/initial-message.d.ts +0 -18
  168. package/dist/cli/initial-message.d.ts.map +0 -1
  169. package/dist/cli/initial-message.js +0 -22
  170. package/dist/cli/initial-message.js.map +0 -1
  171. package/dist/cli/list-models.d.ts +0 -9
  172. package/dist/cli/list-models.d.ts.map +0 -1
  173. package/dist/cli/list-models.js +0 -97
  174. package/dist/cli/list-models.js.map +0 -1
  175. package/dist/cli/session-picker.d.ts +0 -9
  176. package/dist/cli/session-picker.d.ts.map +0 -1
  177. package/dist/cli/session-picker.js +0 -35
  178. package/dist/cli/session-picker.js.map +0 -1
  179. package/dist/cli.d.ts +0 -3
  180. package/dist/cli.d.ts.map +0 -1
  181. package/dist/cli.js +0 -15
  182. package/dist/cli.js.map +0 -1
  183. package/dist/config.d.ts +0 -77
  184. package/dist/config.d.ts.map +0 -1
  185. package/dist/config.js +0 -221
  186. package/dist/config.js.map +0 -1
  187. package/dist/core/agent-session-runtime.d.ts +0 -99
  188. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  189. package/dist/core/agent-session-runtime.js +0 -261
  190. package/dist/core/agent-session-runtime.js.map +0 -1
  191. package/dist/core/agent-session-services.d.ts +0 -85
  192. package/dist/core/agent-session-services.d.ts.map +0 -1
  193. package/dist/core/agent-session-services.js +0 -116
  194. package/dist/core/agent-session-services.js.map +0 -1
  195. package/dist/core/agent-session.d.ts +0 -590
  196. package/dist/core/agent-session.d.ts.map +0 -1
  197. package/dist/core/agent-session.js +0 -2505
  198. package/dist/core/agent-session.js.map +0 -1
  199. package/dist/core/auth-storage.d.ts +0 -132
  200. package/dist/core/auth-storage.d.ts.map +0 -1
  201. package/dist/core/auth-storage.js +0 -422
  202. package/dist/core/auth-storage.js.map +0 -1
  203. package/dist/core/bash-executor.d.ts +0 -32
  204. package/dist/core/bash-executor.d.ts.map +0 -1
  205. package/dist/core/bash-executor.js +0 -108
  206. package/dist/core/bash-executor.js.map +0 -1
  207. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  208. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  209. package/dist/core/compaction/branch-summarization.js +0 -243
  210. package/dist/core/compaction/branch-summarization.js.map +0 -1
  211. package/dist/core/compaction/compaction.d.ts +0 -121
  212. package/dist/core/compaction/compaction.d.ts.map +0 -1
  213. package/dist/core/compaction/compaction.js +0 -615
  214. package/dist/core/compaction/compaction.js.map +0 -1
  215. package/dist/core/compaction/index.d.ts +0 -7
  216. package/dist/core/compaction/index.d.ts.map +0 -1
  217. package/dist/core/compaction/index.js +0 -7
  218. package/dist/core/compaction/index.js.map +0 -1
  219. package/dist/core/compaction/utils.d.ts +0 -38
  220. package/dist/core/compaction/utils.d.ts.map +0 -1
  221. package/dist/core/compaction/utils.js +0 -153
  222. package/dist/core/compaction/utils.js.map +0 -1
  223. package/dist/core/defaults.d.ts +0 -3
  224. package/dist/core/defaults.d.ts.map +0 -1
  225. package/dist/core/defaults.js +0 -2
  226. package/dist/core/defaults.js.map +0 -1
  227. package/dist/core/diagnostics.d.ts +0 -15
  228. package/dist/core/diagnostics.d.ts.map +0 -1
  229. package/dist/core/diagnostics.js +0 -2
  230. package/dist/core/diagnostics.js.map +0 -1
  231. package/dist/core/event-bus.d.ts +0 -9
  232. package/dist/core/event-bus.d.ts.map +0 -1
  233. package/dist/core/event-bus.js +0 -25
  234. package/dist/core/event-bus.js.map +0 -1
  235. package/dist/core/exec.d.ts +0 -29
  236. package/dist/core/exec.d.ts.map +0 -1
  237. package/dist/core/exec.js +0 -75
  238. package/dist/core/exec.js.map +0 -1
  239. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  240. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  241. package/dist/core/export-html/ansi-to-html.js +0 -249
  242. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  243. package/dist/core/export-html/index.d.ts +0 -37
  244. package/dist/core/export-html/index.d.ts.map +0 -1
  245. package/dist/core/export-html/index.js +0 -224
  246. package/dist/core/export-html/index.js.map +0 -1
  247. package/dist/core/export-html/template.css +0 -1017
  248. package/dist/core/export-html/template.html +0 -55
  249. package/dist/core/export-html/template.js +0 -1729
  250. package/dist/core/export-html/tool-renderer.d.ts +0 -40
  251. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  252. package/dist/core/export-html/tool-renderer.js +0 -95
  253. package/dist/core/export-html/tool-renderer.js.map +0 -1
  254. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  255. package/dist/core/export-html/vendor/marked.min.js +0 -6
  256. package/dist/core/extensions/index.d.ts +0 -12
  257. package/dist/core/extensions/index.d.ts.map +0 -1
  258. package/dist/core/extensions/index.js +0 -9
  259. package/dist/core/extensions/index.js.map +0 -1
  260. package/dist/core/extensions/loader.d.ts +0 -25
  261. package/dist/core/extensions/loader.d.ts.map +0 -1
  262. package/dist/core/extensions/loader.js +0 -436
  263. package/dist/core/extensions/loader.js.map +0 -1
  264. package/dist/core/extensions/runner.d.ts +0 -150
  265. package/dist/core/extensions/runner.d.ts.map +0 -1
  266. package/dist/core/extensions/runner.js +0 -706
  267. package/dist/core/extensions/runner.js.map +0 -1
  268. package/dist/core/extensions/types.d.ts +0 -1111
  269. package/dist/core/extensions/types.d.ts.map +0 -1
  270. package/dist/core/extensions/types.js +0 -45
  271. package/dist/core/extensions/types.js.map +0 -1
  272. package/dist/core/extensions/wrapper.d.ts +0 -20
  273. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  274. package/dist/core/extensions/wrapper.js +0 -22
  275. package/dist/core/extensions/wrapper.js.map +0 -1
  276. package/dist/core/footer-data-provider.d.ts +0 -48
  277. package/dist/core/footer-data-provider.d.ts.map +0 -1
  278. package/dist/core/footer-data-provider.js +0 -314
  279. package/dist/core/footer-data-provider.js.map +0 -1
  280. package/dist/core/index.d.ts +0 -12
  281. package/dist/core/index.d.ts.map +0 -1
  282. package/dist/core/index.js +0 -12
  283. package/dist/core/index.js.map +0 -1
  284. package/dist/core/keybindings.d.ts +0 -353
  285. package/dist/core/keybindings.d.ts.map +0 -1
  286. package/dist/core/keybindings.js +0 -295
  287. package/dist/core/keybindings.js.map +0 -1
  288. package/dist/core/messages.d.ts +0 -77
  289. package/dist/core/messages.d.ts.map +0 -1
  290. package/dist/core/messages.js +0 -123
  291. package/dist/core/messages.js.map +0 -1
  292. package/dist/core/model-registry.d.ts +0 -132
  293. package/dist/core/model-registry.d.ts.map +0 -1
  294. package/dist/core/model-registry.js +0 -635
  295. package/dist/core/model-registry.js.map +0 -1
  296. package/dist/core/model-resolver.d.ts +0 -110
  297. package/dist/core/model-resolver.d.ts.map +0 -1
  298. package/dist/core/model-resolver.js +0 -486
  299. package/dist/core/model-resolver.js.map +0 -1
  300. package/dist/core/output-guard.d.ts +0 -6
  301. package/dist/core/output-guard.d.ts.map +0 -1
  302. package/dist/core/output-guard.js +0 -59
  303. package/dist/core/output-guard.js.map +0 -1
  304. package/dist/core/package-manager.d.ts +0 -194
  305. package/dist/core/package-manager.d.ts.map +0 -1
  306. package/dist/core/package-manager.js +0 -1882
  307. package/dist/core/package-manager.js.map +0 -1
  308. package/dist/core/prompt-templates.d.ts +0 -52
  309. package/dist/core/prompt-templates.d.ts.map +0 -1
  310. package/dist/core/prompt-templates.js +0 -250
  311. package/dist/core/prompt-templates.js.map +0 -1
  312. package/dist/core/resolve-config-value.d.ts +0 -23
  313. package/dist/core/resolve-config-value.d.ts.map +0 -1
  314. package/dist/core/resolve-config-value.js +0 -126
  315. package/dist/core/resolve-config-value.js.map +0 -1
  316. package/dist/core/resource-loader.d.ts +0 -194
  317. package/dist/core/resource-loader.d.ts.map +0 -1
  318. package/dist/core/resource-loader.js +0 -726
  319. package/dist/core/resource-loader.js.map +0 -1
  320. package/dist/core/sdk.d.ts +0 -99
  321. package/dist/core/sdk.d.ts.map +0 -1
  322. package/dist/core/sdk.js +0 -261
  323. package/dist/core/sdk.js.map +0 -1
  324. package/dist/core/session-cwd.d.ts +0 -19
  325. package/dist/core/session-cwd.d.ts.map +0 -1
  326. package/dist/core/session-cwd.js +0 -38
  327. package/dist/core/session-cwd.js.map +0 -1
  328. package/dist/core/session-manager.d.ts +0 -333
  329. package/dist/core/session-manager.d.ts.map +0 -1
  330. package/dist/core/session-manager.js +0 -1109
  331. package/dist/core/session-manager.js.map +0 -1
  332. package/dist/core/settings-manager.d.ts +0 -240
  333. package/dist/core/settings-manager.d.ts.map +0 -1
  334. package/dist/core/settings-manager.js +0 -711
  335. package/dist/core/settings-manager.js.map +0 -1
  336. package/dist/core/skills.d.ts +0 -60
  337. package/dist/core/skills.d.ts.map +0 -1
  338. package/dist/core/skills.js +0 -409
  339. package/dist/core/skills.js.map +0 -1
  340. package/dist/core/slash-commands.d.ts +0 -14
  341. package/dist/core/slash-commands.d.ts.map +0 -1
  342. package/dist/core/slash-commands.js +0 -24
  343. package/dist/core/slash-commands.js.map +0 -1
  344. package/dist/core/source-info.d.ts +0 -18
  345. package/dist/core/source-info.d.ts.map +0 -1
  346. package/dist/core/source-info.js +0 -19
  347. package/dist/core/source-info.js.map +0 -1
  348. package/dist/core/system-prompt.d.ts +0 -28
  349. package/dist/core/system-prompt.d.ts.map +0 -1
  350. package/dist/core/system-prompt.js +0 -120
  351. package/dist/core/system-prompt.js.map +0 -1
  352. package/dist/core/telemetry.d.ts +0 -3
  353. package/dist/core/telemetry.d.ts.map +0 -1
  354. package/dist/core/telemetry.js +0 -9
  355. package/dist/core/telemetry.js.map +0 -1
  356. package/dist/core/timings.d.ts +0 -8
  357. package/dist/core/timings.d.ts.map +0 -1
  358. package/dist/core/timings.js +0 -31
  359. package/dist/core/timings.js.map +0 -1
  360. package/dist/core/tools/bash.d.ts +0 -64
  361. package/dist/core/tools/bash.d.ts.map +0 -1
  362. package/dist/core/tools/bash.js +0 -355
  363. package/dist/core/tools/bash.js.map +0 -1
  364. package/dist/core/tools/edit-diff.d.ts +0 -85
  365. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  366. package/dist/core/tools/edit-diff.js +0 -337
  367. package/dist/core/tools/edit-diff.js.map +0 -1
  368. package/dist/core/tools/edit.d.ts +0 -49
  369. package/dist/core/tools/edit.d.ts.map +0 -1
  370. package/dist/core/tools/edit.js +0 -323
  371. package/dist/core/tools/edit.js.map +0 -1
  372. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  373. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  374. package/dist/core/tools/file-mutation-queue.js +0 -37
  375. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  376. package/dist/core/tools/find.d.ts +0 -35
  377. package/dist/core/tools/find.d.ts.map +0 -1
  378. package/dist/core/tools/find.js +0 -298
  379. package/dist/core/tools/find.js.map +0 -1
  380. package/dist/core/tools/grep.d.ts +0 -37
  381. package/dist/core/tools/grep.d.ts.map +0 -1
  382. package/dist/core/tools/grep.js +0 -304
  383. package/dist/core/tools/grep.js.map +0 -1
  384. package/dist/core/tools/index.d.ts +0 -40
  385. package/dist/core/tools/index.d.ts.map +0 -1
  386. package/dist/core/tools/index.js +0 -112
  387. package/dist/core/tools/index.js.map +0 -1
  388. package/dist/core/tools/ls.d.ts +0 -37
  389. package/dist/core/tools/ls.d.ts.map +0 -1
  390. package/dist/core/tools/ls.js +0 -169
  391. package/dist/core/tools/ls.js.map +0 -1
  392. package/dist/core/tools/path-utils.d.ts +0 -8
  393. package/dist/core/tools/path-utils.d.ts.map +0 -1
  394. package/dist/core/tools/path-utils.js +0 -81
  395. package/dist/core/tools/path-utils.js.map +0 -1
  396. package/dist/core/tools/read.d.ts +0 -35
  397. package/dist/core/tools/read.d.ts.map +0 -1
  398. package/dist/core/tools/read.js +0 -232
  399. package/dist/core/tools/read.js.map +0 -1
  400. package/dist/core/tools/render-utils.d.ts +0 -21
  401. package/dist/core/tools/render-utils.d.ts.map +0 -1
  402. package/dist/core/tools/render-utils.js +0 -49
  403. package/dist/core/tools/render-utils.js.map +0 -1
  404. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  405. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  406. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  407. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  408. package/dist/core/tools/truncate.d.ts +0 -70
  409. package/dist/core/tools/truncate.d.ts.map +0 -1
  410. package/dist/core/tools/truncate.js +0 -205
  411. package/dist/core/tools/truncate.js.map +0 -1
  412. package/dist/core/tools/write.d.ts +0 -26
  413. package/dist/core/tools/write.d.ts.map +0 -1
  414. package/dist/core/tools/write.js +0 -213
  415. package/dist/core/tools/write.js.map +0 -1
  416. package/dist/index.d.ts +0 -28
  417. package/dist/index.d.ts.map +0 -1
  418. package/dist/index.js +0 -41
  419. package/dist/index.js.map +0 -1
  420. package/dist/main.d.ts +0 -12
  421. package/dist/main.d.ts.map +0 -1
  422. package/dist/main.js +0 -589
  423. package/dist/main.js.map +0 -1
  424. package/dist/migrations.d.ts +0 -33
  425. package/dist/migrations.d.ts.map +0 -1
  426. package/dist/migrations.js +0 -281
  427. package/dist/migrations.js.map +0 -1
  428. package/dist/modes/index.d.ts +0 -9
  429. package/dist/modes/index.d.ts.map +0 -1
  430. package/dist/modes/index.js +0 -8
  431. package/dist/modes/index.js.map +0 -1
  432. package/dist/modes/interactive/assets/clankolas.png +0 -0
  433. package/dist/modes/interactive/components/aery-splash.d.ts +0 -18
  434. package/dist/modes/interactive/components/aery-splash.d.ts.map +0 -1
  435. package/dist/modes/interactive/components/aery-splash.js +0 -60
  436. package/dist/modes/interactive/components/aery-splash.js.map +0 -1
  437. package/dist/modes/interactive/components/armin.d.ts +0 -34
  438. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  439. package/dist/modes/interactive/components/armin.js +0 -333
  440. package/dist/modes/interactive/components/armin.js.map +0 -1
  441. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  442. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  443. package/dist/modes/interactive/components/assistant-message.js +0 -121
  444. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  445. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  446. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  447. package/dist/modes/interactive/components/bash-execution.js +0 -175
  448. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  449. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  450. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  451. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  452. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  453. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  454. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  455. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  456. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  457. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  458. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  459. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  460. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  461. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  462. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  463. package/dist/modes/interactive/components/config-selector.js +0 -479
  464. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  465. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  466. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  467. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  468. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  469. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  470. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  471. package/dist/modes/interactive/components/custom-editor.js +0 -70
  472. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  473. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  474. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  475. package/dist/modes/interactive/components/custom-message.js +0 -79
  476. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  477. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  478. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  479. package/dist/modes/interactive/components/daxnuts.js +0 -140
  480. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  481. package/dist/modes/interactive/components/diff.d.ts +0 -12
  482. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  483. package/dist/modes/interactive/components/diff.js +0 -133
  484. package/dist/modes/interactive/components/diff.js.map +0 -1
  485. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  486. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  487. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  488. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  489. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  490. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  491. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  492. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  493. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  494. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  495. package/dist/modes/interactive/components/extension-editor.js +0 -111
  496. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  497. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  498. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  499. package/dist/modes/interactive/components/extension-input.js +0 -61
  500. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  501. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  502. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  503. package/dist/modes/interactive/components/extension-selector.js +0 -78
  504. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  505. package/dist/modes/interactive/components/footer.d.ts +0 -27
  506. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  507. package/dist/modes/interactive/components/footer.js +0 -201
  508. package/dist/modes/interactive/components/footer.js.map +0 -1
  509. package/dist/modes/interactive/components/index.d.ts +0 -32
  510. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  511. package/dist/modes/interactive/components/index.js +0 -33
  512. package/dist/modes/interactive/components/index.js.map +0 -1
  513. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  514. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  515. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  516. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  517. package/dist/modes/interactive/components/login-dialog.d.ts +0 -42
  518. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  519. package/dist/modes/interactive/components/login-dialog.js +0 -145
  520. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  521. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  522. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  523. package/dist/modes/interactive/components/model-selector.js +0 -278
  524. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  525. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  526. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  527. package/dist/modes/interactive/components/oauth-selector.js +0 -97
  528. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  529. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  530. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  531. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  532. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  533. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  534. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  535. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  536. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  537. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  538. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  539. package/dist/modes/interactive/components/session-selector.js +0 -865
  540. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  541. package/dist/modes/interactive/components/settings-selector.d.ts +0 -60
  542. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  543. package/dist/modes/interactive/components/settings-selector.js +0 -311
  544. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  545. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  546. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  547. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  548. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  549. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  550. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  551. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  552. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  553. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  554. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  555. package/dist/modes/interactive/components/theme-selector.js +0 -50
  556. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  557. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  558. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  559. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  560. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  561. package/dist/modes/interactive/components/tool-execution.d.ts +0 -60
  562. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  563. package/dist/modes/interactive/components/tool-execution.js +0 -289
  564. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  565. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  566. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  567. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  568. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  569. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  570. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  571. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  572. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  573. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  574. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  575. package/dist/modes/interactive/components/user-message.js +0 -29
  576. package/dist/modes/interactive/components/user-message.js.map +0 -1
  577. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  578. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  579. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  580. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  581. package/dist/modes/interactive/interactive-mode.d.ts +0 -344
  582. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  583. package/dist/modes/interactive/interactive-mode.js +0 -4352
  584. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  585. package/dist/modes/interactive/theme/aery.json +0 -84
  586. package/dist/modes/interactive/theme/catppuccin-mocha.json +0 -81
  587. package/dist/modes/interactive/theme/dark.json +0 -85
  588. package/dist/modes/interactive/theme/dracula.json +0 -81
  589. package/dist/modes/interactive/theme/light.json +0 -84
  590. package/dist/modes/interactive/theme/nord.json +0 -81
  591. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  592. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  593. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  594. package/dist/modes/interactive/theme/theme.js +0 -979
  595. package/dist/modes/interactive/theme/theme.js.map +0 -1
  596. package/dist/modes/interactive/theme/tokyo-night.json +0 -81
  597. package/dist/modes/print-mode.d.ts +0 -28
  598. package/dist/modes/print-mode.d.ts.map +0 -1
  599. package/dist/modes/print-mode.js +0 -141
  600. package/dist/modes/print-mode.js.map +0 -1
  601. package/dist/modes/rpc/jsonl.d.ts +0 -17
  602. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  603. package/dist/modes/rpc/jsonl.js +0 -49
  604. package/dist/modes/rpc/jsonl.js.map +0 -1
  605. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  606. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  607. package/dist/modes/rpc/rpc-client.js +0 -410
  608. package/dist/modes/rpc/rpc-client.js.map +0 -1
  609. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  610. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  611. package/dist/modes/rpc/rpc-mode.js +0 -601
  612. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  613. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  614. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  615. package/dist/modes/rpc/rpc-types.js +0 -8
  616. package/dist/modes/rpc/rpc-types.js.map +0 -1
  617. package/dist/package-manager-cli.d.ts +0 -4
  618. package/dist/package-manager-cli.d.ts.map +0 -1
  619. package/dist/package-manager-cli.js +0 -234
  620. package/dist/package-manager-cli.js.map +0 -1
  621. package/dist/utils/changelog.d.ts +0 -21
  622. package/dist/utils/changelog.d.ts.map +0 -1
  623. package/dist/utils/changelog.js +0 -87
  624. package/dist/utils/changelog.js.map +0 -1
  625. package/dist/utils/child-process.d.ts +0 -11
  626. package/dist/utils/child-process.d.ts.map +0 -1
  627. package/dist/utils/child-process.js +0 -78
  628. package/dist/utils/child-process.js.map +0 -1
  629. package/dist/utils/clipboard-image.d.ts +0 -11
  630. package/dist/utils/clipboard-image.d.ts.map +0 -1
  631. package/dist/utils/clipboard-image.js +0 -245
  632. package/dist/utils/clipboard-image.js.map +0 -1
  633. package/dist/utils/clipboard-native.d.ts +0 -8
  634. package/dist/utils/clipboard-native.d.ts.map +0 -1
  635. package/dist/utils/clipboard-native.js +0 -14
  636. package/dist/utils/clipboard-native.js.map +0 -1
  637. package/dist/utils/clipboard.d.ts +0 -2
  638. package/dist/utils/clipboard.d.ts.map +0 -1
  639. package/dist/utils/clipboard.js +0 -78
  640. package/dist/utils/clipboard.js.map +0 -1
  641. package/dist/utils/exif-orientation.d.ts +0 -5
  642. package/dist/utils/exif-orientation.d.ts.map +0 -1
  643. package/dist/utils/exif-orientation.js +0 -158
  644. package/dist/utils/exif-orientation.js.map +0 -1
  645. package/dist/utils/frontmatter.d.ts +0 -8
  646. package/dist/utils/frontmatter.d.ts.map +0 -1
  647. package/dist/utils/frontmatter.js +0 -26
  648. package/dist/utils/frontmatter.js.map +0 -1
  649. package/dist/utils/git.d.ts +0 -26
  650. package/dist/utils/git.d.ts.map +0 -1
  651. package/dist/utils/git.js +0 -163
  652. package/dist/utils/git.js.map +0 -1
  653. package/dist/utils/image-convert.d.ts +0 -9
  654. package/dist/utils/image-convert.d.ts.map +0 -1
  655. package/dist/utils/image-convert.js +0 -39
  656. package/dist/utils/image-convert.js.map +0 -1
  657. package/dist/utils/image-resize.d.ts +0 -36
  658. package/dist/utils/image-resize.d.ts.map +0 -1
  659. package/dist/utils/image-resize.js +0 -137
  660. package/dist/utils/image-resize.js.map +0 -1
  661. package/dist/utils/mime.d.ts +0 -2
  662. package/dist/utils/mime.d.ts.map +0 -1
  663. package/dist/utils/mime.js +0 -26
  664. package/dist/utils/mime.js.map +0 -1
  665. package/dist/utils/paths.d.ts +0 -7
  666. package/dist/utils/paths.d.ts.map +0 -1
  667. package/dist/utils/paths.js +0 -19
  668. package/dist/utils/paths.js.map +0 -1
  669. package/dist/utils/photon.d.ts +0 -21
  670. package/dist/utils/photon.d.ts.map +0 -1
  671. package/dist/utils/photon.js +0 -121
  672. package/dist/utils/photon.js.map +0 -1
  673. package/dist/utils/shell.d.ts +0 -29
  674. package/dist/utils/shell.d.ts.map +0 -1
  675. package/dist/utils/shell.js +0 -203
  676. package/dist/utils/shell.js.map +0 -1
  677. package/dist/utils/sleep.d.ts +0 -5
  678. package/dist/utils/sleep.d.ts.map +0 -1
  679. package/dist/utils/sleep.js +0 -17
  680. package/dist/utils/sleep.js.map +0 -1
  681. package/dist/utils/tools-manager.d.ts +0 -3
  682. package/dist/utils/tools-manager.d.ts.map +0 -1
  683. package/dist/utils/tools-manager.js +0 -252
  684. package/dist/utils/tools-manager.js.map +0 -1
@@ -1,601 +0,0 @@
1
- /**
2
- * RPC mode: Headless operation with JSON stdin/stdout protocol.
3
- *
4
- * Used for embedding the agent in other applications.
5
- * Receives commands as JSON on stdin, outputs events and responses as JSON on stdout.
6
- *
7
- * Protocol:
8
- * - Commands: JSON objects with `type` field, optional `id` for correlation
9
- * - Responses: JSON objects with `type: "response"`, `command`, `success`, and optional `data`/`error`
10
- * - Events: AgentSessionEvent objects streamed as they occur
11
- * - Extension UI: Extension UI requests are emitted, client responds with extension_ui_response
12
- */
13
- import * as crypto from "node:crypto";
14
- import { takeOverStdout, writeRawStdout } from "../../core/output-guard.js";
15
- import { killTrackedDetachedChildren } from "../../utils/shell.js";
16
- import { theme } from "../interactive/theme/theme.js";
17
- import { attachJsonlLineReader, serializeJsonLine } from "./jsonl.js";
18
- /**
19
- * Run in RPC mode.
20
- * Listens for JSON commands on stdin, outputs events and responses on stdout.
21
- */
22
- export async function runRpcMode(runtimeHost) {
23
- takeOverStdout();
24
- let session = runtimeHost.session;
25
- let unsubscribe;
26
- const output = (obj) => {
27
- writeRawStdout(serializeJsonLine(obj));
28
- };
29
- const success = (id, command, data) => {
30
- if (data === undefined) {
31
- return { id, type: "response", command, success: true };
32
- }
33
- return { id, type: "response", command, success: true, data };
34
- };
35
- const error = (id, command, message) => {
36
- return { id, type: "response", command, success: false, error: message };
37
- };
38
- // Pending extension UI requests waiting for response
39
- const pendingExtensionRequests = new Map();
40
- // Shutdown request flag
41
- let shutdownRequested = false;
42
- let shuttingDown = false;
43
- const signalCleanupHandlers = [];
44
- /** Helper for dialog methods with signal/timeout support */
45
- function createDialogPromise(opts, defaultValue, request, parseResponse) {
46
- if (opts?.signal?.aborted)
47
- return Promise.resolve(defaultValue);
48
- const id = crypto.randomUUID();
49
- return new Promise((resolve, reject) => {
50
- let timeoutId;
51
- const cleanup = () => {
52
- if (timeoutId)
53
- clearTimeout(timeoutId);
54
- opts?.signal?.removeEventListener("abort", onAbort);
55
- pendingExtensionRequests.delete(id);
56
- };
57
- const onAbort = () => {
58
- cleanup();
59
- resolve(defaultValue);
60
- };
61
- opts?.signal?.addEventListener("abort", onAbort, { once: true });
62
- if (opts?.timeout) {
63
- timeoutId = setTimeout(() => {
64
- cleanup();
65
- resolve(defaultValue);
66
- }, opts.timeout);
67
- }
68
- pendingExtensionRequests.set(id, {
69
- resolve: (response) => {
70
- cleanup();
71
- resolve(parseResponse(response));
72
- },
73
- reject,
74
- });
75
- output({ type: "extension_ui_request", id, ...request });
76
- });
77
- }
78
- /**
79
- * Create an extension UI context that uses the RPC protocol.
80
- */
81
- const createExtensionUIContext = () => ({
82
- select: (title, options, opts) => createDialogPromise(opts, undefined, { method: "select", title, options, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? undefined : "value" in r ? r.value : undefined),
83
- confirm: (title, message, opts) => createDialogPromise(opts, false, { method: "confirm", title, message, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? false : "confirmed" in r ? r.confirmed : false),
84
- input: (title, placeholder, opts) => createDialogPromise(opts, undefined, { method: "input", title, placeholder, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? undefined : "value" in r ? r.value : undefined),
85
- notify(message, type) {
86
- // Fire and forget - no response needed
87
- output({
88
- type: "extension_ui_request",
89
- id: crypto.randomUUID(),
90
- method: "notify",
91
- message,
92
- notifyType: type,
93
- });
94
- },
95
- onTerminalInput() {
96
- // Raw terminal input not supported in RPC mode
97
- return () => { };
98
- },
99
- setStatus(key, text) {
100
- // Fire and forget - no response needed
101
- output({
102
- type: "extension_ui_request",
103
- id: crypto.randomUUID(),
104
- method: "setStatus",
105
- statusKey: key,
106
- statusText: text,
107
- });
108
- },
109
- setWorkingMessage(_message) {
110
- // Working message not supported in RPC mode - requires TUI loader access
111
- },
112
- setWorkingIndicator(_options) {
113
- // Working indicator customization not supported in RPC mode - requires TUI loader access
114
- },
115
- setHiddenThinkingLabel(_label) {
116
- // Hidden thinking label not supported in RPC mode - requires TUI message rendering access
117
- },
118
- setWidget(key, content, options) {
119
- // Only support string arrays in RPC mode - factory functions are ignored
120
- if (content === undefined || Array.isArray(content)) {
121
- output({
122
- type: "extension_ui_request",
123
- id: crypto.randomUUID(),
124
- method: "setWidget",
125
- widgetKey: key,
126
- widgetLines: content,
127
- widgetPlacement: options?.placement,
128
- });
129
- }
130
- // Component factories are not supported in RPC mode - would need TUI access
131
- },
132
- setFooter(_factory) {
133
- // Custom footer not supported in RPC mode - requires TUI access
134
- },
135
- setHeader(_factory) {
136
- // Custom header not supported in RPC mode - requires TUI access
137
- },
138
- setTitle(title) {
139
- // Fire and forget - host can implement terminal title control
140
- output({
141
- type: "extension_ui_request",
142
- id: crypto.randomUUID(),
143
- method: "setTitle",
144
- title,
145
- });
146
- },
147
- async custom() {
148
- // Custom UI not supported in RPC mode
149
- return undefined;
150
- },
151
- pasteToEditor(text) {
152
- // Paste handling not supported in RPC mode - falls back to setEditorText
153
- this.setEditorText(text);
154
- },
155
- setEditorText(text) {
156
- // Fire and forget - host can implement editor control
157
- output({
158
- type: "extension_ui_request",
159
- id: crypto.randomUUID(),
160
- method: "set_editor_text",
161
- text,
162
- });
163
- },
164
- getEditorText() {
165
- // Synchronous method can't wait for RPC response
166
- // Host should track editor state locally if needed
167
- return "";
168
- },
169
- async editor(title, prefill) {
170
- const id = crypto.randomUUID();
171
- return new Promise((resolve, reject) => {
172
- pendingExtensionRequests.set(id, {
173
- resolve: (response) => {
174
- if ("cancelled" in response && response.cancelled) {
175
- resolve(undefined);
176
- }
177
- else if ("value" in response) {
178
- resolve(response.value);
179
- }
180
- else {
181
- resolve(undefined);
182
- }
183
- },
184
- reject,
185
- });
186
- output({ type: "extension_ui_request", id, method: "editor", title, prefill });
187
- });
188
- },
189
- setEditorComponent() {
190
- // Custom editor components not supported in RPC mode
191
- },
192
- get theme() {
193
- return theme;
194
- },
195
- getAllThemes() {
196
- return [];
197
- },
198
- getTheme(_name) {
199
- return undefined;
200
- },
201
- setTheme(_theme) {
202
- // Theme switching not supported in RPC mode
203
- return { success: false, error: "Theme switching not supported in RPC mode" };
204
- },
205
- getToolsExpanded() {
206
- // Tool expansion not supported in RPC mode - no TUI
207
- return false;
208
- },
209
- setToolsExpanded(_expanded) {
210
- // Tool expansion not supported in RPC mode - no TUI
211
- },
212
- });
213
- const rebindSession = async () => {
214
- session = runtimeHost.session;
215
- await session.bindExtensions({
216
- uiContext: createExtensionUIContext(),
217
- commandContextActions: {
218
- waitForIdle: () => session.agent.waitForIdle(),
219
- newSession: async (options) => {
220
- const result = await runtimeHost.newSession(options);
221
- if (!result.cancelled) {
222
- await rebindSession();
223
- }
224
- return result;
225
- },
226
- fork: async (entryId, forkOptions) => {
227
- const result = await runtimeHost.fork(entryId, forkOptions);
228
- if (!result.cancelled) {
229
- await rebindSession();
230
- }
231
- return { cancelled: result.cancelled };
232
- },
233
- navigateTree: async (targetId, options) => {
234
- const result = await session.navigateTree(targetId, {
235
- summarize: options?.summarize,
236
- customInstructions: options?.customInstructions,
237
- replaceInstructions: options?.replaceInstructions,
238
- label: options?.label,
239
- });
240
- return { cancelled: result.cancelled };
241
- },
242
- switchSession: async (sessionPath) => {
243
- const result = await runtimeHost.switchSession(sessionPath);
244
- if (!result.cancelled) {
245
- await rebindSession();
246
- }
247
- return result;
248
- },
249
- reload: async () => {
250
- await session.reload();
251
- },
252
- },
253
- shutdownHandler: () => {
254
- shutdownRequested = true;
255
- },
256
- onError: (err) => {
257
- output({ type: "extension_error", extensionPath: err.extensionPath, event: err.event, error: err.error });
258
- },
259
- });
260
- unsubscribe?.();
261
- unsubscribe = session.subscribe((event) => {
262
- output(event);
263
- });
264
- };
265
- const registerSignalHandlers = () => {
266
- const signals = ["SIGTERM"];
267
- if (process.platform !== "win32") {
268
- signals.push("SIGHUP");
269
- }
270
- for (const signal of signals) {
271
- const handler = () => {
272
- killTrackedDetachedChildren();
273
- void shutdown(signal === "SIGHUP" ? 129 : 143);
274
- };
275
- process.on(signal, handler);
276
- signalCleanupHandlers.push(() => process.off(signal, handler));
277
- }
278
- };
279
- await rebindSession();
280
- registerSignalHandlers();
281
- // Handle a single command
282
- const handleCommand = async (command) => {
283
- const id = command.id;
284
- switch (command.type) {
285
- // =================================================================
286
- // Prompting
287
- // =================================================================
288
- case "prompt": {
289
- // Start prompt handling immediately, but emit the authoritative response only after
290
- // prompt preflight succeeds. Queued and immediately handled prompts also count as success.
291
- let preflightSucceeded = false;
292
- void session
293
- .prompt(command.message, {
294
- images: command.images,
295
- streamingBehavior: command.streamingBehavior,
296
- source: "rpc",
297
- preflightResult: (didSucceed) => {
298
- if (didSucceed) {
299
- preflightSucceeded = true;
300
- output(success(id, "prompt"));
301
- }
302
- },
303
- })
304
- .catch((e) => {
305
- if (!preflightSucceeded) {
306
- output(error(id, "prompt", e.message));
307
- }
308
- });
309
- return undefined;
310
- }
311
- case "steer": {
312
- await session.steer(command.message, command.images);
313
- return success(id, "steer");
314
- }
315
- case "follow_up": {
316
- await session.followUp(command.message, command.images);
317
- return success(id, "follow_up");
318
- }
319
- case "abort": {
320
- await session.abort();
321
- return success(id, "abort");
322
- }
323
- case "new_session": {
324
- const options = command.parentSession ? { parentSession: command.parentSession } : undefined;
325
- const result = await runtimeHost.newSession(options);
326
- if (!result.cancelled) {
327
- await rebindSession();
328
- }
329
- return success(id, "new_session", result);
330
- }
331
- // =================================================================
332
- // State
333
- // =================================================================
334
- case "get_state": {
335
- const state = {
336
- model: session.model,
337
- thinkingLevel: session.thinkingLevel,
338
- isStreaming: session.isStreaming,
339
- isCompacting: session.isCompacting,
340
- steeringMode: session.steeringMode,
341
- followUpMode: session.followUpMode,
342
- sessionFile: session.sessionFile,
343
- sessionId: session.sessionId,
344
- sessionName: session.sessionName,
345
- autoCompactionEnabled: session.autoCompactionEnabled,
346
- messageCount: session.messages.length,
347
- pendingMessageCount: session.pendingMessageCount,
348
- };
349
- return success(id, "get_state", state);
350
- }
351
- // =================================================================
352
- // Model
353
- // =================================================================
354
- case "set_model": {
355
- const models = await session.modelRegistry.getAvailable();
356
- const model = models.find((m) => m.provider === command.provider && m.id === command.modelId);
357
- if (!model) {
358
- return error(id, "set_model", `Model not found: ${command.provider}/${command.modelId}`);
359
- }
360
- await session.setModel(model);
361
- return success(id, "set_model", model);
362
- }
363
- case "cycle_model": {
364
- const result = await session.cycleModel();
365
- if (!result) {
366
- return success(id, "cycle_model", null);
367
- }
368
- return success(id, "cycle_model", result);
369
- }
370
- case "get_available_models": {
371
- const models = await session.modelRegistry.getAvailable();
372
- return success(id, "get_available_models", { models });
373
- }
374
- // =================================================================
375
- // Thinking
376
- // =================================================================
377
- case "set_thinking_level": {
378
- session.setThinkingLevel(command.level);
379
- return success(id, "set_thinking_level");
380
- }
381
- case "cycle_thinking_level": {
382
- const level = session.cycleThinkingLevel();
383
- if (!level) {
384
- return success(id, "cycle_thinking_level", null);
385
- }
386
- return success(id, "cycle_thinking_level", { level });
387
- }
388
- // =================================================================
389
- // Queue Modes
390
- // =================================================================
391
- case "set_steering_mode": {
392
- session.setSteeringMode(command.mode);
393
- return success(id, "set_steering_mode");
394
- }
395
- case "set_follow_up_mode": {
396
- session.setFollowUpMode(command.mode);
397
- return success(id, "set_follow_up_mode");
398
- }
399
- // =================================================================
400
- // Compaction
401
- // =================================================================
402
- case "compact": {
403
- const result = await session.compact(command.customInstructions);
404
- return success(id, "compact", result);
405
- }
406
- case "set_auto_compaction": {
407
- session.setAutoCompactionEnabled(command.enabled);
408
- return success(id, "set_auto_compaction");
409
- }
410
- // =================================================================
411
- // Retry
412
- // =================================================================
413
- case "set_auto_retry": {
414
- session.setAutoRetryEnabled(command.enabled);
415
- return success(id, "set_auto_retry");
416
- }
417
- case "abort_retry": {
418
- session.abortRetry();
419
- return success(id, "abort_retry");
420
- }
421
- // =================================================================
422
- // Bash
423
- // =================================================================
424
- case "bash": {
425
- const result = await session.executeBash(command.command);
426
- return success(id, "bash", result);
427
- }
428
- case "abort_bash": {
429
- session.abortBash();
430
- return success(id, "abort_bash");
431
- }
432
- // =================================================================
433
- // Session
434
- // =================================================================
435
- case "get_session_stats": {
436
- const stats = session.getSessionStats();
437
- return success(id, "get_session_stats", stats);
438
- }
439
- case "export_html": {
440
- const path = await session.exportToHtml(command.outputPath);
441
- return success(id, "export_html", { path });
442
- }
443
- case "switch_session": {
444
- const result = await runtimeHost.switchSession(command.sessionPath);
445
- if (!result.cancelled) {
446
- await rebindSession();
447
- }
448
- return success(id, "switch_session", result);
449
- }
450
- case "fork": {
451
- const result = await runtimeHost.fork(command.entryId);
452
- if (!result.cancelled) {
453
- await rebindSession();
454
- }
455
- return success(id, "fork", { text: result.selectedText, cancelled: result.cancelled });
456
- }
457
- case "clone": {
458
- const leafId = session.sessionManager.getLeafId();
459
- if (!leafId) {
460
- return error(id, "clone", "Cannot clone session: no current entry selected");
461
- }
462
- const result = await runtimeHost.fork(leafId, { position: "at" });
463
- if (!result.cancelled) {
464
- await rebindSession();
465
- }
466
- return success(id, "clone", { cancelled: result.cancelled });
467
- }
468
- case "get_fork_messages": {
469
- const messages = session.getUserMessagesForForking();
470
- return success(id, "get_fork_messages", { messages });
471
- }
472
- case "get_last_assistant_text": {
473
- const text = session.getLastAssistantText();
474
- return success(id, "get_last_assistant_text", { text });
475
- }
476
- case "set_session_name": {
477
- const name = command.name.trim();
478
- if (!name) {
479
- return error(id, "set_session_name", "Session name cannot be empty");
480
- }
481
- session.setSessionName(name);
482
- return success(id, "set_session_name");
483
- }
484
- // =================================================================
485
- // Messages
486
- // =================================================================
487
- case "get_messages": {
488
- return success(id, "get_messages", { messages: session.messages });
489
- }
490
- // =================================================================
491
- // Commands (available for invocation via prompt)
492
- // =================================================================
493
- case "get_commands": {
494
- const commands = [];
495
- for (const command of session.extensionRunner.getRegisteredCommands()) {
496
- commands.push({
497
- name: command.invocationName,
498
- description: command.description,
499
- source: "extension",
500
- sourceInfo: command.sourceInfo,
501
- });
502
- }
503
- for (const template of session.promptTemplates) {
504
- commands.push({
505
- name: template.name,
506
- description: template.description,
507
- source: "prompt",
508
- sourceInfo: template.sourceInfo,
509
- });
510
- }
511
- for (const skill of session.resourceLoader.getSkills().skills) {
512
- commands.push({
513
- name: `skill:${skill.name}`,
514
- description: skill.description,
515
- source: "skill",
516
- sourceInfo: skill.sourceInfo,
517
- });
518
- }
519
- return success(id, "get_commands", { commands });
520
- }
521
- default: {
522
- const unknownCommand = command;
523
- return error(undefined, unknownCommand.type, `Unknown command: ${unknownCommand.type}`);
524
- }
525
- }
526
- };
527
- /**
528
- * Check if shutdown was requested and perform shutdown if so.
529
- * Called after handling each command when waiting for the next command.
530
- */
531
- let detachInput = () => { };
532
- async function shutdown(exitCode = 0) {
533
- if (shuttingDown) {
534
- process.exit(exitCode);
535
- }
536
- shuttingDown = true;
537
- for (const cleanup of signalCleanupHandlers) {
538
- cleanup();
539
- }
540
- unsubscribe?.();
541
- await runtimeHost.dispose();
542
- detachInput();
543
- process.stdin.pause();
544
- process.exit(exitCode);
545
- }
546
- async function checkShutdownRequested() {
547
- if (!shutdownRequested)
548
- return;
549
- await shutdown();
550
- }
551
- const handleInputLine = async (line) => {
552
- let parsed;
553
- try {
554
- parsed = JSON.parse(line);
555
- }
556
- catch (parseError) {
557
- output(error(undefined, "parse", `Failed to parse command: ${parseError instanceof Error ? parseError.message : String(parseError)}`));
558
- return;
559
- }
560
- // Handle extension UI responses
561
- if (typeof parsed === "object" &&
562
- parsed !== null &&
563
- "type" in parsed &&
564
- parsed.type === "extension_ui_response") {
565
- const response = parsed;
566
- const pending = pendingExtensionRequests.get(response.id);
567
- if (pending) {
568
- pendingExtensionRequests.delete(response.id);
569
- pending.resolve(response);
570
- }
571
- return;
572
- }
573
- const command = parsed;
574
- try {
575
- const response = await handleCommand(command);
576
- if (response) {
577
- output(response);
578
- }
579
- await checkShutdownRequested();
580
- }
581
- catch (commandError) {
582
- output(error(command.id, command.type, commandError instanceof Error ? commandError.message : String(commandError)));
583
- }
584
- };
585
- const onInputEnd = () => {
586
- void shutdown();
587
- };
588
- process.stdin.on("end", onInputEnd);
589
- detachInput = (() => {
590
- const detachJsonl = attachJsonlLineReader(process.stdin, (line) => {
591
- void handleInputLine(line);
592
- });
593
- return () => {
594
- detachJsonl();
595
- process.stdin.off("end", onInputEnd);
596
- };
597
- })();
598
- // Keep process alive forever
599
- return new Promise(() => { });
600
- }
601
- //# sourceMappingURL=rpc-mode.js.map