@tyvm/knowhow 0.0.104 → 0.0.106

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 (233) hide show
  1. package/CONFIG.md +8 -5
  2. package/package.json +3 -2
  3. package/scripts/check-model-pricing.ts +509 -0
  4. package/scripts/compare-openrouter-coverage.ts +576 -0
  5. package/src/agents/base/base.ts +127 -2
  6. package/src/agents/tools/execCommand.ts +4 -0
  7. package/src/agents/tools/executeScript/definition.ts +1 -1
  8. package/src/agents/tools/index.ts +0 -1
  9. package/src/agents/tools/list.ts +3 -43
  10. package/src/agents/tools/writeFile.ts +1 -1
  11. package/src/auth/browserLogin.ts +9 -4
  12. package/src/chat/modules/RemoteSyncModule.ts +3 -0
  13. package/src/cli.ts +31 -1
  14. package/src/clients/cerebras.ts +10 -0
  15. package/src/clients/contextLimits.ts +7 -2
  16. package/src/clients/copilot.ts +23 -0
  17. package/src/clients/deepseek.ts +16 -0
  18. package/src/clients/fireworks.ts +15 -0
  19. package/src/clients/gemini.ts +45 -2
  20. package/src/clients/github.ts +16 -0
  21. package/src/clients/groq.ts +15 -0
  22. package/src/clients/http.ts +190 -6
  23. package/src/clients/index.ts +215 -9
  24. package/src/clients/llama.ts +16 -0
  25. package/src/clients/mistral.ts +16 -0
  26. package/src/clients/nvidia.ts +16 -0
  27. package/src/clients/openai.ts +41 -11
  28. package/src/clients/openrouter.ts +17 -0
  29. package/src/clients/pricing/anthropic.ts +105 -78
  30. package/src/clients/pricing/cerebras.ts +11 -0
  31. package/src/clients/pricing/copilot.ts +60 -0
  32. package/src/clients/pricing/deepseek.ts +15 -0
  33. package/src/clients/pricing/fireworks.ts +32 -0
  34. package/src/clients/pricing/github.ts +69 -0
  35. package/src/clients/pricing/google.ts +245 -206
  36. package/src/clients/pricing/groq.ts +56 -0
  37. package/src/clients/pricing/index.ts +43 -6
  38. package/src/clients/pricing/llama.ts +18 -0
  39. package/src/clients/pricing/mistral.ts +34 -0
  40. package/src/clients/pricing/models.ts +23 -0
  41. package/src/clients/pricing/nvidia.ts +102 -0
  42. package/src/clients/pricing/openai.ts +347 -171
  43. package/src/clients/pricing/openrouter.ts +36 -0
  44. package/src/clients/pricing/types.ts +110 -0
  45. package/src/clients/pricing/xai.ts +123 -66
  46. package/src/clients/types.ts +4 -0
  47. package/src/clients/xai.ts +152 -2
  48. package/src/fileSync.ts +8 -2
  49. package/src/login.ts +11 -3
  50. package/src/services/AgentSyncFs.ts +36 -12
  51. package/src/services/KnowhowClient.ts +11 -0
  52. package/src/services/LazyToolsService.ts +6 -0
  53. package/src/services/S3.ts +0 -7
  54. package/src/services/SyncedAgentWatcher.ts +13 -298
  55. package/src/services/index.ts +1 -0
  56. package/src/services/modules/index.ts +11 -2
  57. package/src/services/watchers/FsSyncer.ts +155 -0
  58. package/src/services/watchers/RemoteSyncer.ts +153 -0
  59. package/src/services/watchers/index.ts +2 -0
  60. package/src/types.ts +56 -279
  61. package/src/worker.ts +174 -0
  62. package/tests/clients/pricing.test.ts +37 -0
  63. package/tests/manual/clients/completions.json +838 -226
  64. package/tests/manual/clients/completions.test.ts +46 -31
  65. package/ts_build/package.json +3 -2
  66. package/ts_build/src/agents/base/base.d.ts +17 -1
  67. package/ts_build/src/agents/base/base.js +82 -1
  68. package/ts_build/src/agents/base/base.js.map +1 -1
  69. package/ts_build/src/agents/tools/execCommand.js +3 -0
  70. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  71. package/ts_build/src/agents/tools/executeScript/definition.js +1 -1
  72. package/ts_build/src/agents/tools/executeScript/definition.js.map +1 -1
  73. package/ts_build/src/agents/tools/index.d.ts +0 -1
  74. package/ts_build/src/agents/tools/index.js +0 -1
  75. package/ts_build/src/agents/tools/index.js.map +1 -1
  76. package/ts_build/src/agents/tools/list.js +3 -38
  77. package/ts_build/src/agents/tools/list.js.map +1 -1
  78. package/ts_build/src/agents/tools/visionTool.d.ts +1 -1
  79. package/ts_build/src/agents/tools/writeFile.js +1 -1
  80. package/ts_build/src/agents/tools/writeFile.js.map +1 -1
  81. package/ts_build/src/ai.d.ts +1 -1
  82. package/ts_build/src/auth/browserLogin.d.ts +2 -1
  83. package/ts_build/src/auth/browserLogin.js +10 -3
  84. package/ts_build/src/auth/browserLogin.js.map +1 -1
  85. package/ts_build/src/chat/modules/RemoteSyncModule.js +1 -0
  86. package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
  87. package/ts_build/src/cli.js +19 -0
  88. package/ts_build/src/cli.js.map +1 -1
  89. package/ts_build/src/clients/anthropic.d.ts +1 -82
  90. package/ts_build/src/clients/cerebras.d.ts +4 -0
  91. package/ts_build/src/clients/cerebras.js +14 -0
  92. package/ts_build/src/clients/cerebras.js.map +1 -0
  93. package/ts_build/src/clients/contextLimits.js +7 -2
  94. package/ts_build/src/clients/contextLimits.js.map +1 -1
  95. package/ts_build/src/clients/copilot.d.ts +4 -0
  96. package/ts_build/src/clients/copilot.js +15 -0
  97. package/ts_build/src/clients/copilot.js.map +1 -0
  98. package/ts_build/src/clients/deepseek.d.ts +4 -0
  99. package/ts_build/src/clients/deepseek.js +15 -0
  100. package/ts_build/src/clients/deepseek.js.map +1 -0
  101. package/ts_build/src/clients/fireworks.d.ts +4 -0
  102. package/ts_build/src/clients/fireworks.js +15 -0
  103. package/ts_build/src/clients/fireworks.js.map +1 -0
  104. package/ts_build/src/clients/gemini.d.ts +1 -0
  105. package/ts_build/src/clients/gemini.js +28 -1
  106. package/ts_build/src/clients/gemini.js.map +1 -1
  107. package/ts_build/src/clients/github.d.ts +4 -0
  108. package/ts_build/src/clients/github.js +15 -0
  109. package/ts_build/src/clients/github.js.map +1 -0
  110. package/ts_build/src/clients/groq.d.ts +4 -0
  111. package/ts_build/src/clients/groq.js +15 -0
  112. package/ts_build/src/clients/groq.js.map +1 -0
  113. package/ts_build/src/clients/http.d.ts +22 -1
  114. package/ts_build/src/clients/http.js +132 -7
  115. package/ts_build/src/clients/http.js.map +1 -1
  116. package/ts_build/src/clients/index.d.ts +22 -0
  117. package/ts_build/src/clients/index.js +150 -5
  118. package/ts_build/src/clients/index.js.map +1 -1
  119. package/ts_build/src/clients/llama.d.ts +4 -0
  120. package/ts_build/src/clients/llama.js +15 -0
  121. package/ts_build/src/clients/llama.js.map +1 -0
  122. package/ts_build/src/clients/mistral.d.ts +4 -0
  123. package/ts_build/src/clients/mistral.js +15 -0
  124. package/ts_build/src/clients/mistral.js.map +1 -0
  125. package/ts_build/src/clients/nvidia.d.ts +4 -0
  126. package/ts_build/src/clients/nvidia.js +15 -0
  127. package/ts_build/src/clients/nvidia.js.map +1 -0
  128. package/ts_build/src/clients/openai.d.ts +4 -206
  129. package/ts_build/src/clients/openai.js +27 -9
  130. package/ts_build/src/clients/openai.js.map +1 -1
  131. package/ts_build/src/clients/openrouter.d.ts +4 -0
  132. package/ts_build/src/clients/openrouter.js +15 -0
  133. package/ts_build/src/clients/openrouter.js.map +1 -0
  134. package/ts_build/src/clients/pricing/anthropic.d.ts +26 -78
  135. package/ts_build/src/clients/pricing/anthropic.js +75 -78
  136. package/ts_build/src/clients/pricing/anthropic.js.map +1 -1
  137. package/ts_build/src/clients/pricing/cerebras.d.ts +4 -0
  138. package/ts_build/src/clients/pricing/cerebras.js +11 -0
  139. package/ts_build/src/clients/pricing/cerebras.js.map +1 -0
  140. package/ts_build/src/clients/pricing/copilot.d.ts +5 -0
  141. package/ts_build/src/clients/pricing/copilot.js +35 -0
  142. package/ts_build/src/clients/pricing/copilot.js.map +1 -0
  143. package/ts_build/src/clients/pricing/deepseek.d.ts +5 -0
  144. package/ts_build/src/clients/pricing/deepseek.js +10 -0
  145. package/ts_build/src/clients/pricing/deepseek.js.map +1 -0
  146. package/ts_build/src/clients/pricing/fireworks.d.ts +5 -0
  147. package/ts_build/src/clients/pricing/fireworks.js +21 -0
  148. package/ts_build/src/clients/pricing/fireworks.js.map +1 -0
  149. package/ts_build/src/clients/pricing/github.d.ts +4 -0
  150. package/ts_build/src/clients/pricing/github.js +58 -0
  151. package/ts_build/src/clients/pricing/github.js.map +1 -0
  152. package/ts_build/src/clients/pricing/google.d.ts +59 -6
  153. package/ts_build/src/clients/pricing/google.js +214 -167
  154. package/ts_build/src/clients/pricing/google.js.map +1 -1
  155. package/ts_build/src/clients/pricing/groq.d.ts +5 -0
  156. package/ts_build/src/clients/pricing/groq.js +41 -0
  157. package/ts_build/src/clients/pricing/groq.js.map +1 -0
  158. package/ts_build/src/clients/pricing/index.d.ts +17 -6
  159. package/ts_build/src/clients/pricing/index.js +65 -10
  160. package/ts_build/src/clients/pricing/index.js.map +1 -1
  161. package/ts_build/src/clients/pricing/llama.d.ts +4 -0
  162. package/ts_build/src/clients/pricing/llama.js +14 -0
  163. package/ts_build/src/clients/pricing/llama.js.map +1 -0
  164. package/ts_build/src/clients/pricing/mistral.d.ts +5 -0
  165. package/ts_build/src/clients/pricing/mistral.js +23 -0
  166. package/ts_build/src/clients/pricing/mistral.js.map +1 -0
  167. package/ts_build/src/clients/pricing/models.d.ts +9 -0
  168. package/ts_build/src/clients/pricing/models.js +19 -0
  169. package/ts_build/src/clients/pricing/models.js.map +1 -0
  170. package/ts_build/src/clients/pricing/nvidia.d.ts +8 -0
  171. package/ts_build/src/clients/pricing/nvidia.js +96 -0
  172. package/ts_build/src/clients/pricing/nvidia.js.map +1 -0
  173. package/ts_build/src/clients/pricing/openai.d.ts +86 -197
  174. package/ts_build/src/clients/pricing/openai.js +294 -168
  175. package/ts_build/src/clients/pricing/openai.js.map +1 -1
  176. package/ts_build/src/clients/pricing/openrouter.d.ts +4 -0
  177. package/ts_build/src/clients/pricing/openrouter.js +29 -0
  178. package/ts_build/src/clients/pricing/openrouter.js.map +1 -0
  179. package/ts_build/src/clients/pricing/types.d.ts +46 -0
  180. package/ts_build/src/clients/pricing/types.js +49 -0
  181. package/ts_build/src/clients/pricing/types.js.map +1 -0
  182. package/ts_build/src/clients/pricing/xai.d.ts +39 -64
  183. package/ts_build/src/clients/pricing/xai.js +93 -60
  184. package/ts_build/src/clients/pricing/xai.js.map +1 -1
  185. package/ts_build/src/clients/types.d.ts +1 -0
  186. package/ts_build/src/clients/xai.d.ts +2 -58
  187. package/ts_build/src/clients/xai.js +123 -2
  188. package/ts_build/src/clients/xai.js.map +1 -1
  189. package/ts_build/src/fileSync.js +7 -2
  190. package/ts_build/src/fileSync.js.map +1 -1
  191. package/ts_build/src/login.js +8 -2
  192. package/ts_build/src/login.js.map +1 -1
  193. package/ts_build/src/services/AgentSyncFs.js +1 -0
  194. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  195. package/ts_build/src/services/KnowhowClient.d.ts +1 -0
  196. package/ts_build/src/services/KnowhowClient.js +7 -0
  197. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  198. package/ts_build/src/services/LazyToolsService.d.ts +1 -0
  199. package/ts_build/src/services/LazyToolsService.js +3 -0
  200. package/ts_build/src/services/LazyToolsService.js.map +1 -1
  201. package/ts_build/src/services/S3.js +0 -7
  202. package/ts_build/src/services/S3.js.map +1 -1
  203. package/ts_build/src/services/SyncedAgentWatcher.d.ts +0 -51
  204. package/ts_build/src/services/SyncedAgentWatcher.js +1 -282
  205. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
  206. package/ts_build/src/services/index.d.ts +1 -0
  207. package/ts_build/src/services/index.js +1 -0
  208. package/ts_build/src/services/index.js.map +1 -1
  209. package/ts_build/src/services/modules/index.js +41 -1
  210. package/ts_build/src/services/modules/index.js.map +1 -1
  211. package/ts_build/src/services/watchers/FsSyncer.d.ts +27 -0
  212. package/ts_build/src/services/watchers/FsSyncer.js +135 -0
  213. package/ts_build/src/services/watchers/FsSyncer.js.map +1 -0
  214. package/ts_build/src/services/watchers/RemoteSyncer.d.ts +28 -0
  215. package/ts_build/src/services/watchers/RemoteSyncer.js +126 -0
  216. package/ts_build/src/services/watchers/RemoteSyncer.js.map +1 -0
  217. package/ts_build/src/services/watchers/index.d.ts +2 -0
  218. package/ts_build/src/services/watchers/index.js +19 -0
  219. package/ts_build/src/services/watchers/index.js.map +1 -0
  220. package/ts_build/src/types.d.ts +163 -124
  221. package/ts_build/src/types.js +33 -213
  222. package/ts_build/src/types.js.map +1 -1
  223. package/ts_build/src/worker.d.ts +4 -0
  224. package/ts_build/src/worker.js +140 -0
  225. package/ts_build/src/worker.js.map +1 -1
  226. package/ts_build/tests/clients/pricing.test.js +21 -0
  227. package/ts_build/tests/clients/pricing.test.js.map +1 -1
  228. package/ts_build/tests/manual/clients/completions.test.js +27 -24
  229. package/ts_build/tests/manual/clients/completions.test.js.map +1 -1
  230. package/src/clients/pricing/catalog.ts +0 -287
  231. package/ts_build/src/clients/pricing/catalog.d.ts +0 -28
  232. package/ts_build/src/clients/pricing/catalog.js +0 -179
  233. package/ts_build/src/clients/pricing/catalog.js.map +0 -1
