@travisennis/acai 0.0.1 → 0.0.3

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 (324) hide show
  1. package/README.md +3 -4
  2. package/dist/commands/health-command.d.ts +2 -0
  3. package/dist/commands/health-command.js +59 -0
  4. package/dist/commands/manager.js +2 -0
  5. package/dist/commands/paste-command.d.ts +1 -1
  6. package/dist/commands/paste-command.js +155 -11
  7. package/dist/commands/reset-command.js +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +2 -1
  10. package/dist/models/openrouter-provider.d.ts +4 -1
  11. package/dist/models/openrouter-provider.js +46 -4
  12. package/dist/models/providers.d.ts +1 -1
  13. package/dist/prompts/manager.d.ts +1 -0
  14. package/dist/prompts/manager.js +10 -0
  15. package/dist/prompts.js +8 -6
  16. package/dist/repl.js +49 -26
  17. package/dist/terminal/formatting.d.ts +16 -5
  18. package/dist/terminal/formatting.js +40 -6
  19. package/dist/terminal/index.d.ts +1 -1
  20. package/dist/terminal/index.js +54 -14
  21. package/dist/terminal/markdown.js +0 -1
  22. package/dist/terminal/supports-color.d.ts +16 -0
  23. package/dist/terminal/supports-color.js +121 -0
  24. package/dist/terminal/supports-hyperlinks.d.ts +7 -0
  25. package/dist/terminal/supports-hyperlinks.js +98 -0
  26. package/dist/tools/bash.js +95 -117
  27. package/dist/tools/code-interpreter.js +11 -1
  28. package/dist/tools/command-validation.d.ts +7 -3
  29. package/dist/tools/command-validation.js +67 -23
  30. package/dist/tools/delete-file.d.ts +4 -1
  31. package/dist/tools/delete-file.js +47 -3
  32. package/dist/tools/git-utils.d.ts +6 -0
  33. package/dist/tools/git-utils.js +89 -12
  34. package/dist/tools/grep.d.ts +20 -0
  35. package/dist/tools/grep.js +128 -40
  36. package/dist/tools/index.d.ts +2 -18
  37. package/dist/tools/index.js +4 -18
  38. package/package.json +30 -20
  39. package/.acai/acai.json +0 -9
  40. package/.acai/prompts/add-openrouter-model.md +0 -13
  41. package/.acai/prompts/project-status.md +0 -4
  42. package/.acai/prompts/update-architecture-document.md +0 -9
  43. package/.acai/rules/learned-rules.md +0 -9
  44. package/.ai/docs/available-tools.txt +0 -3
  45. package/.ai/docs/cognitive_complexity_refactoring_progress.md +0 -65
  46. package/.ai/docs/deleted_tools.md +0 -168
  47. package/.ai/docs/deleted_tools_88ced9ef.md +0 -56
  48. package/.ai/docs/image-pasting.md +0 -46
  49. package/.ai/docs/initialize-app.md +0 -117
  50. package/.ai/docs/issue-4-plan.md +0 -44
  51. package/.ai/docs/marked-renderer-debug.md +0 -15
  52. package/.ai/docs/marked-renderer-refactor-plan.md +0 -64
  53. package/.ai/docs/memory-use-cases.md +0 -55
  54. package/.ai/docs/prompt-consistency.md +0 -31
  55. package/.ai/docs/refactoring-tools.md +0 -98
  56. package/.ai/docs/system-prompt-update.md +0 -174
  57. package/.ai/docs/system_prompt.txt +0 -210
  58. package/.ai/docs/tasks.md +0 -49
  59. package/.ai/plan.md +0 -131
  60. package/.ai/prompt.md +0 -1
  61. package/.ai/scripts/fetch_models.js +0 -27
  62. package/.ai/scripts/generateSystemPrompt.ts +0 -15
  63. package/.ai/scripts/list-tools.mjs +0 -4
  64. package/.ai/scripts/p5_geometric_shapes.js +0 -149
  65. package/.husky/commit-msg +0 -1
  66. package/.husky/pre-commit +0 -3
  67. package/.husky/pre-push +0 -1
  68. package/.ignore +0 -4
  69. package/AGENTS.md +0 -25
  70. package/ARCHITECTURE.md +0 -304
  71. package/TODO.md +0 -2
  72. package/biome.json +0 -61
  73. package/commitlint.config.js +0 -3
  74. package/dist/source/cli.d.ts +0 -19
  75. package/dist/source/cli.js +0 -116
  76. package/dist/source/commands/application-log-command.d.ts +0 -2
  77. package/dist/source/commands/application-log-command.js +0 -43
  78. package/dist/source/commands/clear-command.d.ts +0 -2
  79. package/dist/source/commands/clear-command.js +0 -12
  80. package/dist/source/commands/compact-command.d.ts +0 -2
  81. package/dist/source/commands/compact-command.js +0 -51
  82. package/dist/source/commands/copy-command.d.ts +0 -2
  83. package/dist/source/commands/copy-command.js +0 -51
  84. package/dist/source/commands/edit-command.d.ts +0 -2
  85. package/dist/source/commands/edit-command.js +0 -53
  86. package/dist/source/commands/edit-prompt-command.d.ts +0 -2
  87. package/dist/source/commands/edit-prompt-command.js +0 -25
  88. package/dist/source/commands/exit-command.d.ts +0 -2
  89. package/dist/source/commands/exit-command.js +0 -14
  90. package/dist/source/commands/files-command.d.ts +0 -2
  91. package/dist/source/commands/files-command.js +0 -63
  92. package/dist/source/commands/generate-rules-command.d.ts +0 -2
  93. package/dist/source/commands/generate-rules-command.js +0 -61
  94. package/dist/source/commands/help-command.d.ts +0 -2
  95. package/dist/source/commands/help-command.js +0 -19
  96. package/dist/source/commands/init-command.d.ts +0 -2
  97. package/dist/source/commands/init-command.js +0 -40
  98. package/dist/source/commands/last-log-command.d.ts +0 -2
  99. package/dist/source/commands/last-log-command.js +0 -76
  100. package/dist/source/commands/manager.d.ts +0 -22
  101. package/dist/source/commands/manager.js +0 -123
  102. package/dist/source/commands/model-command.d.ts +0 -2
  103. package/dist/source/commands/model-command.js +0 -84
  104. package/dist/source/commands/paste-command.d.ts +0 -2
  105. package/dist/source/commands/paste-command.js +0 -40
  106. package/dist/source/commands/prompt-command.d.ts +0 -2
  107. package/dist/source/commands/prompt-command.js +0 -111
  108. package/dist/source/commands/reset-command.d.ts +0 -2
  109. package/dist/source/commands/reset-command.js +0 -16
  110. package/dist/source/commands/rules-command.d.ts +0 -2
  111. package/dist/source/commands/rules-command.js +0 -68
  112. package/dist/source/commands/save-command.d.ts +0 -2
  113. package/dist/source/commands/save-command.js +0 -14
  114. package/dist/source/commands/types.d.ts +0 -26
  115. package/dist/source/commands/types.js +0 -1
  116. package/dist/source/commands/usage-command.d.ts +0 -2
  117. package/dist/source/commands/usage-command.js +0 -21
  118. package/dist/source/config.d.ts +0 -60
  119. package/dist/source/config.js +0 -193
  120. package/dist/source/conversation-analyzer.d.ts +0 -10
  121. package/dist/source/conversation-analyzer.js +0 -88
  122. package/dist/source/dedent.d.ts +0 -3
  123. package/dist/source/dedent.js +0 -38
  124. package/dist/source/formatting.d.ts +0 -17
  125. package/dist/source/formatting.js +0 -103
  126. package/dist/source/index.d.ts +0 -18
  127. package/dist/source/index.js +0 -213
  128. package/dist/source/logger.d.ts +0 -2
  129. package/dist/source/logger.js +0 -24
  130. package/dist/source/mentions.d.ts +0 -9
  131. package/dist/source/mentions.js +0 -182
  132. package/dist/source/messages.d.ts +0 -69
  133. package/dist/source/messages.js +0 -261
  134. package/dist/source/middleware/audit-message.d.ts +0 -5
  135. package/dist/source/middleware/audit-message.js +0 -95
  136. package/dist/source/middleware/index.d.ts +0 -2
  137. package/dist/source/middleware/index.js +0 -2
  138. package/dist/source/middleware/rate-limit.d.ts +0 -4
  139. package/dist/source/middleware/rate-limit.js +0 -17
  140. package/dist/source/models/ai-config.d.ts +0 -12
  141. package/dist/source/models/ai-config.js +0 -87
  142. package/dist/source/models/anthropic-provider.d.ts +0 -25
  143. package/dist/source/models/anthropic-provider.js +0 -184
  144. package/dist/source/models/deepseek-provider.d.ts +0 -20
  145. package/dist/source/models/deepseek-provider.js +0 -42
  146. package/dist/source/models/google-provider.d.ts +0 -19
  147. package/dist/source/models/google-provider.js +0 -56
  148. package/dist/source/models/manager.d.ts +0 -15
  149. package/dist/source/models/manager.js +0 -48
  150. package/dist/source/models/openai-provider.d.ts +0 -22
  151. package/dist/source/models/openai-provider.js +0 -70
  152. package/dist/source/models/openrouter-provider.d.ts +0 -36
  153. package/dist/source/models/openrouter-provider.js +0 -276
  154. package/dist/source/models/providers.d.ts +0 -33
  155. package/dist/source/models/providers.js +0 -116
  156. package/dist/source/models/xai-provider.d.ts +0 -20
  157. package/dist/source/models/xai-provider.js +0 -47
  158. package/dist/source/parsing.d.ts +0 -2
  159. package/dist/source/parsing.js +0 -18
  160. package/dist/source/prompts/manager.d.ts +0 -19
  161. package/dist/source/prompts/manager.js +0 -71
  162. package/dist/source/prompts.d.ts +0 -4
  163. package/dist/source/prompts.js +0 -158
  164. package/dist/source/repl-prompt.d.ts +0 -14
  165. package/dist/source/repl-prompt.js +0 -147
  166. package/dist/source/repl.d.ts +0 -27
  167. package/dist/source/repl.js +0 -431
  168. package/dist/source/terminal/formatting.d.ts +0 -37
  169. package/dist/source/terminal/formatting.js +0 -106
  170. package/dist/source/terminal/index.d.ts +0 -94
  171. package/dist/source/terminal/index.js +0 -420
  172. package/dist/source/terminal/markdown-utils.d.ts +0 -2
  173. package/dist/source/terminal/markdown-utils.js +0 -81
  174. package/dist/source/terminal/markdown.d.ts +0 -1
  175. package/dist/source/terminal/markdown.js +0 -111
  176. package/dist/source/terminal/types.d.ts +0 -71
  177. package/dist/source/terminal/types.js +0 -1
  178. package/dist/source/terminal-output.d.ts +0 -8
  179. package/dist/source/terminal-output.js +0 -213
  180. package/dist/source/terminal-output.test.d.ts +0 -8
  181. package/dist/source/terminal-output.test.js +0 -213
  182. package/dist/source/token-tracker.d.ts +0 -14
  183. package/dist/source/token-tracker.js +0 -53
  184. package/dist/source/token-utils.d.ts +0 -7
  185. package/dist/source/token-utils.js +0 -13
  186. package/dist/source/tools/agent.d.ts +0 -17
  187. package/dist/source/tools/agent.js +0 -87
  188. package/dist/source/tools/bash.d.ts +0 -19
  189. package/dist/source/tools/bash.js +0 -294
  190. package/dist/source/tools/code-interpreter.d.ts +0 -12
  191. package/dist/source/tools/code-interpreter.js +0 -131
  192. package/dist/source/tools/command-validation.d.ts +0 -8
  193. package/dist/source/tools/command-validation.js +0 -69
  194. package/dist/source/tools/delete-file.d.ts +0 -12
  195. package/dist/source/tools/delete-file.js +0 -56
  196. package/dist/source/tools/directory-tree.d.ts +0 -12
  197. package/dist/source/tools/directory-tree.js +0 -38
  198. package/dist/source/tools/edit-file.d.ts +0 -19
  199. package/dist/source/tools/edit-file.js +0 -107
  200. package/dist/source/tools/filesystem-utils.d.ts +0 -22
  201. package/dist/source/tools/filesystem-utils.js +0 -191
  202. package/dist/source/tools/git-utils.d.ts +0 -14
  203. package/dist/source/tools/git-utils.js +0 -64
  204. package/dist/source/tools/grep.d.ts +0 -17
  205. package/dist/source/tools/grep.js +0 -138
  206. package/dist/source/tools/index.d.ts +0 -161
  207. package/dist/source/tools/index.js +0 -209
  208. package/dist/source/tools/memory-read.d.ts +0 -13
  209. package/dist/source/tools/memory-read.js +0 -135
  210. package/dist/source/tools/memory-write.d.ts +0 -12
  211. package/dist/source/tools/memory-write.js +0 -83
  212. package/dist/source/tools/move-file.d.ts +0 -13
  213. package/dist/source/tools/move-file.js +0 -44
  214. package/dist/source/tools/read-file.d.ts +0 -17
  215. package/dist/source/tools/read-file.js +0 -86
  216. package/dist/source/tools/read-multiple-files.d.ts +0 -14
  217. package/dist/source/tools/read-multiple-files.js +0 -55
  218. package/dist/source/tools/save-file.d.ts +0 -17
  219. package/dist/source/tools/save-file.js +0 -98
  220. package/dist/source/tools/think.d.ts +0 -11
  221. package/dist/source/tools/think.js +0 -45
  222. package/dist/source/tools/types.d.ts +0 -29
  223. package/dist/source/tools/types.js +0 -14
  224. package/dist/source/tools/web-fetch.d.ts +0 -47
  225. package/dist/source/tools/web-fetch.js +0 -246
  226. package/dist/source/tools/web-search.d.ts +0 -13
  227. package/dist/source/tools/web-search.js +0 -80
  228. package/dist/source/utils/process.d.ts +0 -36
  229. package/dist/source/utils/process.js +0 -75
  230. package/dist/source/version.d.ts +0 -1
  231. package/dist/source/version.js +0 -21
  232. package/dist/terminal-output.d.ts +0 -8
  233. package/dist/terminal-output.js +0 -213
  234. package/dist/tools/memory-read.d.ts +0 -13
  235. package/dist/tools/memory-read.js +0 -135
  236. package/dist/tools/memory-write.d.ts +0 -12
  237. package/dist/tools/memory-write.js +0 -83
  238. package/knip.json +0 -5
  239. package/source/cli.ts +0 -172
  240. package/source/commands/application-log-command.ts +0 -53
  241. package/source/commands/clear-command.ts +0 -14
  242. package/source/commands/compact-command.ts +0 -64
  243. package/source/commands/copy-command.ts +0 -55
  244. package/source/commands/edit-command.ts +0 -63
  245. package/source/commands/edit-prompt-command.ts +0 -31
  246. package/source/commands/exit-command.ts +0 -18
  247. package/source/commands/files-command.ts +0 -85
  248. package/source/commands/generate-rules-command.ts +0 -82
  249. package/source/commands/help-command.ts +0 -27
  250. package/source/commands/init-command.ts +0 -48
  251. package/source/commands/last-log-command.ts +0 -88
  252. package/source/commands/manager.ts +0 -151
  253. package/source/commands/model-command.ts +0 -123
  254. package/source/commands/paste-command.ts +0 -62
  255. package/source/commands/prompt-command.ts +0 -150
  256. package/source/commands/reset-command.ts +0 -22
  257. package/source/commands/rules-command.ts +0 -76
  258. package/source/commands/save-command.ts +0 -20
  259. package/source/commands/types.ts +0 -28
  260. package/source/commands/usage-command.ts +0 -26
  261. package/source/config.ts +0 -223
  262. package/source/conversation-analyzer.ts +0 -115
  263. package/source/dedent.ts +0 -53
  264. package/source/formatting.ts +0 -132
  265. package/source/index.ts +0 -240
  266. package/source/logger.ts +0 -29
  267. package/source/mentions.ts +0 -227
  268. package/source/messages.ts +0 -360
  269. package/source/middleware/audit-message.ts +0 -133
  270. package/source/middleware/index.ts +0 -2
  271. package/source/middleware/rate-limit.ts +0 -24
  272. package/source/models/ai-config.ts +0 -109
  273. package/source/models/anthropic-provider.ts +0 -199
  274. package/source/models/deepseek-provider.ts +0 -53
  275. package/source/models/google-provider.ts +0 -68
  276. package/source/models/manager.ts +0 -84
  277. package/source/models/openai-provider.ts +0 -81
  278. package/source/models/openrouter-provider.ts +0 -288
  279. package/source/models/providers.ts +0 -197
  280. package/source/models/xai-provider.ts +0 -59
  281. package/source/parsing.ts +0 -20
  282. package/source/prompts/manager.ts +0 -90
  283. package/source/prompts.ts +0 -172
  284. package/source/repl-prompt.ts +0 -196
  285. package/source/repl.ts +0 -572
  286. package/source/terminal/formatting.ts +0 -121
  287. package/source/terminal/index.ts +0 -518
  288. package/source/terminal/markdown-utils.ts +0 -89
  289. package/source/terminal/markdown.ts +0 -155
  290. package/source/terminal/types.ts +0 -84
  291. package/source/terminal-output.test.ts +0 -266
  292. package/source/token-tracker.ts +0 -78
  293. package/source/token-utils.ts +0 -17
  294. package/source/tools/agent.ts +0 -107
  295. package/source/tools/bash.ts +0 -367
  296. package/source/tools/code-interpreter.ts +0 -172
  297. package/source/tools/command-validation.ts +0 -81
  298. package/source/tools/delete-file.ts +0 -71
  299. package/source/tools/directory-tree.ts +0 -54
  300. package/source/tools/edit-file.ts +0 -155
  301. package/source/tools/filesystem-utils.ts +0 -265
  302. package/source/tools/git-utils.ts +0 -70
  303. package/source/tools/grep.ts +0 -184
  304. package/source/tools/index.ts +0 -278
  305. package/source/tools/memory-read.ts +0 -174
  306. package/source/tools/memory-write.ts +0 -105
  307. package/source/tools/move-file.ts +0 -59
  308. package/source/tools/read-file.ts +0 -129
  309. package/source/tools/read-multiple-files.ts +0 -80
  310. package/source/tools/save-file.ts +0 -147
  311. package/source/tools/think.ts +0 -51
  312. package/source/tools/types.ts +0 -58
  313. package/source/tools/web-fetch.ts +0 -327
  314. package/source/tools/web-search.ts +0 -101
  315. package/source/utils/process.ts +0 -121
  316. package/source/version.ts +0 -21
  317. package/test/commands/copy-command.test.ts +0 -69
  318. package/test/config.test.ts +0 -200
  319. package/test/terminal/markdown-utils.test.ts +0 -124
  320. package/test/tools/bash-tool.test.ts +0 -58
  321. package/test/tools/code-interpreter.test.ts +0 -91
  322. package/test/tools/command-validation.test.ts +0 -48
  323. package/tsconfig.build.json +0 -9
  324. package/tsconfig.json +0 -30
