@eminent337/aery 0.1.63 → 0.1.65

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 (626) hide show
  1. package/docs/custom-provider.md +1 -1
  2. package/docs/extensions.md +18 -18
  3. package/docs/index.md +5 -5
  4. package/docs/json.md +1 -1
  5. package/docs/keybindings.md +2 -2
  6. package/docs/models.md +2 -2
  7. package/docs/packages.md +13 -13
  8. package/docs/providers.md +5 -5
  9. package/docs/quickstart.md +19 -19
  10. package/docs/rpc.md +3 -3
  11. package/docs/sdk.md +1 -1
  12. package/docs/session-format.md +3 -3
  13. package/docs/sessions.md +10 -10
  14. package/docs/settings.md +4 -4
  15. package/docs/skills.md +2 -2
  16. package/docs/terminal-setup.md +6 -6
  17. package/docs/termux.md +3 -3
  18. package/docs/themes.md +3 -3
  19. package/docs/tmux.md +1 -1
  20. package/docs/tui.md +2 -2
  21. package/docs/usage.md +33 -33
  22. package/examples/extensions/README.md +3 -3
  23. package/examples/extensions/antigravity-image-gen.ts +6 -6
  24. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  25. package/examples/extensions/bash-spawn-hook.ts +1 -1
  26. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  27. package/examples/extensions/claude-rules.ts +1 -1
  28. package/examples/extensions/commands.ts +1 -1
  29. package/examples/extensions/custom-compaction.ts +1 -1
  30. package/examples/extensions/custom-header.ts +2 -2
  31. package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
  32. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  33. package/examples/extensions/custom-provider-qwen-cli/index.ts +1 -1
  34. package/examples/extensions/doom-overlay/README.md +2 -2
  35. package/examples/extensions/doom-overlay/doom/build.sh +2 -2
  36. package/examples/extensions/doom-overlay/index.ts +1 -1
  37. package/examples/extensions/hidden-thinking-label.ts +1 -1
  38. package/examples/extensions/inline-bash.ts +2 -2
  39. package/examples/extensions/input-transform.ts +3 -3
  40. package/examples/extensions/interactive-shell.ts +1 -1
  41. package/examples/extensions/mac-system-theme.ts +2 -2
  42. package/examples/extensions/minimal-mode.ts +1 -1
  43. package/examples/extensions/modal-editor.ts +1 -1
  44. package/examples/extensions/model-status.ts +1 -1
  45. package/examples/extensions/overlay-qa-tests.ts +1 -1
  46. package/examples/extensions/overlay-test.ts +1 -1
  47. package/examples/extensions/pirate.ts +1 -1
  48. package/examples/extensions/preset.ts +12 -6
  49. package/examples/extensions/prompt-customizer.ts +1 -1
  50. package/examples/extensions/provider-payload.ts +1 -1
  51. package/examples/extensions/rainbow-editor.ts +1 -1
  52. package/examples/extensions/rpc-demo.ts +1 -1
  53. package/examples/extensions/sandbox/index.ts +8 -8
  54. package/examples/extensions/shutdown-command.ts +5 -5
  55. package/examples/extensions/ssh.ts +2 -2
  56. package/examples/extensions/subagent/README.md +13 -13
  57. package/examples/extensions/subagent/agents.ts +1 -1
  58. package/examples/extensions/subagent/index.ts +5 -5
  59. package/examples/extensions/titlebar-spinner.ts +1 -1
  60. package/examples/extensions/tool-override.ts +2 -2
  61. package/examples/extensions/tools.ts +1 -1
  62. package/examples/extensions/truncated-tool.ts +1 -1
  63. package/examples/extensions/working-indicator.ts +4 -4
  64. package/examples/extensions/working-message-test.ts +1 -1
  65. package/examples/sdk/01-minimal.ts +1 -1
  66. package/examples/sdk/03-custom-prompt.ts +1 -1
  67. package/examples/sdk/04-skills.ts +1 -1
  68. package/examples/sdk/06-extensions.ts +2 -2
  69. package/examples/sdk/08-prompt-templates.ts +1 -1
  70. package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
  71. package/examples/sdk/README.md +1 -1
  72. package/package.json +3 -3
  73. package/dist/bun/cli.d.ts +0 -3
  74. package/dist/bun/cli.d.ts.map +0 -1
  75. package/dist/bun/cli.js +0 -8
  76. package/dist/bun/cli.js.map +0 -1
  77. package/dist/bun/register-bedrock.d.ts +0 -2
  78. package/dist/bun/register-bedrock.d.ts.map +0 -1
  79. package/dist/bun/register-bedrock.js +0 -4
  80. package/dist/bun/register-bedrock.js.map +0 -1
  81. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  82. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  83. package/dist/bun/restore-sandbox-env.js +0 -32
  84. package/dist/bun/restore-sandbox-env.js.map +0 -1
  85. package/dist/cli/args.d.ts +0 -53
  86. package/dist/cli/args.d.ts.map +0 -1
  87. package/dist/cli/args.js +0 -329
  88. package/dist/cli/args.js.map +0 -1
  89. package/dist/cli/config-selector.d.ts +0 -14
  90. package/dist/cli/config-selector.d.ts.map +0 -1
  91. package/dist/cli/config-selector.js +0 -31
  92. package/dist/cli/config-selector.js.map +0 -1
  93. package/dist/cli/file-processor.d.ts +0 -15
  94. package/dist/cli/file-processor.d.ts.map +0 -1
  95. package/dist/cli/file-processor.js +0 -83
  96. package/dist/cli/file-processor.js.map +0 -1
  97. package/dist/cli/initial-message.d.ts +0 -18
  98. package/dist/cli/initial-message.d.ts.map +0 -1
  99. package/dist/cli/initial-message.js +0 -22
  100. package/dist/cli/initial-message.js.map +0 -1
  101. package/dist/cli/list-models.d.ts +0 -9
  102. package/dist/cli/list-models.d.ts.map +0 -1
  103. package/dist/cli/list-models.js +0 -98
  104. package/dist/cli/list-models.js.map +0 -1
  105. package/dist/cli/session-picker.d.ts +0 -9
  106. package/dist/cli/session-picker.d.ts.map +0 -1
  107. package/dist/cli/session-picker.js +0 -35
  108. package/dist/cli/session-picker.js.map +0 -1
  109. package/dist/cli.d.ts +0 -3
  110. package/dist/cli.d.ts.map +0 -1
  111. package/dist/cli.js +0 -19
  112. package/dist/cli.js.map +0 -1
  113. package/dist/config.d.ts +0 -86
  114. package/dist/config.d.ts.map +0 -1
  115. package/dist/config.js +0 -332
  116. package/dist/config.js.map +0 -1
  117. package/dist/core/agent-session-runtime.d.ts +0 -117
  118. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  119. package/dist/core/agent-session-runtime.js +0 -300
  120. package/dist/core/agent-session-runtime.js.map +0 -1
  121. package/dist/core/agent-session-services.d.ts +0 -86
  122. package/dist/core/agent-session-services.d.ts.map +0 -1
  123. package/dist/core/agent-session-services.js +0 -117
  124. package/dist/core/agent-session-services.js.map +0 -1
  125. package/dist/core/agent-session.d.ts +0 -595
  126. package/dist/core/agent-session.d.ts.map +0 -1
  127. package/dist/core/agent-session.js +0 -2520
  128. package/dist/core/agent-session.js.map +0 -1
  129. package/dist/core/auth-guidance.d.ts +0 -5
  130. package/dist/core/auth-guidance.d.ts.map +0 -1
  131. package/dist/core/auth-guidance.js +0 -21
  132. package/dist/core/auth-guidance.js.map +0 -1
  133. package/dist/core/auth-storage.d.ts +0 -141
  134. package/dist/core/auth-storage.d.ts.map +0 -1
  135. package/dist/core/auth-storage.js +0 -441
  136. package/dist/core/auth-storage.js.map +0 -1
  137. package/dist/core/bash-executor.d.ts +0 -32
  138. package/dist/core/bash-executor.d.ts.map +0 -1
  139. package/dist/core/bash-executor.js +0 -111
  140. package/dist/core/bash-executor.js.map +0 -1
  141. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  142. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  143. package/dist/core/compaction/branch-summarization.js +0 -243
  144. package/dist/core/compaction/branch-summarization.js.map +0 -1
  145. package/dist/core/compaction/compaction.d.ts +0 -121
  146. package/dist/core/compaction/compaction.d.ts.map +0 -1
  147. package/dist/core/compaction/compaction.js +0 -615
  148. package/dist/core/compaction/compaction.js.map +0 -1
  149. package/dist/core/compaction/index.d.ts +0 -7
  150. package/dist/core/compaction/index.d.ts.map +0 -1
  151. package/dist/core/compaction/index.js +0 -7
  152. package/dist/core/compaction/index.js.map +0 -1
  153. package/dist/core/compaction/utils.d.ts +0 -38
  154. package/dist/core/compaction/utils.d.ts.map +0 -1
  155. package/dist/core/compaction/utils.js +0 -153
  156. package/dist/core/compaction/utils.js.map +0 -1
  157. package/dist/core/defaults.d.ts +0 -3
  158. package/dist/core/defaults.d.ts.map +0 -1
  159. package/dist/core/defaults.js +0 -2
  160. package/dist/core/defaults.js.map +0 -1
  161. package/dist/core/diagnostics.d.ts +0 -15
  162. package/dist/core/diagnostics.d.ts.map +0 -1
  163. package/dist/core/diagnostics.js +0 -2
  164. package/dist/core/diagnostics.js.map +0 -1
  165. package/dist/core/event-bus.d.ts +0 -9
  166. package/dist/core/event-bus.d.ts.map +0 -1
  167. package/dist/core/event-bus.js +0 -25
  168. package/dist/core/event-bus.js.map +0 -1
  169. package/dist/core/exec.d.ts +0 -29
  170. package/dist/core/exec.d.ts.map +0 -1
  171. package/dist/core/exec.js +0 -75
  172. package/dist/core/exec.js.map +0 -1
  173. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  174. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  175. package/dist/core/export-html/ansi-to-html.js +0 -249
  176. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  177. package/dist/core/export-html/index.d.ts +0 -37
  178. package/dist/core/export-html/index.d.ts.map +0 -1
  179. package/dist/core/export-html/index.js +0 -224
  180. package/dist/core/export-html/index.js.map +0 -1
  181. package/dist/core/export-html/template.css +0 -1022
  182. package/dist/core/export-html/template.html +0 -55
  183. package/dist/core/export-html/template.js +0 -1770
  184. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  185. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  186. package/dist/core/export-html/tool-renderer.js +0 -108
  187. package/dist/core/export-html/tool-renderer.js.map +0 -1
  188. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  189. package/dist/core/export-html/vendor/marked.min.js +0 -6
  190. package/dist/core/extensions/index.d.ts +0 -12
  191. package/dist/core/extensions/index.d.ts.map +0 -1
  192. package/dist/core/extensions/index.js +0 -9
  193. package/dist/core/extensions/index.js.map +0 -1
  194. package/dist/core/extensions/loader.d.ts +0 -25
  195. package/dist/core/extensions/loader.d.ts.map +0 -1
  196. package/dist/core/extensions/loader.js +0 -476
  197. package/dist/core/extensions/loader.js.map +0 -1
  198. package/dist/core/extensions/runner.d.ts +0 -158
  199. package/dist/core/extensions/runner.d.ts.map +0 -1
  200. package/dist/core/extensions/runner.js +0 -784
  201. package/dist/core/extensions/runner.js.map +0 -1
  202. package/dist/core/extensions/types.d.ts +0 -1153
  203. package/dist/core/extensions/types.d.ts.map +0 -1
  204. package/dist/core/extensions/types.js +0 -45
  205. package/dist/core/extensions/types.js.map +0 -1
  206. package/dist/core/extensions/wrapper.d.ts +0 -20
  207. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  208. package/dist/core/extensions/wrapper.js +0 -22
  209. package/dist/core/extensions/wrapper.js.map +0 -1
  210. package/dist/core/footer-data-provider.d.ts +0 -52
  211. package/dist/core/footer-data-provider.d.ts.map +0 -1
  212. package/dist/core/footer-data-provider.js +0 -310
  213. package/dist/core/footer-data-provider.js.map +0 -1
  214. package/dist/core/index.d.ts +0 -12
  215. package/dist/core/index.d.ts.map +0 -1
  216. package/dist/core/index.js +0 -12
  217. package/dist/core/index.js.map +0 -1
  218. package/dist/core/keybindings.d.ts +0 -353
  219. package/dist/core/keybindings.d.ts.map +0 -1
  220. package/dist/core/keybindings.js +0 -295
  221. package/dist/core/keybindings.js.map +0 -1
  222. package/dist/core/messages.d.ts +0 -77
  223. package/dist/core/messages.d.ts.map +0 -1
  224. package/dist/core/messages.js +0 -123
  225. package/dist/core/messages.js.map +0 -1
  226. package/dist/core/model-registry.d.ts +0 -144
  227. package/dist/core/model-registry.d.ts.map +0 -1
  228. package/dist/core/model-registry.js +0 -699
  229. package/dist/core/model-registry.js.map +0 -1
  230. package/dist/core/model-resolver.d.ts +0 -110
  231. package/dist/core/model-resolver.d.ts.map +0 -1
  232. package/dist/core/model-resolver.js +0 -489
  233. package/dist/core/model-resolver.js.map +0 -1
  234. package/dist/core/output-guard.d.ts +0 -6
  235. package/dist/core/output-guard.d.ts.map +0 -1
  236. package/dist/core/output-guard.js +0 -59
  237. package/dist/core/output-guard.js.map +0 -1
  238. package/dist/core/package-manager.d.ts +0 -199
  239. package/dist/core/package-manager.d.ts.map +0 -1
  240. package/dist/core/package-manager.js +0 -1974
  241. package/dist/core/package-manager.js.map +0 -1
  242. package/dist/core/prompt-templates.d.ts +0 -52
  243. package/dist/core/prompt-templates.d.ts.map +0 -1
  244. package/dist/core/prompt-templates.js +0 -250
  245. package/dist/core/prompt-templates.js.map +0 -1
  246. package/dist/core/resolve-config-value.d.ts +0 -23
  247. package/dist/core/resolve-config-value.d.ts.map +0 -1
  248. package/dist/core/resolve-config-value.js +0 -126
  249. package/dist/core/resolve-config-value.js.map +0 -1
  250. package/dist/core/resource-loader.d.ts +0 -194
  251. package/dist/core/resource-loader.d.ts.map +0 -1
  252. package/dist/core/resource-loader.js +0 -727
  253. package/dist/core/resource-loader.js.map +0 -1
  254. package/dist/core/sdk.d.ts +0 -107
  255. package/dist/core/sdk.d.ts.map +0 -1
  256. package/dist/core/sdk.js +0 -274
  257. package/dist/core/sdk.js.map +0 -1
  258. package/dist/core/session-cwd.d.ts +0 -19
  259. package/dist/core/session-cwd.d.ts.map +0 -1
  260. package/dist/core/session-cwd.js +0 -38
  261. package/dist/core/session-cwd.js.map +0 -1
  262. package/dist/core/session-manager.d.ts +0 -333
  263. package/dist/core/session-manager.d.ts.map +0 -1
  264. package/dist/core/session-manager.js +0 -1109
  265. package/dist/core/session-manager.js.map +0 -1
  266. package/dist/core/settings-manager.d.ts +0 -261
  267. package/dist/core/settings-manager.d.ts.map +0 -1
  268. package/dist/core/settings-manager.js +0 -782
  269. package/dist/core/settings-manager.js.map +0 -1
  270. package/dist/core/skills.d.ts +0 -60
  271. package/dist/core/skills.d.ts.map +0 -1
  272. package/dist/core/skills.js +0 -404
  273. package/dist/core/skills.js.map +0 -1
  274. package/dist/core/slash-commands.d.ts +0 -14
  275. package/dist/core/slash-commands.d.ts.map +0 -1
  276. package/dist/core/slash-commands.js +0 -25
  277. package/dist/core/slash-commands.js.map +0 -1
  278. package/dist/core/source-info.d.ts +0 -18
  279. package/dist/core/source-info.d.ts.map +0 -1
  280. package/dist/core/source-info.js +0 -19
  281. package/dist/core/source-info.js.map +0 -1
  282. package/dist/core/system-prompt.d.ts +0 -28
  283. package/dist/core/system-prompt.d.ts.map +0 -1
  284. package/dist/core/system-prompt.js +0 -120
  285. package/dist/core/system-prompt.js.map +0 -1
  286. package/dist/core/telemetry.d.ts +0 -3
  287. package/dist/core/telemetry.d.ts.map +0 -1
  288. package/dist/core/telemetry.js +0 -9
  289. package/dist/core/telemetry.js.map +0 -1
  290. package/dist/core/timings.d.ts +0 -8
  291. package/dist/core/timings.d.ts.map +0 -1
  292. package/dist/core/timings.js +0 -31
  293. package/dist/core/timings.js.map +0 -1
  294. package/dist/core/tools/bash.d.ts +0 -68
  295. package/dist/core/tools/bash.d.ts.map +0 -1
  296. package/dist/core/tools/bash.js +0 -355
  297. package/dist/core/tools/bash.js.map +0 -1
  298. package/dist/core/tools/edit-diff.d.ts +0 -85
  299. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  300. package/dist/core/tools/edit-diff.js +0 -338
  301. package/dist/core/tools/edit-diff.js.map +0 -1
  302. package/dist/core/tools/edit.d.ts +0 -49
  303. package/dist/core/tools/edit.d.ts.map +0 -1
  304. package/dist/core/tools/edit.js +0 -324
  305. package/dist/core/tools/edit.js.map +0 -1
  306. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  307. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  308. package/dist/core/tools/file-mutation-queue.js +0 -37
  309. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  310. package/dist/core/tools/find.d.ts +0 -35
  311. package/dist/core/tools/find.d.ts.map +0 -1
  312. package/dist/core/tools/find.js +0 -298
  313. package/dist/core/tools/find.js.map +0 -1
  314. package/dist/core/tools/grep.d.ts +0 -37
  315. package/dist/core/tools/grep.d.ts.map +0 -1
  316. package/dist/core/tools/grep.js +0 -304
  317. package/dist/core/tools/grep.js.map +0 -1
  318. package/dist/core/tools/index.d.ts +0 -40
  319. package/dist/core/tools/index.d.ts.map +0 -1
  320. package/dist/core/tools/index.js +0 -112
  321. package/dist/core/tools/index.js.map +0 -1
  322. package/dist/core/tools/ls.d.ts +0 -37
  323. package/dist/core/tools/ls.d.ts.map +0 -1
  324. package/dist/core/tools/ls.js +0 -169
  325. package/dist/core/tools/ls.js.map +0 -1
  326. package/dist/core/tools/path-utils.d.ts +0 -8
  327. package/dist/core/tools/path-utils.d.ts.map +0 -1
  328. package/dist/core/tools/path-utils.js +0 -81
  329. package/dist/core/tools/path-utils.js.map +0 -1
  330. package/dist/core/tools/read.d.ts +0 -35
  331. package/dist/core/tools/read.d.ts.map +0 -1
  332. package/dist/core/tools/read.js +0 -232
  333. package/dist/core/tools/read.js.map +0 -1
  334. package/dist/core/tools/render-utils.d.ts +0 -21
  335. package/dist/core/tools/render-utils.d.ts.map +0 -1
  336. package/dist/core/tools/render-utils.js +0 -49
  337. package/dist/core/tools/render-utils.js.map +0 -1
  338. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  339. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  340. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  341. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  342. package/dist/core/tools/truncate.d.ts +0 -70
  343. package/dist/core/tools/truncate.d.ts.map +0 -1
  344. package/dist/core/tools/truncate.js +0 -205
  345. package/dist/core/tools/truncate.js.map +0 -1
  346. package/dist/core/tools/write.d.ts +0 -26
  347. package/dist/core/tools/write.d.ts.map +0 -1
  348. package/dist/core/tools/write.js +0 -213
  349. package/dist/core/tools/write.js.map +0 -1
  350. package/dist/index.d.ts +0 -28
  351. package/dist/index.d.ts.map +0 -1
  352. package/dist/index.js +0 -41
  353. package/dist/index.js.map +0 -1
  354. package/dist/main.d.ts +0 -12
  355. package/dist/main.d.ts.map +0 -1
  356. package/dist/main.js +0 -589
  357. package/dist/main.js.map +0 -1
  358. package/dist/migrations.d.ts +0 -33
  359. package/dist/migrations.d.ts.map +0 -1
  360. package/dist/migrations.js +0 -281
  361. package/dist/migrations.js.map +0 -1
  362. package/dist/modes/index.d.ts +0 -9
  363. package/dist/modes/index.d.ts.map +0 -1
  364. package/dist/modes/index.js +0 -8
  365. package/dist/modes/index.js.map +0 -1
  366. package/dist/modes/interactive/assets/clankolas.png +0 -0
  367. package/dist/modes/interactive/components/armin.d.ts +0 -34
  368. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  369. package/dist/modes/interactive/components/armin.js +0 -333
  370. package/dist/modes/interactive/components/armin.js.map +0 -1
  371. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  372. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  373. package/dist/modes/interactive/components/assistant-message.js +0 -121
  374. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  375. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  376. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  377. package/dist/modes/interactive/components/bash-execution.js +0 -175
  378. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  379. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  380. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  381. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  382. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  383. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  384. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  385. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  386. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  387. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  388. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  389. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  390. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  391. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  392. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  393. package/dist/modes/interactive/components/config-selector.js +0 -481
  394. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  395. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  396. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  397. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  398. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  399. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  400. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  401. package/dist/modes/interactive/components/custom-editor.js +0 -70
  402. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  403. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  404. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  405. package/dist/modes/interactive/components/custom-message.js +0 -79
  406. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  407. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  408. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  409. package/dist/modes/interactive/components/daxnuts.js +0 -140
  410. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  411. package/dist/modes/interactive/components/diff.d.ts +0 -12
  412. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  413. package/dist/modes/interactive/components/diff.js +0 -133
  414. package/dist/modes/interactive/components/diff.js.map +0 -1
  415. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  416. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  417. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  418. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  419. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  420. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  421. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  422. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  423. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  424. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  425. package/dist/modes/interactive/components/extension-editor.js +0 -111
  426. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  427. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  428. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  429. package/dist/modes/interactive/components/extension-input.js +0 -61
  430. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  431. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  432. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  433. package/dist/modes/interactive/components/extension-selector.js +0 -78
  434. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  435. package/dist/modes/interactive/components/footer.d.ts +0 -27
  436. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  437. package/dist/modes/interactive/components/footer.js +0 -201
  438. package/dist/modes/interactive/components/footer.js.map +0 -1
  439. package/dist/modes/interactive/components/index.d.ts +0 -32
  440. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  441. package/dist/modes/interactive/components/index.js +0 -33
  442. package/dist/modes/interactive/components/index.js.map +0 -1
  443. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  444. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  445. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  446. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  447. package/dist/modes/interactive/components/login-dialog.d.ts +0 -46
  448. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  449. package/dist/modes/interactive/components/login-dialog.js +0 -158
  450. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  451. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  452. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  453. package/dist/modes/interactive/components/model-selector.js +0 -278
  454. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  455. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -29
  456. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  457. package/dist/modes/interactive/components/oauth-selector.js +0 -141
  458. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  459. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  460. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  461. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  462. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  463. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  464. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  465. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  466. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  467. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  468. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  469. package/dist/modes/interactive/components/session-selector.js +0 -861
  470. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  471. package/dist/modes/interactive/components/settings-selector.d.ts +0 -67
  472. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  473. package/dist/modes/interactive/components/settings-selector.js +0 -373
  474. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  475. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  476. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  477. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  478. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  479. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  480. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  481. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  482. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  483. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  484. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  485. package/dist/modes/interactive/components/theme-selector.js +0 -50
  486. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  487. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  488. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  489. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  490. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  491. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  492. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  493. package/dist/modes/interactive/components/tool-execution.js +0 -295
  494. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  495. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  496. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  497. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  498. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  499. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  500. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  501. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  502. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  503. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  504. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  505. package/dist/modes/interactive/components/user-message.js +0 -29
  506. package/dist/modes/interactive/components/user-message.js.map +0 -1
  507. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  508. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  509. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  510. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  511. package/dist/modes/interactive/interactive-mode.d.ts +0 -359
  512. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  513. package/dist/modes/interactive/interactive-mode.js +0 -4573
  514. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  515. package/dist/modes/interactive/theme/aery.json +0 -84
  516. package/dist/modes/interactive/theme/catppuccin-mocha.json +0 -81
  517. package/dist/modes/interactive/theme/dark.json +0 -85
  518. package/dist/modes/interactive/theme/dracula.json +0 -81
  519. package/dist/modes/interactive/theme/light.json +0 -84
  520. package/dist/modes/interactive/theme/nord.json +0 -81
  521. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  522. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  523. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  524. package/dist/modes/interactive/theme/theme.js +0 -975
  525. package/dist/modes/interactive/theme/theme.js.map +0 -1
  526. package/dist/modes/interactive/theme/tokyo-night.json +0 -81
  527. package/dist/modes/print-mode.d.ts +0 -28
  528. package/dist/modes/print-mode.d.ts.map +0 -1
  529. package/dist/modes/print-mode.js +0 -131
  530. package/dist/modes/print-mode.js.map +0 -1
  531. package/dist/modes/rpc/jsonl.d.ts +0 -17
  532. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  533. package/dist/modes/rpc/jsonl.js +0 -49
  534. package/dist/modes/rpc/jsonl.js.map +0 -1
  535. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  536. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  537. package/dist/modes/rpc/rpc-client.js +0 -410
  538. package/dist/modes/rpc/rpc-client.js.map +0 -1
  539. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  540. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  541. package/dist/modes/rpc/rpc-mode.js +0 -597
  542. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  543. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  544. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  545. package/dist/modes/rpc/rpc-types.js +0 -8
  546. package/dist/modes/rpc/rpc-types.js.map +0 -1
  547. package/dist/package-manager-cli.d.ts +0 -4
  548. package/dist/package-manager-cli.d.ts.map +0 -1
  549. package/dist/package-manager-cli.js +0 -468
  550. package/dist/package-manager-cli.js.map +0 -1
  551. package/dist/utils/aery-user-agent.d.ts +0 -2
  552. package/dist/utils/aery-user-agent.d.ts.map +0 -1
  553. package/dist/utils/aery-user-agent.js +0 -5
  554. package/dist/utils/aery-user-agent.js.map +0 -1
  555. package/dist/utils/changelog.d.ts +0 -21
  556. package/dist/utils/changelog.d.ts.map +0 -1
  557. package/dist/utils/changelog.js +0 -87
  558. package/dist/utils/changelog.js.map +0 -1
  559. package/dist/utils/child-process.d.ts +0 -11
  560. package/dist/utils/child-process.d.ts.map +0 -1
  561. package/dist/utils/child-process.js +0 -78
  562. package/dist/utils/child-process.js.map +0 -1
  563. package/dist/utils/clipboard-image.d.ts +0 -11
  564. package/dist/utils/clipboard-image.d.ts.map +0 -1
  565. package/dist/utils/clipboard-image.js +0 -245
  566. package/dist/utils/clipboard-image.js.map +0 -1
  567. package/dist/utils/clipboard-native.d.ts +0 -8
  568. package/dist/utils/clipboard-native.d.ts.map +0 -1
  569. package/dist/utils/clipboard-native.js +0 -14
  570. package/dist/utils/clipboard-native.js.map +0 -1
  571. package/dist/utils/clipboard.d.ts +0 -2
  572. package/dist/utils/clipboard.d.ts.map +0 -1
  573. package/dist/utils/clipboard.js +0 -110
  574. package/dist/utils/clipboard.js.map +0 -1
  575. package/dist/utils/exif-orientation.d.ts +0 -5
  576. package/dist/utils/exif-orientation.d.ts.map +0 -1
  577. package/dist/utils/exif-orientation.js +0 -158
  578. package/dist/utils/exif-orientation.js.map +0 -1
  579. package/dist/utils/frontmatter.d.ts +0 -8
  580. package/dist/utils/frontmatter.d.ts.map +0 -1
  581. package/dist/utils/frontmatter.js +0 -26
  582. package/dist/utils/frontmatter.js.map +0 -1
  583. package/dist/utils/fs-watch.d.ts +0 -5
  584. package/dist/utils/fs-watch.d.ts.map +0 -1
  585. package/dist/utils/fs-watch.js +0 -25
  586. package/dist/utils/fs-watch.js.map +0 -1
  587. package/dist/utils/git.d.ts +0 -26
  588. package/dist/utils/git.d.ts.map +0 -1
  589. package/dist/utils/git.js +0 -163
  590. package/dist/utils/git.js.map +0 -1
  591. package/dist/utils/image-convert.d.ts +0 -9
  592. package/dist/utils/image-convert.d.ts.map +0 -1
  593. package/dist/utils/image-convert.js +0 -39
  594. package/dist/utils/image-convert.js.map +0 -1
  595. package/dist/utils/image-resize.d.ts +0 -36
  596. package/dist/utils/image-resize.d.ts.map +0 -1
  597. package/dist/utils/image-resize.js +0 -137
  598. package/dist/utils/image-resize.js.map +0 -1
  599. package/dist/utils/mime.d.ts +0 -2
  600. package/dist/utils/mime.d.ts.map +0 -1
  601. package/dist/utils/mime.js +0 -26
  602. package/dist/utils/mime.js.map +0 -1
  603. package/dist/utils/paths.d.ts +0 -14
  604. package/dist/utils/paths.d.ts.map +0 -1
  605. package/dist/utils/paths.js +0 -34
  606. package/dist/utils/paths.js.map +0 -1
  607. package/dist/utils/photon.d.ts +0 -21
  608. package/dist/utils/photon.d.ts.map +0 -1
  609. package/dist/utils/photon.js +0 -121
  610. package/dist/utils/photon.js.map +0 -1
  611. package/dist/utils/shell.d.ts +0 -30
  612. package/dist/utils/shell.d.ts.map +0 -1
  613. package/dist/utils/shell.js +0 -190
  614. package/dist/utils/shell.js.map +0 -1
  615. package/dist/utils/sleep.d.ts +0 -5
  616. package/dist/utils/sleep.d.ts.map +0 -1
  617. package/dist/utils/sleep.js +0 -17
  618. package/dist/utils/sleep.js.map +0 -1
  619. package/dist/utils/tools-manager.d.ts +0 -3
  620. package/dist/utils/tools-manager.d.ts.map +0 -1
  621. package/dist/utils/tools-manager.js +0 -256
  622. package/dist/utils/tools-manager.js.map +0 -1
  623. package/dist/utils/version-check.d.ts +0 -7
  624. package/dist/utils/version-check.d.ts.map +0 -1
  625. package/dist/utils/version-check.js +0 -70
  626. package/dist/utils/version-check.js.map +0 -1
