@travisennis/acai 0.0.9 → 0.0.11

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 (403) hide show
  1. package/README.md +51 -760
  2. package/bin/acai +52 -0
  3. package/dist/agent/index.d.ts +12 -2
  4. package/dist/agent/index.d.ts.map +1 -1
  5. package/dist/agent/index.js +380 -199
  6. package/dist/agent/sub-agent.d.ts +23 -0
  7. package/dist/agent/sub-agent.d.ts.map +1 -0
  8. package/dist/agent/sub-agent.js +109 -0
  9. package/dist/cli/index.d.ts +26 -0
  10. package/dist/cli/index.d.ts.map +1 -0
  11. package/dist/{cli.js → cli/index.js} +84 -77
  12. package/dist/{stdin.d.ts → cli/stdin.d.ts} +2 -1
  13. package/dist/cli/stdin.d.ts.map +1 -0
  14. package/dist/{stdin.js → cli/stdin.js} +11 -0
  15. package/dist/commands/copy/index.js +2 -2
  16. package/dist/commands/copy/utils.d.ts.map +1 -1
  17. package/dist/commands/copy/utils.js +15 -13
  18. package/dist/commands/generate-rules/index.d.ts +1 -1
  19. package/dist/commands/generate-rules/index.d.ts.map +1 -1
  20. package/dist/commands/generate-rules/index.js +16 -101
  21. package/dist/commands/generate-rules/service.d.ts +22 -0
  22. package/dist/commands/generate-rules/service.d.ts.map +1 -0
  23. package/dist/commands/generate-rules/service.js +103 -0
  24. package/dist/commands/handoff/index.js +2 -2
  25. package/dist/commands/health/index.js +1 -1
  26. package/dist/commands/health/utils.d.ts +3 -2
  27. package/dist/commands/health/utils.d.ts.map +1 -1
  28. package/dist/commands/health/utils.js +6 -0
  29. package/dist/commands/history/index.d.ts +1 -1
  30. package/dist/commands/history/index.d.ts.map +1 -1
  31. package/dist/commands/history/index.js +17 -18
  32. package/dist/commands/history/types.d.ts +38 -0
  33. package/dist/commands/history/types.d.ts.map +1 -1
  34. package/dist/commands/history/utils.d.ts.map +1 -1
  35. package/dist/commands/history/utils.js +63 -58
  36. package/dist/commands/init/index.d.ts.map +1 -1
  37. package/dist/commands/init/index.js +3 -8
  38. package/dist/commands/init-project/index.d.ts.map +1 -1
  39. package/dist/commands/init-project/index.js +3 -3
  40. package/dist/commands/init-project/utils.d.ts +2 -1
  41. package/dist/commands/init-project/utils.d.ts.map +1 -1
  42. package/dist/commands/init-project/utils.js +10 -2
  43. package/dist/commands/list-tools/index.d.ts.map +1 -1
  44. package/dist/commands/list-tools/index.js +7 -31
  45. package/dist/commands/manager.d.ts +2 -2
  46. package/dist/commands/manager.d.ts.map +1 -1
  47. package/dist/commands/manager.js +55 -33
  48. package/dist/commands/model/index.d.ts.map +1 -1
  49. package/dist/commands/model/index.js +20 -151
  50. package/dist/commands/model/model-panel.d.ts +4 -0
  51. package/dist/commands/model/model-panel.d.ts.map +1 -0
  52. package/dist/commands/model/model-panel.js +144 -0
  53. package/dist/commands/paste/index.d.ts.map +1 -1
  54. package/dist/commands/paste/index.js +59 -62
  55. package/dist/commands/paste/utils.d.ts.map +1 -1
  56. package/dist/commands/paste/utils.js +88 -58
  57. package/dist/commands/pickup/index.d.ts.map +1 -1
  58. package/dist/commands/pickup/index.js +6 -3
  59. package/dist/commands/pickup/utils.js +3 -3
  60. package/dist/commands/resources/index.d.ts.map +1 -1
  61. package/dist/commands/resources/index.js +33 -50
  62. package/dist/commands/review/index.d.ts.map +1 -1
  63. package/dist/commands/review/index.js +3 -117
  64. package/dist/commands/review/review-panel.d.ts +3 -0
  65. package/dist/commands/review/review-panel.d.ts.map +1 -0
  66. package/dist/commands/review/review-panel.js +186 -0
  67. package/dist/commands/review/utils.d.ts +15 -1
  68. package/dist/commands/review/utils.d.ts.map +1 -1
  69. package/dist/commands/review/utils.js +127 -68
  70. package/dist/commands/session/index.d.ts +1 -1
  71. package/dist/commands/session/index.d.ts.map +1 -1
  72. package/dist/commands/session/index.js +124 -135
  73. package/dist/commands/shell/index.d.ts.map +1 -1
  74. package/dist/commands/shell/index.js +16 -1
  75. package/dist/commands/types.d.ts +2 -2
  76. package/dist/commands/types.d.ts.map +1 -1
  77. package/dist/{config.d.ts → config/index.d.ts} +20 -9
  78. package/dist/config/index.d.ts.map +1 -0
  79. package/dist/{config.js → config/index.js} +43 -42
  80. package/dist/execution/index.d.ts.map +1 -1
  81. package/dist/execution/index.js +75 -55
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +148 -141
  85. package/dist/middleware/cache.d.ts.map +1 -1
  86. package/dist/middleware/cache.js +18 -36
  87. package/dist/models/ai-config.d.ts +1 -0
  88. package/dist/models/ai-config.d.ts.map +1 -1
  89. package/dist/models/ai-config.js +4 -3
  90. package/dist/models/anthropic-provider.d.ts +2 -5
  91. package/dist/models/anthropic-provider.d.ts.map +1 -1
  92. package/dist/models/anthropic-provider.js +3 -70
  93. package/dist/models/deepseek-provider.d.ts +1 -0
  94. package/dist/models/deepseek-provider.d.ts.map +1 -1
  95. package/dist/models/google-provider.d.ts +2 -3
  96. package/dist/models/google-provider.d.ts.map +1 -1
  97. package/dist/models/google-provider.js +0 -26
  98. package/dist/models/groq-provider.d.ts +1 -0
  99. package/dist/models/groq-provider.d.ts.map +1 -1
  100. package/dist/models/manager.d.ts +13 -2
  101. package/dist/models/manager.d.ts.map +1 -1
  102. package/dist/models/manager.js +20 -8
  103. package/dist/models/openai-provider.d.ts +2 -5
  104. package/dist/models/openai-provider.d.ts.map +1 -1
  105. package/dist/models/openai-provider.js +0 -52
  106. package/dist/models/opencode-go-provider.d.ts +25 -0
  107. package/dist/models/opencode-go-provider.d.ts.map +1 -0
  108. package/dist/models/opencode-go-provider.js +78 -0
  109. package/dist/models/opencode-zen-provider.d.ts +7 -3
  110. package/dist/models/opencode-zen-provider.d.ts.map +1 -1
  111. package/dist/models/opencode-zen-provider.js +49 -10
  112. package/dist/models/openrouter-provider.d.ts +27 -31
  113. package/dist/models/openrouter-provider.d.ts.map +1 -1
  114. package/dist/models/openrouter-provider.js +121 -180
  115. package/dist/models/providers.d.ts +3 -3
  116. package/dist/models/providers.d.ts.map +1 -1
  117. package/dist/models/providers.js +6 -0
  118. package/dist/models/xai-provider.d.ts +4 -3
  119. package/dist/models/xai-provider.d.ts.map +1 -1
  120. package/dist/models/xai-provider.js +18 -18
  121. package/dist/modes/manager.d.ts +24 -0
  122. package/dist/modes/manager.d.ts.map +1 -0
  123. package/dist/modes/manager.js +77 -0
  124. package/dist/modes/prompts.d.ts +2 -0
  125. package/dist/modes/prompts.d.ts.map +1 -0
  126. package/dist/modes/prompts.js +142 -0
  127. package/dist/prompts/mentions.d.ts +11 -0
  128. package/dist/prompts/mentions.d.ts.map +1 -0
  129. package/dist/{mentions.js → prompts/mentions.js} +55 -85
  130. package/dist/{prompts.d.ts → prompts/system-prompt.d.ts} +7 -2
  131. package/dist/prompts/system-prompt.d.ts.map +1 -0
  132. package/dist/{prompts.js → prompts/system-prompt.js} +31 -16
  133. package/dist/repl/index.d.ts +174 -0
  134. package/dist/repl/index.d.ts.map +1 -0
  135. package/dist/{repl-new.js → repl/index.js} +397 -76
  136. package/dist/repl/project-status.d.ts +1 -0
  137. package/dist/repl/project-status.d.ts.map +1 -1
  138. package/dist/repl/project-status.js +4 -1
  139. package/dist/sessions/manager.d.ts +92 -0
  140. package/dist/sessions/manager.d.ts.map +1 -1
  141. package/dist/sessions/manager.js +262 -9
  142. package/dist/sessions/summary.d.ts +4 -0
  143. package/dist/sessions/summary.d.ts.map +1 -0
  144. package/dist/sessions/summary.js +30 -0
  145. package/dist/skills/index.d.ts +29 -0
  146. package/dist/skills/index.d.ts.map +1 -0
  147. package/dist/skills/index.js +294 -0
  148. package/dist/subagents/index.d.ts +16 -0
  149. package/dist/subagents/index.d.ts.map +1 -0
  150. package/dist/subagents/index.js +231 -0
  151. package/dist/terminal/control.d.ts +1 -1
  152. package/dist/terminal/control.d.ts.map +1 -1
  153. package/dist/terminal/control.js +3 -3
  154. package/dist/terminal/east-asian-width.d.ts.map +1 -1
  155. package/dist/terminal/east-asian-width.js +404 -351
  156. package/dist/terminal/keys.d.ts +17 -0
  157. package/dist/terminal/keys.d.ts.map +1 -1
  158. package/dist/terminal/keys.js +37 -0
  159. package/dist/terminal/select-prompt.d.ts.map +1 -1
  160. package/dist/terminal/select-prompt.js +24 -12
  161. package/dist/terminal/string-width.d.ts.map +1 -1
  162. package/dist/terminal/string-width.js +25 -27
  163. package/dist/terminal/style.d.ts.map +1 -1
  164. package/dist/terminal/style.js +4 -7
  165. package/dist/terminal/supports-color.d.ts.map +1 -1
  166. package/dist/terminal/supports-color.js +41 -27
  167. package/dist/terminal/table/cell.d.ts +12 -0
  168. package/dist/terminal/table/cell.d.ts.map +1 -1
  169. package/dist/terminal/table/cell.js +40 -25
  170. package/dist/terminal/table/layout-manager.d.ts.map +1 -1
  171. package/dist/terminal/table/layout-manager.js +100 -68
  172. package/dist/terminal/table/utils.d.ts +1 -1
  173. package/dist/terminal/table/utils.d.ts.map +1 -1
  174. package/dist/terminal/table/utils.js +17 -10
  175. package/dist/terminal/wrap-ansi.d.ts.map +1 -1
  176. package/dist/terminal/wrap-ansi.js +174 -105
  177. package/dist/tokens/tracker.d.ts +1 -0
  178. package/dist/tokens/tracker.d.ts.map +1 -1
  179. package/dist/tokens/tracker.js +3 -0
  180. package/dist/tools/agent.d.ts +27 -0
  181. package/dist/tools/agent.d.ts.map +1 -0
  182. package/dist/tools/agent.js +81 -0
  183. package/dist/tools/apply-patch.d.ts +62 -0
  184. package/dist/tools/apply-patch.d.ts.map +1 -0
  185. package/dist/tools/apply-patch.js +377 -0
  186. package/dist/tools/bash.d.ts +4 -3
  187. package/dist/tools/bash.d.ts.map +1 -1
  188. package/dist/tools/bash.js +349 -141
  189. package/dist/tools/directory-tree.d.ts +3 -3
  190. package/dist/tools/directory-tree.d.ts.map +1 -1
  191. package/dist/tools/directory-tree.js +8 -5
  192. package/dist/tools/dynamic-tool-loader.d.ts +3 -6
  193. package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
  194. package/dist/tools/dynamic-tool-loader.js +20 -4
  195. package/dist/tools/edit-file.d.ts +7 -7
  196. package/dist/tools/edit-file.d.ts.map +1 -1
  197. package/dist/tools/edit-file.js +292 -85
  198. package/dist/tools/glob.d.ts +6 -6
  199. package/dist/tools/glob.d.ts.map +1 -1
  200. package/dist/tools/glob.js +110 -63
  201. package/dist/tools/grep.d.ts +15 -12
  202. package/dist/tools/grep.d.ts.map +1 -1
  203. package/dist/tools/grep.js +315 -193
  204. package/dist/tools/index.d.ts +114 -9
  205. package/dist/tools/index.d.ts.map +1 -1
  206. package/dist/tools/index.js +39 -24
  207. package/dist/tools/ls.d.ts +2 -2
  208. package/dist/tools/ls.d.ts.map +1 -1
  209. package/dist/tools/ls.js +7 -5
  210. package/dist/tools/read-file.d.ts +4 -6
  211. package/dist/tools/read-file.d.ts.map +1 -1
  212. package/dist/tools/read-file.js +84 -39
  213. package/dist/tools/save-file.d.ts +3 -3
  214. package/dist/tools/save-file.d.ts.map +1 -1
  215. package/dist/tools/save-file.js +36 -31
  216. package/dist/tools/skill.d.ts +23 -0
  217. package/dist/tools/skill.d.ts.map +1 -0
  218. package/dist/tools/skill.js +65 -0
  219. package/dist/tools/think.d.ts.map +1 -1
  220. package/dist/tools/think.js +2 -9
  221. package/dist/tools/utils.d.ts +2 -0
  222. package/dist/tools/utils.d.ts.map +1 -1
  223. package/dist/tools/utils.js +12 -0
  224. package/dist/tools/web-fetch.d.ts +50 -0
  225. package/dist/tools/web-fetch.d.ts.map +1 -0
  226. package/dist/tools/web-fetch.js +446 -0
  227. package/dist/tools/web-search.d.ts +44 -0
  228. package/dist/tools/web-search.d.ts.map +1 -0
  229. package/dist/tools/web-search.js +226 -0
  230. package/dist/tui/autocomplete/attachment-provider.d.ts +3 -6
  231. package/dist/tui/autocomplete/attachment-provider.d.ts.map +1 -1
  232. package/dist/tui/autocomplete/attachment-provider.js +25 -78
  233. package/dist/tui/autocomplete/base-provider.d.ts +1 -0
  234. package/dist/tui/autocomplete/base-provider.d.ts.map +1 -1
  235. package/dist/tui/autocomplete/combined-provider.d.ts +1 -4
  236. package/dist/tui/autocomplete/combined-provider.d.ts.map +1 -1
  237. package/dist/tui/autocomplete/combined-provider.js +3 -17
  238. package/dist/tui/autocomplete/command-provider.d.ts +1 -0
  239. package/dist/tui/autocomplete/command-provider.d.ts.map +1 -1
  240. package/dist/tui/autocomplete/command-provider.js +3 -0
  241. package/dist/tui/autocomplete/file-search-provider.d.ts +2 -1
  242. package/dist/tui/autocomplete/file-search-provider.d.ts.map +1 -1
  243. package/dist/tui/autocomplete/file-search-provider.js +37 -17
  244. package/dist/tui/autocomplete/skill-provider.d.ts +17 -0
  245. package/dist/tui/autocomplete/skill-provider.d.ts.map +1 -0
  246. package/dist/tui/autocomplete/skill-provider.js +49 -0
  247. package/dist/tui/autocomplete/utils.d.ts +2 -1
  248. package/dist/tui/autocomplete/utils.d.ts.map +1 -1
  249. package/dist/tui/autocomplete/utils.js +25 -23
  250. package/dist/tui/autocomplete.d.ts +2 -2
  251. package/dist/tui/autocomplete.d.ts.map +1 -1
  252. package/dist/tui/autocomplete.js +3 -5
  253. package/dist/tui/components/assistant-message.d.ts.map +1 -1
  254. package/dist/tui/components/assistant-message.js +0 -4
  255. package/dist/tui/components/editor.d.ts +18 -3
  256. package/dist/tui/components/editor.d.ts.map +1 -1
  257. package/dist/tui/components/editor.js +211 -237
  258. package/dist/tui/components/footer.d.ts +6 -4
  259. package/dist/tui/components/footer.d.ts.map +1 -1
  260. package/dist/tui/components/footer.js +49 -25
  261. package/dist/tui/components/markdown.d.ts +10 -7
  262. package/dist/tui/components/markdown.d.ts.map +1 -1
  263. package/dist/tui/components/markdown.js +57 -39
  264. package/dist/tui/components/modal.d.ts.map +1 -1
  265. package/dist/tui/components/modal.js +35 -33
  266. package/dist/tui/components/notification.d.ts +13 -2
  267. package/dist/tui/components/notification.d.ts.map +1 -1
  268. package/dist/tui/components/notification.js +36 -2
  269. package/dist/tui/components/progress-bar.js +1 -1
  270. package/dist/tui/components/select-list.d.ts +1 -0
  271. package/dist/tui/components/select-list.d.ts.map +1 -1
  272. package/dist/tui/components/select-list.js +14 -11
  273. package/dist/tui/components/text.d.ts +16 -0
  274. package/dist/tui/components/text.d.ts.map +1 -1
  275. package/dist/tui/components/text.js +72 -57
  276. package/dist/tui/components/thinking-block.d.ts +9 -0
  277. package/dist/tui/components/thinking-block.d.ts.map +1 -1
  278. package/dist/tui/components/thinking-block.js +43 -11
  279. package/dist/tui/components/tool-execution.d.ts +5 -1
  280. package/dist/tui/components/tool-execution.d.ts.map +1 -1
  281. package/dist/tui/components/tool-execution.js +19 -10
  282. package/dist/tui/components/user-message.d.ts.map +1 -1
  283. package/dist/tui/components/user-message.js +0 -3
  284. package/dist/tui/components/welcome.d.ts +2 -1
  285. package/dist/tui/components/welcome.d.ts.map +1 -1
  286. package/dist/tui/components/welcome.js +2 -2
  287. package/dist/tui/editor-launcher.d.ts +3 -2
  288. package/dist/tui/editor-launcher.d.ts.map +1 -1
  289. package/dist/tui/index.d.ts +0 -1
  290. package/dist/tui/index.d.ts.map +1 -1
  291. package/dist/tui/terminal.d.ts.map +1 -1
  292. package/dist/tui/terminal.js +10 -2
  293. package/dist/tui/tui.d.ts +43 -0
  294. package/dist/tui/tui.d.ts.map +1 -1
  295. package/dist/tui/tui.js +166 -41
  296. package/dist/tui/utils.d.ts +1 -5
  297. package/dist/tui/utils.d.ts.map +1 -1
  298. package/dist/tui/utils.js +271 -44
  299. package/dist/utils/bash/parse.d.ts +19 -0
  300. package/dist/utils/bash/parse.d.ts.map +1 -0
  301. package/dist/utils/bash/parse.js +223 -0
  302. package/dist/utils/bash/quote.d.ts +6 -0
  303. package/dist/utils/bash/quote.d.ts.map +1 -0
  304. package/dist/utils/bash/quote.js +23 -0
  305. package/dist/utils/bash.d.ts.map +1 -1
  306. package/dist/utils/bash.js +211 -126
  307. package/dist/utils/command-protection.d.ts +28 -0
  308. package/dist/utils/command-protection.d.ts.map +1 -0
  309. package/dist/utils/command-protection.js +324 -0
  310. package/dist/utils/dedent.d.ts.map +1 -0
  311. package/dist/utils/env-expand.d.ts +2 -0
  312. package/dist/utils/env-expand.d.ts.map +1 -0
  313. package/dist/utils/env-expand.js +8 -0
  314. package/dist/utils/filesystem/path-display.d.ts +11 -0
  315. package/dist/utils/filesystem/path-display.d.ts.map +1 -0
  316. package/dist/utils/filesystem/path-display.js +32 -0
  317. package/dist/utils/filesystem/security.d.ts +2 -2
  318. package/dist/utils/filesystem/security.d.ts.map +1 -1
  319. package/dist/utils/filesystem/security.js +28 -30
  320. package/dist/utils/formatting.d.ts.map +1 -0
  321. package/dist/{formatting.js → utils/formatting.js} +1 -1
  322. package/dist/utils/git.d.ts +4 -0
  323. package/dist/utils/git.d.ts.map +1 -1
  324. package/dist/utils/git.js +30 -0
  325. package/dist/utils/glob.d.ts +1 -1
  326. package/dist/utils/glob.d.ts.map +1 -1
  327. package/dist/utils/logger.d.ts.map +1 -0
  328. package/dist/{logger.js → utils/logger.js} +1 -1
  329. package/dist/utils/parsing.d.ts.map +1 -0
  330. package/dist/utils/process.d.ts.map +1 -1
  331. package/dist/utils/process.js +90 -37
  332. package/dist/utils/templates.d.ts +2 -0
  333. package/dist/utils/templates.d.ts.map +1 -0
  334. package/dist/utils/templates.js +24 -0
  335. package/dist/utils/version.d.ts.map +1 -0
  336. package/dist/{version.js → utils/version.js} +1 -1
  337. package/package.json +35 -26
  338. package/dist/cli.d.ts +0 -23
  339. package/dist/cli.d.ts.map +0 -1
  340. package/dist/commands/add-directory/types.d.ts +0 -6
  341. package/dist/commands/add-directory/types.d.ts.map +0 -1
  342. package/dist/commands/add-directory/types.js +0 -1
  343. package/dist/commands/copy/types.d.ts +0 -3
  344. package/dist/commands/copy/types.d.ts.map +0 -1
  345. package/dist/commands/copy/types.js +0 -1
  346. package/dist/commands/exit/index.d.ts +0 -10
  347. package/dist/commands/exit/index.d.ts.map +0 -1
  348. package/dist/commands/exit/index.js +0 -21
  349. package/dist/commands/exit/types.d.ts +0 -8
  350. package/dist/commands/exit/types.d.ts.map +0 -1
  351. package/dist/commands/exit/types.js +0 -1
  352. package/dist/commands/exit/utils.d.ts +0 -2
  353. package/dist/commands/exit/utils.d.ts.map +0 -1
  354. package/dist/commands/exit/utils.js +0 -13
  355. package/dist/commands/prompt/index.d.ts +0 -5
  356. package/dist/commands/prompt/index.d.ts.map +0 -1
  357. package/dist/commands/prompt/index.js +0 -122
  358. package/dist/commands/prompt/types.d.ts +0 -15
  359. package/dist/commands/prompt/types.d.ts.map +0 -1
  360. package/dist/commands/prompt/types.js +0 -1
  361. package/dist/commands/prompt/utils.d.ts +0 -12
  362. package/dist/commands/prompt/utils.d.ts.map +0 -1
  363. package/dist/commands/prompt/utils.js +0 -107
  364. package/dist/commands/reset/index.d.ts +0 -3
  365. package/dist/commands/reset/index.d.ts.map +0 -1
  366. package/dist/commands/reset/index.js +0 -25
  367. package/dist/commands/reset/types.d.ts +0 -1
  368. package/dist/commands/reset/types.d.ts.map +0 -1
  369. package/dist/commands/reset/types.js +0 -3
  370. package/dist/commands/review/types.d.ts +0 -12
  371. package/dist/commands/review/types.d.ts.map +0 -1
  372. package/dist/commands/review/types.js +0 -1
  373. package/dist/commands/save/index.d.ts +0 -3
  374. package/dist/commands/save/index.d.ts.map +0 -1
  375. package/dist/commands/save/index.js +0 -19
  376. package/dist/config.d.ts.map +0 -1
  377. package/dist/dedent.d.ts.map +0 -1
  378. package/dist/formatting.d.ts.map +0 -1
  379. package/dist/logger.d.ts.map +0 -1
  380. package/dist/mentions.d.ts +0 -14
  381. package/dist/mentions.d.ts.map +0 -1
  382. package/dist/parsing.d.ts.map +0 -1
  383. package/dist/prompts.d.ts.map +0 -1
  384. package/dist/repl-new.d.ts +0 -65
  385. package/dist/repl-new.d.ts.map +0 -1
  386. package/dist/skills.d.ts +0 -16
  387. package/dist/skills.d.ts.map +0 -1
  388. package/dist/skills.js +0 -233
  389. package/dist/stdin.d.ts.map +0 -1
  390. package/dist/tui/autocomplete/path-provider.d.ts +0 -21
  391. package/dist/tui/autocomplete/path-provider.d.ts.map +0 -1
  392. package/dist/tui/autocomplete/path-provider.js +0 -164
  393. package/dist/utils/iterables.d.ts +0 -2
  394. package/dist/utils/iterables.d.ts.map +0 -1
  395. package/dist/utils/iterables.js +0 -6
  396. package/dist/version.d.ts.map +0 -1
  397. /package/dist/{dedent.d.ts → utils/dedent.d.ts} +0 -0
  398. /package/dist/{dedent.js → utils/dedent.js} +0 -0
  399. /package/dist/{formatting.d.ts → utils/formatting.d.ts} +0 -0
  400. /package/dist/{logger.d.ts → utils/logger.d.ts} +0 -0
  401. /package/dist/{parsing.d.ts → utils/parsing.d.ts} +0 -0
  402. /package/dist/{parsing.js → utils/parsing.js} +0 -0
  403. /package/dist/{version.d.ts → utils/version.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
- import { logger } from "../logger.js";
2
+ import { logger } from "../utils/logger.js";
3
3
  function applyCaching(input, options = {}) {
4
4
  const { ttl } = options;
5
5
  input.providerOptions = {
@@ -27,53 +27,37 @@ function generateCacheKey(text, salt) {
27
27
  function estimateTokens(text) {
28
28
  return Math.ceil(text.length / 4);
29
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
30
+ function getMinTokenThreshold(modelId) {
31
+ if (modelId?.includes("haiku"))
32
+ return 4096;
33
+ if (modelId?.includes("opus"))
34
+ return 4096;
35
+ if (modelId?.includes("sonnet"))
36
+ return 1024;
37
+ return 1024;
39
38
  }
40
- function isEligibleForCaching(text, provider, modelId) {
39
+ function isEligibleForCaching(text, modelId) {
41
40
  const tokenCount = estimateTokens(text);
42
- const minThreshold = getMinTokenThreshold(provider, modelId);
41
+ const minThreshold = getMinTokenThreshold(modelId ?? "");
43
42
  if (tokenCount < minThreshold) {
44
- logger.info(`[Cache] Ineligible: ${tokenCount} tokens < ${minThreshold} threshold`);
45
43
  return false;
46
44
  }
47
45
  return true;
48
46
  }
49
- function detectProvider(providerId, modelId) {
50
- if (providerId === "anthropic" ||
51
- modelId.includes("anthropic") ||
52
- modelId.includes("claude")) {
47
+ function detectProvider(modelId) {
48
+ if (modelId.includes("sonnet") ||
49
+ modelId.includes("opus") ||
50
+ modelId.includes("haiku")) {
53
51
  return "anthropic";
54
52
  }
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
53
  return "unknown";
67
54
  }
68
55
  export const cacheMiddleware = {
69
56
  specificationVersion: "v3",
70
57
  transformParams: async ({ params, model }) => {
71
- const providerId = model.provider;
72
58
  const modelId = model.modelId;
73
- const provider = detectProvider(providerId, modelId);
74
- logger.info(`[Cache] Detected provider: ${provider}, model: ${modelId}`);
59
+ const provider = detectProvider(modelId);
75
60
  if (provider === "unknown") {
76
- logger.info("[Cache] Unknown provider, skipping caching");
77
61
  return params;
78
62
  }
79
63
  const msgs = params.prompt;
@@ -89,14 +73,12 @@ export const cacheMiddleware = {
89
73
  : "")
90
74
  .join("\n");
91
75
  // Check if system prompt is eligible for caching
92
- const isEligible = isEligibleForCaching(systemText, provider, modelId);
76
+ const isEligible = isEligibleForCaching(systemText, modelId);
93
77
  if (!isEligible) {
94
- logger.info("[Cache] System prompt not eligible for caching");
95
78
  return params;
96
79
  }
97
80
  // Generate deterministic cache key
98
81
  const cacheKey = generateCacheKey(systemText, provider);
99
- logger.info(`[Cache] Generated cache key: ${cacheKey.substring(0, 8)}...`);
100
82
  // Apply caching to system messages
101
83
  for (const systemMsg of systemMessages) {
102
84
  applyCaching(systemMsg, { ttl: "1h" });
@@ -128,7 +110,7 @@ export const cacheMiddleware = {
128
110
  provider,
129
111
  eligible: isEligible,
130
112
  systemTokens: estimateTokens(systemText),
131
- threshold: getMinTokenThreshold(provider, modelId),
113
+ threshold: getMinTokenThreshold(modelId),
132
114
  timestamp: Date.now(),
133
115
  };
134
116
  logger.info(`[Cache] Applied caching for ${provider} model`);
@@ -3,6 +3,7 @@ import type { ModelMetadata } from "./providers.ts";
3
3
  export declare class AiConfig {
4
4
  private modelMetadata;
5
5
  private prompt;
6
+ private thinkingLevel;
6
7
  constructor({ modelMetadata, prompt, }: {
7
8
  modelMetadata: ModelMetadata;
8
9
  prompt: string;
@@ -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;CA+D5C"}
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;IACvB,OAAO,CAAC,aAAa,CAA0C;gBAEnD,EACV,aAAa,EACb,MAAM,GACP,EAAE;QAAE,aAAa,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAMnD,eAAe;IASf,WAAW;IAKX,IAAI;IAMJ,eAAe,IAAI,wBAAwB;CA+D5C"}
@@ -30,15 +30,16 @@ function calculateThinkingLevel(userInput) {
30
30
  export class AiConfig {
31
31
  modelMetadata;
32
32
  prompt;
33
+ thinkingLevel;
33
34
  constructor({ modelMetadata, prompt, }) {
34
35
  this.modelMetadata = modelMetadata;
35
36
  this.prompt = prompt;
37
+ this.thinkingLevel = calculateThinkingLevel(this.prompt);
36
38
  }
37
39
  maxOutputTokens() {
38
40
  const modelConfig = this.modelMetadata;
39
- const thinkingLevel = calculateThinkingLevel(this.prompt);
40
41
  const maxTokens = modelConfig.provider === "anthropic" && modelConfig.supportsReasoning
41
- ? modelConfig.maxOutputTokens - thinkingLevel.tokenBudget
42
+ ? modelConfig.maxOutputTokens - this.thinkingLevel.tokenBudget
42
43
  : modelConfig.maxOutputTokens;
43
44
  return modelConfig.provider === "opencode" ? 8000 : maxTokens;
44
45
  }
@@ -54,7 +55,7 @@ export class AiConfig {
54
55
  }
55
56
  providerOptions() {
56
57
  const modelConfig = this.modelMetadata;
57
- const thinkingLevel = calculateThinkingLevel(this.prompt);
58
+ const thinkingLevel = this.thinkingLevel;
58
59
  const meta = {
59
60
  [modelConfig.provider]: {},
60
61
  };
@@ -2,22 +2,19 @@ import type { ModelMetadata } from "./providers.ts";
2
2
  declare const anthropicModels: {
3
3
  readonly opus: import("@ai-sdk/provider").LanguageModelV3;
4
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
5
  readonly haiku: import("@ai-sdk/provider").LanguageModelV3;
10
6
  };
11
7
  type ModelName = `anthropic:${keyof typeof anthropicModels}`;
12
8
  export declare const anthropicModelNames: ModelName[];
13
9
  export declare const anthropicProvider: {
14
10
  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;
11
+ languageModel(modelId: "opus" | "sonnet" | "haiku"): import("@ai-sdk/provider").LanguageModelV3;
16
12
  embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
17
13
  imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
18
14
  transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
19
15
  rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
20
16
  speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
17
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
21
18
  };
22
19
  };
23
20
  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;CAsF3C,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;;;;CAIX,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;CAsC3C,CAAC"}
@@ -2,28 +2,9 @@ import { createAnthropic, anthropic as originalAnthropic, } from "@ai-sdk/anthro
2
2
  import { objectKeys } from "@travisennis/stdlib/object";
3
3
  import { customProvider } from "ai";
4
4
  const anthropicModels = {
5
- opus: createAnthropic()("claude-4-opus-20250514"),
6
- sonnet: createAnthropic()("claude-4-sonnet-20250514"),
7
- sonnet37: createAnthropic()("claude-3-7-sonnet-20250219"),
8
- "sonnet37-token-efficient-tools": createAnthropic({
9
- headers: {
10
- "anthropic-version": "2023-06-01",
11
- "anthropic-beta": "token-efficient-tools-2025-02-19",
12
- },
13
- })("claude-3-7-sonnet-20250219"),
14
- "sonnet37-128k": createAnthropic({
15
- headers: {
16
- "anthropic-version": "2023-06-01",
17
- "anthropic-beta": "output-128k-2025-02-19",
18
- },
19
- })("claude-3-7-sonnet-20250219"),
20
- sonnet35: createAnthropic({
21
- headers: {
22
- "anthropic-version": "2023-06-01",
23
- "anthropic-beta": "max-tokens-3-5-sonnet-2024-07-15",
24
- },
25
- })("claude-3-5-sonnet-20241022"),
26
- haiku: originalAnthropic("claude-3-5-haiku-20241022"),
5
+ opus: createAnthropic()("claude-opus-4-6"),
6
+ sonnet: createAnthropic()("claude-sonnet-4-5"),
7
+ haiku: originalAnthropic("claude-haiku-4-5"),
27
8
  };
28
9
  export const anthropicModelNames = objectKeys(anthropicModels).map((key) => `anthropic:${key}`);
29
10
  export const anthropicProvider = {
@@ -57,54 +38,6 @@ export const anthropicModelRegistry = {
57
38
  costPerInputToken: 0.000003,
58
39
  costPerOutputToken: 0.000015,
59
40
  },
60
- "anthropic:sonnet37": {
61
- id: "anthropic:sonnet37",
62
- provider: "anthropic",
63
- contextWindow: 200000,
64
- maxOutputTokens: 64000,
65
- defaultTemperature: 0.3,
66
- promptFormat: "xml",
67
- supportsReasoning: true,
68
- supportsToolCalling: true,
69
- costPerInputToken: 0.000003,
70
- costPerOutputToken: 0.000015,
71
- },
72
- "anthropic:sonnet37-token-efficient-tools": {
73
- id: "anthropic:sonnet37-token-efficient-tools",
74
- provider: "anthropic",
75
- contextWindow: 200000,
76
- maxOutputTokens: 64000,
77
- defaultTemperature: 0.3,
78
- promptFormat: "xml",
79
- supportsReasoning: true,
80
- supportsToolCalling: true,
81
- costPerInputToken: 0.000003,
82
- costPerOutputToken: 0.000015,
83
- },
84
- "anthropic:sonnet37-128k": {
85
- id: "anthropic:sonnet37-128k",
86
- provider: "anthropic",
87
- contextWindow: 200000,
88
- maxOutputTokens: 128000,
89
- defaultTemperature: 0.3,
90
- promptFormat: "xml",
91
- supportsReasoning: true,
92
- supportsToolCalling: true,
93
- costPerInputToken: 0.000003,
94
- costPerOutputToken: 0.000015,
95
- },
96
- "anthropic:sonnet35": {
97
- id: "anthropic:sonnet35",
98
- provider: "anthropic",
99
- contextWindow: 200000,
100
- maxOutputTokens: 8096,
101
- defaultTemperature: 0.3,
102
- promptFormat: "xml",
103
- supportsReasoning: false,
104
- supportsToolCalling: true,
105
- costPerInputToken: 0.000003,
106
- costPerOutputToken: 0.000015,
107
- },
108
41
  "anthropic:haiku": {
109
42
  id: "anthropic:haiku",
110
43
  provider: "anthropic",
@@ -13,6 +13,7 @@ export declare const deepseekProvider: {
13
13
  transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
14
14
  rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
15
15
  speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
16
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
16
17
  };
17
18
  };
18
19
  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;CA0B3C,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"}
@@ -1,19 +1,18 @@
1
1
  import type { ModelMetadata } from "./providers.ts";
2
2
  declare const googleModels: {
3
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
4
  };
7
5
  type ModelName = `google:${keyof typeof googleModels}`;
8
6
  export declare const googleModelNames: ModelName[];
9
7
  export declare const googleProvider: {
10
8
  google: import("@ai-sdk/provider").ProviderV3 & {
11
- languageModel(modelId: "flash25lite" | "pro25" | "flash25"): import("@ai-sdk/provider").LanguageModelV3;
9
+ languageModel(modelId: "flash25lite"): import("@ai-sdk/provider").LanguageModelV3;
12
10
  embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
13
11
  imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
14
12
  transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
15
13
  rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
16
14
  speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
15
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
17
16
  };
18
17
  };
19
18
  export declare const googleModelRegistry: Record<ModelName, ModelMetadata<ModelName>>;
@@ -1 +1 @@
1
- {"version":3,"file":"google-provider.d.ts","sourceRoot":"","sources":["../../source/models/google-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;;;CAIR,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,SAAS,EACT,aAAa,CAAC,SAAS,CAAC,CAsCzB,CAAC"}
1
+ {"version":3,"file":"google-provider.d.ts","sourceRoot":"","sources":["../../source/models/google-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;CAER,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,SAAS,EACT,aAAa,CAAC,SAAS,CAAC,CAczB,CAAC"}
@@ -3,8 +3,6 @@ import { objectKeys } from "@travisennis/stdlib/object";
3
3
  import { customProvider } from "ai";
4
4
  const googleModels = {
5
5
  flash25lite: originalGoogle("gemini-2.5-flash-lite-preview-06-17"),
6
- pro25: originalGoogle("gemini-2.5-pro"),
7
- flash25: originalGoogle("gemini-2.5-flash"),
8
6
  };
9
7
  export const googleModelNames = objectKeys(googleModels).map((key) => `google:${key}`);
10
8
  export const googleProvider = {
@@ -26,28 +24,4 @@ export const googleModelRegistry = {
26
24
  costPerInputToken: 0,
27
25
  costPerOutputToken: 0,
28
26
  },
29
- "google:pro25": {
30
- id: "google:pro25",
31
- provider: "google",
32
- contextWindow: 1000000,
33
- maxOutputTokens: 64000,
34
- defaultTemperature: 0.7,
35
- promptFormat: "markdown",
36
- supportsReasoning: true,
37
- supportsToolCalling: true,
38
- costPerInputToken: 0,
39
- costPerOutputToken: 0,
40
- },
41
- "google:flash25": {
42
- id: "google:flash25",
43
- provider: "google",
44
- contextWindow: 1048576,
45
- maxOutputTokens: 65536,
46
- defaultTemperature: 0.3,
47
- promptFormat: "markdown",
48
- supportsReasoning: true,
49
- supportsToolCalling: true,
50
- costPerInputToken: 0.00000015,
51
- costPerOutputToken: 0.0000035,
52
- },
53
27
  };
@@ -12,6 +12,7 @@ export declare const groqProvider: {
12
12
  transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
13
13
  rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
14
14
  speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
15
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
15
16
  };
16
17
  };
17
18
  export declare const groqModelRegistry: {
@@ -1 +1 @@
1
- {"version":3,"file":"groq-provider.d.ts","sourceRoot":"","sources":["../../source/models/groq-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,QAAA,MAAM,UAAU;;CAEN,CAAC;AAEX,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAO,UAAU,EAAE,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,SAAS,EAErC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;CAKxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAc3C,CAAC"}
1
+ {"version":3,"file":"groq-provider.d.ts","sourceRoot":"","sources":["../../source/models/groq-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,QAAA,MAAM,UAAU;;CAEN,CAAC;AAEX,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAO,UAAU,EAAE,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,SAAS,EAErC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAKxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAc3C,CAAC"}
@@ -1,7 +1,16 @@
1
1
  import EventEmitter from "node:events";
2
2
  import type { LanguageModelV3 } from "@ai-sdk/provider";
3
3
  import { type ModelMetadata, type ModelName } from "./providers.ts";
4
- type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "task-agent" | "handoff-agent" | "edit-fix";
4
+ export declare function getLanguageModel({ model, app, stateDir, devtoolsEnabled, }: {
5
+ model: ModelName;
6
+ app: string;
7
+ stateDir: string;
8
+ devtoolsEnabled?: boolean;
9
+ }): LanguageModelV3;
10
+ export declare function getModelMetadata({ model }: {
11
+ model: ModelName;
12
+ }): ModelMetadata<ModelName>;
13
+ type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "handoff-agent";
5
14
  interface ModelManagerEvents {
6
15
  "set-model": [app: App, model: ModelName];
7
16
  }
@@ -9,8 +18,10 @@ export declare class ModelManager extends EventEmitter<ModelManagerEvents> {
9
18
  private modelMap;
10
19
  private modelMetadataMap;
11
20
  private stateDir;
12
- constructor({ stateDir }: {
21
+ private devtoolsEnabled;
22
+ constructor({ stateDir, devtoolsEnabled, }: {
13
23
  stateDir: string;
24
+ devtoolsEnabled?: boolean;
14
25
  });
15
26
  setModel(app: App, model: ModelName): void;
16
27
  getModel(app: App): LanguageModelV3;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAuBxB,KAAK,GAAG,GACJ,MAAM,GACN,KAAK,GACL,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,GACf,UAAU,CAAC;AAEf,UAAU,kBAAkB;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,qBAAa,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;gBACb,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAO9C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;IAgBnC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAQjB,gBAAgB,CAAC,GAAG,EAAE,GAAG;CAO1B"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../source/models/manager.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,GAAG,EACH,QAAQ,EACR,eAAuB,GACxB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,mBAiBA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,4BAG/D;AAED,KAAK,GAAG,GACJ,MAAM,GACN,KAAK,GACL,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,eAAe,CAAC;AAEpB,UAAU,kBAAkB;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,qBAAa,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAU;gBACrB,EACV,QAAQ,EACR,eAAuB,GACxB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IAQlD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;IAiBnC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAQjB,gBAAgB,CAAC,GAAG,EAAE,GAAG;CAO1B"}
@@ -1,35 +1,47 @@
1
1
  import EventEmitter from "node:events";
2
+ import { devToolsMiddleware } from "@ai-sdk/devtools";
2
3
  import { wrapLanguageModel } from "ai";
3
4
  import { auditMessage, cacheMiddleware, createRateLimitMiddleware, } from "../middleware/index.js";
4
5
  import { languageModel, modelRegistry, } from "./providers.js";
5
- function getLanguageModel({ model, app, stateDir, }) {
6
+ export function getLanguageModel({ model, app, stateDir, devtoolsEnabled = false, }) {
7
+ const middleware = [
8
+ cacheMiddleware,
9
+ createRateLimitMiddleware({ requestsPerMinute: 30 }),
10
+ auditMessage({ filePath: stateDir, app }),
11
+ ];
12
+ if (devtoolsEnabled) {
13
+ middleware.push(devToolsMiddleware());
14
+ }
6
15
  const langModel = wrapLanguageModel({
7
16
  model: languageModel(model),
8
- middleware: [
9
- cacheMiddleware,
10
- createRateLimitMiddleware({ requestsPerMinute: 30 }),
11
- auditMessage({ filePath: stateDir, app }),
12
- ],
17
+ middleware,
13
18
  });
14
19
  return langModel;
15
20
  }
21
+ export function getModelMetadata({ model }) {
22
+ const modelMetadata = modelRegistry[model];
23
+ return modelMetadata;
24
+ }
16
25
  export class ModelManager extends EventEmitter {
17
26
  modelMap;
18
27
  modelMetadataMap;
19
28
  stateDir;
20
- constructor({ stateDir }) {
29
+ devtoolsEnabled;
30
+ constructor({ stateDir, devtoolsEnabled = false, }) {
21
31
  super();
22
32
  this.modelMap = new Map();
23
33
  this.modelMetadataMap = new Map();
24
34
  this.stateDir = stateDir;
35
+ this.devtoolsEnabled = devtoolsEnabled;
25
36
  }
26
37
  setModel(app, model) {
27
38
  this.modelMap.set(app, getLanguageModel({
28
39
  model,
29
40
  app,
30
41
  stateDir: this.stateDir,
42
+ devtoolsEnabled: this.devtoolsEnabled,
31
43
  }));
32
- const modelMetadata = modelRegistry[model];
44
+ const modelMetadata = getModelMetadata({ model });
33
45
  if (modelMetadata) {
34
46
  this.modelMetadataMap.set(app, modelMetadata);
35
47
  }
@@ -1,9 +1,5 @@
1
1
  import type { ModelMetadata } from "./providers.ts";
2
2
  declare const openaiModels: {
3
- readonly "gpt-4.1": import("@ai-sdk/provider").LanguageModelV3;
4
- readonly o3: import("@ai-sdk/provider").LanguageModelV3;
5
- readonly "o4-mini": import("@ai-sdk/provider").LanguageModelV3;
6
- readonly "codex-mini": import("@ai-sdk/provider").LanguageModelV3;
7
3
  readonly "gpt-5.2": import("@ai-sdk/provider").LanguageModelV3;
8
4
  readonly "gpt-5.2-codex": import("@ai-sdk/provider").LanguageModelV3;
9
5
  readonly "gpt-5.1-codex-mini": import("@ai-sdk/provider").LanguageModelV3;
@@ -12,12 +8,13 @@ type ModelName = `openai:${keyof typeof openaiModels}`;
12
8
  export declare const openaiModelNames: ModelName[];
13
9
  export declare const openaiProvider: {
14
10
  openai: import("@ai-sdk/provider").ProviderV3 & {
15
- languageModel(modelId: "gpt-4.1" | "gpt-5.1-codex-mini" | "gpt-5.2" | "o3" | "o4-mini" | "gpt-5.2-codex" | "codex-mini"): import("@ai-sdk/provider").LanguageModelV3;
11
+ languageModel(modelId: "gpt-5.1-codex-mini" | "gpt-5.2" | "gpt-5.2-codex"): import("@ai-sdk/provider").LanguageModelV3;
16
12
  embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
17
13
  imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
18
14
  transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
19
15
  rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
20
16
  speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
17
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
21
18
  };
22
19
  };
23
20
  export declare const openaiModelRegistry: {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../source/models/openai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;;;;;;;CAQR,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE;KAC/B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsF3C,CAAC"}
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../source/models/openai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAA,MAAM,YAAY;;;;CAIR,CAAC;AAEX,KAAK,SAAS,GAAG,UAAU,MAAM,OAAO,YAAY,EAAE,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAEvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE;KAC/B,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAsC3C,CAAC"}
@@ -2,10 +2,6 @@ import { openai as originalOpenAi } from "@ai-sdk/openai";
2
2
  import { objectKeys } from "@travisennis/stdlib/object";
3
3
  import { customProvider } from "ai";
4
4
  const openaiModels = {
5
- "gpt-4.1": originalOpenAi("gpt-4.1"),
6
- o3: originalOpenAi.responses("o3"),
7
- "o4-mini": originalOpenAi.responses("o4-mini"),
8
- "codex-mini": originalOpenAi("codex-mini-latest"),
9
5
  "gpt-5.2": originalOpenAi("gpt-5.2"),
10
6
  "gpt-5.2-codex": originalOpenAi.responses("gpt-5.2-codex"),
11
7
  "gpt-5.1-codex-mini": originalOpenAi("gpt-5.1-codex-mini"),
@@ -18,54 +14,6 @@ export const openaiProvider = {
18
14
  }),
19
15
  };
20
16
  export const openaiModelRegistry = {
21
- "openai:gpt-4.1": {
22
- id: "openai:gpt-4.1",
23
- provider: "openai",
24
- contextWindow: 1000000,
25
- maxOutputTokens: 32768,
26
- defaultTemperature: 0.3,
27
- promptFormat: "markdown",
28
- supportsReasoning: false,
29
- supportsToolCalling: true,
30
- costPerInputToken: 0.000002,
31
- costPerOutputToken: 0.000008,
32
- },
33
- "openai:o3": {
34
- id: "openai:o3",
35
- provider: "openai",
36
- contextWindow: 200000,
37
- maxOutputTokens: 100000,
38
- defaultTemperature: 0.3,
39
- promptFormat: "markdown",
40
- supportsReasoning: true,
41
- supportsToolCalling: true,
42
- costPerInputToken: 0.00001,
43
- costPerOutputToken: 0.00004,
44
- },
45
- "openai:o4-mini": {
46
- id: "openai:o4-mini",
47
- provider: "openai",
48
- contextWindow: 200000,
49
- maxOutputTokens: 100000,
50
- defaultTemperature: 0.3,
51
- promptFormat: "markdown",
52
- supportsReasoning: true,
53
- supportsToolCalling: true,
54
- costPerInputToken: 0.0000011,
55
- costPerOutputToken: 0.0000044,
56
- },
57
- "openai:codex-mini": {
58
- id: "openai:codex-mini",
59
- provider: "openai",
60
- contextWindow: 200000,
61
- maxOutputTokens: 100000,
62
- defaultTemperature: 0.3,
63
- promptFormat: "markdown",
64
- supportsReasoning: false,
65
- supportsToolCalling: true,
66
- costPerInputToken: 0.0000015,
67
- costPerOutputToken: 0.000006,
68
- },
69
17
  "openai:gpt-5.2": {
70
18
  id: "openai:gpt-5.2",
71
19
  provider: "openai",
@@ -0,0 +1,25 @@
1
+ import type { ModelMetadata } from "./providers.ts";
2
+ declare const opencodeGoModels: {
3
+ readonly "glm-5": import("@ai-sdk/provider").LanguageModelV3;
4
+ readonly "kimi-k2-5": import("@ai-sdk/provider").LanguageModelV3;
5
+ readonly "minimax-m2-5": import("@ai-sdk/provider").LanguageModelV3;
6
+ readonly "minimax-m2-7": import("@ai-sdk/provider").LanguageModelV3;
7
+ };
8
+ type ModelName = `opencode-go:${keyof typeof opencodeGoModels}`;
9
+ export declare const opencodeGoModelNames: ModelName[];
10
+ export declare const opencodeGoProvider: {
11
+ "opencode-go": import("@ai-sdk/provider").ProviderV3 & {
12
+ languageModel(modelId: "glm-5" | "kimi-k2-5" | "minimax-m2-5" | "minimax-m2-7"): import("@ai-sdk/provider").LanguageModelV3;
13
+ embeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV3;
14
+ imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV3;
15
+ transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV3;
16
+ rerankingModel(modelId: string): import("@ai-sdk/provider").RerankingModelV3;
17
+ speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV3;
18
+ videoModel(modelId: string): import("@ai-sdk/provider").Experimental_VideoModelV3;
19
+ };
20
+ };
21
+ export declare const opencodeGoModelRegistry: {
22
+ [K in ModelName]: ModelMetadata<ModelName>;
23
+ };
24
+ export {};
25
+ //# sourceMappingURL=opencode-go-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-go-provider.d.ts","sourceRoot":"","sources":["../../source/models/opencode-go-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAepD,QAAA,MAAM,gBAAgB;;;;;CAKZ,CAAC;AAEX,KAAK,SAAS,GAAG,eAAe,MAAM,OAAO,gBAAgB,EAAE,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAEC,CAAC;AAE9C,eAAO,MAAM,kBAAkB;;;;;;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE;KACnC,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;CAkD3C,CAAC"}