@eminent337/aery 0.1.57 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +0 -0
  3. package/docs/compaction.md +0 -0
  4. package/docs/custom-provider.md +0 -0
  5. package/docs/development.md +0 -0
  6. package/docs/extensions.md +0 -0
  7. package/docs/images/doom-extension.png +0 -0
  8. package/docs/images/exy.png +0 -0
  9. package/docs/images/interactive-mode.png +0 -0
  10. package/docs/images/tree-view.png +0 -0
  11. package/docs/json.md +0 -0
  12. package/docs/keybindings.md +0 -0
  13. package/docs/models.md +0 -0
  14. package/docs/packages.md +0 -0
  15. package/docs/prompt-templates.md +0 -0
  16. package/docs/providers.md +0 -0
  17. package/docs/rpc.md +0 -0
  18. package/docs/sdk.md +0 -0
  19. package/docs/session.md +0 -0
  20. package/docs/settings.md +0 -0
  21. package/docs/shell-aliases.md +0 -0
  22. package/docs/skills.md +0 -0
  23. package/docs/terminal-setup.md +0 -0
  24. package/docs/termux.md +0 -0
  25. package/docs/themes.md +0 -0
  26. package/docs/tmux.md +0 -0
  27. package/docs/tree.md +0 -0
  28. package/docs/tui.md +0 -0
  29. package/docs/windows.md +0 -0
  30. package/examples/README.md +0 -0
  31. package/examples/extensions/README.md +0 -0
  32. package/examples/extensions/antigravity-image-gen.ts +0 -0
  33. package/examples/extensions/auto-commit-on-exit.ts +0 -0
  34. package/examples/extensions/bash-spawn-hook.ts +0 -0
  35. package/examples/extensions/bookmark.ts +0 -0
  36. package/examples/extensions/built-in-tool-renderer.ts +0 -0
  37. package/examples/extensions/claude-rules.ts +0 -0
  38. package/examples/extensions/commands.ts +0 -0
  39. package/examples/extensions/confirm-destructive.ts +0 -0
  40. package/examples/extensions/custom-compaction.ts +0 -0
  41. package/examples/extensions/custom-footer.ts +0 -0
  42. package/examples/extensions/custom-header.ts +0 -0
  43. package/examples/extensions/custom-provider-anthropic/index.ts +0 -0
  44. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -0
  45. package/examples/extensions/custom-provider-anthropic/package.json +0 -0
  46. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -0
  47. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -0
  48. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -0
  49. package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -0
  50. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -0
  51. package/examples/extensions/dirty-repo-guard.ts +0 -0
  52. package/examples/extensions/doom-overlay/README.md +0 -0
  53. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
  54. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
  55. package/examples/extensions/doom-overlay/doom-component.ts +0 -0
  56. package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
  57. package/examples/extensions/doom-overlay/doom-keys.ts +0 -0
  58. package/examples/extensions/doom-overlay/index.ts +0 -0
  59. package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
  60. package/examples/extensions/dynamic-resources/SKILL.md +0 -0
  61. package/examples/extensions/dynamic-resources/dynamic.json +0 -0
  62. package/examples/extensions/dynamic-resources/dynamic.md +0 -0
  63. package/examples/extensions/dynamic-resources/index.ts +0 -0
  64. package/examples/extensions/dynamic-tools.ts +0 -0
  65. package/examples/extensions/event-bus.ts +0 -0
  66. package/examples/extensions/file-trigger.ts +0 -0
  67. package/examples/extensions/git-checkpoint.ts +0 -0
  68. package/examples/extensions/handoff.ts +0 -0
  69. package/examples/extensions/hello.ts +0 -0
  70. package/examples/extensions/hidden-thinking-label.ts +0 -0
  71. package/examples/extensions/inline-bash.ts +0 -0
  72. package/examples/extensions/input-transform.ts +0 -0
  73. package/examples/extensions/interactive-shell.ts +0 -0
  74. package/examples/extensions/mac-system-theme.ts +0 -0
  75. package/examples/extensions/message-renderer.ts +0 -0
  76. package/examples/extensions/minimal-mode.ts +0 -0
  77. package/examples/extensions/modal-editor.ts +0 -0
  78. package/examples/extensions/model-status.ts +0 -0
  79. package/examples/extensions/notify.ts +0 -0
  80. package/examples/extensions/overlay-qa-tests.ts +0 -0
  81. package/examples/extensions/overlay-test.ts +0 -0
  82. package/examples/extensions/permission-gate.ts +0 -0
  83. package/examples/extensions/pirate.ts +0 -0
  84. package/examples/extensions/plan-mode/README.md +0 -0
  85. package/examples/extensions/plan-mode/index.ts +0 -0
  86. package/examples/extensions/plan-mode/utils.ts +0 -0
  87. package/examples/extensions/preset.ts +0 -0
  88. package/examples/extensions/protected-paths.ts +0 -0
  89. package/examples/extensions/provider-payload.ts +0 -0
  90. package/examples/extensions/qna.ts +0 -0
  91. package/examples/extensions/question.ts +0 -0
  92. package/examples/extensions/questionnaire.ts +0 -0
  93. package/examples/extensions/rainbow-editor.ts +0 -0
  94. package/examples/extensions/reload-runtime.ts +0 -0
  95. package/examples/extensions/rpc-demo.ts +0 -0
  96. package/examples/extensions/sandbox/index.ts +0 -0
  97. package/examples/extensions/sandbox/package-lock.json +0 -0
  98. package/examples/extensions/sandbox/package.json +0 -0
  99. package/examples/extensions/send-user-message.ts +0 -0
  100. package/examples/extensions/session-name.ts +0 -0
  101. package/examples/extensions/shutdown-command.ts +0 -0
  102. package/examples/extensions/snake.ts +0 -0
  103. package/examples/extensions/space-invaders.ts +0 -0
  104. package/examples/extensions/ssh.ts +0 -0
  105. package/examples/extensions/status-line.ts +0 -0
  106. package/examples/extensions/subagent/README.md +0 -0
  107. package/examples/extensions/subagent/agents/planner.md +0 -0
  108. package/examples/extensions/subagent/agents/reviewer.md +0 -0
  109. package/examples/extensions/subagent/agents/scout.md +0 -0
  110. package/examples/extensions/subagent/agents/worker.md +0 -0
  111. package/examples/extensions/subagent/agents.ts +0 -0
  112. package/examples/extensions/subagent/index.ts +0 -0
  113. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
  114. package/examples/extensions/subagent/prompts/implement.md +0 -0
  115. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
  116. package/examples/extensions/summarize.ts +0 -0
  117. package/examples/extensions/system-prompt-header.ts +0 -0
  118. package/examples/extensions/tic-tac-toe.ts +0 -0
  119. package/examples/extensions/timed-confirm.ts +0 -0
  120. package/examples/extensions/titlebar-spinner.ts +0 -0
  121. package/examples/extensions/todo.ts +0 -0
  122. package/examples/extensions/tool-override.ts +0 -0
  123. package/examples/extensions/tools.ts +0 -0
  124. package/examples/extensions/trigger-compact.ts +0 -0
  125. package/examples/extensions/truncated-tool.ts +0 -0
  126. package/examples/extensions/widget-placement.ts +0 -0
  127. package/examples/extensions/with-deps/index.ts +0 -0
  128. package/examples/extensions/with-deps/package-lock.json +0 -0
  129. package/examples/extensions/with-deps/package.json +0 -0
  130. package/examples/extensions/working-indicator.ts +0 -0
  131. package/examples/rpc-extension-ui.ts +0 -0
  132. package/examples/sdk/01-minimal.ts +0 -0
  133. package/examples/sdk/02-custom-model.ts +0 -0
  134. package/examples/sdk/03-custom-prompt.ts +0 -0
  135. package/examples/sdk/04-skills.ts +0 -0
  136. package/examples/sdk/05-tools.ts +0 -0
  137. package/examples/sdk/06-extensions.ts +0 -0
  138. package/examples/sdk/07-context-files.ts +0 -0
  139. package/examples/sdk/08-prompt-templates.ts +0 -0
  140. package/examples/sdk/09-api-keys-and-oauth.ts +0 -0
  141. package/examples/sdk/10-settings.ts +0 -0
  142. package/examples/sdk/11-sessions.ts +0 -0
  143. package/examples/sdk/12-full-control.ts +0 -0
  144. package/examples/sdk/13-session-runtime.ts +0 -0
  145. package/examples/sdk/README.md +0 -0
  146. package/package.json +3 -3
  147. package/dist/bun/cli.d.ts +0 -3
  148. package/dist/bun/cli.d.ts.map +0 -1
  149. package/dist/bun/cli.js +0 -7
  150. package/dist/bun/cli.js.map +0 -1
  151. package/dist/bun/register-bedrock.d.ts +0 -2
  152. package/dist/bun/register-bedrock.d.ts.map +0 -1
  153. package/dist/bun/register-bedrock.js +0 -4
  154. package/dist/bun/register-bedrock.js.map +0 -1
  155. package/dist/cli/args.d.ts +0 -52
  156. package/dist/cli/args.d.ts.map +0 -1
  157. package/dist/cli/args.js +0 -321
  158. package/dist/cli/args.js.map +0 -1
  159. package/dist/cli/config-selector.d.ts +0 -14
  160. package/dist/cli/config-selector.d.ts.map +0 -1
  161. package/dist/cli/config-selector.js +0 -31
  162. package/dist/cli/config-selector.js.map +0 -1
  163. package/dist/cli/file-processor.d.ts +0 -15
  164. package/dist/cli/file-processor.d.ts.map +0 -1
  165. package/dist/cli/file-processor.js +0 -83
  166. package/dist/cli/file-processor.js.map +0 -1
  167. package/dist/cli/initial-message.d.ts +0 -18
  168. package/dist/cli/initial-message.d.ts.map +0 -1
  169. package/dist/cli/initial-message.js +0 -22
  170. package/dist/cli/initial-message.js.map +0 -1
  171. package/dist/cli/list-models.d.ts +0 -9
  172. package/dist/cli/list-models.d.ts.map +0 -1
  173. package/dist/cli/list-models.js +0 -97
  174. package/dist/cli/list-models.js.map +0 -1
  175. package/dist/cli/session-picker.d.ts +0 -9
  176. package/dist/cli/session-picker.d.ts.map +0 -1
  177. package/dist/cli/session-picker.js +0 -35
  178. package/dist/cli/session-picker.js.map +0 -1
  179. package/dist/cli.d.ts +0 -3
  180. package/dist/cli.d.ts.map +0 -1
  181. package/dist/cli.js +0 -15
  182. package/dist/cli.js.map +0 -1
  183. package/dist/config.d.ts +0 -77
  184. package/dist/config.d.ts.map +0 -1
  185. package/dist/config.js +0 -221
  186. package/dist/config.js.map +0 -1
  187. package/dist/core/agent-session-runtime.d.ts +0 -99
  188. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  189. package/dist/core/agent-session-runtime.js +0 -261
  190. package/dist/core/agent-session-runtime.js.map +0 -1
  191. package/dist/core/agent-session-services.d.ts +0 -85
  192. package/dist/core/agent-session-services.d.ts.map +0 -1
  193. package/dist/core/agent-session-services.js +0 -116
  194. package/dist/core/agent-session-services.js.map +0 -1
  195. package/dist/core/agent-session.d.ts +0 -590
  196. package/dist/core/agent-session.d.ts.map +0 -1
  197. package/dist/core/agent-session.js +0 -2505
  198. package/dist/core/agent-session.js.map +0 -1
  199. package/dist/core/auth-storage.d.ts +0 -132
  200. package/dist/core/auth-storage.d.ts.map +0 -1
  201. package/dist/core/auth-storage.js +0 -422
  202. package/dist/core/auth-storage.js.map +0 -1
  203. package/dist/core/bash-executor.d.ts +0 -32
  204. package/dist/core/bash-executor.d.ts.map +0 -1
  205. package/dist/core/bash-executor.js +0 -108
  206. package/dist/core/bash-executor.js.map +0 -1
  207. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  208. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  209. package/dist/core/compaction/branch-summarization.js +0 -243
  210. package/dist/core/compaction/branch-summarization.js.map +0 -1
  211. package/dist/core/compaction/compaction.d.ts +0 -121
  212. package/dist/core/compaction/compaction.d.ts.map +0 -1
  213. package/dist/core/compaction/compaction.js +0 -615
  214. package/dist/core/compaction/compaction.js.map +0 -1
  215. package/dist/core/compaction/index.d.ts +0 -7
  216. package/dist/core/compaction/index.d.ts.map +0 -1
  217. package/dist/core/compaction/index.js +0 -7
  218. package/dist/core/compaction/index.js.map +0 -1
  219. package/dist/core/compaction/utils.d.ts +0 -38
  220. package/dist/core/compaction/utils.d.ts.map +0 -1
  221. package/dist/core/compaction/utils.js +0 -153
  222. package/dist/core/compaction/utils.js.map +0 -1
  223. package/dist/core/defaults.d.ts +0 -3
  224. package/dist/core/defaults.d.ts.map +0 -1
  225. package/dist/core/defaults.js +0 -2
  226. package/dist/core/defaults.js.map +0 -1
  227. package/dist/core/diagnostics.d.ts +0 -15
  228. package/dist/core/diagnostics.d.ts.map +0 -1
  229. package/dist/core/diagnostics.js +0 -2
  230. package/dist/core/diagnostics.js.map +0 -1
  231. package/dist/core/event-bus.d.ts +0 -9
  232. package/dist/core/event-bus.d.ts.map +0 -1
  233. package/dist/core/event-bus.js +0 -25
  234. package/dist/core/event-bus.js.map +0 -1
  235. package/dist/core/exec.d.ts +0 -29
  236. package/dist/core/exec.d.ts.map +0 -1
  237. package/dist/core/exec.js +0 -75
  238. package/dist/core/exec.js.map +0 -1
  239. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  240. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  241. package/dist/core/export-html/ansi-to-html.js +0 -249
  242. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  243. package/dist/core/export-html/index.d.ts +0 -37
  244. package/dist/core/export-html/index.d.ts.map +0 -1
  245. package/dist/core/export-html/index.js +0 -224
  246. package/dist/core/export-html/index.js.map +0 -1
  247. package/dist/core/export-html/template.css +0 -1017
  248. package/dist/core/export-html/template.html +0 -55
  249. package/dist/core/export-html/template.js +0 -1729
  250. package/dist/core/export-html/tool-renderer.d.ts +0 -40
  251. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  252. package/dist/core/export-html/tool-renderer.js +0 -95
  253. package/dist/core/export-html/tool-renderer.js.map +0 -1
  254. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  255. package/dist/core/export-html/vendor/marked.min.js +0 -6
  256. package/dist/core/extensions/index.d.ts +0 -12
  257. package/dist/core/extensions/index.d.ts.map +0 -1
  258. package/dist/core/extensions/index.js +0 -9
  259. package/dist/core/extensions/index.js.map +0 -1
  260. package/dist/core/extensions/loader.d.ts +0 -25
  261. package/dist/core/extensions/loader.d.ts.map +0 -1
  262. package/dist/core/extensions/loader.js +0 -436
  263. package/dist/core/extensions/loader.js.map +0 -1
  264. package/dist/core/extensions/runner.d.ts +0 -150
  265. package/dist/core/extensions/runner.d.ts.map +0 -1
  266. package/dist/core/extensions/runner.js +0 -706
  267. package/dist/core/extensions/runner.js.map +0 -1
  268. package/dist/core/extensions/types.d.ts +0 -1111
  269. package/dist/core/extensions/types.d.ts.map +0 -1
  270. package/dist/core/extensions/types.js +0 -45
  271. package/dist/core/extensions/types.js.map +0 -1
  272. package/dist/core/extensions/wrapper.d.ts +0 -20
  273. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  274. package/dist/core/extensions/wrapper.js +0 -22
  275. package/dist/core/extensions/wrapper.js.map +0 -1
  276. package/dist/core/footer-data-provider.d.ts +0 -48
  277. package/dist/core/footer-data-provider.d.ts.map +0 -1
  278. package/dist/core/footer-data-provider.js +0 -314
  279. package/dist/core/footer-data-provider.js.map +0 -1
  280. package/dist/core/index.d.ts +0 -12
  281. package/dist/core/index.d.ts.map +0 -1
  282. package/dist/core/index.js +0 -12
  283. package/dist/core/index.js.map +0 -1
  284. package/dist/core/keybindings.d.ts +0 -353
  285. package/dist/core/keybindings.d.ts.map +0 -1
  286. package/dist/core/keybindings.js +0 -295
  287. package/dist/core/keybindings.js.map +0 -1
  288. package/dist/core/messages.d.ts +0 -77
  289. package/dist/core/messages.d.ts.map +0 -1
  290. package/dist/core/messages.js +0 -123
  291. package/dist/core/messages.js.map +0 -1
  292. package/dist/core/model-registry.d.ts +0 -132
  293. package/dist/core/model-registry.d.ts.map +0 -1
  294. package/dist/core/model-registry.js +0 -635
  295. package/dist/core/model-registry.js.map +0 -1
  296. package/dist/core/model-resolver.d.ts +0 -110
  297. package/dist/core/model-resolver.d.ts.map +0 -1
  298. package/dist/core/model-resolver.js +0 -486
  299. package/dist/core/model-resolver.js.map +0 -1
  300. package/dist/core/output-guard.d.ts +0 -6
  301. package/dist/core/output-guard.d.ts.map +0 -1
  302. package/dist/core/output-guard.js +0 -59
  303. package/dist/core/output-guard.js.map +0 -1
  304. package/dist/core/package-manager.d.ts +0 -194
  305. package/dist/core/package-manager.d.ts.map +0 -1
  306. package/dist/core/package-manager.js +0 -1882
  307. package/dist/core/package-manager.js.map +0 -1
  308. package/dist/core/prompt-templates.d.ts +0 -52
  309. package/dist/core/prompt-templates.d.ts.map +0 -1
  310. package/dist/core/prompt-templates.js +0 -250
  311. package/dist/core/prompt-templates.js.map +0 -1
  312. package/dist/core/resolve-config-value.d.ts +0 -23
  313. package/dist/core/resolve-config-value.d.ts.map +0 -1
  314. package/dist/core/resolve-config-value.js +0 -126
  315. package/dist/core/resolve-config-value.js.map +0 -1
  316. package/dist/core/resource-loader.d.ts +0 -194
  317. package/dist/core/resource-loader.d.ts.map +0 -1
  318. package/dist/core/resource-loader.js +0 -726
  319. package/dist/core/resource-loader.js.map +0 -1
  320. package/dist/core/sdk.d.ts +0 -99
  321. package/dist/core/sdk.d.ts.map +0 -1
  322. package/dist/core/sdk.js +0 -261
  323. package/dist/core/sdk.js.map +0 -1
  324. package/dist/core/session-cwd.d.ts +0 -19
  325. package/dist/core/session-cwd.d.ts.map +0 -1
  326. package/dist/core/session-cwd.js +0 -38
  327. package/dist/core/session-cwd.js.map +0 -1
  328. package/dist/core/session-manager.d.ts +0 -333
  329. package/dist/core/session-manager.d.ts.map +0 -1
  330. package/dist/core/session-manager.js +0 -1109
  331. package/dist/core/session-manager.js.map +0 -1
  332. package/dist/core/settings-manager.d.ts +0 -240
  333. package/dist/core/settings-manager.d.ts.map +0 -1
  334. package/dist/core/settings-manager.js +0 -711
  335. package/dist/core/settings-manager.js.map +0 -1
  336. package/dist/core/skills.d.ts +0 -60
  337. package/dist/core/skills.d.ts.map +0 -1
  338. package/dist/core/skills.js +0 -409
  339. package/dist/core/skills.js.map +0 -1
  340. package/dist/core/slash-commands.d.ts +0 -14
  341. package/dist/core/slash-commands.d.ts.map +0 -1
  342. package/dist/core/slash-commands.js +0 -24
  343. package/dist/core/slash-commands.js.map +0 -1
  344. package/dist/core/source-info.d.ts +0 -18
  345. package/dist/core/source-info.d.ts.map +0 -1
  346. package/dist/core/source-info.js +0 -19
  347. package/dist/core/source-info.js.map +0 -1
  348. package/dist/core/system-prompt.d.ts +0 -28
  349. package/dist/core/system-prompt.d.ts.map +0 -1
  350. package/dist/core/system-prompt.js +0 -120
  351. package/dist/core/system-prompt.js.map +0 -1
  352. package/dist/core/telemetry.d.ts +0 -3
  353. package/dist/core/telemetry.d.ts.map +0 -1
  354. package/dist/core/telemetry.js +0 -9
  355. package/dist/core/telemetry.js.map +0 -1
  356. package/dist/core/timings.d.ts +0 -8
  357. package/dist/core/timings.d.ts.map +0 -1
  358. package/dist/core/timings.js +0 -31
  359. package/dist/core/timings.js.map +0 -1
  360. package/dist/core/tools/bash.d.ts +0 -64
  361. package/dist/core/tools/bash.d.ts.map +0 -1
  362. package/dist/core/tools/bash.js +0 -355
  363. package/dist/core/tools/bash.js.map +0 -1
  364. package/dist/core/tools/edit-diff.d.ts +0 -85
  365. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  366. package/dist/core/tools/edit-diff.js +0 -337
  367. package/dist/core/tools/edit-diff.js.map +0 -1
  368. package/dist/core/tools/edit.d.ts +0 -49
  369. package/dist/core/tools/edit.d.ts.map +0 -1
  370. package/dist/core/tools/edit.js +0 -323
  371. package/dist/core/tools/edit.js.map +0 -1
  372. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  373. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  374. package/dist/core/tools/file-mutation-queue.js +0 -37
  375. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  376. package/dist/core/tools/find.d.ts +0 -35
  377. package/dist/core/tools/find.d.ts.map +0 -1
  378. package/dist/core/tools/find.js +0 -298
  379. package/dist/core/tools/find.js.map +0 -1
  380. package/dist/core/tools/grep.d.ts +0 -37
  381. package/dist/core/tools/grep.d.ts.map +0 -1
  382. package/dist/core/tools/grep.js +0 -304
  383. package/dist/core/tools/grep.js.map +0 -1
  384. package/dist/core/tools/index.d.ts +0 -40
  385. package/dist/core/tools/index.d.ts.map +0 -1
  386. package/dist/core/tools/index.js +0 -112
  387. package/dist/core/tools/index.js.map +0 -1
  388. package/dist/core/tools/ls.d.ts +0 -37
  389. package/dist/core/tools/ls.d.ts.map +0 -1
  390. package/dist/core/tools/ls.js +0 -169
  391. package/dist/core/tools/ls.js.map +0 -1
  392. package/dist/core/tools/path-utils.d.ts +0 -8
  393. package/dist/core/tools/path-utils.d.ts.map +0 -1
  394. package/dist/core/tools/path-utils.js +0 -81
  395. package/dist/core/tools/path-utils.js.map +0 -1
  396. package/dist/core/tools/read.d.ts +0 -35
  397. package/dist/core/tools/read.d.ts.map +0 -1
  398. package/dist/core/tools/read.js +0 -232
  399. package/dist/core/tools/read.js.map +0 -1
  400. package/dist/core/tools/render-utils.d.ts +0 -21
  401. package/dist/core/tools/render-utils.d.ts.map +0 -1
  402. package/dist/core/tools/render-utils.js +0 -49
  403. package/dist/core/tools/render-utils.js.map +0 -1
  404. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  405. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  406. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  407. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  408. package/dist/core/tools/truncate.d.ts +0 -70
  409. package/dist/core/tools/truncate.d.ts.map +0 -1
  410. package/dist/core/tools/truncate.js +0 -205
  411. package/dist/core/tools/truncate.js.map +0 -1
  412. package/dist/core/tools/write.d.ts +0 -26
  413. package/dist/core/tools/write.d.ts.map +0 -1
  414. package/dist/core/tools/write.js +0 -213
  415. package/dist/core/tools/write.js.map +0 -1
  416. package/dist/index.d.ts +0 -28
  417. package/dist/index.d.ts.map +0 -1
  418. package/dist/index.js +0 -41
  419. package/dist/index.js.map +0 -1
  420. package/dist/main.d.ts +0 -12
  421. package/dist/main.d.ts.map +0 -1
  422. package/dist/main.js +0 -589
  423. package/dist/main.js.map +0 -1
  424. package/dist/migrations.d.ts +0 -33
  425. package/dist/migrations.d.ts.map +0 -1
  426. package/dist/migrations.js +0 -281
  427. package/dist/migrations.js.map +0 -1
  428. package/dist/modes/index.d.ts +0 -9
  429. package/dist/modes/index.d.ts.map +0 -1
  430. package/dist/modes/index.js +0 -8
  431. package/dist/modes/index.js.map +0 -1
  432. package/dist/modes/interactive/assets/clankolas.png +0 -0
  433. package/dist/modes/interactive/components/aery-splash.d.ts +0 -18
  434. package/dist/modes/interactive/components/aery-splash.d.ts.map +0 -1
  435. package/dist/modes/interactive/components/aery-splash.js +0 -60
  436. package/dist/modes/interactive/components/aery-splash.js.map +0 -1
  437. package/dist/modes/interactive/components/armin.d.ts +0 -34
  438. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  439. package/dist/modes/interactive/components/armin.js +0 -333
  440. package/dist/modes/interactive/components/armin.js.map +0 -1
  441. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  442. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  443. package/dist/modes/interactive/components/assistant-message.js +0 -121
  444. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  445. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  446. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  447. package/dist/modes/interactive/components/bash-execution.js +0 -175
  448. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  449. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  450. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  451. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  452. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  453. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  454. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  455. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  456. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  457. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  458. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  459. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  460. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  461. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  462. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  463. package/dist/modes/interactive/components/config-selector.js +0 -479
  464. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  465. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  466. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  467. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  468. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  469. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  470. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  471. package/dist/modes/interactive/components/custom-editor.js +0 -70
  472. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  473. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  474. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  475. package/dist/modes/interactive/components/custom-message.js +0 -79
  476. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  477. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  478. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  479. package/dist/modes/interactive/components/daxnuts.js +0 -140
  480. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  481. package/dist/modes/interactive/components/diff.d.ts +0 -12
  482. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  483. package/dist/modes/interactive/components/diff.js +0 -133
  484. package/dist/modes/interactive/components/diff.js.map +0 -1
  485. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  486. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  487. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  488. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  489. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  490. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  491. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  492. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  493. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  494. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  495. package/dist/modes/interactive/components/extension-editor.js +0 -111
  496. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  497. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  498. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  499. package/dist/modes/interactive/components/extension-input.js +0 -61
  500. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  501. package/dist/modes/interactive/components/extension-selector.d.ts +0 -24
  502. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  503. package/dist/modes/interactive/components/extension-selector.js +0 -78
  504. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  505. package/dist/modes/interactive/components/footer.d.ts +0 -27
  506. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  507. package/dist/modes/interactive/components/footer.js +0 -201
  508. package/dist/modes/interactive/components/footer.js.map +0 -1
  509. package/dist/modes/interactive/components/index.d.ts +0 -32
  510. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  511. package/dist/modes/interactive/components/index.js +0 -33
  512. package/dist/modes/interactive/components/index.js.map +0 -1
  513. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -8
  514. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  515. package/dist/modes/interactive/components/keybinding-hints.js +0 -22
  516. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  517. package/dist/modes/interactive/components/login-dialog.d.ts +0 -42
  518. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  519. package/dist/modes/interactive/components/login-dialog.js +0 -145
  520. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  521. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  522. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  523. package/dist/modes/interactive/components/model-selector.js +0 -278
  524. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  525. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  526. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  527. package/dist/modes/interactive/components/oauth-selector.js +0 -97
  528. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  529. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  530. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  531. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  532. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  533. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  534. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  535. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  536. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  537. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  538. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  539. package/dist/modes/interactive/components/session-selector.js +0 -865
  540. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  541. package/dist/modes/interactive/components/settings-selector.d.ts +0 -60
  542. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  543. package/dist/modes/interactive/components/settings-selector.js +0 -311
  544. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  545. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  546. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  547. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  548. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  549. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  550. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  551. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  552. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  553. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  554. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  555. package/dist/modes/interactive/components/theme-selector.js +0 -50
  556. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  557. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  558. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  559. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  560. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  561. package/dist/modes/interactive/components/tool-execution.d.ts +0 -60
  562. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  563. package/dist/modes/interactive/components/tool-execution.js +0 -289
  564. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  565. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  566. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  567. package/dist/modes/interactive/components/tree-selector.js +0 -1092
  568. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  569. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  570. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  571. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  572. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  573. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  574. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  575. package/dist/modes/interactive/components/user-message.js +0 -29
  576. package/dist/modes/interactive/components/user-message.js.map +0 -1
  577. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  578. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  579. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  580. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  581. package/dist/modes/interactive/interactive-mode.d.ts +0 -344
  582. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  583. package/dist/modes/interactive/interactive-mode.js +0 -4352
  584. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  585. package/dist/modes/interactive/theme/aery.json +0 -84
  586. package/dist/modes/interactive/theme/catppuccin-mocha.json +0 -81
  587. package/dist/modes/interactive/theme/dark.json +0 -85
  588. package/dist/modes/interactive/theme/dracula.json +0 -81
  589. package/dist/modes/interactive/theme/light.json +0 -84
  590. package/dist/modes/interactive/theme/nord.json +0 -81
  591. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  592. package/dist/modes/interactive/theme/theme.d.ts +0 -81
  593. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  594. package/dist/modes/interactive/theme/theme.js +0 -983
  595. package/dist/modes/interactive/theme/theme.js.map +0 -1
  596. package/dist/modes/interactive/theme/tokyo-night.json +0 -81
  597. package/dist/modes/print-mode.d.ts +0 -28
  598. package/dist/modes/print-mode.d.ts.map +0 -1
  599. package/dist/modes/print-mode.js +0 -141
  600. package/dist/modes/print-mode.js.map +0 -1
  601. package/dist/modes/rpc/jsonl.d.ts +0 -17
  602. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  603. package/dist/modes/rpc/jsonl.js +0 -49
  604. package/dist/modes/rpc/jsonl.js.map +0 -1
  605. package/dist/modes/rpc/rpc-client.d.ts +0 -224
  606. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  607. package/dist/modes/rpc/rpc-client.js +0 -410
  608. package/dist/modes/rpc/rpc-client.js.map +0 -1
  609. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  610. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  611. package/dist/modes/rpc/rpc-mode.js +0 -601
  612. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  613. package/dist/modes/rpc/rpc-types.d.ts +0 -419
  614. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  615. package/dist/modes/rpc/rpc-types.js +0 -8
  616. package/dist/modes/rpc/rpc-types.js.map +0 -1
  617. package/dist/package-manager-cli.d.ts +0 -4
  618. package/dist/package-manager-cli.d.ts.map +0 -1
  619. package/dist/package-manager-cli.js +0 -234
  620. package/dist/package-manager-cli.js.map +0 -1
  621. package/dist/utils/changelog.d.ts +0 -21
  622. package/dist/utils/changelog.d.ts.map +0 -1
  623. package/dist/utils/changelog.js +0 -87
  624. package/dist/utils/changelog.js.map +0 -1
  625. package/dist/utils/child-process.d.ts +0 -11
  626. package/dist/utils/child-process.d.ts.map +0 -1
  627. package/dist/utils/child-process.js +0 -78
  628. package/dist/utils/child-process.js.map +0 -1
  629. package/dist/utils/clipboard-image.d.ts +0 -11
  630. package/dist/utils/clipboard-image.d.ts.map +0 -1
  631. package/dist/utils/clipboard-image.js +0 -245
  632. package/dist/utils/clipboard-image.js.map +0 -1
  633. package/dist/utils/clipboard-native.d.ts +0 -8
  634. package/dist/utils/clipboard-native.d.ts.map +0 -1
  635. package/dist/utils/clipboard-native.js +0 -14
  636. package/dist/utils/clipboard-native.js.map +0 -1
  637. package/dist/utils/clipboard.d.ts +0 -2
  638. package/dist/utils/clipboard.d.ts.map +0 -1
  639. package/dist/utils/clipboard.js +0 -78
  640. package/dist/utils/clipboard.js.map +0 -1
  641. package/dist/utils/exif-orientation.d.ts +0 -5
  642. package/dist/utils/exif-orientation.d.ts.map +0 -1
  643. package/dist/utils/exif-orientation.js +0 -158
  644. package/dist/utils/exif-orientation.js.map +0 -1
  645. package/dist/utils/frontmatter.d.ts +0 -8
  646. package/dist/utils/frontmatter.d.ts.map +0 -1
  647. package/dist/utils/frontmatter.js +0 -26
  648. package/dist/utils/frontmatter.js.map +0 -1
  649. package/dist/utils/git.d.ts +0 -26
  650. package/dist/utils/git.d.ts.map +0 -1
  651. package/dist/utils/git.js +0 -163
  652. package/dist/utils/git.js.map +0 -1
  653. package/dist/utils/image-convert.d.ts +0 -9
  654. package/dist/utils/image-convert.d.ts.map +0 -1
  655. package/dist/utils/image-convert.js +0 -39
  656. package/dist/utils/image-convert.js.map +0 -1
  657. package/dist/utils/image-resize.d.ts +0 -36
  658. package/dist/utils/image-resize.d.ts.map +0 -1
  659. package/dist/utils/image-resize.js +0 -137
  660. package/dist/utils/image-resize.js.map +0 -1
  661. package/dist/utils/mime.d.ts +0 -2
  662. package/dist/utils/mime.d.ts.map +0 -1
  663. package/dist/utils/mime.js +0 -26
  664. package/dist/utils/mime.js.map +0 -1
  665. package/dist/utils/paths.d.ts +0 -7
  666. package/dist/utils/paths.d.ts.map +0 -1
  667. package/dist/utils/paths.js +0 -19
  668. package/dist/utils/paths.js.map +0 -1
  669. package/dist/utils/photon.d.ts +0 -21
  670. package/dist/utils/photon.d.ts.map +0 -1
  671. package/dist/utils/photon.js +0 -121
  672. package/dist/utils/photon.js.map +0 -1
  673. package/dist/utils/shell.d.ts +0 -29
  674. package/dist/utils/shell.d.ts.map +0 -1
  675. package/dist/utils/shell.js +0 -203
  676. package/dist/utils/shell.js.map +0 -1
  677. package/dist/utils/sleep.d.ts +0 -5
  678. package/dist/utils/sleep.d.ts.map +0 -1
  679. package/dist/utils/sleep.js +0 -17
  680. package/dist/utils/sleep.js.map +0 -1
  681. package/dist/utils/tools-manager.d.ts +0 -3
  682. package/dist/utils/tools-manager.d.ts.map +0 -1
  683. package/dist/utils/tools-manager.js +0 -252
  684. package/dist/utils/tools-manager.js.map +0 -1