package/dist/main.js DELETED
@@ -1,589 +0,0 @@
1
- /**
2
- * Main entry point for the coding agent CLI.
3
- *
4
- * This file handles CLI argument parsing and translates them into
5
- * createAgentSession() options. The SDK does the heavy lifting.
6
- */
7
- import { resolve } from "node:path";
8
- import { createInterface } from "node:readline";
9
- import { modelsAreEqual, supportsXhigh } from "@eminent337/aery-ai";
10
- import { ProcessTerminal, setKeybindings, TUI } from "@eminent337/aery-tui";
11
- import chalk from "chalk";
12
- import { parseArgs, printHelp } from "./cli/args.js";
13
- import { processFileArguments } from "./cli/file-processor.js";
14
- import { buildInitialMessage } from "./cli/initial-message.js";
15
- import { listModels } from "./cli/list-models.js";
16
- import { selectSession } from "./cli/session-picker.js";
17
- import { getAgentDir, VERSION } from "./config.js";
18
- import { createAgentSessionRuntime } from "./core/agent-session-runtime.js";
19
- import { createAgentSessionFromServices, createAgentSessionServices, } from "./core/agent-session-services.js";
20
- import { formatNoModelsAvailableMessage } from "./core/auth-guidance.js";
21
- import { AuthStorage } from "./core/auth-storage.js";
22
- import { exportFromFile } from "./core/export-html/index.js";
23
- import { KeybindingsManager } from "./core/keybindings.js";
24
- import { resolveCliModel, resolveModelScope } from "./core/model-resolver.js";
25
- import { restoreStdout, takeOverStdout } from "./core/output-guard.js";
26
- import { formatMissingSessionCwdPrompt, getMissingSessionCwdIssue, MissingSessionCwdError, } from "./core/session-cwd.js";
27
- import { SessionManager } from "./core/session-manager.js";
28
- import { SettingsManager } from "./core/settings-manager.js";
29
- import { printTimings, resetTimings, time } from "./core/timings.js";
30
- import { runMigrations, showDeprecationWarnings } from "./migrations.js";
31
- import { InteractiveMode, runPrintMode, runRpcMode } from "./modes/index.js";
32
- import { ExtensionSelectorComponent } from "./modes/interactive/components/extension-selector.js";
33
- import { initTheme, stopThemeWatcher } from "./modes/interactive/theme/theme.js";
34
- import { handleConfigCommand, handlePackageCommand } from "./package-manager-cli.js";
35
- import { isLocalPath } from "./utils/paths.js";
36
- /**
37
- * Read all content from piped stdin.
38
- * Returns undefined if stdin is a TTY (interactive terminal).
39
- */
40
- async function readPipedStdin() {
41
- // If stdin is a TTY, we're running interactively - don't read stdin
42
- if (process.stdin.isTTY) {
43
- return undefined;
44
- }
45
- return new Promise((resolve) => {
46
- let data = "";
47
- process.stdin.setEncoding("utf8");
48
- process.stdin.on("data", (chunk) => {
49
- data += chunk;
50
- });
51
- process.stdin.on("end", () => {
52
- resolve(data.trim() || undefined);
53
- });
54
- process.stdin.resume();
55
- });
56
- }
57
- function collectSettingsDiagnostics(settingsManager, context) {
58
- return settingsManager.drainErrors().map(({ scope, error }) => ({
59
- type: "warning",
60
- message: `(${context}, ${scope} settings) ${error.message}`,
61
- }));
62
- }
63
- function reportDiagnostics(diagnostics) {
64
- for (const diagnostic of diagnostics) {
65
- const color = diagnostic.type === "error" ? chalk.red : diagnostic.type === "warning" ? chalk.yellow : chalk.dim;
66
- const prefix = diagnostic.type === "error" ? "Error: " : diagnostic.type === "warning" ? "Warning: " : "";
67
- console.error(color(`${prefix}${diagnostic.message}`));
68
- }
69
- }
70
- function isTruthyEnvFlag(value) {
71
- if (!value)
72
- return false;
73
- return value === "1" || value.toLowerCase() === "true" || value.toLowerCase() === "yes";
74
- }
75
- function resolveAppMode(parsed, stdinIsTTY) {
76
- if (parsed.mode === "rpc") {
77
- return "rpc";
78
- }
79
- if (parsed.mode === "json") {
80
- return "json";
81
- }
82
- if (parsed.print || !stdinIsTTY) {
83
- return "print";
84
- }
85
- return "interactive";
86
- }
87
- function toPrintOutputMode(appMode) {
88
- return appMode === "json" ? "json" : "text";
89
- }
90
- async function prepareInitialMessage(parsed, autoResizeImages, stdinContent) {
91
- if (parsed.fileArgs.length === 0) {
92
- return buildInitialMessage({ parsed, stdinContent });
93
- }
94
- const { text, images } = await processFileArguments(parsed.fileArgs, { autoResizeImages });
95
- return buildInitialMessage({
96
- parsed,
97
- fileText: text,
98
- fileImages: images,
99
- stdinContent,
100
- });
101
- }
102
- /**
103
- * Resolve a session argument to a file path.
104
- * If it looks like a path, use as-is. Otherwise try to match as session ID prefix.
105
- */
106
- async function resolveSessionPath(sessionArg, cwd, sessionDir) {
107
- // If it looks like a file path, use as-is
108
- if (sessionArg.includes("/") || sessionArg.includes("\\") || sessionArg.endsWith(".jsonl")) {
109
- return { type: "path", path: sessionArg };
110
- }
111
- // Try to match as session ID in current project first
112
- const localSessions = await SessionManager.list(cwd, sessionDir);
113
- const localMatches = localSessions.filter((s) => s.id.startsWith(sessionArg));
114
- if (localMatches.length >= 1) {
115
- return { type: "local", path: localMatches[0].path };
116
- }
117
- // Try global search across all projects
118
- const allSessions = await SessionManager.listAll();
119
- const globalMatches = allSessions.filter((s) => s.id.startsWith(sessionArg));
120
- if (globalMatches.length >= 1) {
121
- const match = globalMatches[0];
122
- return { type: "global", path: match.path, cwd: match.cwd };
123
- }
124
- // Not found anywhere
125
- return { type: "not_found", arg: sessionArg };
126
- }
127
- /** Prompt user for yes/no confirmation */
128
- async function promptConfirm(message) {
129
- return new Promise((resolve) => {
130
- const rl = createInterface({
131
- input: process.stdin,
132
- output: process.stdout,
133
- });
134
- rl.question(`${message} [y/N] `, (answer) => {
135
- rl.close();
136
- resolve(answer.toLowerCase() === "y" || answer.toLowerCase() === "yes");
137
- });
138
- });
139
- }
140
- function validateForkFlags(parsed) {
141
- if (!parsed.fork)
142
- return;
143
- const conflictingFlags = [
144
- parsed.session ? "--session" : undefined,
145
- parsed.continue ? "--continue" : undefined,
146
- parsed.resume ? "--resume" : undefined,
147
- parsed.noSession ? "--no-session" : undefined,
148
- ].filter((flag) => flag !== undefined);
149
- if (conflictingFlags.length > 0) {
150
- console.error(chalk.red(`Error: --fork cannot be combined with ${conflictingFlags.join(", ")}`));
151
- process.exit(1);
152
- }
153
- }
154
- function forkSessionOrExit(sourcePath, cwd, sessionDir) {
155
- try {
156
- return SessionManager.forkFrom(sourcePath, cwd, sessionDir);
157
- }
158
- catch (error) {
159
- const message = error instanceof Error ? error.message : String(error);
160
- console.error(chalk.red(`Error: ${message}`));
161
- process.exit(1);
162
- }
163
- }
164
- async function createSessionManager(parsed, cwd, sessionDir, settingsManager) {
165
- if (parsed.noSession) {
166
- return SessionManager.inMemory();
167
- }
168
- if (parsed.fork) {
169
- const resolved = await resolveSessionPath(parsed.fork, cwd, sessionDir);
170
- switch (resolved.type) {
171
- case "path":
172
- case "local":
173
- case "global":
174
- return forkSessionOrExit(resolved.path, cwd, sessionDir);
175
- case "not_found":
176
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
177
- process.exit(1);
178
- }
179
- }
180
- if (parsed.session) {
181
- const resolved = await resolveSessionPath(parsed.session, cwd, sessionDir);
182
- switch (resolved.type) {
183
- case "path":
184
- case "local":
185
- return SessionManager.open(resolved.path, sessionDir);
186
- case "global": {
187
- console.log(chalk.yellow(`Session found in different project: ${resolved.cwd}`));
188
- const shouldFork = await promptConfirm("Fork this session into current directory?");
189
- if (!shouldFork) {
190
- console.log(chalk.dim("Aborted."));
191
- process.exit(0);
192
- }
193
- return forkSessionOrExit(resolved.path, cwd, sessionDir);
194
- }
195
- case "not_found":
196
- console.error(chalk.red(`No session found matching '${resolved.arg}'`));
197
- process.exit(1);
198
- }
199
- }
200
- if (parsed.resume) {
201
- initTheme(settingsManager.getTheme(), true);
202
- try {
203
- const selectedPath = await selectSession((onProgress) => SessionManager.list(cwd, sessionDir, onProgress), SessionManager.listAll);
204
- if (!selectedPath) {
205
- console.log(chalk.dim("No session selected"));
206
- process.exit(0);
207
- }
208
- return SessionManager.open(selectedPath, sessionDir);
209
- }
210
- finally {
211
- stopThemeWatcher();
212
- }
213
- }
214
- if (parsed.continue) {
215
- return SessionManager.continueRecent(cwd, sessionDir);
216
- }
217
- return SessionManager.create(cwd, sessionDir);
218
- }
219
- function buildSessionOptions(parsed, scopedModels, hasExistingSession, modelRegistry, settingsManager) {
220
- const options = {};
221
- const diagnostics = [];
222
- let cliThinkingFromModel = false;
223
- // Model from CLI
224
- // - supports --provider <name> --model <pattern>
225
- // - supports --model <provider>/<pattern>
226
- if (parsed.model) {
227
- const resolved = resolveCliModel({
228
- cliProvider: parsed.provider,
229
- cliModel: parsed.model,
230
- modelRegistry,
231
- });
232
- if (resolved.warning) {
233
- diagnostics.push({ type: "warning", message: resolved.warning });
234
- }
235
- if (resolved.error) {
236
- diagnostics.push({ type: "error", message: resolved.error });
237
- }
238
- if (resolved.model) {
239
- options.model = resolved.model;
240
- // Allow "--model <pattern>:<thinking>" as a shorthand.
241
- // Explicit --thinking still takes precedence (applied later).
242
- if (!parsed.thinking && resolved.thinkingLevel) {
243
- options.thinkingLevel = resolved.thinkingLevel;
244
- cliThinkingFromModel = true;
245
- }
246
- }
247
- }
248
- if (!options.model && scopedModels.length > 0 && !hasExistingSession) {
249
- // Check if saved default is in scoped models - use it if so, otherwise first scoped model
250
- const savedProvider = settingsManager.getDefaultProvider();
251
- const savedModelId = settingsManager.getDefaultModel();
252
- const savedModel = savedProvider && savedModelId ? modelRegistry.find(savedProvider, savedModelId) : undefined;
253
- const savedInScope = savedModel ? scopedModels.find((sm) => modelsAreEqual(sm.model, savedModel)) : undefined;
254
- if (savedInScope) {
255
- options.model = savedInScope.model;
256
- // Use thinking level from scoped model config if explicitly set
257
- if (!parsed.thinking && savedInScope.thinkingLevel) {
258
- options.thinkingLevel = savedInScope.thinkingLevel;
259
- }
260
- }
261
- else {
262
- options.model = scopedModels[0].model;
263
- // Use thinking level from first scoped model if explicitly set
264
- if (!parsed.thinking && scopedModels[0].thinkingLevel) {
265
- options.thinkingLevel = scopedModels[0].thinkingLevel;
266
- }
267
- }
268
- }
269
- // Thinking level from CLI (takes precedence over scoped model thinking levels set above)
270
- if (parsed.thinking) {
271
- options.thinkingLevel = parsed.thinking;
272
- }
273
- // Scoped models for Ctrl+P cycling
274
- // Keep thinking level undefined when not explicitly set in the model pattern.
275
- // Undefined means "inherit current session thinking level" during cycling.
276
- if (scopedModels.length > 0) {
277
- options.scopedModels = scopedModels.map((sm) => ({
278
- model: sm.model,
279
- thinkingLevel: sm.thinkingLevel,
280
- }));
281
- }
282
- // API key from CLI - set in authStorage
283
- // (handled by caller before createAgentSession)
284
- // Tools
285
- if (parsed.noTools) {
286
- options.noTools = "all";
287
- }
288
- else if (parsed.noBuiltinTools) {
289
- options.noTools = "builtin";
290
- }
291
- if (parsed.tools) {
292
- options.tools = [...parsed.tools];
293
- }
294
- return { options, cliThinkingFromModel, diagnostics };
295
- }
296
- function resolveCliPaths(cwd, paths) {
297
- return paths?.map((value) => (isLocalPath(value) ? resolve(cwd, value) : value));
298
- }
299
- async function promptForMissingSessionCwd(issue, settingsManager) {
300
- initTheme(settingsManager.getTheme());
301
- setKeybindings(KeybindingsManager.create());
302
- return new Promise((resolve) => {
303
- const ui = new TUI(new ProcessTerminal(), settingsManager.getShowHardwareCursor());
304
- ui.setClearOnShrink(settingsManager.getClearOnShrink());
305
- let settled = false;
306
- const finish = (result) => {
307
- if (settled) {
308
- return;
309
- }
310
- settled = true;
311
- ui.stop();
312
- resolve(result);
313
- };
314
- const selector = new ExtensionSelectorComponent(formatMissingSessionCwdPrompt(issue), ["Continue", "Cancel"], (option) => finish(option === "Continue" ? issue.fallbackCwd : undefined), () => finish(undefined), { tui: ui });
315
- ui.addChild(selector);
316
- ui.setFocus(selector);
317
- ui.start();
318
- });
319
- }
320
- export async function main(args, options) {
321
- resetTimings();
322
- const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
323
- if (offlineMode) {
324
- process.env.PI_OFFLINE = "1";
325
- process.env.PI_SKIP_VERSION_CHECK = "1";
326
- }
327
- if (await handlePackageCommand(args)) {
328
- return;
329
- }
330
- if (await handleConfigCommand(args)) {
331
- return;
332
- }
333
- const parsed = parseArgs(args);
334
- if (parsed.diagnostics.length > 0) {
335
- for (const d of parsed.diagnostics) {
336
- const color = d.type === "error" ? chalk.red : chalk.yellow;
337
- console.error(color(`${d.type === "error" ? "Error" : "Warning"}: ${d.message}`));
338
- }
339
- if (parsed.diagnostics.some((d) => d.type === "error")) {
340
- process.exit(1);
341
- }
342
- }
343
- time("parseArgs");
344
- let appMode = resolveAppMode(parsed, process.stdin.isTTY);
345
- const shouldTakeOverStdout = appMode !== "interactive";
346
- if (shouldTakeOverStdout) {
347
- takeOverStdout();
348
- }
349
- if (parsed.version) {
350
- console.log(VERSION);
351
- process.exit(0);
352
- }
353
- if (parsed.export) {
354
- let result;
355
- try {
356
- const outputPath = parsed.messages.length > 0 ? parsed.messages[0] : undefined;
357
- result = await exportFromFile(parsed.export, outputPath);
358
- }
359
- catch (error) {
360
- const message = error instanceof Error ? error.message : "Failed to export session";
361
- console.error(chalk.red(`Error: ${message}`));
362
- process.exit(1);
363
- }
364
- console.log(`Exported to: ${result}`);
365
- process.exit(0);
366
- }
367
- if (parsed.mode === "rpc" && parsed.fileArgs.length > 0) {
368
- console.error(chalk.red("Error: @file arguments are not supported in RPC mode"));
369
- process.exit(1);
370
- }
371
- validateForkFlags(parsed);
372
- // Run migrations (pass cwd for project-local migrations)
373
- const { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(process.cwd());
374
- time("runMigrations");
375
- const cwd = process.cwd();
376
- const agentDir = getAgentDir();
377
- const startupSettingsManager = SettingsManager.create(cwd, agentDir);
378
- reportDiagnostics(collectSettingsDiagnostics(startupSettingsManager, "startup session lookup"));
379
- // Decide the final runtime cwd before creating cwd-bound runtime services.
380
- // --session and --resume may select a session from another project, so project-local
381
- // settings, resources, provider registrations, and models must be resolved only after
382
- // the target session cwd is known. The startup-cwd settings manager is used only for
383
- // sessionDir lookup during session selection.
384
- const sessionDir = parsed.sessionDir ?? startupSettingsManager.getSessionDir();
385
- let sessionManager = await createSessionManager(parsed, cwd, sessionDir, startupSettingsManager);
386
- const missingSessionCwdIssue = getMissingSessionCwdIssue(sessionManager, cwd);
387
- if (missingSessionCwdIssue) {
388
- if (appMode === "interactive") {
389
- const selectedCwd = await promptForMissingSessionCwd(missingSessionCwdIssue, startupSettingsManager);
390
- if (!selectedCwd) {
391
- process.exit(0);
392
- }
393
- sessionManager = SessionManager.open(missingSessionCwdIssue.sessionFile, sessionDir, selectedCwd);
394
- }
395
- else {
396
- console.error(chalk.red(new MissingSessionCwdError(missingSessionCwdIssue).message));
397
- process.exit(1);
398
- }
399
- }
400
- time("createSessionManager");
401
- const resolvedExtensionPaths = resolveCliPaths(cwd, parsed.extensions);
402
- const resolvedSkillPaths = resolveCliPaths(cwd, parsed.skills);
403
- const resolvedPromptTemplatePaths = resolveCliPaths(cwd, parsed.promptTemplates);
404
- const resolvedThemePaths = resolveCliPaths(cwd, parsed.themes);
405
- const authStorage = AuthStorage.create();
406
- const createRuntime = async ({ cwd, agentDir, sessionManager, sessionStartEvent, }) => {
407
- const services = await createAgentSessionServices({
408
- cwd,
409
- agentDir,
410
- authStorage,
411
- extensionFlagValues: parsed.unknownFlags,
412
- resourceLoaderOptions: {
413
- additionalExtensionPaths: resolvedExtensionPaths,
414
- additionalSkillPaths: resolvedSkillPaths,
415
- additionalPromptTemplatePaths: resolvedPromptTemplatePaths,
416
- additionalThemePaths: resolvedThemePaths,
417
- noExtensions: parsed.noExtensions,
418
- noSkills: parsed.noSkills,
419
- noPromptTemplates: parsed.noPromptTemplates,
420
- noThemes: parsed.noThemes,
421
- noContextFiles: parsed.noContextFiles,
422
- systemPrompt: parsed.systemPrompt,
423
- appendSystemPrompt: parsed.appendSystemPrompt,
424
- extensionFactories: options?.extensionFactories,
425
- },
426
- });
427
- const { settingsManager, modelRegistry, resourceLoader } = services;
428
- const diagnostics = [
429
- ...services.diagnostics,
430
- ...collectSettingsDiagnostics(settingsManager, "runtime creation"),
431
- ...resourceLoader.getExtensions().errors.map(({ path, error }) => ({
432
- type: "error",
433
- message: `Failed to load extension "${path}": ${error}`,
434
- })),
435
- ];
436
- const modelPatterns = parsed.models ?? settingsManager.getEnabledModels();
437
- const scopedModels = modelPatterns && modelPatterns.length > 0 ? await resolveModelScope(modelPatterns, modelRegistry) : [];
438
- const { options: sessionOptions, cliThinkingFromModel, diagnostics: sessionOptionDiagnostics, } = buildSessionOptions(parsed, scopedModels, sessionManager.buildSessionContext().messages.length > 0, modelRegistry, settingsManager);
439
- diagnostics.push(...sessionOptionDiagnostics);
440
- if (parsed.apiKey) {
441
- if (!sessionOptions.model) {
442
- diagnostics.push({
443
- type: "error",
444
- message: "--api-key requires a model to be specified via --model, --provider/--model, or --models",
445
- });
446
- }
447
- else {
448
- authStorage.setRuntimeApiKey(sessionOptions.model.provider, parsed.apiKey);
449
- }
450
- }
451
- const created = await createAgentSessionFromServices({
452
- services,
453
- sessionManager,
454
- sessionStartEvent,
455
- model: sessionOptions.model,
456
- thinkingLevel: sessionOptions.thinkingLevel,
457
- scopedModels: sessionOptions.scopedModels,
458
- tools: sessionOptions.tools,
459
- noTools: sessionOptions.noTools,
460
- customTools: sessionOptions.customTools,
461
- });
462
- const cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;
463
- if (created.session.model && cliThinkingOverride) {
464
- let effectiveThinking = created.session.thinkingLevel;
465
- if (!created.session.model.reasoning) {
466
- effectiveThinking = "off";
467
- }
468
- else if (effectiveThinking === "xhigh" && !supportsXhigh(created.session.model)) {
469
- effectiveThinking = "high";
470
- }
471
- if (effectiveThinking !== created.session.thinkingLevel) {
472
- created.session.setThinkingLevel(effectiveThinking);
473
- }
474
- }
475
- return {
476
- ...created,
477
- services,
478
- diagnostics,
479
- };
480
- };
481
- time("createRuntime");
482
- const runtime = await createAgentSessionRuntime(createRuntime, {
483
- cwd: sessionManager.getCwd(),
484
- agentDir,
485
- sessionManager,
486
- });
487
- const { services, session, modelFallbackMessage } = runtime;
488
- const { settingsManager, modelRegistry, resourceLoader } = services;
489
- if (parsed.help) {
490
- const extensionFlags = resourceLoader
491
- .getExtensions()
492
- .extensions.flatMap((extension) => Array.from(extension.flags.values()));
493
- printHelp(extensionFlags);
494
- process.exit(0);
495
- }
496
- if (parsed.listModels !== undefined) {
497
- const searchPattern = typeof parsed.listModels === "string" ? parsed.listModels : undefined;
498
- await listModels(modelRegistry, searchPattern);
499
- process.exit(0);
500
- }
501
- // Read piped stdin content (if any) - skip for RPC mode which uses stdin for JSON-RPC
502
- let stdinContent;
503
- if (appMode !== "rpc") {
504
- stdinContent = await readPipedStdin();
505
- if (stdinContent !== undefined && appMode === "interactive") {
506
- appMode = "print";
507
- }
508
- }
509
- time("readPipedStdin");
510
- const { initialMessage, initialImages } = await prepareInitialMessage(parsed, settingsManager.getImageAutoResize(), stdinContent);
511
- time("prepareInitialMessage");
512
- initTheme(settingsManager.getTheme(), appMode === "interactive");
513
- time("initTheme");
514
- // Show deprecation warnings in interactive mode
515
- if (appMode === "interactive" && deprecationWarnings.length > 0) {
516
- await showDeprecationWarnings(deprecationWarnings);
517
- }
518
- const scopedModels = [...session.scopedModels];
519
- time("resolveModelScope");
520
- reportDiagnostics(runtime.diagnostics);
521
- if (runtime.diagnostics.some((diagnostic) => diagnostic.type === "error")) {
522
- process.exit(1);
523
- }
524
- time("createAgentSession");
525
- if (appMode !== "interactive" && !session.model) {
526
- console.error(chalk.red(formatNoModelsAvailableMessage()));
527
- process.exit(1);
528
- }
529
- const startupBenchmark = isTruthyEnvFlag(process.env.PI_STARTUP_BENCHMARK);
530
- if (startupBenchmark && appMode !== "interactive") {
531
- console.error(chalk.red("Error: PI_STARTUP_BENCHMARK only supports interactive mode"));
532
- process.exit(1);
533
- }
534
- if (appMode === "rpc") {
535
- printTimings();
536
- await runRpcMode(runtime);
537
- }
538
- else if (appMode === "interactive") {
539
- if (scopedModels.length > 0 && (parsed.verbose || !settingsManager.getQuietStartup())) {
540
- const modelList = scopedModels
541
- .map((sm) => {
542
- const thinkingStr = sm.thinkingLevel ? `:${sm.thinkingLevel}` : "";
543
- return `${sm.model.id}${thinkingStr}`;
544
- })
545
- .join(", ");
546
- console.log(chalk.dim(`Model scope: ${modelList} ${chalk.gray("(Ctrl+P to cycle)")}`));
547
- }
548
- const interactiveMode = new InteractiveMode(runtime, {
549
- migratedProviders,
550
- modelFallbackMessage,
551
- initialMessage,
552
- initialImages,
553
- initialMessages: parsed.messages,
554
- verbose: parsed.verbose,
555
- });
556
- if (startupBenchmark) {
557
- await interactiveMode.init();
558
- time("interactiveMode.init");
559
- printTimings();
560
- interactiveMode.stop();
561
- stopThemeWatcher();
562
- if (process.stdout.writableLength > 0) {
563
- await new Promise((resolve) => process.stdout.once("drain", resolve));
564
- }
565
- if (process.stderr.writableLength > 0) {
566
- await new Promise((resolve) => process.stderr.once("drain", resolve));
567
- }
568
- return;
569
- }
570
- printTimings();
571
- await interactiveMode.run();
572
- }
573
- else {
574
- printTimings();
575
- const exitCode = await runPrintMode(runtime, {
576
- mode: toPrintOutputMode(appMode),
577
- messages: parsed.messages,
578
- initialMessage,
579
- initialImages,
580
- });
581
- stopThemeWatcher();
582
- restoreStdout();
583
- if (exitCode !== 0) {
584
- process.exitCode = exitCode;
585
- }
586
- return;
587
- }
588
- }
589
- //# sourceMappingURL=main.js.map