@@ -1,184 +0,0 @@
1
- import { createAnthropic, anthropic as originalAnthropic, } from "@ai-sdk/anthropic";
2
- import { objectKeys } from "@travisennis/stdlib/object";
3
- import { isRecord } from "@travisennis/stdlib/typeguards";
4
- import { customProvider } from "ai";
5
- // Helper function copied from original providers.ts
6
- function addCacheControlToTools(body) {
7
- const parsedBody = JSON.parse(body);
8
- if (isRecord(parsedBody)) {
9
- const tools = parsedBody["tools"];
10
- if (Array.isArray(tools)) {
11
- tools.at(-1).cache_control = { type: "ephemeral" };
12
- }
13
- }
14
- return JSON.stringify(parsedBody);
15
- }
16
- const anthropicModels = {
17
- opus: createAnthropic({
18
- fetch(input, init) {
19
- const body = init?.body;
20
- if (body && typeof body === "string") {
21
- init.body = addCacheControlToTools(body);
22
- }
23
- return fetch(input, init);
24
- },
25
- })("claude-4-opus-20250514"),
26
- sonnet: createAnthropic({
27
- fetch(input, init) {
28
- const body = init?.body;
29
- if (body && typeof body === "string") {
30
- init.body = addCacheControlToTools(body);
31
- }
32
- return fetch(input, init);
33
- },
34
- })("claude-4-sonnet-20250514"),
35
- sonnet37: createAnthropic({
36
- fetch(input, init) {
37
- const body = init?.body;
38
- if (body && typeof body === "string") {
39
- init.body = addCacheControlToTools(body);
40
- }
41
- return fetch(input, init);
42
- },
43
- })("claude-3-7-sonnet-20250219"),
44
- "sonnet37-token-efficient-tools": createAnthropic({
45
- headers: {
46
- "anthropic-version": "2023-06-01",
47
- "anthropic-beta": "token-efficient-tools-2025-02-19",
48
- },
49
- fetch(input, init) {
50
- const body = init?.body;
51
- if (body && typeof body === "string") {
52
- init.body = addCacheControlToTools(body);
53
- }
54
- return fetch(input, init);
55
- },
56
- })("claude-3-7-sonnet-20250219"),
57
- "sonnet37-128k": createAnthropic({
58
- headers: {
59
- "anthropic-version": "2023-06-01",
60
- "anthropic-beta": "output-128k-2025-02-19",
61
- },
62
- fetch(input, init) {
63
- const body = init?.body;
64
- if (body && typeof body === "string") {
65
- init.body = addCacheControlToTools(body);
66
- }
67
- return fetch(input, init);
68
- },
69
- })("claude-3-7-sonnet-20250219"),
70
- sonnet35: createAnthropic({
71
- headers: {
72
- "anthropic-version": "2023-06-01",
73
- "anthropic-beta": "max-tokens-3-5-sonnet-2024-07-15",
74
- },
75
- fetch(input, init) {
76
- const body = init?.body;
77
- if (body && typeof body === "string") {
78
- init.body = addCacheControlToTools(body);
79
- }
80
- return fetch(input, init);
81
- },
82
- })("claude-3-5-sonnet-20241022"),
83
- haiku: originalAnthropic("claude-3-5-haiku-20241022"),
84
- };
85
- export const anthropicModelNames = objectKeys(anthropicModels).map((key) => `anthropic:${key}`);
86
- export const anthropicProvider = {
87
- anthropic: customProvider({
88
- languageModels: anthropicModels,
89
- fallbackProvider: originalAnthropic,
90
- }),
91
- };
92
- export const anthropicModelRegistry = {
93
- "anthropic:opus": {
94
- id: "anthropic:opus",
95
- provider: "anthropic",
96
- contextWindow: 200000,
97
- maxOutputTokens: 64000,
98
- defaultTemperature: 0.3,
99
- promptFormat: "xml",
100
- supportsReasoning: true,
101
- supportsToolCalling: true,
102
- costPerInputToken: 0.000015,
103
- costPerOutputToken: 0.000075,
104
- category: "powerful",
105
- },
106
- "anthropic:sonnet": {
107
- id: "anthropic:sonnet",
108
- provider: "anthropic",
109
- contextWindow: 200000,
110
- maxOutputTokens: 64000,
111
- defaultTemperature: 0.3,
112
- promptFormat: "xml",
113
- supportsReasoning: true,
114
- supportsToolCalling: true,
115
- costPerInputToken: 0.000003,
116
- costPerOutputToken: 0.000015,
117
- category: "balanced",
118
- },
119
- "anthropic:sonnet37": {
120
- id: "anthropic:sonnet37",
121
- provider: "anthropic",
122
- contextWindow: 200000,
123
- maxOutputTokens: 64000,
124
- defaultTemperature: 0.3,
125
- promptFormat: "xml",
126
- supportsReasoning: true,
127
- supportsToolCalling: true,
128
- costPerInputToken: 0.000003,
129
- costPerOutputToken: 0.000015,
130
- category: "balanced",
131
- },
132
- "anthropic:sonnet37-token-efficient-tools": {
133
- id: "anthropic:sonnet37-token-efficient-tools",
134
- provider: "anthropic",
135
- contextWindow: 200000,
136
- maxOutputTokens: 64000,
137
- defaultTemperature: 0.3,
138
- promptFormat: "xml",
139
- supportsReasoning: true,
140
- supportsToolCalling: true,
141
- costPerInputToken: 0.000003,
142
- costPerOutputToken: 0.000015,
143
- category: "balanced",
144
- },
145
- "anthropic:sonnet37-128k": {
146
- id: "anthropic:sonnet37-128k",
147
- provider: "anthropic",
148
- contextWindow: 200000,
149
- maxOutputTokens: 128000,
150
- defaultTemperature: 0.3,
151
- promptFormat: "xml",
152
- supportsReasoning: true,
153
- supportsToolCalling: true,
154
- costPerInputToken: 0.000003,
155
- costPerOutputToken: 0.000015,
156
- category: "powerful",
157
- },
158
- "anthropic:sonnet35": {
159
- id: "anthropic:sonnet35",
160
- provider: "anthropic",
161
- contextWindow: 200000,
162
- maxOutputTokens: 8096,
163
- defaultTemperature: 0.3,
164
- promptFormat: "xml",
165
- supportsReasoning: false,
166
- supportsToolCalling: true,
167
- costPerInputToken: 0.000003,
168
- costPerOutputToken: 0.000015,
169
- category: "balanced",
170
- },
171
- "anthropic:haiku": {
172
- id: "anthropic:haiku",
173
- provider: "anthropic",
174
- contextWindow: 200000,
175
- maxOutputTokens: 4096,
176
- defaultTemperature: 0.3,
177
- promptFormat: "xml",
178
- supportsReasoning: false,
179
- supportsToolCalling: true,
180
- costPerInputToken: 0.0000008,
181
- costPerOutputToken: 0.000004,
182
- category: "fast",
183
- },
184
- };
@@ -1,20 +0,0 @@
1
- import type { ModelMetadata } from "./providers.ts";
2
- declare const deepseekModels: {
3
- readonly "deepseek-chat": import("@ai-sdk/provider").LanguageModelV2;
4
- readonly "deepseek-reasoner": import("@ai-sdk/provider").LanguageModelV2;
5
- };
6
- type ModelName = `deepseek:${keyof typeof deepseekModels}`;
7
- export declare const deepseekModelNames: ModelName[];
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;
15
- };
16
- };
17
- export declare const deepseekModelRegistry: {
18
- [K in ModelName]: ModelMetadata<ModelName>;
19
- };
20
- export {};
@@ -1,42 +0,0 @@
1
- import { deepseek as originalDeepseek } from "@ai-sdk/deepseek";
2
- import { objectKeys } from "@travisennis/stdlib/object";
3
- import { customProvider } from "ai";
4
- const deepseekModels = {
5
- "deepseek-chat": originalDeepseek("deepseek-chat"),
6
- "deepseek-reasoner": originalDeepseek("deepseek-reasoner"),
7
- };
8
- export const deepseekModelNames = objectKeys(deepseekModels).map((key) => `deepseek:${key}`);
9
- export const deepseekProvider = {
10
- deepseek: customProvider({
11
- languageModels: deepseekModels,
12
- fallbackProvider: originalDeepseek,
13
- }),
14
- };
15
- export const deepseekModelRegistry = {
16
- "deepseek:deepseek-chat": {
17
- id: "deepseek:deepseek-chat",
18
- provider: "deepseek",
19
- contextWindow: 128000,
20
- maxOutputTokens: 8000,
21
- defaultTemperature: 0.3,
22
- promptFormat: "bracket",
23
- supportsReasoning: false,
24
- supportsToolCalling: true,
25
- costPerInputToken: 0.0000012, // Check official pricing
26
- costPerOutputToken: 0.0000012, // Check official pricing
27
- category: "balanced",
28
- },
29
- "deepseek:deepseek-reasoner": {
30
- id: "deepseek:deepseek-reasoner",
31
- provider: "deepseek",
32
- contextWindow: 128000,
33
- maxOutputTokens: 32768,
34
- defaultTemperature: 0.6,
35
- promptFormat: "bracket",
36
- supportsReasoning: true,
37
- supportsToolCalling: true, // Check if this model supports tools
38
- costPerInputToken: 0.00000055, // Check official pricing
39
- costPerOutputToken: 0.00000219, // Check official pricing
40
- category: "balanced",
41
- },
42
- };
@@ -1,19 +0,0 @@
1
- import type { ModelMetadata } from "./providers.ts";
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;
6
- };
7
- type ModelName = `google:${keyof typeof googleModels}`;
8
- export declare const googleModelNames: ModelName[];
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;
16
- };
17
- };
18
- export declare const googleModelRegistry: Record<ModelName, ModelMetadata<ModelName>>;
19
- export {};
@@ -1,56 +0,0 @@
1
- import { google as originalGoogle } from "@ai-sdk/google";
2
- import { objectKeys } from "@travisennis/stdlib/object";
3
- import { customProvider } from "ai";
4
- const googleModels = {
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
- };
9
- export const googleModelNames = objectKeys(googleModels).map((key) => `google:${key}`);
10
- export const googleProvider = {
11
- google: customProvider({
12
- languageModels: googleModels,
13
- fallbackProvider: originalGoogle,
14
- }),
15
- };
16
- export const googleModelRegistry = {
17
- "google:flash25lite": {
18
- id: "google:flash25lite",
19
- provider: "google",
20
- contextWindow: 1000000,
21
- maxOutputTokens: 8192,
22
- defaultTemperature: 0.3,
23
- promptFormat: "markdown",
24
- supportsReasoning: false,
25
- supportsToolCalling: true,
26
- costPerInputToken: 0,
27
- costPerOutputToken: 0,
28
- category: "fast",
29
- },
30
- "google:pro25": {
31
- id: "google:pro25",
32
- provider: "google",
33
- contextWindow: 1000000,
34
- maxOutputTokens: 64000,
35
- defaultTemperature: 0.7,
36
- promptFormat: "markdown",
37
- supportsReasoning: true,
38
- supportsToolCalling: true,
39
- costPerInputToken: 0,
40
- costPerOutputToken: 0,
41
- category: "powerful",
42
- },
43
- "google:flash25": {
44
- id: "google:flash25",
45
- provider: "google",
46
- contextWindow: 1048576,
47
- maxOutputTokens: 65536,
48
- defaultTemperature: 0.3,
49
- promptFormat: "markdown",
50
- supportsReasoning: true,
51
- supportsToolCalling: true,
52
- costPerInputToken: 0.00000015,
53
- costPerOutputToken: 0.0000035,
54
- category: "balanced",
55
- },
56
- };
@@ -1,15 +0,0 @@
1
- import type { LanguageModelV2 } from "@ai-sdk/provider";
2
- import { type ModelMetadata, type ModelName } from "./providers.ts";
3
- type App = "repl" | "cli" | "title-conversation" | "conversation-summarizer" | "conversation-analyzer" | "tool-repair" | "init-project" | "task-agent";
4
- export declare class ModelManager {
5
- private modelMap;
6
- private modelMetadataMap;
7
- private stateDir;
8
- constructor({ stateDir }: {
9
- stateDir: string;
10
- });
11
- setModel(app: App, model: ModelName): void;
12
- getModel(app: App): LanguageModelV2;
13
- getModelMetadata(app: App): ModelMetadata<ModelName>;
14
- }
15
- export {};
@@ -1,48 +0,0 @@
1
- import { wrapLanguageModel } from "ai";
2
- import { auditMessage, createRateLimitMiddleware, } from "../middleware/index.js";
3
- import { languageModel, modelRegistry, } from "./providers.js";
4
- function getLanguageModel({ model, app, stateDir, }) {
5
- const langModel = wrapLanguageModel({
6
- model: languageModel(model),
7
- middleware: [
8
- createRateLimitMiddleware({ requestsPerMinute: 30 }),
9
- auditMessage({ filePath: stateDir, app }),
10
- ],
11
- });
12
- return langModel;
13
- }
14
- export class ModelManager {
15
- modelMap;
16
- modelMetadataMap;
17
- stateDir;
18
- constructor({ stateDir }) {
19
- this.modelMap = new Map();
20
- this.modelMetadataMap = new Map();
21
- this.stateDir = stateDir;
22
- }
23
- setModel(app, model) {
24
- this.modelMap.set(app, getLanguageModel({
25
- model,
26
- app,
27
- stateDir: this.stateDir,
28
- }));
29
- const modelMetadata = modelRegistry[model];
30
- if (modelMetadata) {
31
- this.modelMetadataMap.set(app, modelMetadata);
32
- }
33
- }
34
- getModel(app) {
35
- const model = this.modelMap.get(app);
36
- if (!model) {
37
- throw new Error("Model not initialized.");
38
- }
39
- return model;
40
- }
41
- getModelMetadata(app) {
42
- const metadata = this.modelMetadataMap.get(app);
43
- if (!metadata) {
44
- throw new Error("Model not initialized.");
45
- }
46
- return metadata;
47
- }
48
- }
@@ -1,22 +0,0 @@
1
- import type { ModelMetadata } from "./providers.ts";
2
- declare const openaiModels: {
3
- readonly "gpt-4.1": import("@ai-sdk/provider").LanguageModelV2;
4
- readonly o3: import("@ai-sdk/provider").LanguageModelV2;
5
- readonly "o4-mini": import("@ai-sdk/provider").LanguageModelV2;
6
- readonly "codex-mini": import("@ai-sdk/provider").LanguageModelV2;
7
- };
8
- type ModelName = `openai:${keyof typeof openaiModels}`;
9
- export declare const openaiModelNames: ModelName[];
10
- export declare const openaiProvider: {
11
- openai: import("@ai-sdk/provider").ProviderV2 & {
12
- languageModel(modelId: "o3" | "gpt-4.1" | "o4-mini" | "codex-mini"): import("@ai-sdk/provider").LanguageModelV2;
13
- textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
14
- imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
15
- transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
16
- speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
17
- };
18
- };
19
- export declare const openaiModelRegistry: {
20
- [K in ModelName]: ModelMetadata<ModelName>;
21
- };
22
- export {};
@@ -1,70 +0,0 @@
1
- import { openai as originalOpenAi } from "@ai-sdk/openai";
2
- import { objectKeys } from "@travisennis/stdlib/object";
3
- import { customProvider } from "ai";
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
- };
10
- export const openaiModelNames = objectKeys(openaiModels).map((key) => `openai:${key}`);
11
- export const openaiProvider = {
12
- openai: customProvider({
13
- languageModels: openaiModels,
14
- fallbackProvider: originalOpenAi,
15
- }),
16
- };
17
- export const openaiModelRegistry = {
18
- "openai:gpt-4.1": {
19
- id: "openai:gpt-4.1",
20
- provider: "openai",
21
- contextWindow: 1000000,
22
- maxOutputTokens: 32768,
23
- defaultTemperature: 0.3,
24
- promptFormat: "markdown",
25
- supportsReasoning: false,
26
- supportsToolCalling: true,
27
- costPerInputToken: 0.000002,
28
- costPerOutputToken: 0.000008,
29
- category: "balanced",
30
- },
31
- "openai:o3": {
32
- id: "openai:o3",
33
- provider: "openai",
34
- contextWindow: 200000,
35
- maxOutputTokens: 100000,
36
- defaultTemperature: 0.3,
37
- promptFormat: "markdown",
38
- supportsReasoning: true,
39
- supportsToolCalling: true,
40
- costPerInputToken: 0.00001,
41
- costPerOutputToken: 0.00004,
42
- category: "powerful",
43
- },
44
- "openai:o4-mini": {
45
- id: "openai:o4-mini",
46
- provider: "openai",
47
- contextWindow: 200000,
48
- maxOutputTokens: 100000,
49
- defaultTemperature: 0.3,
50
- promptFormat: "markdown",
51
- supportsReasoning: true,
52
- supportsToolCalling: true,
53
- costPerInputToken: 0.0000011,
54
- costPerOutputToken: 0.0000044,
55
- category: "balanced",
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
- category: "balanced",
69
- },
70
- };
@@ -1,36 +0,0 @@
1
- import type { ModelMetadata } from "./providers.ts";
2
- declare const openrouterModels: {
3
- readonly "deepseek-v3": import("@ai-sdk/provider").LanguageModelV2;
4
- readonly "deepseek-r1": import("@ai-sdk/provider").LanguageModelV2;
5
- readonly "deepseek-v3-free": import("@ai-sdk/provider").LanguageModelV2;
6
- readonly "deepseek-r1-free": import("@ai-sdk/provider").LanguageModelV2;
7
- readonly "gemini-flash25": import("@ai-sdk/provider").LanguageModelV2;
8
- readonly "gemini-pro25": import("@ai-sdk/provider").LanguageModelV2;
9
- readonly sonnet4: import("@ai-sdk/provider").LanguageModelV2;
10
- readonly opus4: import("@ai-sdk/provider").LanguageModelV2;
11
- readonly "opus-4.1": import("@ai-sdk/provider").LanguageModelV2;
12
- readonly "gpt-4.1": import("@ai-sdk/provider").LanguageModelV2;
13
- readonly "kimi-k2": import("@ai-sdk/provider").LanguageModelV2;
14
- readonly "kimi-k2-free": import("@ai-sdk/provider").LanguageModelV2;
15
- readonly "devstral-medium": import("@ai-sdk/provider").LanguageModelV2;
16
- readonly "qwen3-coder": import("@ai-sdk/provider").LanguageModelV2;
17
- readonly "qwen3-coder-free": import("@ai-sdk/provider").LanguageModelV2;
18
- readonly "glm-4.5": import("@ai-sdk/provider").LanguageModelV2;
19
- readonly "gpt-5": import("@ai-sdk/provider").LanguageModelV2;
20
- readonly "gpt-5-mini": import("@ai-sdk/provider").LanguageModelV2;
21
- };
22
- type ModelName = `openrouter:${keyof typeof openrouterModels}`;
23
- export declare const openrouterModelNames: ModelName[];
24
- export declare const openrouterProvider: {
25
- openrouter: import("@ai-sdk/provider").ProviderV2 & {
26
- languageModel(modelId: "gpt-5" | "gpt-5-mini" | "gpt-4.1" | "deepseek-v3" | "deepseek-r1" | "deepseek-v3-free" | "deepseek-r1-free" | "gemini-flash25" | "gemini-pro25" | "sonnet4" | "opus4" | "opus-4.1" | "kimi-k2" | "kimi-k2-free" | "devstral-medium" | "qwen3-coder" | "qwen3-coder-free" | "glm-4.5"): import("@ai-sdk/provider").LanguageModelV2;
27
- textEmbeddingModel(modelId: string): import("@ai-sdk/provider").EmbeddingModelV2<string>;
28
- imageModel(modelId: string): import("@ai-sdk/provider").ImageModelV2;
29
- transcriptionModel(modelId: string): import("@ai-sdk/provider").TranscriptionModelV2;
30
- speechModel(modelId: string): import("@ai-sdk/provider").SpeechModelV2;
31
- };
32
- };
33
- export declare const openrouterModelRegistry: {
34
- [K in ModelName]: ModelMetadata<ModelName>;
35
- };
36
- export {};