@@ -1,635 +0,0 @@
1
- /**
2
- * Model registry - manages built-in and custom models, provides API key resolution.
3
- */
4
- import { getModels, getProviders, registerApiProvider, resetApiProviders, } from "@eminent337/aery-ai";
5
- import { registerOAuthProvider, resetOAuthProviders } from "@eminent337/aery-ai/oauth";
6
- import { Type } from "@sinclair/typebox";
7
- import AjvModule from "ajv";
8
- import { existsSync, readFileSync } from "fs";
9
- import { join } from "path";
10
- import { getAgentDir } from "../config.js";
11
- import { clearConfigValueCache, resolveConfigValueOrThrow, resolveConfigValueUncached, resolveHeadersOrThrow, } from "./resolve-config-value.js";
12
- const Ajv = AjvModule.default || AjvModule;
13
- const ajv = new Ajv();
14
- // Schema for OpenRouter routing preferences
15
- const PercentileCutoffsSchema = Type.Object({
16
- p50: Type.Optional(Type.Number()),
17
- p75: Type.Optional(Type.Number()),
18
- p90: Type.Optional(Type.Number()),
19
- p99: Type.Optional(Type.Number()),
20
- });
21
- const OpenRouterRoutingSchema = Type.Object({
22
- allow_fallbacks: Type.Optional(Type.Boolean()),
23
- require_parameters: Type.Optional(Type.Boolean()),
24
- data_collection: Type.Optional(Type.Union([Type.Literal("deny"), Type.Literal("allow")])),
25
- zdr: Type.Optional(Type.Boolean()),
26
- enforce_distillable_text: Type.Optional(Type.Boolean()),
27
- order: Type.Optional(Type.Array(Type.String())),
28
- only: Type.Optional(Type.Array(Type.String())),
29
- ignore: Type.Optional(Type.Array(Type.String())),
30
- quantizations: Type.Optional(Type.Array(Type.String())),
31
- sort: Type.Optional(Type.Union([
32
- Type.String(),
33
- Type.Object({
34
- by: Type.Optional(Type.String()),
35
- partition: Type.Optional(Type.Union([Type.String(), Type.Null()])),
36
- }),
37
- ])),
38
- max_price: Type.Optional(Type.Object({
39
- prompt: Type.Optional(Type.Union([Type.Number(), Type.String()])),
40
- completion: Type.Optional(Type.Union([Type.Number(), Type.String()])),
41
- image: Type.Optional(Type.Union([Type.Number(), Type.String()])),
42
- audio: Type.Optional(Type.Union([Type.Number(), Type.String()])),
43
- request: Type.Optional(Type.Union([Type.Number(), Type.String()])),
44
- })),
45
- preferred_min_throughput: Type.Optional(Type.Union([Type.Number(), PercentileCutoffsSchema])),
46
- preferred_max_latency: Type.Optional(Type.Union([Type.Number(), PercentileCutoffsSchema])),
47
- });
48
- // Schema for Vercel AI Gateway routing preferences
49
- const VercelGatewayRoutingSchema = Type.Object({
50
- only: Type.Optional(Type.Array(Type.String())),
51
- order: Type.Optional(Type.Array(Type.String())),
52
- });
53
- // Schema for OpenAI compatibility settings
54
- const ReasoningEffortMapSchema = Type.Object({
55
- minimal: Type.Optional(Type.String()),
56
- low: Type.Optional(Type.String()),
57
- medium: Type.Optional(Type.String()),
58
- high: Type.Optional(Type.String()),
59
- xhigh: Type.Optional(Type.String()),
60
- });
61
- const OpenAICompletionsCompatSchema = Type.Object({
62
- supportsStore: Type.Optional(Type.Boolean()),
63
- supportsDeveloperRole: Type.Optional(Type.Boolean()),
64
- supportsReasoningEffort: Type.Optional(Type.Boolean()),
65
- reasoningEffortMap: Type.Optional(ReasoningEffortMapSchema),
66
- supportsUsageInStreaming: Type.Optional(Type.Boolean()),
67
- maxTokensField: Type.Optional(Type.Union([Type.Literal("max_completion_tokens"), Type.Literal("max_tokens")])),
68
- requiresToolResultName: Type.Optional(Type.Boolean()),
69
- requiresAssistantAfterToolResult: Type.Optional(Type.Boolean()),
70
- requiresThinkingAsText: Type.Optional(Type.Boolean()),
71
- thinkingFormat: Type.Optional(Type.Union([
72
- Type.Literal("openai"),
73
- Type.Literal("openrouter"),
74
- Type.Literal("zai"),
75
- Type.Literal("qwen"),
76
- Type.Literal("qwen-chat-template"),
77
- ])),
78
- cacheControlFormat: Type.Optional(Type.Literal("anthropic")),
79
- openRouterRouting: Type.Optional(OpenRouterRoutingSchema),
80
- vercelGatewayRouting: Type.Optional(VercelGatewayRoutingSchema),
81
- supportsStrictMode: Type.Optional(Type.Boolean()),
82
- });
83
- const OpenAIResponsesCompatSchema = Type.Object({});
84
- const OpenAICompatSchema = Type.Union([OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema]);
85
- // Schema for custom model definition
86
- // Most fields are optional with sensible defaults for local models (Ollama, LM Studio, etc.)
87
- const ModelDefinitionSchema = Type.Object({
88
- id: Type.String({ minLength: 1 }),
89
- name: Type.Optional(Type.String({ minLength: 1 })),
90
- api: Type.Optional(Type.String({ minLength: 1 })),
91
- baseUrl: Type.Optional(Type.String({ minLength: 1 })),
92
- reasoning: Type.Optional(Type.Boolean()),
93
- input: Type.Optional(Type.Array(Type.Union([Type.Literal("text"), Type.Literal("image")]))),
94
- cost: Type.Optional(Type.Object({
95
- input: Type.Number(),
96
- output: Type.Number(),
97
- cacheRead: Type.Number(),
98
- cacheWrite: Type.Number(),
99
- })),
100
- contextWindow: Type.Optional(Type.Number()),
101
- maxTokens: Type.Optional(Type.Number()),
102
- headers: Type.Optional(Type.Record(Type.String(), Type.String())),
103
- compat: Type.Optional(OpenAICompatSchema),
104
- });
105
- // Schema for per-model overrides (all fields optional, merged with built-in model)
106
- const ModelOverrideSchema = Type.Object({
107
- name: Type.Optional(Type.String({ minLength: 1 })),
108
- reasoning: Type.Optional(Type.Boolean()),
109
- input: Type.Optional(Type.Array(Type.Union([Type.Literal("text"), Type.Literal("image")]))),
110
- cost: Type.Optional(Type.Object({
111
- input: Type.Optional(Type.Number()),
112
- output: Type.Optional(Type.Number()),
113
- cacheRead: Type.Optional(Type.Number()),
114
- cacheWrite: Type.Optional(Type.Number()),
115
- })),
116
- contextWindow: Type.Optional(Type.Number()),
117
- maxTokens: Type.Optional(Type.Number()),
118
- headers: Type.Optional(Type.Record(Type.String(), Type.String())),
119
- compat: Type.Optional(OpenAICompatSchema),
120
- });
121
- const ProviderConfigSchema = Type.Object({
122
- baseUrl: Type.Optional(Type.String({ minLength: 1 })),
123
- apiKey: Type.Optional(Type.String({ minLength: 1 })),
124
- api: Type.Optional(Type.String({ minLength: 1 })),
125
- headers: Type.Optional(Type.Record(Type.String(), Type.String())),
126
- compat: Type.Optional(OpenAICompatSchema),
127
- authHeader: Type.Optional(Type.Boolean()),
128
- models: Type.Optional(Type.Array(ModelDefinitionSchema)),
129
- modelOverrides: Type.Optional(Type.Record(Type.String(), ModelOverrideSchema)),
130
- });
131
- const ModelsConfigSchema = Type.Object({
132
- providers: Type.Record(Type.String(), ProviderConfigSchema),
133
- });
134
- ajv.addSchema(ModelsConfigSchema, "ModelsConfig");
135
- function emptyCustomModelsResult(error) {
136
- return { models: [], overrides: new Map(), modelOverrides: new Map(), error };
137
- }
138
- function mergeCompat(baseCompat, overrideCompat) {
139
- if (!overrideCompat)
140
- return baseCompat;
141
- const base = baseCompat;
142
- const override = overrideCompat;
143
- const merged = { ...base, ...override };
144
- const baseCompletions = base;
145
- const overrideCompletions = override;
146
- const mergedCompletions = merged;
147
- if (baseCompletions?.openRouterRouting || overrideCompletions.openRouterRouting) {
148
- mergedCompletions.openRouterRouting = {
149
- ...baseCompletions?.openRouterRouting,
150
- ...overrideCompletions.openRouterRouting,
151
- };
152
- }
153
- if (baseCompletions?.vercelGatewayRouting || overrideCompletions.vercelGatewayRouting) {
154
- mergedCompletions.vercelGatewayRouting = {
155
- ...baseCompletions?.vercelGatewayRouting,
156
- ...overrideCompletions.vercelGatewayRouting,
157
- };
158
- }
159
- return merged;
160
- }
161
- /**
162
- * Deep merge a model override into a model.
163
- * Handles nested objects (cost, compat) by merging rather than replacing.
164
- */
165
- function applyModelOverride(model, override) {
166
- const result = { ...model };
167
- // Simple field overrides
168
- if (override.name !== undefined)
169
- result.name = override.name;
170
- if (override.reasoning !== undefined)
171
- result.reasoning = override.reasoning;
172
- if (override.input !== undefined)
173
- result.input = override.input;
174
- if (override.contextWindow !== undefined)
175
- result.contextWindow = override.contextWindow;
176
- if (override.maxTokens !== undefined)
177
- result.maxTokens = override.maxTokens;
178
- // Merge cost (partial override)
179
- if (override.cost) {
180
- result.cost = {
181
- input: override.cost.input ?? model.cost.input,
182
- output: override.cost.output ?? model.cost.output,
183
- cacheRead: override.cost.cacheRead ?? model.cost.cacheRead,
184
- cacheWrite: override.cost.cacheWrite ?? model.cost.cacheWrite,
185
- };
186
- }
187
- // Deep merge compat
188
- result.compat = mergeCompat(model.compat, override.compat);
189
- return result;
190
- }
191
- /** Clear the config value command cache. Exported for testing. */
192
- export const clearApiKeyCache = clearConfigValueCache;
193
- /**
194
- * Model registry - loads and manages models, resolves API keys via AuthStorage.
195
- */
196
- export class ModelRegistry {
197
- authStorage;
198
- modelsJsonPath;
199
- models = [];
200
- providerRequestConfigs = new Map();
201
- modelRequestHeaders = new Map();
202
- registeredProviders = new Map();
203
- loadError = undefined;
204
- constructor(authStorage, modelsJsonPath) {
205
- this.authStorage = authStorage;
206
- this.modelsJsonPath = modelsJsonPath;
207
- this.loadModels();
208
- }
209
- static create(authStorage, modelsJsonPath = join(getAgentDir(), "models.json")) {
210
- return new ModelRegistry(authStorage, modelsJsonPath);
211
- }
212
- static inMemory(authStorage) {
213
- return new ModelRegistry(authStorage, undefined);
214
- }
215
- /**
216
- * Reload models from disk (built-in + custom from models.json).
217
- */
218
- refresh() {
219
- this.providerRequestConfigs.clear();
220
- this.modelRequestHeaders.clear();
221
- this.loadError = undefined;
222
- // Ensure dynamic API/OAuth registrations are rebuilt from current provider state.
223
- resetApiProviders();
224
- resetOAuthProviders();
225
- this.loadModels();
226
- for (const [providerName, config] of this.registeredProviders.entries()) {
227
- this.applyProviderConfig(providerName, config);
228
- }
229
- }
230
- /**
231
- * Get any error from loading models.json (undefined if no error).
232
- */
233
- getError() {
234
- return this.loadError;
235
- }
236
- loadModels() {
237
- // Load custom models and overrides from models.json
238
- const { models: customModels, overrides, modelOverrides, error, } = this.modelsJsonPath ? this.loadCustomModels(this.modelsJsonPath) : emptyCustomModelsResult();
239
- if (error) {
240
- this.loadError = error;
241
- // Keep built-in models even if custom models failed to load
242
- }
243
- const builtInModels = this.loadBuiltInModels(overrides, modelOverrides);
244
- let combined = this.mergeCustomModels(builtInModels, customModels);
245
- // Let OAuth providers modify their models (e.g., update baseUrl)
246
- for (const oauthProvider of this.authStorage.getOAuthProviders()) {
247
- const cred = this.authStorage.get(oauthProvider.id);
248
- if (cred?.type === "oauth" && oauthProvider.modifyModels) {
249
- combined = oauthProvider.modifyModels(combined, cred);
250
- }
251
- }
252
- this.models = combined;
253
- }
254
- /** Load built-in models and apply provider/model overrides */
255
- loadBuiltInModels(overrides, modelOverrides) {
256
- return getProviders().flatMap((provider) => {
257
- const models = getModels(provider);
258
- const providerOverride = overrides.get(provider);
259
- const perModelOverrides = modelOverrides.get(provider);
260
- return models.map((m) => {
261
- let model = m;
262
- // Apply provider-level baseUrl/headers/compat override
263
- if (providerOverride) {
264
- model = {
265
- ...model,
266
- baseUrl: providerOverride.baseUrl ?? model.baseUrl,
267
- compat: mergeCompat(model.compat, providerOverride.compat),
268
- };
269
- }
270
- // Apply per-model override
271
- const modelOverride = perModelOverrides?.get(m.id);
272
- if (modelOverride) {
273
- model = applyModelOverride(model, modelOverride);
274
- }
275
- return model;
276
- });
277
- });
278
- }
279
- /** Merge custom models into built-in list by provider+id (custom wins on conflicts). */
280
- mergeCustomModels(builtInModels, customModels) {
281
- const merged = [...builtInModels];
282
- for (const customModel of customModels) {
283
- const existingIndex = merged.findIndex((m) => m.provider === customModel.provider && m.id === customModel.id);
284
- if (existingIndex >= 0) {
285
- merged[existingIndex] = customModel;
286
- }
287
- else {
288
- merged.push(customModel);
289
- }
290
- }
291
- return merged;
292
- }
293
- loadCustomModels(modelsJsonPath) {
294
- if (!existsSync(modelsJsonPath)) {
295
- return emptyCustomModelsResult();
296
- }
297
- try {
298
- const content = readFileSync(modelsJsonPath, "utf-8");
299
- const config = JSON.parse(content);
300
- // Validate schema
301
- const validate = ajv.getSchema("ModelsConfig");
302
- if (!validate(config)) {
303
- const errors = validate.errors?.map((e) => ` - ${e.instancePath || "root"}: ${e.message}`).join("\n") ||
304
- "Unknown schema error";
305
- return emptyCustomModelsResult(`Invalid models.json schema:\n${errors}\n\nFile: ${modelsJsonPath}`);
306
- }
307
- // Additional validation
308
- this.validateConfig(config);
309
- const overrides = new Map();
310
- const modelOverrides = new Map();
311
- for (const [providerName, providerConfig] of Object.entries(config.providers)) {
312
- if (providerConfig.baseUrl || providerConfig.compat) {
313
- overrides.set(providerName, {
314
- baseUrl: providerConfig.baseUrl,
315
- compat: providerConfig.compat,
316
- });
317
- }
318
- this.storeProviderRequestConfig(providerName, providerConfig);
319
- if (providerConfig.modelOverrides) {
320
- modelOverrides.set(providerName, new Map(Object.entries(providerConfig.modelOverrides)));
321
- for (const [modelId, modelOverride] of Object.entries(providerConfig.modelOverrides)) {
322
- this.storeModelHeaders(providerName, modelId, modelOverride.headers);
323
- }
324
- }
325
- }
326
- return { models: this.parseModels(config), overrides, modelOverrides, error: undefined };
327
- }
328
- catch (error) {
329
- if (error instanceof SyntaxError) {
330
- return emptyCustomModelsResult(`Failed to parse models.json: ${error.message}\n\nFile: ${modelsJsonPath}`);
331
- }
332
- return emptyCustomModelsResult(`Failed to load models.json: ${error instanceof Error ? error.message : error}\n\nFile: ${modelsJsonPath}`);
333
- }
334
- }
335
- validateConfig(config) {
336
- const builtInProviders = new Set(getProviders());
337
- for (const [providerName, providerConfig] of Object.entries(config.providers)) {
338
- const isBuiltIn = builtInProviders.has(providerName);
339
- const hasProviderApi = !!providerConfig.api;
340
- const models = providerConfig.models ?? [];
341
- const hasModelOverrides = providerConfig.modelOverrides && Object.keys(providerConfig.modelOverrides).length > 0;
342
- if (models.length === 0) {
343
- // Override-only config: needs baseUrl, compat, modelOverrides, or some combination.
344
- if (!providerConfig.baseUrl && !providerConfig.compat && !hasModelOverrides) {
345
- throw new Error(`Provider ${providerName}: must specify "baseUrl", "compat", "modelOverrides", or "models".`);
346
- }
347
- }
348
- else if (!isBuiltIn) {
349
- // Non-built-in providers with custom models require endpoint + auth.
350
- if (!providerConfig.baseUrl) {
351
- throw new Error(`Provider ${providerName}: "baseUrl" is required when defining custom models.`);
352
- }
353
- if (!providerConfig.apiKey) {
354
- throw new Error(`Provider ${providerName}: "apiKey" is required when defining custom models.`);
355
- }
356
- }
357
- // Built-in providers with custom models: baseUrl/apiKey/api are optional,
358
- // inherited from built-in models. Auth comes from env vars / auth storage.
359
- for (const modelDef of models) {
360
- const hasModelApi = !!modelDef.api;
361
- if (!hasProviderApi && !hasModelApi && !isBuiltIn) {
362
- throw new Error(`Provider ${providerName}, model ${modelDef.id}: no "api" specified. Set at provider or model level.`);
363
- }
364
- // For built-in providers, api is optional — inherited from built-in models.
365
- if (!modelDef.id)
366
- throw new Error(`Provider ${providerName}: model missing "id"`);
367
- // Validate contextWindow/maxTokens only if provided (they have defaults)
368
- if (modelDef.contextWindow !== undefined && modelDef.contextWindow <= 0)
369
- throw new Error(`Provider ${providerName}, model ${modelDef.id}: invalid contextWindow`);
370
- if (modelDef.maxTokens !== undefined && modelDef.maxTokens <= 0)
371
- throw new Error(`Provider ${providerName}, model ${modelDef.id}: invalid maxTokens`);
372
- }
373
- }
374
- }
375
- parseModels(config) {
376
- const models = [];
377
- const builtInProviders = new Set(getProviders());
378
- // Cache built-in defaults (api, baseUrl) per provider, extracted from first model.
379
- const builtInDefaultsCache = new Map();
380
- const getBuiltInDefaults = (providerName) => {
381
- if (!builtInProviders.has(providerName))
382
- return undefined;
383
- if (builtInDefaultsCache.has(providerName))
384
- return builtInDefaultsCache.get(providerName);
385
- const builtIn = getModels(providerName);
386
- if (builtIn.length === 0)
387
- return undefined;
388
- const defaults = { api: builtIn[0].api, baseUrl: builtIn[0].baseUrl };
389
- builtInDefaultsCache.set(providerName, defaults);
390
- return defaults;
391
- };
392
- for (const [providerName, providerConfig] of Object.entries(config.providers)) {
393
- const modelDefs = providerConfig.models ?? [];
394
- if (modelDefs.length === 0)
395
- continue; // Override-only, no custom models
396
- const builtInDefaults = getBuiltInDefaults(providerName);
397
- for (const modelDef of modelDefs) {
398
- const api = modelDef.api ?? providerConfig.api ?? builtInDefaults?.api;
399
- if (!api)
400
- continue;
401
- const baseUrl = modelDef.baseUrl ?? providerConfig.baseUrl ?? builtInDefaults?.baseUrl;
402
- if (!baseUrl)
403
- continue;
404
- const compat = mergeCompat(providerConfig.compat, modelDef.compat);
405
- this.storeModelHeaders(providerName, modelDef.id, modelDef.headers);
406
- const defaultCost = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
407
- models.push({
408
- id: modelDef.id,
409
- name: modelDef.name ?? modelDef.id,
410
- api: api,
411
- provider: providerName,
412
- baseUrl,
413
- reasoning: modelDef.reasoning ?? false,
414
- input: (modelDef.input ?? ["text"]),
415
- cost: modelDef.cost ?? defaultCost,
416
- contextWindow: modelDef.contextWindow ?? 128000,
417
- maxTokens: modelDef.maxTokens ?? 16384,
418
- headers: undefined,
419
- compat,
420
- });
421
- }
422
- }
423
- return models;
424
- }
425
- /**
426
- * Get all models (built-in + custom).
427
- * If models.json had errors, returns only built-in models.
428
- */
429
- getAll() {
430
- return this.models;
431
- }
432
- /**
433
- * Get only models that have auth configured.
434
- * This is a fast check that doesn't refresh OAuth tokens.
435
- */
436
- getAvailable() {
437
- return this.models.filter((m) => this.hasConfiguredAuth(m));
438
- }
439
- /**
440
- * Find a model by provider and ID.
441
- */
442
- find(provider, modelId) {
443
- return this.models.find((m) => m.provider === provider && m.id === modelId);
444
- }
445
- /**
446
- * Get API key for a model.
447
- */
448
- hasConfiguredAuth(model) {
449
- return (this.authStorage.hasAuth(model.provider) ||
450
- this.providerRequestConfigs.get(model.provider)?.apiKey !== undefined);
451
- }
452
- getModelRequestKey(provider, modelId) {
453
- return `${provider}:${modelId}`;
454
- }
455
- storeProviderRequestConfig(providerName, config) {
456
- if (!config.apiKey && !config.headers && !config.authHeader) {
457
- return;
458
- }
459
- this.providerRequestConfigs.set(providerName, {
460
- apiKey: config.apiKey,
461
- headers: config.headers,
462
- authHeader: config.authHeader,
463
- });
464
- }
465
- storeModelHeaders(providerName, modelId, headers) {
466
- const key = this.getModelRequestKey(providerName, modelId);
467
- if (!headers || Object.keys(headers).length === 0) {
468
- this.modelRequestHeaders.delete(key);
469
- return;
470
- }
471
- this.modelRequestHeaders.set(key, headers);
472
- }
473
- /**
474
- * Get API key and request headers for a model.
475
- */
476
- async getApiKeyAndHeaders(model) {
477
- try {
478
- const providerConfig = this.providerRequestConfigs.get(model.provider);
479
- const apiKeyFromAuthStorage = await this.authStorage.getApiKey(model.provider, { includeFallback: false });
480
- const apiKey = apiKeyFromAuthStorage ??
481
- (providerConfig?.apiKey
482
- ? resolveConfigValueOrThrow(providerConfig.apiKey, `API key for provider "${model.provider}"`)
483
- : undefined);
484
- const providerHeaders = resolveHeadersOrThrow(providerConfig?.headers, `provider "${model.provider}"`);
485
- const modelHeaders = resolveHeadersOrThrow(this.modelRequestHeaders.get(this.getModelRequestKey(model.provider, model.id)), `model "${model.provider}/${model.id}"`);
486
- let headers = model.headers || providerHeaders || modelHeaders
487
- ? { ...model.headers, ...providerHeaders, ...modelHeaders }
488
- : undefined;
489
- if (providerConfig?.authHeader) {
490
- if (!apiKey) {
491
- return { ok: false, error: `No API key found for "${model.provider}"` };
492
- }
493
- headers = { ...headers, Authorization: `Bearer ${apiKey}` };
494
- }
495
- return {
496
- ok: true,
497
- apiKey,
498
- headers: headers && Object.keys(headers).length > 0 ? headers : undefined,
499
- };
500
- }
501
- catch (error) {
502
- return {
503
- ok: false,
504
- error: error instanceof Error ? error.message : String(error),
505
- };
506
- }
507
- }
508
- /**
509
- * Get API key for a provider.
510
- */
511
- async getApiKeyForProvider(provider) {
512
- const apiKey = await this.authStorage.getApiKey(provider, { includeFallback: false });
513
- if (apiKey !== undefined) {
514
- return apiKey;
515
- }
516
- const providerApiKey = this.providerRequestConfigs.get(provider)?.apiKey;
517
- return providerApiKey ? resolveConfigValueUncached(providerApiKey) : undefined;
518
- }
519
- /**
520
- * Check if a model is using OAuth credentials (subscription).
521
- */
522
- isUsingOAuth(model) {
523
- const cred = this.authStorage.get(model.provider);
524
- return cred?.type === "oauth";
525
- }
526
- /**
527
- * Register a provider dynamically (from extensions).
528
- *
529
- * If provider has models: replaces all existing models for this provider.
530
- * If provider has only baseUrl/headers: overrides existing models' URLs.
531
- * If provider has oauth: registers OAuth provider for /login support.
532
- */
533
- registerProvider(providerName, config) {
534
- this.validateProviderConfig(providerName, config);
535
- this.applyProviderConfig(providerName, config);
536
- this.registeredProviders.set(providerName, config);
537
- }
538
- /**
539
- * Unregister a previously registered provider.
540
- *
541
- * Removes the provider from the registry and reloads models from disk so that
542
- * built-in models overridden by this provider are restored to their original state.
543
- * Also resets dynamic OAuth and API stream registrations before reapplying
544
- * remaining dynamic providers.
545
- * Has no effect if the provider was never registered.
546
- */
547
- unregisterProvider(providerName) {
548
- if (!this.registeredProviders.has(providerName))
549
- return;
550
- this.registeredProviders.delete(providerName);
551
- this.refresh();
552
- }
553
- validateProviderConfig(providerName, config) {
554
- if (config.streamSimple && !config.api) {
555
- throw new Error(`Provider ${providerName}: "api" is required when registering streamSimple.`);
556
- }
557
- if (!config.models || config.models.length === 0) {
558
- return;
559
- }
560
- if (!config.baseUrl) {
561
- throw new Error(`Provider ${providerName}: "baseUrl" is required when defining models.`);
562
- }
563
- if (!config.apiKey && !config.oauth) {
564
- throw new Error(`Provider ${providerName}: "apiKey" or "oauth" is required when defining models.`);
565
- }
566
- for (const modelDef of config.models) {
567
- const api = modelDef.api || config.api;
568
- if (!api) {
569
- throw new Error(`Provider ${providerName}, model ${modelDef.id}: no "api" specified.`);
570
- }
571
- }
572
- }
573
- applyProviderConfig(providerName, config) {
574
- // Register OAuth provider if provided
575
- if (config.oauth) {
576
- // Ensure the OAuth provider ID matches the provider name
577
- const oauthProvider = {
578
- ...config.oauth,
579
- id: providerName,
580
- };
581
- registerOAuthProvider(oauthProvider);
582
- }
583
- if (config.streamSimple) {
584
- const streamSimple = config.streamSimple;
585
- registerApiProvider({
586
- api: config.api,
587
- stream: (model, context, options) => streamSimple(model, context, options),
588
- streamSimple,
589
- }, `provider:${providerName}`);
590
- }
591
- this.storeProviderRequestConfig(providerName, config);
592
- if (config.models && config.models.length > 0) {
593
- // Full replacement: remove existing models for this provider
594
- this.models = this.models.filter((m) => m.provider !== providerName);
595
- // Parse and add new models
596
- for (const modelDef of config.models) {
597
- const api = modelDef.api || config.api;
598
- this.storeModelHeaders(providerName, modelDef.id, modelDef.headers);
599
- this.models.push({
600
- id: modelDef.id,
601
- name: modelDef.name,
602
- api: api,
603
- provider: providerName,
604
- baseUrl: config.baseUrl,
605
- reasoning: modelDef.reasoning,
606
- input: modelDef.input,
607
- cost: modelDef.cost,
608
- contextWindow: modelDef.contextWindow,
609
- maxTokens: modelDef.maxTokens,
610
- headers: undefined,
611
- compat: modelDef.compat,
612
- });
613
- }
614
- // Apply OAuth modifyModels if credentials exist (e.g., to update baseUrl)
615
- if (config.oauth?.modifyModels) {
616
- const cred = this.authStorage.get(providerName);
617
- if (cred?.type === "oauth") {
618
- this.models = config.oauth.modifyModels(this.models, cred);
619
- }
620
- }
621
- }
622
- else if (config.baseUrl || config.headers) {
623
- // Override-only: update baseUrl for existing models. Request headers are resolved per request.
624
- this.models = this.models.map((m) => {
625
- if (m.provider !== providerName)
626
- return m;
627
- return {
628
- ...m,
629
- baseUrl: config.baseUrl ?? m.baseUrl,
630
- };
631
- });
632
- }
633
- }
634
- }
635
- //# sourceMappingURL=model-registry.js.map