@travisennis/acai 0.0.6 → 0.0.8

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 (586) hide show
  1. package/README.md +225 -39
  2. package/dist/agent/index.d.ts +30 -21
  3. package/dist/agent/index.d.ts.map +1 -1
  4. package/dist/agent/index.js +237 -198
  5. package/dist/cli.d.ts +4 -3
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +56 -18
  8. package/dist/commands/add-directory/index.d.ts +3 -0
  9. package/dist/commands/add-directory/index.d.ts.map +1 -0
  10. package/dist/commands/add-directory/index.js +50 -0
  11. package/dist/commands/add-directory/types.d.ts +6 -0
  12. package/dist/commands/add-directory/types.d.ts.map +1 -0
  13. package/dist/commands/add-directory/utils.d.ts +3 -0
  14. package/dist/commands/add-directory/utils.d.ts.map +1 -0
  15. package/dist/commands/add-directory/utils.js +15 -0
  16. package/dist/commands/clear/index.d.ts +3 -0
  17. package/dist/commands/clear/index.d.ts.map +1 -0
  18. package/dist/commands/{clear-command.js → clear/index.js} +1 -7
  19. package/dist/commands/copy/index.d.ts +3 -0
  20. package/dist/commands/copy/index.d.ts.map +1 -0
  21. package/dist/commands/copy/index.js +39 -0
  22. package/dist/commands/copy/types.d.ts +3 -0
  23. package/dist/commands/copy/types.d.ts.map +1 -0
  24. package/dist/commands/copy/types.js +1 -0
  25. package/dist/commands/copy/utils.d.ts +3 -0
  26. package/dist/commands/copy/utils.d.ts.map +1 -0
  27. package/dist/commands/copy/utils.js +22 -0
  28. package/dist/commands/exit/index.d.ts +10 -0
  29. package/dist/commands/exit/index.d.ts.map +1 -0
  30. package/dist/commands/exit/index.js +21 -0
  31. package/dist/commands/exit/types.d.ts +8 -0
  32. package/dist/commands/exit/types.d.ts.map +1 -0
  33. package/dist/commands/exit/types.js +1 -0
  34. package/dist/commands/exit/utils.d.ts +2 -0
  35. package/dist/commands/exit/utils.d.ts.map +1 -0
  36. package/dist/commands/exit/utils.js +13 -0
  37. package/dist/commands/generate-rules/index.d.ts +3 -0
  38. package/dist/commands/generate-rules/index.d.ts.map +1 -0
  39. package/dist/commands/{generate-rules-command.js → generate-rules/index.js} +65 -147
  40. package/dist/commands/generate-rules/utils.d.ts +5 -0
  41. package/dist/commands/generate-rules/utils.d.ts.map +1 -0
  42. package/dist/commands/generate-rules/utils.js +25 -0
  43. package/dist/commands/handoff/index.d.ts +3 -0
  44. package/dist/commands/handoff/index.d.ts.map +1 -0
  45. package/dist/commands/handoff/index.js +97 -0
  46. package/dist/commands/handoff/utils.d.ts +4 -0
  47. package/dist/commands/handoff/utils.d.ts.map +1 -0
  48. package/dist/commands/handoff/utils.js +123 -0
  49. package/dist/commands/health/index.d.ts +3 -0
  50. package/dist/commands/health/index.d.ts.map +1 -0
  51. package/dist/commands/health/index.js +56 -0
  52. package/dist/commands/health/utils.d.ts +15 -0
  53. package/dist/commands/health/utils.d.ts.map +1 -0
  54. package/dist/commands/health/utils.js +52 -0
  55. package/dist/commands/help/index.d.ts +3 -0
  56. package/dist/commands/help/index.d.ts.map +1 -0
  57. package/dist/commands/{help-command.js → help/index.js} +6 -14
  58. package/dist/commands/history/index.d.ts +3 -0
  59. package/dist/commands/history/index.d.ts.map +1 -0
  60. package/dist/commands/{history-command.js → history/index.js} +40 -200
  61. package/dist/commands/history/types.d.ts +11 -0
  62. package/dist/commands/history/types.d.ts.map +1 -0
  63. package/dist/commands/history/types.js +1 -0
  64. package/dist/commands/history/utils.d.ts +4 -0
  65. package/dist/commands/history/utils.d.ts.map +1 -0
  66. package/dist/commands/history/utils.js +86 -0
  67. package/dist/commands/init/index.d.ts +3 -0
  68. package/dist/commands/init/index.d.ts.map +1 -0
  69. package/dist/commands/{init-command.js → init/index.js} +17 -27
  70. package/dist/commands/init-project/index.d.ts +3 -0
  71. package/dist/commands/init-project/index.d.ts.map +1 -0
  72. package/dist/commands/init-project/index.js +51 -0
  73. package/dist/commands/init-project/utils.d.ts +9 -0
  74. package/dist/commands/init-project/utils.d.ts.map +1 -0
  75. package/dist/commands/init-project/utils.js +43 -0
  76. package/dist/commands/list-directories/index.d.ts +3 -0
  77. package/dist/commands/list-directories/index.d.ts.map +1 -0
  78. package/dist/commands/{list-directories-command.js → list-directories/index.js} +2 -15
  79. package/dist/commands/list-tools/index.d.ts +3 -0
  80. package/dist/commands/list-tools/index.d.ts.map +1 -0
  81. package/dist/commands/list-tools/index.js +89 -0
  82. package/dist/commands/manager.d.ts +2 -9
  83. package/dist/commands/manager.d.ts.map +1 -1
  84. package/dist/commands/manager.js +38 -83
  85. package/dist/commands/model/index.d.ts +3 -0
  86. package/dist/commands/model/index.d.ts.map +1 -0
  87. package/dist/commands/model/index.js +182 -0
  88. package/dist/commands/model/utils.d.ts +3 -0
  89. package/dist/commands/model/utils.d.ts.map +1 -0
  90. package/dist/commands/model/utils.js +5 -0
  91. package/dist/commands/paste/index.d.ts +3 -0
  92. package/dist/commands/paste/index.d.ts.map +1 -0
  93. package/dist/commands/paste/index.js +94 -0
  94. package/dist/commands/paste/utils.d.ts +5 -0
  95. package/dist/commands/paste/utils.d.ts.map +1 -0
  96. package/dist/commands/paste/utils.js +86 -0
  97. package/dist/commands/pickup/index.d.ts +3 -0
  98. package/dist/commands/pickup/index.d.ts.map +1 -0
  99. package/dist/commands/pickup/index.js +138 -0
  100. package/dist/commands/pickup/types.d.ts +6 -0
  101. package/dist/commands/pickup/types.d.ts.map +1 -0
  102. package/dist/commands/pickup/types.js +1 -0
  103. package/dist/commands/pickup/utils.d.ts +7 -0
  104. package/dist/commands/pickup/utils.d.ts.map +1 -0
  105. package/dist/commands/pickup/utils.js +56 -0
  106. package/dist/commands/prompt/index.d.ts +5 -0
  107. package/dist/commands/prompt/index.d.ts.map +1 -0
  108. package/dist/commands/prompt/index.js +126 -0
  109. package/dist/commands/prompt/types.d.ts +15 -0
  110. package/dist/commands/prompt/types.d.ts.map +1 -0
  111. package/dist/commands/prompt/types.js +1 -0
  112. package/dist/commands/prompt/utils.d.ts +12 -0
  113. package/dist/commands/prompt/utils.d.ts.map +1 -0
  114. package/dist/commands/prompt/utils.js +107 -0
  115. package/dist/commands/remove-directory/index.d.ts +3 -0
  116. package/dist/commands/remove-directory/index.d.ts.map +1 -0
  117. package/dist/commands/{remove-directory-command.js → remove-directory/index.js} +3 -35
  118. package/dist/commands/reset/index.d.ts +3 -0
  119. package/dist/commands/reset/index.d.ts.map +1 -0
  120. package/dist/commands/{reset-command.js → reset/index.js} +8 -11
  121. package/dist/commands/reset/types.d.ts +1 -0
  122. package/dist/commands/reset/types.d.ts.map +1 -0
  123. package/dist/commands/reset/types.js +3 -0
  124. package/dist/commands/resources/index.d.ts +3 -0
  125. package/dist/commands/resources/index.d.ts.map +1 -0
  126. package/dist/commands/resources/index.js +84 -0
  127. package/dist/commands/review/index.d.ts +3 -0
  128. package/dist/commands/review/index.d.ts.map +1 -0
  129. package/dist/commands/review/index.js +126 -0
  130. package/dist/commands/review/types.d.ts +12 -0
  131. package/dist/commands/review/types.d.ts.map +1 -0
  132. package/dist/commands/review/types.js +1 -0
  133. package/dist/commands/review/utils.d.ts +4 -0
  134. package/dist/commands/review/utils.d.ts.map +1 -0
  135. package/dist/commands/review/utils.js +87 -0
  136. package/dist/commands/save/index.d.ts +3 -0
  137. package/dist/commands/save/index.d.ts.map +1 -0
  138. package/dist/commands/{save-command.js → save/index.js} +3 -10
  139. package/dist/commands/session/index.d.ts +3 -0
  140. package/dist/commands/session/index.d.ts.map +1 -0
  141. package/dist/commands/session/index.js +197 -0
  142. package/dist/commands/session/types.d.ts +13 -0
  143. package/dist/commands/session/types.d.ts.map +1 -0
  144. package/dist/commands/session/types.js +7 -0
  145. package/dist/commands/shell/index.d.ts +3 -0
  146. package/dist/commands/shell/index.d.ts.map +1 -0
  147. package/dist/commands/{shell-command.js → shell/index.js} +4 -51
  148. package/dist/commands/types.d.ts +2 -5
  149. package/dist/commands/types.d.ts.map +1 -1
  150. package/dist/config.d.ts +36 -7
  151. package/dist/config.d.ts.map +1 -1
  152. package/dist/config.js +118 -60
  153. package/dist/dedent.d.ts.map +1 -1
  154. package/dist/dedent.js +7 -7
  155. package/dist/execution/index.d.ts +18 -2
  156. package/dist/execution/index.d.ts.map +1 -1
  157. package/dist/execution/index.js +119 -81
  158. package/dist/formatting.d.ts +46 -0
  159. package/dist/formatting.d.ts.map +1 -1
  160. package/dist/formatting.js +94 -0
  161. package/dist/index.d.ts +1 -1
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +299 -177
  164. package/dist/logger.d.ts.map +1 -1
  165. package/dist/logger.js +4 -11
  166. package/dist/mentions.d.ts.map +1 -1
  167. package/dist/mentions.js +3 -53
  168. package/dist/middleware/audit-message.d.ts +2 -2
  169. package/dist/middleware/audit-message.d.ts.map +1 -1
  170. package/dist/middleware/audit-message.js +40 -2
  171. package/dist/middleware/cache.d.ts +2 -2
  172. package/dist/middleware/cache.d.ts.map +1 -1
  173. package/dist/middleware/cache.js +111 -27
  174. package/dist/middleware/rate-limit.d.ts +2 -2
  175. package/dist/middleware/rate-limit.d.ts.map +1 -1
  176. package/dist/middleware/rate-limit.js +1 -0
  177. package/dist/models/ai-config.d.ts.map +1 -1
  178. package/dist/models/ai-config.js +46 -29
  179. package/dist/models/anthropic-provider.d.ts +14 -13
  180. package/dist/models/anthropic-provider.d.ts.map +1 -1
  181. package/dist/models/anthropic-provider.js +0 -7
  182. package/dist/models/deepseek-provider.d.ts +9 -8
  183. package/dist/models/deepseek-provider.d.ts.map +1 -1
  184. package/dist/models/deepseek-provider.js +0 -2
  185. package/dist/models/google-provider.d.ts +10 -9
  186. package/dist/models/google-provider.d.ts.map +1 -1
  187. package/dist/models/google-provider.js +0 -3
  188. package/dist/models/groq-provider.d.ts +8 -7
  189. package/dist/models/groq-provider.d.ts.map +1 -1
  190. package/dist/models/groq-provider.js +0 -1
  191. package/dist/models/manager.d.ts +7 -4
  192. package/dist/models/manager.d.ts.map +1 -1
  193. package/dist/models/manager.js +5 -25
  194. package/dist/models/openai-provider.d.ts +11 -10
  195. package/dist/models/openai-provider.d.ts.map +1 -1
  196. package/dist/models/openai-provider.js +0 -4
  197. package/dist/models/opencode-zen-provider.d.ts +23 -0
  198. package/dist/models/opencode-zen-provider.d.ts.map +1 -0
  199. package/dist/models/opencode-zen-provider.js +76 -0
  200. package/dist/models/openrouter-provider.d.ts +34 -28
  201. package/dist/models/openrouter-provider.d.ts.map +1 -1
  202. package/dist/models/openrouter-provider.js +148 -139
  203. package/dist/models/providers.d.ts +6 -16
  204. package/dist/models/providers.d.ts.map +1 -1
  205. package/dist/models/providers.js +8 -58
  206. package/dist/models/xai-provider.d.ts +9 -8
  207. package/dist/models/xai-provider.d.ts.map +1 -1
  208. package/dist/models/xai-provider.js +0 -2
  209. package/dist/prompts/manager.d.ts +1 -1
  210. package/dist/prompts/manager.d.ts.map +1 -1
  211. package/dist/prompts/manager.js +1 -1
  212. package/dist/prompts.d.ts +8 -4
  213. package/dist/prompts.d.ts.map +1 -1
  214. package/dist/prompts.js +155 -177
  215. package/dist/repl/project-status.d.ts +19 -0
  216. package/dist/repl/project-status.d.ts.map +1 -0
  217. package/dist/repl/project-status.js +78 -0
  218. package/dist/repl-new.d.ts +15 -6
  219. package/dist/repl-new.d.ts.map +1 -1
  220. package/dist/repl-new.js +266 -83
  221. package/dist/{messages.d.ts → sessions/manager.d.ts} +13 -4
  222. package/dist/sessions/manager.d.ts.map +1 -0
  223. package/dist/{messages.js → sessions/manager.js} +126 -16
  224. package/dist/skills.d.ts +16 -0
  225. package/dist/skills.d.ts.map +1 -0
  226. package/dist/skills.js +233 -0
  227. package/dist/terminal/control.d.ts +56 -0
  228. package/dist/terminal/control.d.ts.map +1 -0
  229. package/dist/terminal/control.js +111 -0
  230. package/dist/terminal/default-theme.d.ts +1 -1
  231. package/dist/terminal/default-theme.d.ts.map +1 -1
  232. package/dist/terminal/default-theme.js +24 -28
  233. package/dist/terminal/formatting.d.ts +23 -26
  234. package/dist/terminal/formatting.d.ts.map +1 -1
  235. package/dist/terminal/formatting.js +35 -53
  236. package/dist/terminal/highlight/index.d.ts.map +1 -1
  237. package/dist/terminal/highlight/index.js +3 -6
  238. package/dist/terminal/highlight/theme.d.ts.map +1 -1
  239. package/dist/terminal/highlight/theme.js +2 -6
  240. package/dist/terminal/index.d.ts +2 -101
  241. package/dist/terminal/index.d.ts.map +1 -1
  242. package/dist/terminal/index.js +2 -464
  243. package/dist/terminal/keys.d.ts +211 -0
  244. package/dist/terminal/keys.d.ts.map +1 -0
  245. package/dist/terminal/keys.js +546 -0
  246. package/dist/terminal/segmenter.d.ts +6 -0
  247. package/dist/terminal/segmenter.d.ts.map +1 -0
  248. package/dist/terminal/segmenter.js +11 -0
  249. package/dist/terminal/select-prompt.d.ts.map +1 -1
  250. package/dist/terminal/select-prompt.js +9 -21
  251. package/dist/terminal/string-width.d.ts.map +1 -1
  252. package/dist/terminal/string-width.js +40 -21
  253. package/dist/terminal/strip-ansi.d.ts.map +1 -1
  254. package/dist/terminal/strip-ansi.js +9 -15
  255. package/dist/terminal/table/cell.d.ts +114 -0
  256. package/dist/terminal/table/cell.d.ts.map +1 -0
  257. package/dist/terminal/table/cell.js +407 -0
  258. package/dist/terminal/table/debug.d.ts +15 -0
  259. package/dist/terminal/table/debug.d.ts.map +1 -0
  260. package/dist/terminal/table/debug.js +32 -0
  261. package/dist/terminal/table/index.d.ts +3 -0
  262. package/dist/terminal/table/index.d.ts.map +1 -0
  263. package/dist/terminal/table/index.js +2 -0
  264. package/dist/terminal/table/layout-manager.d.ts +27 -0
  265. package/dist/terminal/table/layout-manager.d.ts.map +1 -0
  266. package/dist/terminal/table/layout-manager.js +257 -0
  267. package/dist/terminal/table/table.d.ts +9 -0
  268. package/dist/terminal/table/table.d.ts.map +1 -0
  269. package/dist/terminal/table/table.js +97 -0
  270. package/dist/terminal/table/utils.d.ts +63 -0
  271. package/dist/terminal/table/utils.d.ts.map +1 -0
  272. package/dist/terminal/table/utils.js +326 -0
  273. package/dist/tokens/tracker.d.ts.map +1 -1
  274. package/dist/tokens/tracker.js +58 -16
  275. package/dist/tools/bash.d.ts +11 -11
  276. package/dist/tools/bash.d.ts.map +1 -1
  277. package/dist/tools/bash.js +189 -81
  278. package/dist/tools/directory-tree.d.ts +9 -13
  279. package/dist/tools/directory-tree.d.ts.map +1 -1
  280. package/dist/tools/directory-tree.js +90 -60
  281. package/dist/tools/dynamic-tool-loader.d.ts +22 -8
  282. package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
  283. package/dist/tools/dynamic-tool-loader.js +41 -46
  284. package/dist/tools/edit-file.d.ts +6 -16
  285. package/dist/tools/edit-file.d.ts.map +1 -1
  286. package/dist/tools/edit-file.js +22 -66
  287. package/dist/tools/glob.d.ts +15 -16
  288. package/dist/tools/glob.d.ts.map +1 -1
  289. package/dist/tools/glob.js +78 -109
  290. package/dist/tools/grep.d.ts +19 -22
  291. package/dist/tools/grep.d.ts.map +1 -1
  292. package/dist/tools/grep.js +61 -93
  293. package/dist/tools/index.d.ts +202 -167
  294. package/dist/tools/index.d.ts.map +1 -1
  295. package/dist/tools/index.js +17 -273
  296. package/dist/tools/ls.d.ts +26 -0
  297. package/dist/tools/ls.d.ts.map +1 -0
  298. package/dist/tools/ls.js +80 -0
  299. package/dist/tools/read-file.d.ts +15 -15
  300. package/dist/tools/read-file.d.ts.map +1 -1
  301. package/dist/tools/read-file.js +52 -76
  302. package/dist/tools/save-file.d.ts +8 -8
  303. package/dist/tools/save-file.d.ts.map +1 -1
  304. package/dist/tools/save-file.js +42 -53
  305. package/dist/tools/think.d.ts +4 -4
  306. package/dist/tools/think.d.ts.map +1 -1
  307. package/dist/tools/think.js +9 -32
  308. package/dist/tools/types.d.ts +5 -21
  309. package/dist/tools/types.d.ts.map +1 -1
  310. package/dist/tools/types.js +0 -9
  311. package/dist/tui/autocomplete/attachment-provider.d.ts +18 -0
  312. package/dist/tui/autocomplete/attachment-provider.d.ts.map +1 -0
  313. package/dist/tui/autocomplete/attachment-provider.js +159 -0
  314. package/dist/tui/autocomplete/base-provider.d.ts +17 -0
  315. package/dist/tui/autocomplete/base-provider.d.ts.map +1 -0
  316. package/dist/tui/autocomplete/base-provider.js +1 -0
  317. package/dist/tui/autocomplete/combined-provider.d.ts +20 -0
  318. package/dist/tui/autocomplete/combined-provider.d.ts.map +1 -0
  319. package/dist/tui/autocomplete/combined-provider.js +61 -0
  320. package/dist/tui/autocomplete/command-provider.d.ts +20 -0
  321. package/dist/tui/autocomplete/command-provider.d.ts.map +1 -0
  322. package/dist/tui/autocomplete/command-provider.js +90 -0
  323. package/dist/tui/autocomplete/file-search-provider.d.ts +16 -0
  324. package/dist/tui/autocomplete/file-search-provider.d.ts.map +1 -0
  325. package/dist/tui/autocomplete/file-search-provider.js +123 -0
  326. package/dist/tui/autocomplete/path-provider.d.ts +21 -0
  327. package/dist/tui/autocomplete/path-provider.d.ts.map +1 -0
  328. package/dist/tui/autocomplete/path-provider.js +164 -0
  329. package/dist/tui/autocomplete/utils.d.ts +16 -0
  330. package/dist/tui/autocomplete/utils.d.ts.map +1 -0
  331. package/dist/tui/autocomplete/utils.js +137 -0
  332. package/dist/tui/autocomplete.d.ts +12 -43
  333. package/dist/tui/autocomplete.d.ts.map +1 -1
  334. package/dist/tui/autocomplete.js +20 -465
  335. package/dist/tui/components/assistant-message.js +1 -1
  336. package/dist/tui/components/box.d.ts +20 -0
  337. package/dist/tui/components/box.d.ts.map +1 -0
  338. package/dist/tui/components/box.js +87 -0
  339. package/dist/tui/components/editor.d.ts +61 -7
  340. package/dist/tui/components/editor.d.ts.map +1 -1
  341. package/dist/tui/components/editor.js +630 -127
  342. package/dist/tui/components/footer.d.ts +19 -18
  343. package/dist/tui/components/footer.d.ts.map +1 -1
  344. package/dist/tui/components/footer.js +90 -185
  345. package/dist/tui/components/header.d.ts +21 -0
  346. package/dist/tui/components/header.d.ts.map +1 -0
  347. package/dist/tui/components/header.js +63 -0
  348. package/dist/tui/components/input.d.ts.map +1 -1
  349. package/dist/tui/components/input.js +8 -7
  350. package/dist/tui/components/loader.d.ts +6 -1
  351. package/dist/tui/components/loader.d.ts.map +1 -1
  352. package/dist/tui/components/loader.js +8 -3
  353. package/dist/tui/components/markdown.d.ts +31 -27
  354. package/dist/tui/components/markdown.d.ts.map +1 -1
  355. package/dist/tui/components/markdown.js +131 -67
  356. package/dist/tui/components/modal.d.ts +0 -11
  357. package/dist/tui/components/modal.d.ts.map +1 -1
  358. package/dist/tui/components/modal.js +9 -37
  359. package/dist/tui/components/notification.d.ts +28 -0
  360. package/dist/tui/components/notification.d.ts.map +1 -0
  361. package/dist/tui/components/notification.js +63 -0
  362. package/dist/tui/components/progress-bar.d.ts +19 -0
  363. package/dist/tui/components/progress-bar.d.ts.map +1 -0
  364. package/dist/tui/components/progress-bar.js +66 -0
  365. package/dist/tui/components/select-list.d.ts +12 -1
  366. package/dist/tui/components/select-list.d.ts.map +1 -1
  367. package/dist/tui/components/select-list.js +73 -32
  368. package/dist/tui/components/spacer.d.ts +1 -1
  369. package/dist/tui/components/spacer.d.ts.map +1 -1
  370. package/dist/tui/components/spacer.js +2 -2
  371. package/dist/tui/components/table.d.ts +27 -0
  372. package/dist/tui/components/table.d.ts.map +1 -0
  373. package/dist/tui/components/table.js +125 -0
  374. package/dist/tui/components/thinking-block.d.ts.map +1 -1
  375. package/dist/tui/components/thinking-block.js +4 -1
  376. package/dist/tui/components/tool-execution.d.ts +7 -6
  377. package/dist/tui/components/tool-execution.d.ts.map +1 -1
  378. package/dist/tui/components/tool-execution.js +81 -85
  379. package/dist/tui/components/user-message.d.ts.map +1 -1
  380. package/dist/tui/components/user-message.js +6 -4
  381. package/dist/tui/components/welcome.d.ts +8 -1
  382. package/dist/tui/components/welcome.d.ts.map +1 -1
  383. package/dist/tui/components/welcome.js +45 -6
  384. package/dist/tui/index.d.ts +12 -6
  385. package/dist/tui/index.d.ts.map +1 -1
  386. package/dist/tui/index.js +7 -3
  387. package/dist/tui/terminal.d.ts +4 -3
  388. package/dist/tui/terminal.d.ts.map +1 -1
  389. package/dist/tui/terminal.js +43 -49
  390. package/dist/tui/tui.d.ts +3 -0
  391. package/dist/tui/tui.d.ts.map +1 -1
  392. package/dist/tui/tui.js +58 -43
  393. package/dist/tui/utils.d.ts +5 -0
  394. package/dist/tui/utils.d.ts.map +1 -1
  395. package/dist/tui/utils.js +80 -1
  396. package/dist/{tools/bash-utils.d.ts → utils/bash.d.ts} +3 -3
  397. package/dist/utils/bash.d.ts.map +1 -0
  398. package/dist/{tools/bash-utils.js → utils/bash.js} +22 -11
  399. package/dist/utils/{filesystem.d.ts → filesystem/operations.d.ts} +1 -1
  400. package/dist/utils/filesystem/operations.d.ts.map +1 -0
  401. package/dist/{tools/filesystem-utils.d.ts → utils/filesystem/security.d.ts} +3 -2
  402. package/dist/utils/filesystem/security.d.ts.map +1 -0
  403. package/dist/{tools/filesystem-utils.js → utils/filesystem/security.js} +62 -4
  404. package/dist/utils/funcs.d.ts +6 -0
  405. package/dist/utils/funcs.d.ts.map +1 -0
  406. package/dist/utils/funcs.js +6 -0
  407. package/dist/{tools/git-utils.d.ts → utils/git.d.ts} +1 -1
  408. package/dist/utils/git.d.ts.map +1 -0
  409. package/dist/{tools/git-utils.js → utils/git.js} +0 -6
  410. package/dist/utils/glob.js +1 -1
  411. package/dist/utils/yaml.d.ts +11 -0
  412. package/dist/utils/yaml.d.ts.map +1 -0
  413. package/dist/utils/yaml.js +207 -0
  414. package/dist/utils/{zod-utils.d.ts → zod.d.ts} +2 -1
  415. package/dist/utils/zod.d.ts.map +1 -0
  416. package/dist/utils/zod.js +24 -0
  417. package/package.json +31 -29
  418. package/dist/agent/manual-loop.d.ts +0 -41
  419. package/dist/agent/manual-loop.d.ts.map +0 -1
  420. package/dist/agent/manual-loop.js +0 -278
  421. package/dist/api/exa/index.d.ts +0 -177
  422. package/dist/api/exa/index.d.ts.map +0 -1
  423. package/dist/api/exa/index.js +0 -439
  424. package/dist/commands/add-directory-command.d.ts +0 -3
  425. package/dist/commands/add-directory-command.d.ts.map +0 -1
  426. package/dist/commands/add-directory-command.js +0 -85
  427. package/dist/commands/application-log-command.d.ts +0 -3
  428. package/dist/commands/application-log-command.d.ts.map +0 -1
  429. package/dist/commands/application-log-command.js +0 -79
  430. package/dist/commands/clear-command.d.ts +0 -3
  431. package/dist/commands/clear-command.d.ts.map +0 -1
  432. package/dist/commands/compact-command.d.ts +0 -3
  433. package/dist/commands/compact-command.d.ts.map +0 -1
  434. package/dist/commands/compact-command.js +0 -64
  435. package/dist/commands/context-command.d.ts +0 -3
  436. package/dist/commands/context-command.d.ts.map +0 -1
  437. package/dist/commands/context-command.js +0 -183
  438. package/dist/commands/copy-command.d.ts +0 -3
  439. package/dist/commands/copy-command.d.ts.map +0 -1
  440. package/dist/commands/copy-command.js +0 -80
  441. package/dist/commands/edit-command.d.ts +0 -3
  442. package/dist/commands/edit-command.d.ts.map +0 -1
  443. package/dist/commands/edit-command.js +0 -88
  444. package/dist/commands/edit-prompt-command.d.ts +0 -3
  445. package/dist/commands/edit-prompt-command.d.ts.map +0 -1
  446. package/dist/commands/edit-prompt-command.js +0 -61
  447. package/dist/commands/exit-command.d.ts +0 -13
  448. package/dist/commands/exit-command.d.ts.map +0 -1
  449. package/dist/commands/exit-command.js +0 -46
  450. package/dist/commands/files-command.d.ts +0 -3
  451. package/dist/commands/files-command.d.ts.map +0 -1
  452. package/dist/commands/files-command.js +0 -121
  453. package/dist/commands/generate-rules-command.d.ts +0 -3
  454. package/dist/commands/generate-rules-command.d.ts.map +0 -1
  455. package/dist/commands/handoff-command.d.ts +0 -3
  456. package/dist/commands/handoff-command.d.ts.map +0 -1
  457. package/dist/commands/handoff-command.js +0 -202
  458. package/dist/commands/health-command.d.ts +0 -4
  459. package/dist/commands/health-command.d.ts.map +0 -1
  460. package/dist/commands/health-command.js +0 -213
  461. package/dist/commands/help-command.d.ts +0 -3
  462. package/dist/commands/help-command.d.ts.map +0 -1
  463. package/dist/commands/history-command.d.ts +0 -3
  464. package/dist/commands/history-command.d.ts.map +0 -1
  465. package/dist/commands/init-command.d.ts +0 -3
  466. package/dist/commands/init-command.d.ts.map +0 -1
  467. package/dist/commands/last-log-command.d.ts +0 -3
  468. package/dist/commands/last-log-command.d.ts.map +0 -1
  469. package/dist/commands/last-log-command.js +0 -98
  470. package/dist/commands/list-directories-command.d.ts +0 -3
  471. package/dist/commands/list-directories-command.d.ts.map +0 -1
  472. package/dist/commands/list-tools-command.d.ts +0 -3
  473. package/dist/commands/list-tools-command.d.ts.map +0 -1
  474. package/dist/commands/list-tools-command.js +0 -124
  475. package/dist/commands/model-command.d.ts +0 -25
  476. package/dist/commands/model-command.d.ts.map +0 -1
  477. package/dist/commands/model-command.js +0 -340
  478. package/dist/commands/paste-command.d.ts +0 -3
  479. package/dist/commands/paste-command.d.ts.map +0 -1
  480. package/dist/commands/paste-command.js +0 -277
  481. package/dist/commands/pickup-command.d.ts +0 -3
  482. package/dist/commands/pickup-command.d.ts.map +0 -1
  483. package/dist/commands/pickup-command.js +0 -161
  484. package/dist/commands/prompt-command.d.ts +0 -3
  485. package/dist/commands/prompt-command.d.ts.map +0 -1
  486. package/dist/commands/prompt-command.js +0 -280
  487. package/dist/commands/remove-directory-command.d.ts +0 -3
  488. package/dist/commands/remove-directory-command.d.ts.map +0 -1
  489. package/dist/commands/reset-command.d.ts +0 -3
  490. package/dist/commands/reset-command.d.ts.map +0 -1
  491. package/dist/commands/rules-command.d.ts +0 -3
  492. package/dist/commands/rules-command.d.ts.map +0 -1
  493. package/dist/commands/rules-command.js +0 -135
  494. package/dist/commands/save-command.d.ts +0 -3
  495. package/dist/commands/save-command.d.ts.map +0 -1
  496. package/dist/commands/shell-command.d.ts +0 -3
  497. package/dist/commands/shell-command.d.ts.map +0 -1
  498. package/dist/commands/usage-command.d.ts +0 -3
  499. package/dist/commands/usage-command.d.ts.map +0 -1
  500. package/dist/commands/usage-command.js +0 -42
  501. package/dist/messages.d.ts.map +0 -1
  502. package/dist/repl/display-tool-messages.d.ts +0 -4
  503. package/dist/repl/display-tool-messages.d.ts.map +0 -1
  504. package/dist/repl/display-tool-messages.js +0 -58
  505. package/dist/repl/display-tool-use.d.ts +0 -14
  506. package/dist/repl/display-tool-use.d.ts.map +0 -1
  507. package/dist/repl/display-tool-use.js +0 -63
  508. package/dist/repl/get-prompt-header.d.ts +0 -8
  509. package/dist/repl/get-prompt-header.d.ts.map +0 -1
  510. package/dist/repl/get-prompt-header.js +0 -9
  511. package/dist/repl/project-status-line.d.ts +0 -2
  512. package/dist/repl/project-status-line.d.ts.map +0 -1
  513. package/dist/repl/project-status-line.js +0 -31
  514. package/dist/repl/prompt.d.ts +0 -21
  515. package/dist/repl/prompt.d.ts.map +0 -1
  516. package/dist/repl/prompt.js +0 -244
  517. package/dist/repl/tool-call-repair.d.ts +0 -4
  518. package/dist/repl/tool-call-repair.d.ts.map +0 -1
  519. package/dist/repl/tool-call-repair.js +0 -54
  520. package/dist/repl.d.ts +0 -29
  521. package/dist/repl.d.ts.map +0 -1
  522. package/dist/repl.js +0 -218
  523. package/dist/terminal/checkbox-prompt.d.ts +0 -36
  524. package/dist/terminal/checkbox-prompt.d.ts.map +0 -1
  525. package/dist/terminal/checkbox-prompt.js +0 -368
  526. package/dist/terminal/editor-prompt.d.ts +0 -10
  527. package/dist/terminal/editor-prompt.d.ts.map +0 -1
  528. package/dist/terminal/editor-prompt.js +0 -61
  529. package/dist/terminal/errors.d.ts +0 -19
  530. package/dist/terminal/errors.d.ts.map +0 -1
  531. package/dist/terminal/errors.js +0 -37
  532. package/dist/terminal/input-prompt.d.ts +0 -17
  533. package/dist/terminal/input-prompt.d.ts.map +0 -1
  534. package/dist/terminal/input-prompt.js +0 -181
  535. package/dist/terminal/markdown.d.ts +0 -2
  536. package/dist/terminal/markdown.d.ts.map +0 -1
  537. package/dist/terminal/markdown.js +0 -118
  538. package/dist/terminal/search-prompt.d.ts +0 -20
  539. package/dist/terminal/search-prompt.d.ts.map +0 -1
  540. package/dist/terminal/search-prompt.js +0 -280
  541. package/dist/terminal/types.d.ts +0 -35
  542. package/dist/terminal/types.d.ts.map +0 -1
  543. package/dist/tokens/threshold.d.ts +0 -35
  544. package/dist/tokens/threshold.d.ts.map +0 -1
  545. package/dist/tokens/threshold.js +0 -85
  546. package/dist/tools/advanced-edit-file.d.ts +0 -69
  547. package/dist/tools/advanced-edit-file.d.ts.map +0 -1
  548. package/dist/tools/advanced-edit-file.js +0 -281
  549. package/dist/tools/agent.d.ts +0 -29
  550. package/dist/tools/agent.d.ts.map +0 -1
  551. package/dist/tools/agent.js +0 -103
  552. package/dist/tools/bash-utils.d.ts.map +0 -1
  553. package/dist/tools/code-interpreter.d.ts +0 -25
  554. package/dist/tools/code-interpreter.d.ts.map +0 -1
  555. package/dist/tools/code-interpreter.js +0 -167
  556. package/dist/tools/delete-file.d.ts +0 -24
  557. package/dist/tools/delete-file.d.ts.map +0 -1
  558. package/dist/tools/delete-file.js +0 -70
  559. package/dist/tools/dynamic-tool-parser.d.ts +0 -21
  560. package/dist/tools/dynamic-tool-parser.d.ts.map +0 -1
  561. package/dist/tools/dynamic-tool-parser.js +0 -22
  562. package/dist/tools/filesystem-utils.d.ts.map +0 -1
  563. package/dist/tools/git-utils.d.ts.map +0 -1
  564. package/dist/tools/llm-edit-fixer.d.ts +0 -25
  565. package/dist/tools/llm-edit-fixer.d.ts.map +0 -1
  566. package/dist/tools/llm-edit-fixer.js +0 -150
  567. package/dist/tools/move-file.d.ts +0 -26
  568. package/dist/tools/move-file.d.ts.map +0 -1
  569. package/dist/tools/move-file.js +0 -58
  570. package/dist/tools/read-multiple-files.d.ts +0 -26
  571. package/dist/tools/read-multiple-files.d.ts.map +0 -1
  572. package/dist/tools/read-multiple-files.js +0 -139
  573. package/dist/tools/web-fetch.d.ts +0 -56
  574. package/dist/tools/web-fetch.d.ts.map +0 -1
  575. package/dist/tools/web-fetch.js +0 -247
  576. package/dist/tools/web-search.d.ts +0 -23
  577. package/dist/tools/web-search.d.ts.map +0 -1
  578. package/dist/tools/web-search.js +0 -133
  579. package/dist/tui/components/prompt-status.d.ts +0 -16
  580. package/dist/tui/components/prompt-status.d.ts.map +0 -1
  581. package/dist/tui/components/prompt-status.js +0 -21
  582. package/dist/utils/filesystem.d.ts.map +0 -1
  583. package/dist/utils/zod-utils.d.ts.map +0 -1
  584. package/dist/utils/zod-utils.js +0 -7
  585. /package/dist/{terminal → commands/add-directory}/types.js +0 -0
  586. /package/dist/utils/{filesystem.js → filesystem/operations.js} +0 -0