@@ -1,236 +1,275 @@
1
- import { Models, EmbeddingModels } from "../../types";
2
-
3
1
  /**
4
- * Gemini model pricing per 1M tokens (USD).
5
- *
6
- * Many models have modality-dependent pricing:
7
- * - `input`: text / image / video input rate
8
- * - `input_audio`: audio input rate (if different from text)
9
- * - `output`: text output rate
10
- * - `output_audio`: audio output rate (if different from text)
11
- * - `context_caching`: context cache read rate (text/image/video)
12
- * - `context_caching_audio`: context cache read rate for audio tokens
13
- * - `context_caching_gt_200k`: rate for prompts > 200k tokens
14
- * - `context_caching_storage`: storage cost per 1M tokens per hour
15
- * - `image_generation`: per-image cost for image output models
16
- * - `video_generation`: per-second cost for video generation models
2
+ * Google model IDs, pricing, and catalog.
3
+ * Single source of truth for all Google/Gemini models.
17
4
  */
18
- export interface GeminiModelPricing {
19
- input?: number;
5
+ import { completions, embeddings, images, videos, audios, liveApi, ModelCatalogEntry, ModelPricing } from "./types";
6
+
7
+ // ─── Model IDs ────────────────────────────────────────────────────────────────
8
+
9
+ export const GoogleModels = {
10
+ // Gemini 3.x
11
+ Gemini_31_Pro_Preview: "gemini-3.1-pro-preview",
12
+ Gemini_31_Flash_Image_Preview: "gemini-3.1-flash-image-preview",
13
+ Gemini_31_Flash_Lite_Preview: "gemini-3.1-flash-lite-preview",
14
+ Gemini_31_Flash_Live_Preview: "gemini-3.1-flash-live-preview",
15
+ Gemini_3_Flash_Preview: "gemini-3-flash-preview",
16
+ Gemini_3_Pro_Image_Preview: "gemini-3-pro-image-preview",
17
+ // Gemini 2.5
18
+ Gemini_25_Pro: "gemini-2.5-pro",
19
+ Gemini_25_Flash: "gemini-2.5-flash",
20
+ Gemini_25_Flash_Lite: "gemini-2.5-flash-lite",
21
+ Gemini_25_Flash_Preview: "gemini-2.5-flash-preview-05-20",
22
+ Gemini_25_Flash_Preview_0417: "gemini-2.5-flash-preview-04-17",
23
+ Gemini_25_Pro_Preview: "gemini-2.5-pro-preview-05-06",
24
+ Gemini_25_Flash_Image: "gemini-2.5-flash-image",
25
+ Gemini_25_Flash_Image_Preview: "gemini-2.5-flash-image-preview",
26
+ Gemini_25_Flash_Live: "gemini-2.5-flash-live-preview",
27
+ Gemini_25_Flash_Native_Audio: "gemini-2.5-flash-native-audio-preview-12-2025",
28
+ Gemini_25_Pro_TTS: "gemini-2.5-pro-preview-tts",
29
+ // Gemini 2.0
30
+ Gemini_20_Flash: "gemini-2.0-flash",
31
+ Gemini_20_Flash_Preview_Image_Generation: "gemini-2.0-flash-exp-image-generation",
32
+ Gemini_20_Flash_Live: "gemini-2.0-flash-live-001",
33
+ // Gemini 1.5 (legacy)
34
+ Gemini_15_Flash: "gemini-1.5-flash",
35
+ Gemini_15_Flash_8B: "gemini-1.5-flash-8b",
36
+ Gemini_15_Pro: "gemini-1.5-pro",
37
+ // Media generation
38
+ Imagen_3: "imagen-4.0-generate-001",
39
+ Imagen_4_Fast: "imagen-4.0-fast-generate-001",
40
+ Imagen_4_Ultra: "imagen-4.0-ultra-generate-001",
41
+ Veo_2: "veo-2.0-generate-001",
42
+ Veo_3: "veo-3.0-generate-001",
43
+ Veo_3_Fast: "veo-3.0-fast-generate-001",
44
+ Veo_3_1: "veo-3.1-generate-preview",
45
+ Veo_3_1_Fast: "veo-3.1-fast-generate-preview",
46
+ // Audio / TTS
47
+ Gemini_25_Flash_TTS: "gemini-2.5-flash-preview-tts",
48
+ Gemini_20_Flash_TTS: "gemini-2.0-flash-preview-tts",
49
+ } as const;
50
+
51
+ // ─── Gemma models (free via Google AI / NVIDIA NIM) ───────────────────────────
52
+ export const GemmaModels = {
53
+ Gemma_3_27B_It: "gemma-3-27b-it",
54
+ Gemma_3_12B_It: "gemma-3-12b-it",
55
+ Gemma_3_4B_It: "gemma-3-4b-it",
56
+ Gemma_3n_E2B_It: "gemma-3n-e2b-it",
57
+ Gemma_3n_E4B_It: "gemma-3n-e4b-it",
58
+ Gemma_4_26B_A4B_It: "gemma-4-26b-a4b-it",
59
+ Gemma_4_31B_It: "gemma-4-31b-it",
60
+ } as const;
61
+
62
+ export const GoogleEmbeddingModels: Record<string, string> = {
63
+ Gemini_Embedding: "gemini-embedding-exp",
64
+ Gemini_Embedding_001: "gemini-embedding-001",
65
+ };
66
+
67
+ // ─── Modality arrays ──────────────────────────────────────────────────────────
68
+
69
+ export const GoogleTextModels: string[] = [
70
+ GoogleModels.Gemini_31_Pro_Preview,
71
+ GoogleModels.Gemini_31_Flash_Lite_Preview,
72
+ GoogleModels.Gemini_25_Pro,
73
+ GoogleModels.Gemini_25_Flash,
74
+ GoogleModels.Gemini_25_Flash_Lite,
75
+ GoogleModels.Gemini_20_Flash,
76
+ ];
77
+
78
+ // Models that support thinkingLevel (Gemini 3.x series)
79
+ export const GoogleThinkingLevelModels: string[] = [
80
+ GoogleModels.Gemini_31_Pro_Preview,
81
+ GoogleModels.Gemini_31_Flash_Lite_Preview,
82
+ GoogleModels.Gemini_3_Flash_Preview,
83
+ ];
84
+
85
+ // Models that support thinkingBudget (Gemini 2.5 series)
86
+ export const GoogleThinkingBudgetModels: string[] = [
87
+ GoogleModels.Gemini_25_Pro,
88
+ GoogleModels.Gemini_25_Flash,
89
+ GoogleModels.Gemini_25_Flash_Lite,
90
+ GoogleModels.Gemini_25_Flash_Preview,
91
+ GoogleModels.Gemini_25_Flash_Preview_0417,
92
+ GoogleModels.Gemini_25_Pro_Preview,
93
+ ];
94
+
95
+ // Live API only — not compatible with generateContent (text completions)
96
+ export const GoogleLiveApiModels: string[] = [
97
+ GoogleModels.Gemini_31_Flash_Live_Preview,
98
+ GoogleModels.Gemini_25_Flash_Live,
99
+ GoogleModels.Gemini_25_Flash_Native_Audio,
100
+ GoogleModels.Gemini_20_Flash_Live,
101
+ ];
102
+
103
+ // Limited availability — exist in catalog but return empty or restricted responses
104
+ export const GoogleLimitedModels: string[] = [
105
+ GoogleModels.Gemini_3_Flash_Preview,
106
+ ];
107
+
108
+ // All deprecated/legacy models — metadata is embedded in GeminiPricing entries
109
+ const GoogleAllDeprecatedModels: string[] = [
110
+ // Deprecated previews (shutdownDate + replacedBy in GeminiPricing)
111
+ GoogleModels.Gemini_25_Flash_Preview,
112
+ GoogleModels.Gemini_25_Flash_Preview_0417,
113
+ GoogleModels.Gemini_25_Pro_Preview,
114
+ // Legacy (Gemini 1.5 — returning 404)
115
+ GoogleModels.Gemini_15_Flash,
116
+ GoogleModels.Gemini_15_Flash_8B,
117
+ GoogleModels.Gemini_15_Pro,
118
+ ];
119
+
120
+ export const GemmaTextModels: string[] = [
121
+ GemmaModels.Gemma_3_27B_It,
122
+ GemmaModels.Gemma_3_12B_It,
123
+ GemmaModels.Gemma_3_4B_It,
124
+ GemmaModels.Gemma_3n_E2B_It,
125
+ GemmaModels.Gemma_3n_E4B_It,
126
+ GemmaModels.Gemma_4_26B_A4B_It,
127
+ GemmaModels.Gemma_4_31B_It,
128
+ ];
129
+
130
+ export const GoogleImageModels: string[] = [
131
+ GoogleModels.Gemini_31_Flash_Image_Preview,
132
+ GoogleModels.Gemini_3_Pro_Image_Preview,
133
+ GoogleModels.Gemini_25_Flash_Image,
134
+ GoogleModels.Gemini_25_Flash_Image_Preview,
135
+ GoogleModels.Gemini_20_Flash_Preview_Image_Generation,
136
+ GoogleModels.Imagen_3,
137
+ GoogleModels.Imagen_4_Fast,
138
+ GoogleModels.Imagen_4_Ultra,
139
+ ];
140
+
141
+ export const GoogleVideoModels: string[] = [
142
+ GoogleModels.Veo_2,
143
+ GoogleModels.Veo_3,
144
+ GoogleModels.Veo_3_Fast,
145
+ GoogleModels.Veo_3_1,
146
+ GoogleModels.Veo_3_1_Fast,
147
+ ];
148
+
149
+ export const GoogleTTSModels: string[] = [
150
+ GoogleModels.Gemini_25_Flash_TTS,
151
+ GoogleModels.Gemini_25_Pro_TTS,
152
+ GoogleModels.Gemini_20_Flash_TTS,
153
+ ];
154
+
155
+ export const GoogleEmbeddingModelsList: string[] = [
156
+ GoogleEmbeddingModels.Gemini_Embedding,
157
+ GoogleEmbeddingModels.Gemini_Embedding_001,
158
+ ];
159
+
160
+ // ─── Pricing ──────────────────────────────────────────────────────────────────
161
+
162
+ export interface GeminiModelPricing extends ModelPricing {
20
163
  input_audio?: number;
21
164
  input_gt_200k?: number;
22
- output?: number;
23
- output_audio?: number;
24
165
  output_gt_200k?: number;
25
166
  context_caching?: number;
26
167
  context_caching_audio?: number;
27
168
  context_caching_gt_200k?: number;
28
- context_caching_storage?: number; // per 1M tokens per hour
29
- image_generation?: number;
30
- video_generation?: number;
169
+ context_caching_storage?: number;
31
170
  thinking_output?: number;
32
171
  }
33
172
 
34
173
  export const GeminiPricing: Record<string, GeminiModelPricing> = {
35
- // ── Gemini 3.x ────────────────────────────────────────────────────────────
36
- [Models.google.Gemini_31_Pro_Preview]: {
37
- input: 2,
38
- input_gt_200k: 4,
39
- output: 12,
40
- output_gt_200k: 18,
41
- context_caching: 0.2,
42
- context_caching_gt_200k: 0.4,
43
- context_caching_storage: 4.5,
44
- },
45
- // gemini-3.1-flash-image-preview: text/image input, text+image output
46
- [Models.google.Gemini_31_Flash_Image_Preview]: {
47
- input: 0.5,
48
- output: 3,
49
- image_generation: 0.045, // per 0.5K image ($60/1M tokens × 747 tokens)
174
+ [GoogleModels.Gemini_31_Pro_Preview]: {
175
+ input: 2, input_gt_200k: 4, output: 12, output_gt_200k: 18,
176
+ context_caching: 0.2, context_caching_gt_200k: 0.4, context_caching_storage: 4.5,
50
177
  },
51
- // gemini-3.1-flash-lite-preview: audio input costs 2× text
52
- [Models.google.Gemini_31_Flash_Lite_Preview]: {
53
- input: 0.25,
54
- input_audio: 0.5,
55
- output: 1.5,
56
- context_caching: 0.025,
57
- context_caching_audio: 0.05,
58
- context_caching_storage: 1.0,
178
+ [GoogleModels.Gemini_31_Flash_Image_Preview]: {
179
+ input: 0.25, output: 60.0, image_generation: 0.045, image_generation_per_1m_tokens: 60.0,
59
180
  },
60
- // gemini-3.1-flash-live-preview: Live API, per-modality rates
61
- // Input: $0.75 text, $3.00 audio/video, $1.00 image
62
- // Output: $4.50 text, $12.00 audio
63
- [Models.google.Gemini_31_Flash_Live_Preview]: {
64
- input: 0.75, // text
65
- input_audio: 3.0, // audio / video
66
- output: 4.5, // text
67
- output_audio: 12.0, // audio
181
+ [GoogleModels.Gemini_31_Flash_Lite_Preview]: {
182
+ input: 0.25, input_audio: 0.5, output: 1.5,
183
+ context_caching: 0.025, context_caching_audio: 0.05, context_caching_storage: 1.0,
68
184
  },
69
- // gemini-3-flash-preview: audio input costs 2× text
70
- [Models.google.Gemini_3_Flash_Preview]: {
71
- input: 0.5,
72
- input_audio: 1.0,
73
- output: 3.0,
74
- context_caching: 0.05,
75
- context_caching_audio: 0.10,
76
- context_caching_storage: 1.0,
185
+ [GoogleModels.Gemini_31_Flash_Live_Preview]: {
186
+ input: 0.75, input_audio: 3.0, output: 4.5, output_audio: 12.0,
77
187
  },
78
- // gemini-3-pro-image-preview: text+image input, text+image output
79
- [Models.google.Gemini_3_Pro_Image_Preview]: {
80
- input: 2,
81
- output: 12,
82
- image_generation: 0.134, // per 1K/2K image ($120/1M tokens × 1120 tokens)
188
+ [GoogleModels.Gemini_3_Flash_Preview]: {
189
+ input: 0.5, input_audio: 1.0, output: 3.0,
190
+ context_caching: 0.05, context_caching_audio: 0.10, context_caching_storage: 1.0,
191
+ limitedAvailability: true,
83
192
  },
84
-
85
- // ── Gemini 2.5 ────────────────────────────────────────────────────────────
86
- [Models.google.Gemini_25_Pro]: {
87
- input: 1.25,
88
- input_gt_200k: 2.5,
89
- output: 10.0,
90
- output_gt_200k: 15.0,
91
- context_caching: 0.125,
92
- context_caching_gt_200k: 0.25,
93
- context_caching_storage: 4.5,
94
- },
95
- // gemini-2.5-flash: audio input costs 3.3× text; audio caching 3.3× text
96
- [Models.google.Gemini_25_Flash]: {
97
- input: 0.3,
98
- input_audio: 1.0,
99
- output: 2.5,
100
- context_caching: 0.03,
101
- context_caching_audio: 0.1,
102
- context_caching_storage: 1.0,
193
+ [GoogleModels.Gemini_3_Pro_Image_Preview]: {
194
+ input: 2, output: 12, image_generation: 0.134,
103
195
  },
104
- // gemini-2.5-flash-lite: audio input costs 3× text; audio caching 3× text
105
- [Models.google.Gemini_25_Flash_Lite]: {
106
- input: 0.1,
107
- input_audio: 0.3,
108
- output: 0.4,
109
- context_caching: 0.01,
110
- context_caching_audio: 0.03,
111
- context_caching_storage: 1.0,
196
+ [GoogleModels.Gemini_25_Pro]: {
197
+ input: 1.25, input_gt_200k: 2.5, output: 10.0, output_gt_200k: 15.0,
198
+ context_caching: 0.125, context_caching_gt_200k: 0.25, context_caching_storage: 4.5,
112
199
  },
113
- // gemini-2.5-flash-preview-05-20: same modality splits as 2.5 Flash
114
- [Models.google.Gemini_25_Flash_Preview]: {
115
- input: 0.3,
116
- input_audio: 1.0,
117
- output: 2.5,
118
- context_caching: 0.03,
119
- context_caching_audio: 0.1,
120
- context_caching_storage: 1.0,
200
+ [GoogleModels.Gemini_25_Flash]: {
201
+ input: 0.3, input_audio: 1.0, output: 2.5,
202
+ context_caching: 0.03, context_caching_audio: 0.1, context_caching_storage: 1.0,
121
203
  },
122
- [Models.google.Gemini_25_Pro_Preview]: {
123
- input: 1.25,
124
- input_gt_200k: 2.5,
125
- output: 10.0,
126
- output_gt_200k: 15.0,
127
- context_caching: 0.125,
128
- context_caching_gt_200k: 0.25,
129
- context_caching_storage: 4.5,
204
+ [GoogleModels.Gemini_25_Flash_Lite]: {
205
+ input: 0.1, input_audio: 0.3, output: 0.4,
206
+ context_caching: 0.01, context_caching_audio: 0.03, context_caching_storage: 1.0,
130
207
  },
131
- // gemini-2.5-flash-image: image output model, per-image pricing
132
- [Models.google.Gemini_25_Flash_Image]: {
133
- input: 0.3,
134
- output: 0.039, // per image ($30/1M tokens × 1290 tokens)
208
+ [GoogleModels.Gemini_25_Flash_Preview_0417]: { input: 0.15, output: 0.60, context_caching: 0.0375, deprecated: true, deprecationDate: "2025-11-18", replacedBy: GoogleModels.Gemini_3_Flash_Preview },
209
+ [GoogleModels.Gemini_25_Flash_Preview]: {
210
+ input: 0.15, input_audio: 0.5, output: 0.60, context_caching: 0.0375, deprecated: true, deprecationDate: "2025-11-18", replacedBy: GoogleModels.Gemini_3_Flash_Preview,
135
211
  },
136
- // gemini-2.5-flash-live / gemini-2.5-flash-native-audio-preview-12-2025:
137
- // Live API models audio I/O costs dramatically more than text
138
- // Input: $0.50 text, $3.00 audio/video
139
- // Output: $2.00 text, $12.00 audio
140
- [Models.google.Gemini_25_Flash_Live]: {
141
- input: 0.5,
142
- input_audio: 3.0,
143
- output: 2.0,
144
- output_audio: 12.0,
212
+ [GoogleModels.Gemini_25_Pro_Preview]: {
213
+ input: 1.25, input_gt_200k: 2.5, output: 10.0, output_gt_200k: 15.0,
214
+ context_caching: 0.125, context_caching_gt_200k: 0.25, context_caching_storage: 4.5,
215
+ deprecated: true, deprecationDate: "2025-12-02", replacedBy: GoogleModels.Gemini_31_Pro_Preview,
145
216
  },
146
- [Models.google.Gemini_25_Flash_Native_Audio]: {
147
- input: 0.5,
148
- input_audio: 3.0,
149
- output: 2.0,
150
- output_audio: 12.0,
217
+ [GoogleModels.Gemini_25_Flash_Image]: {
218
+ input: 0.3, output: 30.0, image_generation: 0.039, image_generation_per_1m_tokens: 30.0,
151
219
  },
152
- // TTS models: text-only input, audio-only output
153
- [Models.google.Gemini_25_Flash_TTS]: {
154
- input: 0.5,
155
- output_audio: 10.0,
220
+ [GoogleModels.Gemini_25_Flash_Image_Preview]: {
221
+ input: 0.3, output: 30.0, image_generation: 0.039, image_generation_per_1m_tokens: 30.0,
156
222
  },
157
- [Models.google.Gemini_25_Pro_TTS]: {
158
- input: 1.0,
159
- output_audio: 20.0,
160
- },
161
-
162
- // ── Gemini 2.0 (deprecated) ───────────────────────────────────────────────
163
- // gemini-2.0-flash: audio input costs 7× text; audio caching costs 7× text
164
- [Models.google.Gemini_20_Flash]: {
165
- input: 0.1,
166
- input_audio: 0.7,
167
- output: 0.4,
168
- context_caching: 0.025,
169
- context_caching_audio: 0.175,
170
- context_caching_storage: 1.0,
171
- },
172
- [Models.google.Gemini_20_Flash_Preview_Image_Generation]: {
173
- input: 0.1,
174
- output: 0.4,
175
- image_generation: 0.039,
176
- },
177
-
178
- // ── Gemini 1.5 (legacy) ───────────────────────────────────────────────────
179
- [Models.google.Gemini_15_Flash]: {
180
- input: 0.075,
181
- output: 0.3,
182
- context_caching: 0.01875,
183
- },
184
- [Models.google.Gemini_15_Flash_8B]: {
185
- input: 0.0375,
186
- output: 0.15,
187
- context_caching: 0.01,
188
- },
189
- [Models.google.Gemini_15_Pro]: {
190
- input: 1.25,
191
- output: 5.0,
192
- context_caching: 0.3125,
193
- },
194
-
195
- // ── Image generation ──────────────────────────────────────────────────────
196
- [Models.google.Imagen_3]: {
197
- image_generation: 0.04, // $0.04/image (Imagen 4 Standard)
198
- },
199
- [Models.google.Imagen_4_Fast]: {
200
- image_generation: 0.02,
201
- },
202
- [Models.google.Imagen_4_Ultra]: {
203
- image_generation: 0.06,
204
- },
205
-
206
- // ── Video generation ──────────────────────────────────────────────────────
207
- [Models.google.Veo_2]: {
208
- video_generation: 0.35, // per second
209
- },
210
- [Models.google.Veo_3]: {
211
- video_generation: 0.4,
212
- },
213
- [Models.google.Veo_3_Fast]: {
214
- video_generation: 0.1, // 720p base rate; 1080p=$0.12, 4k=$0.30 not expressible here
215
- },
216
- [Models.google.Veo_3_1]: {
217
- video_generation: 0.4, // 720p/1080p; 4k=$0.60 not expressible as single scalar
218
- },
219
- [Models.google.Veo_3_1_Fast]: {
220
- video_generation: 0.1, // 720p base; 1080p=$0.12, 4k=$0.30
223
+ [GoogleModels.Gemini_25_Flash_Live]: { input: 0.5, input_audio: 3.0, output: 2.0, output_audio: 12.0 },
224
+ [GoogleModels.Gemini_25_Flash_Native_Audio]: { input: 0.5, input_audio: 3.0, output: 2.0, output_audio: 12.0 },
225
+ [GoogleModels.Gemini_25_Flash_TTS]: { input: 0.5, output_audio: 10.0, output: 10.0 },
226
+ [GoogleModels.Gemini_25_Pro_TTS]: { input: 1.0, output_audio: 20.0, output: 20.0 },
227
+ [GoogleModels.Gemini_20_Flash_TTS]: { input: 0.1, output_audio: 4.0, output: 4.0 },
228
+ [GoogleModels.Gemini_20_Flash]: {
229
+ input: 0.1, input_audio: 0.7, output: 0.4,
230
+ context_caching: 0.025, context_caching_audio: 0.175, context_caching_storage: 1.0,
221
231
  },
232
+ [GoogleModels.Gemini_20_Flash_Preview_Image_Generation]: { input: 0.1, output: 0.4, image_generation: 0.039 },
233
+ [GoogleModels.Gemini_20_Flash_Live]: { input: 0.1, output: 0.4 },
234
+ [GoogleModels.Gemini_15_Flash]: { input: 0.075, output: 0.3, context_caching: 0.01875, deprecated: true },
235
+ [GoogleModels.Gemini_15_Flash_8B]:{ input: 0.0375, output: 0.15, context_caching: 0.01, deprecated: true },
236
+ [GoogleModels.Gemini_15_Pro]: { input: 1.25, output: 5.0, context_caching: 0.3125, deprecated: true },
237
+ [GoogleModels.Imagen_3]: { image_generation: 0.04 },
238
+ [GoogleModels.Imagen_4_Fast]: { image_generation: 0.02 },
239
+ [GoogleModels.Imagen_4_Ultra]: { image_generation: 0.06 },
240
+ [GoogleModels.Veo_2]: { video_generation: 0.35 },
241
+ [GoogleModels.Veo_3]: { video_generation: 0.4 },
242
+ [GoogleModels.Veo_3_Fast]: { video_generation: 0.1 },
243
+ [GoogleModels.Veo_3_1]: { video_generation: 0.4 },
244
+ [GoogleModels.Veo_3_1_Fast]: { video_generation: 0.1 },
245
+ [GoogleEmbeddingModels.Gemini_Embedding]: { input: 0 },
246
+ [GoogleEmbeddingModels.Gemini_Embedding_001]: { input: 0.15 },
247
+ };
222
248
 
223
- // ── Embeddings ────────────────────────────────────────────────────────────
224
- [EmbeddingModels.google.Gemini_Embedding]: {
225
- input: 0, // Free of charge
226
- },
227
- [EmbeddingModels.google.Gemini_Embedding_001]: {
228
- input: 0.15,
229
- },
249
+ // ─── Gemma pricing (free via Google AI) ──────────────────────────────────────
250
+ export const GemmaPricing: Record<string, GeminiModelPricing> = {
251
+ [GemmaModels.Gemma_3_27B_It]: { input: 0.0, output: 0.0 },
252
+ [GemmaModels.Gemma_3_12B_It]: { input: 0.0, output: 0.0 },
253
+ [GemmaModels.Gemma_3_4B_It]: { input: 0.0, output: 0.0 },
254
+ [GemmaModels.Gemma_3n_E2B_It]: { input: 0.0, output: 0.0 },
255
+ [GemmaModels.Gemma_3n_E4B_It]: { input: 0.0, output: 0.0 },
256
+ [GemmaModels.Gemma_4_26B_A4B_It]: { input: 0.0, output: 0.0 },
257
+ [GemmaModels.Gemma_4_31B_It]: { input: 0.0, output: 0.0 },
230
258
  };
231
259
 
232
- /**
233
- * @deprecated Use GeminiPricing instead.
234
- * Kept as alias for backwards compatibility.
235
- */
260
+ /** @deprecated Use GeminiPricing instead. */
236
261
  export const GeminiTextPricing = GeminiPricing;
262
+
263
+ // ─── Catalog ──────────────────────────────────────────────────────────────────
264
+ // Metadata (deprecated, deprecationDate, limitedAvailability, replacedBy) is
265
+ // read directly from the GeminiPricing entries — no need for separate groups.
266
+
267
+ export const GOOGLE_MODEL_CATALOG: ModelCatalogEntry[] = [
268
+ ...completions([...GoogleTextModels, ...GoogleLimitedModels, ...GoogleAllDeprecatedModels], "google", GeminiPricing),
269
+ ...liveApi(GoogleLiveApiModels, "google", GeminiPricing),
270
+ ...embeddings(GoogleEmbeddingModelsList, "google", GeminiPricing),
271
+ ...images(GoogleImageModels, "google", GeminiPricing),
272
+ ...videos(GoogleVideoModels, "google", GeminiPricing),
273
+ ...completions(GemmaTextModels, "google", GemmaPricing),
274
+ ...audios(GoogleTTSModels, "google", GeminiPricing),
275
+ ];
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Groq pricing (USD per 1M tokens)
3
+ * Source: https://groq.com/pricing
4
+ */
5
+ export const GroqTextPricing: Record<string, { input: number; output: number; cached_input?: number }> = {
6
+ // Llama 4
7
+ "meta-llama/llama-4-scout-17b-16e-instruct": { input: 0.11, output: 0.34 },
8
+ "meta-llama/llama-4-maverick-17b-128e-instruct": { input: 0.20, output: 0.60 },
9
+ // Llama Guard / Prompt Guard
10
+ "llama-guard-3-8b": { input: 0.20, output: 0.20 },
11
+ "meta-llama/llama-guard-4-12b": { input: 0.20, output: 0.20 },
12
+ "meta-llama/llama-prompt-guard-2-22m": { input: 0.03, output: 0.03 },
13
+ "meta-llama/llama-prompt-guard-2-86m": { input: 0.04, output: 0.04 },
14
+ // Llama 3.3
15
+ "llama-3.3-70b-versatile": { input: 0.59, output: 0.79 },
16
+ "llama-3.3-70b-specdec": { input: 0.59, output: 0.99 },
17
+ // Llama 3.1
18
+ "llama-3.1-8b-instant": { input: 0.05, output: 0.08 },
19
+ "llama3-70b-8192": { input: 0.59, output: 0.79 },
20
+ "llama3-8b-8192": { input: 0.05, output: 0.08 },
21
+ // DeepSeek
22
+ "deepseek-r1-distill-llama-70b": { input: 0.75, output: 0.99 },
23
+ // Gemma
24
+ "gemma2-9b-it": { input: 0.20, output: 0.20 },
25
+ // Mistral
26
+ "mistral-saba-24b": { input: 0.79, output: 0.79 },
27
+ // Compound
28
+ "compound-beta": { input: 0.0, output: 0.0 },
29
+ // Groq compound (newer aliases)
30
+ "groq/compound": { input: 0.0, output: 0.0 },
31
+ "groq/compound-mini": { input: 0.0, output: 0.0 },
32
+ "compound-beta-mini": { input: 0.0, output: 0.0 },
33
+ // Allam (free)
34
+ "allam-2-7b": { input: 0.0, output: 0.0 },
35
+ // Qwen
36
+ "qwen-qwq-32b": { input: 0.29, output: 0.39 },
37
+ "qwen-2.5-32b": { input: 0.79, output: 0.79 },
38
+ "qwen-2.5-coder-32b": { input: 0.79, output: 0.79 },
39
+ "qwen/qwen3-32b": { input: 0.29, output: 0.59 },
40
+ // MoonshotAI
41
+ "moonshotai/kimi-k2-instruct": { input: 1.0, output: 3.0 },
42
+ "moonshotai/kimi-k2-instruct-0905": { input: 1.0, output: 3.0 },
43
+ // OpenAI OSS models on Groq
44
+ "openai/gpt-oss-120b": { input: 0.15, output: 0.60 },
45
+ "openai/gpt-oss-20b": { input: 0.075, output: 0.30 },
46
+ "openai/gpt-oss-safeguard-20b": { input: 0.075, output: 0.30 },
47
+ // Canopy Labs Orpheus (TTS/speech)
48
+ "canopylabs/orpheus-arabic-saudi": { input: 40.0, output: 0.0 },
49
+ "canopylabs/orpheus-v1-english": { input: 0.0, output: 0.0 },
50
+ // Audio / TTS (free)
51
+ "whisper-large-v3": { input: 0.0, output: 0.0 },
52
+ "whisper-large-v3-turbo": { input: 0.0, output: 0.0 },
53
+ "distil-whisper-large-v3-en": { input: 0.0, output: 0.0 },
54
+ "playai-tts": { input: 0.0, output: 0.0 },
55
+ "playai-tts-arabic": { input: 0.0, output: 0.0 },
56
+ };
@@ -1,6 +1,43 @@
1
- export { OpenAiTextPricing } from "./openai";
2
- export { GeminiTextPricing } from "./google";
3
- export { AnthropicTextPricing } from "./anthropic";
4
- export { XaiTextPricing, XaiImagePricing, XaiVideoPricing } from "./xai";
5
- export { ALL_MODEL_CATALOG, OPENAI_MODEL_CATALOG, ANTHROPIC_MODEL_CATALOG, GOOGLE_MODEL_CATALOG, XAI_MODEL_CATALOG, USAGE_MARKUP_PERCENT } from "./catalog";
6
- export type { ModelCatalogEntry, ModelType, ModelPricing as CatalogModelPricing } from "./catalog";
1
+ // ─── Per-provider model IDs, pricing, and catalogs ───────────────────────────
2
+ export {
3
+ OpenAiModels, OpenAiEmbeddingModels,
4
+ OpenAiTextPricing, OPENAI_MODEL_CATALOG,
5
+ OpenAiReasoningModels, OpenAiChatModels, OpenAiEmbeddingModelsList,
6
+ OpenAiResponsesOnlyModels, OpenAiImageModels, OpenAiVideoModels,
7
+ OpenAiTTSModels, OpenAiTranscriptionModels, OpenAiRealtimeModels,
8
+ } from "./openai";
9
+
10
+ export {
11
+ AnthropicModels,
12
+ AnthropicTextPricing, ANTHROPIC_MODEL_CATALOG,
13
+ } from "./anthropic";
14
+
15
+ export {
16
+ GoogleModels, GoogleEmbeddingModels,
17
+ GeminiPricing, GeminiTextPricing, GOOGLE_MODEL_CATALOG,
18
+ GoogleTextModels, GoogleImageModels, GoogleVideoModels,
19
+ GoogleTTSModels, GoogleEmbeddingModelsList,
20
+ } from "./google";
21
+
22
+ export {
23
+ XaiModels,
24
+ XaiTextPricing, XaiImagePricing, XaiVideoPricing, XAI_MODEL_CATALOG,
25
+ XaiTextModels, XaiImageModels, XaiVideoModels,
26
+ } from "./xai";
27
+
28
+ // ─── Other provider pricing ───────────────────────────────────────────────────
29
+ export { GroqTextPricing } from "./groq";
30
+ export { DeepSeekTextPricing } from "./deepseek";
31
+ export { CerebrasTextPricing } from "./cerebras";
32
+ export { MistralTextPricing } from "./mistral";
33
+ export { NvidiaTextPricing, NvidiaImagePricing } from "./nvidia";
34
+ export { GitHubModelsTextPricing } from "./github";
35
+ export { OpenRouterTextPricing } from "./openrouter";
36
+ export { LlamaTextPricing } from "./llama";
37
+ export { CopilotTextPricing, CopilotModelMultipliers } from "./copilot";
38
+ export { FireworksTextPricing } from "./fireworks";
39
+
40
+ // ─── Combined catalog ─────────────────────────────────────────────────────────
41
+ export { ALL_MODEL_CATALOG, USAGE_MARKUP_PERCENT } from "./models";
42
+ export type { ModelCatalogEntry, ModelType, ModelPricing as CatalogModelPricing } from "./types";
43
+ export { completions, embeddings, images, videos, audios, transactions, liveApi } from "./types";
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Meta Llama API pricing (USD per 1M tokens)
3
+ * Source: https://llama.developer.meta.com/docs/
4
+ * Free models available directly from Meta.
5
+ */
6
+ export const LlamaTextPricing: Record<string, { input: number; output: number }> = {
7
+ // Free models
8
+ "llama-3.3-70b-instruct": { input: 0.0, output: 0.0 },
9
+ "llama-3.3-8b-instruct": { input: 0.0, output: 0.0 },
10
+ "llama-4-scout-17b-16e-instruct": { input: 0.0, output: 0.0 },
11
+ "llama-4-maverick-17b-128e-instruct": { input: 0.0, output: 0.0 },
12
+ // Cerebras-hosted Llama 4 (free)
13
+ "cerebras-llama-4-maverick-17b-128e-instruct": { input: 0.0, output: 0.0 },
14
+ "cerebras-llama-4-scout-17b-16e-instruct": { input: 0.0, output: 0.0 },
15
+ // Groq-hosted Llama 4 (free)
16
+ "groq-llama-4-maverick-17b-128e-instruct": { input: 0.0, output: 0.0 },
17
+ "groq-llama-4-scout-17b-16e-instruct": { input: 0.0, output: 0.0 },
18
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Mistral AI pricing (USD per 1M tokens)
3
+ * Source: https://mistral.ai/technology/#pricing
4
+ */
5
+ export const MistralTextPricing: Record<string, { input: number; output: number; cached_input?: number }> = {
6
+ // Mistral Large (latest = 2512 as of 2026-04, price reduced from $2/$6)
7
+ // Source: openrouter.ai/api/v1/models (mistral-large-2512 = $0.5/$1.5)
8
+ "mistral-large-latest": { input: 0.5, output: 1.5 },
9
+ "mistral-large-2512": { input: 0.5, output: 1.5 },
10
+ "mistral-large-2411": { input: 2.0, output: 6.0 },
11
+ // Mistral Small (latest = 2603 as of 2026-04, price updated)
12
+ // Source: openrouter.ai/api/v1/models (mistral-small-2603 = $0.15/$0.60)
13
+ "mistral-small-latest": { input: 0.15, output: 0.6 },
14
+ "mistral-small-2603": { input: 0.15, output: 0.6 },
15
+ "mistral-small-2501": { input: 0.1, output: 0.3 },
16
+ // Mistral Medium
17
+ "mistral-medium-latest": { input: 0.4, output: 2.0 },
18
+ // Codestral (code model)
19
+ "codestral-latest": { input: 0.3, output: 0.9 },
20
+ "codestral-2501": { input: 0.3, output: 0.9 },
21
+ // Devstral (free coding assistant)
22
+ "devstral-small-latest": { input: 0.0, output: 0.0 },
23
+ "labs-devstral-small-2512": { input: 0.0, output: 0.0 },
24
+ // Pixtral (multimodal)
25
+ "pixtral-large-latest": { input: 2.0, output: 6.0 },
26
+ "pixtral-12b-2409": { input: 0.15, output: 0.15 },
27
+ // Ministral
28
+ "ministral-3b-latest": { input: 0.04, output: 0.04 },
29
+ "ministral-8b-latest": { input: 0.1, output: 0.1 },
30
+ // Mistral NeMo
31
+ "open-mistral-nemo": { input: 0.15, output: 0.15 },
32
+ // Embeddings
33
+ "mistral-embed": { input: 0.1, output: 0.0 },
34
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Assembles ALL_MODEL_CATALOG from per-provider catalogs.
3
+ * Each provider file is the single source of truth for its models.
4
+ */
5
+ import { ModelPricing, ModelType, ModelCatalogEntry } from "./types";
6
+ import { OPENAI_MODEL_CATALOG } from "./openai";
7
+ import { ANTHROPIC_MODEL_CATALOG } from "./anthropic";
8
+ import { GOOGLE_MODEL_CATALOG } from "./google";
9
+ import { XAI_MODEL_CATALOG } from "./xai";
10
+
11
+ export { ModelPricing, ModelType, ModelCatalogEntry };
12
+
13
+ /** 2.5% platform markup applied on top of all provider base rates */
14
+ export const USAGE_MARKUP_PERCENT = 2.5 / 100;
15
+
16
+ export { OPENAI_MODEL_CATALOG, ANTHROPIC_MODEL_CATALOG, GOOGLE_MODEL_CATALOG, XAI_MODEL_CATALOG };
17
+
18
+ export const ALL_MODEL_CATALOG: ModelCatalogEntry[] = [
19
+ ...OPENAI_MODEL_CATALOG,
20
+ ...ANTHROPIC_MODEL_CATALOG,
21
+ ...GOOGLE_MODEL_CATALOG,
22
+ ...XAI_MODEL_CATALOG,
23
+ ];