@eminent337/aery 0.1.11 → 1.0.0

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