package/dist/mentions.js CHANGED
@@ -1,9 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { isString } from "@travisennis/stdlib/typeguards";
4
3
  import { initExecutionEnvironment } from "./execution/index.js";
5
- import { formatFile, formatUrl } from "./formatting.js";
6
- import { readUrl } from "./tools/web-fetch.js";
4
+ import { formatFile } from "./formatting.js";
7
5
  class ShellCommandError extends Error {
8
6
  command;
9
7
  exitCode;
@@ -115,35 +113,11 @@ async function processShellCommand(command) {
115
113
  }
116
114
  }
117
115
  // Returns the formatted string or an error message string
118
- async function processUrlCommand(context) {
119
- const { match } = context;
120
- const urlPath = match;
121
- try {
122
- return Object.assign(await readUrl(urlPath), { source: urlPath });
123
- }
124
- catch (error) {
125
- if (error instanceof Error) {
126
- return {
127
- contentType: "text/plain",
128
- data: `Url: ${urlPath} Status: Error fetching URL: ${error.message}`,
129
- source: urlPath,
130
- };
131
- }
132
- // Fallback for unknown error types
133
- return {
134
- contentType: "text/plain",
135
- data: `Url: ${urlPath} Status: Error fetching URL: An unknown error occurred.`,
136
- source: urlPath,
137
- };
138
- }
139
- }
140
116
  export async function processPrompt(message, { baseDir, model, pasteStore, }) {
141
117
  const fileRegex = /@([^\s@]+(?:\.[\w\d]+))/g;
142
- const urlRegex = /@(https?:\/\/[^\s]+)/g;
143
118
  const shellRegex = /!`([^`]+)`/g;
144
- // Collect all matches for files and urls
119
+ // Collect all matches for files
145
120
  const fileMatches = Array.from(message.matchAll(fileRegex));
146
- const urlMatches = Array.from(message.matchAll(urlRegex));
147
121
  const shellMatches = Array.from(message.matchAll(shellRegex));
148
122
  const mentionProcessingPromises = [];
149
123
  // Process file references - collect promises
@@ -158,18 +132,6 @@ export async function processPrompt(message, { baseDir, model, pasteStore, }) {
158
132
  mentionProcessingPromises.push(processFileCommand(context));
159
133
  }
160
134
  }
161
- // Process url references - collect promises
162
- for (const match of urlMatches) {
163
- const firstMatch = match[1];
164
- if (firstMatch) {
165
- const context = {
166
- model,
167
- baseDir, // baseDir is not used by processUrlCommand but kept for consistency
168
- match: firstMatch,
169
- };
170
- mentionProcessingPromises.push(processUrlCommand(context));
171
- }
172
- }
173
135
  let processedMessage = message;
174
136
  // Process paste placeholders
175
137
  if (pasteStore && pasteStore.size > 0) {
@@ -208,19 +170,7 @@ export async function processPrompt(message, { baseDir, model, pasteStore, }) {
208
170
  const mentionResults = await Promise.all(mentionProcessingPromises);
209
171
  const context = [];
210
172
  for (const mention of mentionResults) {
211
- if (isString(mention)) {
212
- context.push(mention);
213
- }
214
- else if (mention.data.startsWith("data")) {
215
- context.push({
216
- type: "image",
217
- mediaType: mention.contentType,
218
- image: mention.data,
219
- });
220
- }
221
- else {
222
- context.push(formatUrl(mention.source, mention.data.trim(), model.promptFormat));
223
- }
173
+ context.push(mention);
224
174
  }
225
175
  return {
226
176
  message: processedMessage,
@@ -1,6 +1,6 @@
1
- import type { LanguageModelV2Middleware } from "@ai-sdk/provider";
1
+ import type { LanguageModelV3Middleware } from "@ai-sdk/provider";
2
2
  export declare const auditMessage: ({ filePath, app, }: {
3
3
  filePath: string;
4
4
  app: string;
5
- }) => LanguageModelV2Middleware;
5
+ }) => LanguageModelV3Middleware;
6
6
  //# sourceMappingURL=audit-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-message.d.ts","sourceRoot":"","sources":["../../source/middleware/audit-message.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EAI1B,MAAM,kBAAkB,CAAC;AAmC1B,eAAO,MAAM,YAAY,GAAI,oBAG1B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,8BAoFA,CAAC"}
1
+ {"version":3,"file":"audit-message.d.ts","sourceRoot":"","sources":["../../source/middleware/audit-message.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,yBAAyB,EAI1B,MAAM,kBAAkB,CAAC;AAmC1B,eAAO,MAAM,YAAY,GAAI,oBAG1B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,8BA4HA,CAAC"}
@@ -22,6 +22,7 @@ const writeAuditRecord = async (app, filePath, content) => {
22
22
  };
23
23
  export const auditMessage = ({ filePath = "messages", app = "default", }) => {
24
24
  const middleware = {
25
+ specificationVersion: "v3",
25
26
  wrapGenerate: async ({ doGenerate, params, model }) => {
26
27
  const result = await doGenerate();
27
28
  const msg = {
@@ -37,7 +38,21 @@ export const auditMessage = ({ filePath = "messages", app = "default", }) => {
37
38
  },
38
39
  ],
39
40
  }),
40
- usage: result.usage,
41
+ usage: {
42
+ inputTokens: result.usage.inputTokens.total,
43
+ outputTokens: result.usage.outputTokens.total,
44
+ totalTokens: (result.usage.inputTokens.total ?? 0) +
45
+ (result.usage.outputTokens.total ?? 0),
46
+ inputTokenDetails: {
47
+ noCacheTokens: result.usage.inputTokens.noCache,
48
+ cacheReadTokens: result.usage.inputTokens.cacheRead,
49
+ cacheWriteTokens: result.usage.inputTokens.cacheWrite,
50
+ },
51
+ outputTokenDetails: {
52
+ textTokens: result.usage.outputTokens.text,
53
+ reasoningTokens: result.usage.outputTokens.reasoning,
54
+ },
55
+ },
41
56
  timestamp: Date.now(),
42
57
  };
43
58
  await writeAuditRecord(app, filePath, msg);
@@ -50,6 +65,15 @@ export const auditMessage = ({ filePath = "messages", app = "default", }) => {
50
65
  inputTokens: 0,
51
66
  outputTokens: 0,
52
67
  totalTokens: 0,
68
+ inputTokenDetails: {
69
+ noCacheTokens: 0,
70
+ cacheReadTokens: 0,
71
+ cacheWriteTokens: 0,
72
+ },
73
+ outputTokenDetails: {
74
+ textTokens: 0,
75
+ reasoningTokens: 0,
76
+ },
53
77
  };
54
78
  const transformStream = new TransformStream({
55
79
  transform(chunk, controller) {
@@ -57,7 +81,21 @@ export const auditMessage = ({ filePath = "messages", app = "default", }) => {
57
81
  generatedText += chunk.delta;
58
82
  }
59
83
  if (chunk.type === "finish") {
60
- usage = chunk.usage;
84
+ usage = {
85
+ inputTokens: chunk.usage.inputTokens.total,
86
+ outputTokens: chunk.usage.outputTokens.total,
87
+ totalTokens: (chunk.usage.inputTokens.total ?? 0) +
88
+ (chunk.usage.outputTokens.total ?? 0),
89
+ inputTokenDetails: {
90
+ noCacheTokens: chunk.usage.inputTokens.noCache,
91
+ cacheReadTokens: chunk.usage.inputTokens.cacheRead,
92
+ cacheWriteTokens: chunk.usage.inputTokens.cacheWrite,
93
+ },
94
+ outputTokenDetails: {
95
+ textTokens: chunk.usage.outputTokens.text,
96
+ reasoningTokens: chunk.usage.outputTokens.reasoning,
97
+ },
98
+ };
61
99
  }
62
100
  controller.enqueue(chunk);
63
101
  },
@@ -1,3 +1,3 @@
1
- import type { LanguageModelV2Middleware } from "@ai-sdk/provider";
2
- export declare const cacheMiddleware: LanguageModelV2Middleware;
1
+ import type { LanguageModelV3Middleware } from "@ai-sdk/provider";
2
+ export declare const cacheMiddleware: LanguageModelV3Middleware;
3
3
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../source/middleware/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAsB1B,eAAO,MAAM,eAAe,EAAE,yBAyC7B,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../source/middleware/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AA+F1B,eAAO,MAAM,eAAe,EAAE,yBAqF7B,CAAC"}
@@ -1,6 +1,11 @@
1
- function applyCaching(input) {
1
+ import { createHash } from "node:crypto";
2
+ import { logger } from "../logger.js";
3
+ function applyCaching(input, options = {}) {
4
+ const { ttl } = options;
2
5
  input.providerOptions = {
3
- anthropic: { cacheControl: { type: "ephemeral" } },
6
+ anthropic: {
7
+ cacheControl: ttl ? { type: "ephemeral", ttl } : { type: "ephemeral" },
8
+ },
4
9
  openrouter: {
5
10
  // biome-ignore lint/style/useNamingConvention: third-party
6
11
  cache_control: { type: "ephemeral" },
@@ -15,39 +20,118 @@ function applyCaching(input) {
15
20
  },
16
21
  };
17
22
  }
23
+ function generateCacheKey(text, salt) {
24
+ const content = salt ? `${text}|${salt}` : text;
25
+ return createHash("sha256").update(content).digest("hex").slice(0, 32);
26
+ }
27
+ function estimateTokens(text) {
28
+ return Math.ceil(text.length / 4);
29
+ }
30
+ function getMinTokenThreshold(provider, modelId) {
31
+ if (provider === "anthropic") {
32
+ if (modelId?.includes("haiku"))
33
+ return 2048;
34
+ if (modelId?.includes("opus"))
35
+ return 1024;
36
+ return 1024; // Default for Claude models
37
+ }
38
+ return 1024; // Default threshold
39
+ }
40
+ function isEligibleForCaching(text, provider, modelId) {
41
+ const tokenCount = estimateTokens(text);
42
+ const minThreshold = getMinTokenThreshold(provider, modelId);
43
+ if (tokenCount < minThreshold) {
44
+ logger.info(`[Cache] Ineligible: ${tokenCount} tokens < ${minThreshold} threshold`);
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ function detectProvider(providerId, modelId) {
50
+ if (providerId === "anthropic" ||
51
+ modelId.includes("anthropic") ||
52
+ modelId.includes("claude")) {
53
+ return "anthropic";
54
+ }
55
+ if (providerId === "openai" || modelId.includes("gpt-")) {
56
+ return "openai";
57
+ }
58
+ if (providerId === "bedrock" ||
59
+ modelId.includes("bedrock") ||
60
+ modelId.includes("amazon")) {
61
+ return "bedrock";
62
+ }
63
+ if (modelId.includes("openrouter")) {
64
+ return "openrouter";
65
+ }
66
+ return "unknown";
67
+ }
18
68
  export const cacheMiddleware = {
69
+ specificationVersion: "v3",
19
70
  transformParams: async ({ params, model }) => {
20
71
  const providerId = model.provider;
21
72
  const modelId = model.modelId;
22
- if (providerId === "anthropic" ||
23
- modelId.includes("anthropic") ||
24
- modelId.includes("claude")) {
25
- const msgs = params.prompt;
26
- const system = msgs.filter((msg) => msg.role === "system").at(0);
27
- if (system) {
28
- applyCaching(system);
29
- }
30
- // Get the last two user messages for caching
31
- const userMessages = msgs.filter((msg) => msg.role === "user");
32
- const lastTwoUserMessages = userMessages.slice(-2);
33
- // Mark both the latest and second-to-last user messages as ephemeral
34
- for (const userMessage of lastTwoUserMessages) {
35
- const content = userMessage.content;
36
- if (Array.isArray(content)) {
37
- const finalContent = content.at(-1);
38
- if (finalContent) {
39
- applyCaching(finalContent);
40
- }
73
+ const provider = detectProvider(providerId, modelId);
74
+ logger.info(`[Cache] Detected provider: ${provider}, model: ${modelId}`);
75
+ if (provider === "unknown") {
76
+ logger.info("[Cache] Unknown provider, skipping caching");
77
+ return params;
78
+ }
79
+ const msgs = params.prompt;
80
+ // Extract system messages for cache key generation
81
+ const systemMessages = msgs.filter((msg) => msg.role === "system");
82
+ const systemText = systemMessages
83
+ .map((msg) => typeof msg.content === "string"
84
+ ? msg.content
85
+ : Array.isArray(msg.content)
86
+ ? msg.content
87
+ .map((c) => c.text)
88
+ .join(" ")
89
+ : "")
90
+ .join("\n");
91
+ // Check if system prompt is eligible for caching
92
+ const isEligible = isEligibleForCaching(systemText, provider, modelId);
93
+ if (!isEligible) {
94
+ logger.info("[Cache] System prompt not eligible for caching");
95
+ return params;
96
+ }
97
+ // Generate deterministic cache key
98
+ const cacheKey = generateCacheKey(systemText, provider);
99
+ logger.info(`[Cache] Generated cache key: ${cacheKey.substring(0, 8)}...`);
100
+ // Apply caching to system messages
101
+ for (const systemMsg of systemMessages) {
102
+ applyCaching(systemMsg, { ttl: "1h" });
103
+ }
104
+ // Get the last two user messages for caching
105
+ const userMessages = msgs.filter((msg) => msg.role === "user");
106
+ const lastTwoUserMessages = userMessages.slice(-2);
107
+ // Mark both the latest and second-to-last user messages as ephemeral
108
+ for (const userMessage of lastTwoUserMessages) {
109
+ const content = userMessage.content;
110
+ if (Array.isArray(content)) {
111
+ const finalContent = content.at(-1);
112
+ if (finalContent) {
113
+ applyCaching(finalContent, { ttl: "1h" });
41
114
  }
42
115
  }
43
- const tools = params.tools;
44
- if (tools) {
45
- const lastTool = tools.at(-1);
46
- if (lastTool?.type === "function") {
47
- applyCaching(lastTool);
48
- }
116
+ }
117
+ const tools = params.tools;
118
+ if (tools) {
119
+ const lastTool = tools.at(-1);
120
+ if (lastTool?.type === "function") {
121
+ applyCaching(lastTool, { ttl: "1h" });
49
122
  }
50
123
  }
124
+ // Add cache metadata for observability
125
+ params.providerOptions = params.providerOptions || {};
126
+ params.providerOptions["__cacheMetadata"] = {
127
+ cacheKey,
128
+ provider,
129
+ eligible: isEligible,
130
+ systemTokens: estimateTokens(systemText),
131
+ threshold: getMinTokenThreshold(provider, modelId),
132
+ timestamp: Date.now(),
133
+ };
134
+ logger.info(`[Cache] Applied caching for ${provider} model`);
51
135
  return params;
52
136
  },
53
137
  };
@@ -1,5 +1,5 @@
1
- import type { LanguageModelV2Middleware } from "@ai-sdk/provider";
1
+ import type { LanguageModelV3Middleware } from "@ai-sdk/provider";
2
2
  export declare const createRateLimitMiddleware: ({ requestsPerMinute, }: {
3
3
  requestsPerMinute: number;
4
- }) => LanguageModelV2Middleware;
4
+ }) => LanguageModelV3Middleware;
5
5
  //# sourceMappingURL=rate-limit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../source/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,eAAO,MAAM,yBAAyB,GAAI,wBAEvC;IACD,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KAAG,yBAgBH,CAAC"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../source/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,eAAO,MAAM,yBAAyB,GAAI,wBAEvC;IACD,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KAAG,yBAiBH,CAAC"}
@@ -5,6 +5,7 @@ export const createRateLimitMiddleware = ({ requestsPerMinute, }) => {
5
5
  interval: 60 * 1000, // 1 minute
6
6
  });
7
7
  return {
8
+ specificationVersion: "v3",
8
9
  wrapGenerate: ({ doGenerate }) => {
9
10
  const throttledGenerate = throttle(doGenerate);
10
11
  return Promise.resolve(throttledGenerate());
@@ -1 +1 @@
1
- {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../source/models/ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA2CpD,qBAAa,QAAQ;IACnB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;gBACX,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAKnD,eAAe;IAUf,WAAW;IAKX,IAAI;IAMJ,eAAe,IAAI,wBAAwB;CA2C5C"}
1
+ {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../source/models/ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA2CpD,qBAAa,QAAQ;IACnB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAS;gBACX,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAKnD,eAAe;IAUf,WAAW;IAKX,IAAI;IAMJ,eAAe,IAAI,wBAAwB;CA+D5C"}
@@ -40,7 +40,7 @@ export class AiConfig {
40
40
  const maxTokens = modelConfig.provider === "anthropic" && modelConfig.supportsReasoning
41
41
  ? modelConfig.maxOutputTokens - thinkingLevel.tokenBudget
42
42
  : modelConfig.maxOutputTokens;
43
- return maxTokens;
43
+ return modelConfig.provider === "opencode" ? 8000 : maxTokens;
44
44
  }
45
45
  temperature() {
46
46
  const temp = this.modelMetadata.defaultTemperature;
@@ -55,43 +55,60 @@ export class AiConfig {
55
55
  providerOptions() {
56
56
  const modelConfig = this.modelMetadata;
57
57
  const thinkingLevel = calculateThinkingLevel(this.prompt);
58
+ const meta = {
59
+ [modelConfig.provider]: {},
60
+ };
58
61
  if (modelConfig.supportsReasoning && thinkingLevel.effort !== "none") {
59
62
  switch (modelConfig.provider) {
60
63
  case "anthropic":
61
- return {
62
- anthropic: {
63
- thinking: {
64
- type: "enabled",
65
- budgetTokens: thinkingLevel.tokenBudget,
66
- },
64
+ Object.assign(meta["anthropic"], {
65
+ thinking: {
66
+ type: "enabled",
67
+ budgetTokens: thinkingLevel.tokenBudget,
67
68
  },
68
- };
69
+ });
70
+ break;
69
71
  case "openai":
70
- return { openai: { reasoningEffort: thinkingLevel.effort } };
71
- case "google": {
72
- return {
73
- google: {
74
- thinkingConfig: {
75
- thinkingBudget: thinkingLevel.tokenBudget,
76
- },
72
+ Object.assign(meta["openai"], {
73
+ reasoningEffort: thinkingLevel.effort,
74
+ });
75
+ break;
76
+ case "google":
77
+ Object.assign(meta["google"], {
78
+ thinkingConfig: {
79
+ thinkingBudget: thinkingLevel.tokenBudget,
77
80
  },
78
- };
79
- }
80
- case "openrouter": {
81
- return {
82
- openrouter: {
83
- reasoning: {
84
- enabled: true,
85
- effort: thinkingLevel.effort,
86
- },
81
+ });
82
+ break;
83
+ case "openrouter":
84
+ Object.assign(meta["openrouter"], {
85
+ reasoning: {
86
+ enabled: true,
87
+ effort: thinkingLevel.effort,
87
88
  },
88
- };
89
- }
90
- default:
91
- return {};
89
+ });
90
+ break;
91
+ case "deepseek":
92
+ Object.assign(meta["deepseek"], {
93
+ thinking: {
94
+ type: "enabled",
95
+ },
96
+ });
97
+ break;
92
98
  }
93
99
  }
94
- // If supportsReasoning is false, or no provider case matched
100
+ switch (modelConfig.provider) {
101
+ case "openrouter":
102
+ Object.assign(meta["openrouter"], {
103
+ usage: {
104
+ include: true,
105
+ },
106
+ });
107
+ break;
108
+ }
109
+ if (Object.keys(meta[modelConfig.provider]).length > 0) {
110
+ return meta;
111
+ }
95
112
  return {};
96
113
  }
97
114
  }
@@ -1,22 +1,23 @@
1
1
  import type { ModelMetadata } from "./providers.ts";
2
2
  declare const anthropicModels: {
3
- readonly opus: import("@ai-sdk/provider").LanguageModelV2;
4
- readonly sonnet: import("@ai-sdk/provider").LanguageModelV2;
5
- readonly sonnet37: import("@ai-sdk/provider").LanguageModelV2;
6
- readonly "sonnet37-token-efficient-tools": import("@ai-sdk/provider").LanguageModelV2;
7
- readonly "sonnet37-128k": import("@ai-sdk/provider").LanguageModelV2;
8
- readonly sonnet35: import("@ai-sdk/provider").LanguageModelV2;
9
- readonly haiku: import("@ai-sdk/provider").LanguageModelV2;
3
+ readonly opus: import("@ai-sdk/provider").LanguageModelV3;
4
+ readonly sonnet: import("@ai-sdk/provider").LanguageModelV3;
5
+ readonly sonnet37: import("@ai-sdk/provider").LanguageModelV3;
6
+ readonly "sonnet37-token-efficient-tools": import("@ai-sdk/provider").LanguageModelV3;
7
+ readonly "sonnet37-128k": import("@ai-sdk/provider").LanguageModelV3;
8
+ readonly sonnet35: import("@ai-sdk/provider").LanguageModelV3;
9
+ readonly haiku: import("@ai-sdk/provider").LanguageModelV3;
10
10
  };
11
11
  type ModelName = `anthropic:${keyof typeof anthropicModels}`;
12
12
  export declare const anthropicModelNames: ModelName[];
13
13
  export declare const anthropicProvider: {
14
- anthropic: import("@ai-sdk/provider").ProviderV2 & {
15
- languageModel(modelId: "opus" | "sonnet" | "sonnet37" | "sonnet37-token-efficient-tools" | "sonnet37-128k" | "sonnet35" | "haiku"): import("@ai-sdk/provider").LanguageModelV2;
16
- textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
17
- imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
18
- transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
19
- speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
14
+ anthropic: import("@ai-sdk/provider").ProviderV3 & {
15
+ languageModel(modelId: "opus" | "sonnet" | "sonnet37" | "sonnet37-token-efficient-tools" | "sonnet37-128k" | "sonnet35" | "haiku"): import("@ai-sdk/provider").LanguageModelV3;
16
+ embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
17
+ imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
18
+ transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
19
+ rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
20
+ speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
20
21
  };
21
22
  };
22
23
  export declare const anthropicModelRegistry: {
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,eAAe;;;;;;;;CAuBX,CAAC;AAEX,KAAK,SAAS,GAAG,aAAa,MAAM,OAAO,eAAe,EAAE,CAAC;AAE7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAE1C,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE;KAClC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA6F3C,CAAC"}
1
+ {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../source/models/anthropic-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,eAAe;;;;;;;;CAuBX,CAAC;AAEX,KAAK,SAAS,GAAG,aAAa,MAAM,OAAO,eAAe,EAAE,CAAC;AAE7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAE1C,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE;KAClC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsF3C,CAAC"}
@@ -44,7 +44,6 @@ export const anthropicModelRegistry = {
44
44
  supportsToolCalling: true,
45
45
  costPerInputToken: 0.000015,
46
46
  costPerOutputToken: 0.000075,
47
- category: "powerful",
48
47
  },
49
48
  "anthropic:sonnet": {
50
49
  id: "anthropic:sonnet",
@@ -57,7 +56,6 @@ export const anthropicModelRegistry = {
57
56
  supportsToolCalling: true,
58
57
  costPerInputToken: 0.000003,
59
58
  costPerOutputToken: 0.000015,
60
- category: "balanced",
61
59
  },
62
60
  "anthropic:sonnet37": {
63
61
  id: "anthropic:sonnet37",
@@ -70,7 +68,6 @@ export const anthropicModelRegistry = {
70
68
  supportsToolCalling: true,
71
69
  costPerInputToken: 0.000003,
72
70
  costPerOutputToken: 0.000015,
73
- category: "balanced",
74
71
  },
75
72
  "anthropic:sonnet37-token-efficient-tools": {
76
73
  id: "anthropic:sonnet37-token-efficient-tools",
@@ -83,7 +80,6 @@ export const anthropicModelRegistry = {
83
80
  supportsToolCalling: true,
84
81
  costPerInputToken: 0.000003,
85
82
  costPerOutputToken: 0.000015,
86
- category: "balanced",
87
83
  },
88
84
  "anthropic:sonnet37-128k": {
89
85
  id: "anthropic:sonnet37-128k",
@@ -96,7 +92,6 @@ export const anthropicModelRegistry = {
96
92
  supportsToolCalling: true,
97
93
  costPerInputToken: 0.000003,
98
94
  costPerOutputToken: 0.000015,
99
- category: "powerful",
100
95
  },
101
96
  "anthropic:sonnet35": {
102
97
  id: "anthropic:sonnet35",
@@ -109,7 +104,6 @@ export const anthropicModelRegistry = {
109
104
  supportsToolCalling: true,
110
105
  costPerInputToken: 0.000003,
111
106
  costPerOutputToken: 0.000015,
112
- category: "balanced",
113
107
  },
114
108
  "anthropic:haiku": {
115
109
  id: "anthropic:haiku",
@@ -122,6 +116,5 @@ export const anthropicModelRegistry = {
122
116
  supportsToolCalling: true,
123
117
  costPerInputToken: 0.0000008,
124
118
  costPerOutputToken: 0.000004,
125
- category: "fast",
126
119
  },
127
120
  };
@@ -1,17 +1,18 @@
1
1
  import type { ModelMetadata } from "./providers.ts";
2
2
  declare const deepseekModels: {
3
- readonly "deepseek-chat": import("@ai-sdk/provider").LanguageModelV2;
4
- readonly "deepseek-reasoner": import("@ai-sdk/provider").LanguageModelV2;
3
+ readonly "deepseek-chat": import("@ai-sdk/provider").LanguageModelV3;
4
+ readonly "deepseek-reasoner": import("@ai-sdk/provider").LanguageModelV3;
5
5
  };
6
6
  type ModelName = `deepseek:${keyof typeof deepseekModels}`;
7
7
  export declare const deepseekModelNames: ModelName[];
8
8
  export declare const deepseekProvider: {
9
- deepseek: import("@ai-sdk/provider").ProviderV2 & {
10
- languageModel(modelId: "deepseek-chat" | "deepseek-reasoner"): import("@ai-sdk/provider").LanguageModelV2;
11
- textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
12
- imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
13
- transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
14
- speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
9
+ deepseek: import("@ai-sdk/provider").ProviderV3 & {
10
+ languageModel(modelId: "deepseek-chat" | "deepseek-reasoner"): import("@ai-sdk/provider").LanguageModelV3;
11
+ embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
12
+ imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
13
+ transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
14
+ rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
15
+ speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
15
16
  };
16
17
  };
17
18
  export declare const deepseekModelRegistry: {
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../source/models/deepseek-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAEX,KAAK,SAAS,GAAG,YAAY,MAAM,OAAO,cAAc,EAAE,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAEzC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE;KACjC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA4B3C,CAAC"}
1
+ {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../source/models/deepseek-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAEX,KAAK,SAAS,GAAG,YAAY,MAAM,OAAO,cAAc,EAAE,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAEzC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE;KACjC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CA0B3C,CAAC"}
@@ -24,7 +24,6 @@ export const deepseekModelRegistry = {
24
24
  supportsToolCalling: true,
25
25
  costPerInputToken: 0.0000012, // Check official pricing
26
26
  costPerOutputToken: 0.0000012, // Check official pricing
27
- category: "balanced",
28
27
  },
29
28
  "deepseek:deepseek-reasoner": {
30
29
  id: "deepseek:deepseek-reasoner",
@@ -37,6 +36,5 @@ export const deepseekModelRegistry = {
37
36
  supportsToolCalling: true, // Check if this model supports tools
38
37
  costPerInputToken: 0.00000055, // Check official pricing
39
38
  costPerOutputToken: 0.00000219, // Check official pricing
40
- category: "balanced",
41
39
  },
42
40
  };
@@ -1,18 +1,19 @@
1
1
  import type { ModelMetadata } from "./providers.ts";
2
2
  declare const googleModels: {
3
- readonly flash25lite: import("@ai-sdk/provider").LanguageModelV2;
4
- readonly pro25: import("@ai-sdk/provider").LanguageModelV2;
5
- readonly flash25: import("@ai-sdk/provider").LanguageModelV2;
3
+ readonly flash25lite: import("@ai-sdk/provider").LanguageModelV3;
4
+ readonly pro25: import("@ai-sdk/provider").LanguageModelV3;
5
+ readonly flash25: import("@ai-sdk/provider").LanguageModelV3;
6
6
  };
7
7
  type ModelName = `google:${keyof typeof googleModels}`;
8
8
  export declare const googleModelNames: ModelName[];
9
9
  export declare const googleProvider: {
10
- google: import("@ai-sdk/provider").ProviderV2 & {
11
- languageModel(modelId: "flash25lite" | "pro25" | "flash25"): import("@ai-sdk/provider").LanguageModelV2;
12
- textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
13
- imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
14
- transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
15
- speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
10
+ google: import("@ai-sdk/provider").ProviderV3 & {
11
+ languageModel(modelId: "flash25lite" | "pro25" | "flash25"): import("@ai-sdk/provider").LanguageModelV3;
12
+ embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
13
+ imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
14
+ transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
15
+ rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
16
+ speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
16
17
  };
17
18
  };
18
19
  export declare const googleModelRegistry: Record<ModelName, ModelMetadata<ModelName>>;