@juspay/neurolink 11.3.1 → 11.4.0

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 (132) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/dist/constants/enums.d.ts +1 -0
  3. package/dist/constants/enums.js +5 -1
  4. package/dist/lib/constants/enums.d.ts +1 -0
  5. package/dist/lib/constants/enums.js +5 -1
  6. package/dist/lib/models/manifestRegistry.d.ts +33 -0
  7. package/dist/lib/models/manifestRegistry.js +174 -0
  8. package/dist/lib/models/manifests/anthropic.d.ts +9 -0
  9. package/dist/lib/models/manifests/anthropic.js +346 -0
  10. package/dist/lib/models/manifests/azure.d.ts +2 -0
  11. package/dist/lib/models/manifests/azure.js +87 -0
  12. package/dist/lib/models/manifests/bedrock.d.ts +2 -0
  13. package/dist/lib/models/manifests/bedrock.js +75 -0
  14. package/dist/lib/models/manifests/cloudflare.d.ts +8 -0
  15. package/dist/lib/models/manifests/cloudflare.js +19 -0
  16. package/dist/lib/models/manifests/cohere.d.ts +8 -0
  17. package/dist/lib/models/manifests/cohere.js +19 -0
  18. package/dist/lib/models/manifests/deepseek.d.ts +8 -0
  19. package/dist/lib/models/manifests/deepseek.js +19 -0
  20. package/dist/lib/models/manifests/fireworks.d.ts +8 -0
  21. package/dist/lib/models/manifests/fireworks.js +19 -0
  22. package/dist/lib/models/manifests/google-ai.d.ts +2 -0
  23. package/dist/lib/models/manifests/google-ai.js +28 -0
  24. package/dist/lib/models/manifests/groq.d.ts +8 -0
  25. package/dist/lib/models/manifests/groq.js +19 -0
  26. package/dist/lib/models/manifests/huggingface.d.ts +8 -0
  27. package/dist/lib/models/manifests/huggingface.js +19 -0
  28. package/dist/lib/models/manifests/ideogram.d.ts +8 -0
  29. package/dist/lib/models/manifests/ideogram.js +19 -0
  30. package/dist/lib/models/manifests/jina.d.ts +8 -0
  31. package/dist/lib/models/manifests/jina.js +19 -0
  32. package/dist/lib/models/manifests/litellm.d.ts +8 -0
  33. package/dist/lib/models/manifests/litellm.js +19 -0
  34. package/dist/lib/models/manifests/llamacpp.d.ts +8 -0
  35. package/dist/lib/models/manifests/llamacpp.js +19 -0
  36. package/dist/lib/models/manifests/lm-studio.d.ts +8 -0
  37. package/dist/lib/models/manifests/lm-studio.js +19 -0
  38. package/dist/lib/models/manifests/mistral.d.ts +2 -0
  39. package/dist/lib/models/manifests/mistral.js +50 -0
  40. package/dist/lib/models/manifests/nvidia-nim.d.ts +8 -0
  41. package/dist/lib/models/manifests/nvidia-nim.js +19 -0
  42. package/dist/lib/models/manifests/ollama.d.ts +2 -0
  43. package/dist/lib/models/manifests/ollama.js +72 -0
  44. package/dist/lib/models/manifests/openai-compatible.d.ts +8 -0
  45. package/dist/lib/models/manifests/openai-compatible.js +19 -0
  46. package/dist/lib/models/manifests/openai.d.ts +11 -0
  47. package/dist/lib/models/manifests/openai.js +560 -0
  48. package/dist/lib/models/manifests/openrouter.d.ts +8 -0
  49. package/dist/lib/models/manifests/openrouter.js +19 -0
  50. package/dist/lib/models/manifests/perplexity.d.ts +8 -0
  51. package/dist/lib/models/manifests/perplexity.js +19 -0
  52. package/dist/lib/models/manifests/recraft.d.ts +8 -0
  53. package/dist/lib/models/manifests/recraft.js +19 -0
  54. package/dist/lib/models/manifests/replicate.d.ts +8 -0
  55. package/dist/lib/models/manifests/replicate.js +19 -0
  56. package/dist/lib/models/manifests/sagemaker.d.ts +8 -0
  57. package/dist/lib/models/manifests/sagemaker.js +19 -0
  58. package/dist/lib/models/manifests/stability.d.ts +8 -0
  59. package/dist/lib/models/manifests/stability.js +19 -0
  60. package/dist/lib/models/manifests/together-ai.d.ts +8 -0
  61. package/dist/lib/models/manifests/together-ai.js +19 -0
  62. package/dist/lib/models/manifests/vertex.d.ts +8 -0
  63. package/dist/lib/models/manifests/vertex.js +19 -0
  64. package/dist/lib/models/manifests/voyage.d.ts +8 -0
  65. package/dist/lib/models/manifests/voyage.js +19 -0
  66. package/dist/lib/models/manifests/xai.d.ts +8 -0
  67. package/dist/lib/models/manifests/xai.js +19 -0
  68. package/dist/lib/types/model.d.ts +77 -0
  69. package/dist/models/manifestRegistry.d.ts +33 -0
  70. package/dist/models/manifestRegistry.js +173 -0
  71. package/dist/models/manifests/anthropic.d.ts +9 -0
  72. package/dist/models/manifests/anthropic.js +345 -0
  73. package/dist/models/manifests/azure.d.ts +2 -0
  74. package/dist/models/manifests/azure.js +86 -0
  75. package/dist/models/manifests/bedrock.d.ts +2 -0
  76. package/dist/models/manifests/bedrock.js +74 -0
  77. package/dist/models/manifests/cloudflare.d.ts +8 -0
  78. package/dist/models/manifests/cloudflare.js +18 -0
  79. package/dist/models/manifests/cohere.d.ts +8 -0
  80. package/dist/models/manifests/cohere.js +18 -0
  81. package/dist/models/manifests/deepseek.d.ts +8 -0
  82. package/dist/models/manifests/deepseek.js +18 -0
  83. package/dist/models/manifests/fireworks.d.ts +8 -0
  84. package/dist/models/manifests/fireworks.js +18 -0
  85. package/dist/models/manifests/google-ai.d.ts +2 -0
  86. package/dist/models/manifests/google-ai.js +27 -0
  87. package/dist/models/manifests/groq.d.ts +8 -0
  88. package/dist/models/manifests/groq.js +18 -0
  89. package/dist/models/manifests/huggingface.d.ts +8 -0
  90. package/dist/models/manifests/huggingface.js +18 -0
  91. package/dist/models/manifests/ideogram.d.ts +8 -0
  92. package/dist/models/manifests/ideogram.js +18 -0
  93. package/dist/models/manifests/jina.d.ts +8 -0
  94. package/dist/models/manifests/jina.js +18 -0
  95. package/dist/models/manifests/litellm.d.ts +8 -0
  96. package/dist/models/manifests/litellm.js +18 -0
  97. package/dist/models/manifests/llamacpp.d.ts +8 -0
  98. package/dist/models/manifests/llamacpp.js +18 -0
  99. package/dist/models/manifests/lm-studio.d.ts +8 -0
  100. package/dist/models/manifests/lm-studio.js +18 -0
  101. package/dist/models/manifests/mistral.d.ts +2 -0
  102. package/dist/models/manifests/mistral.js +49 -0
  103. package/dist/models/manifests/nvidia-nim.d.ts +8 -0
  104. package/dist/models/manifests/nvidia-nim.js +18 -0
  105. package/dist/models/manifests/ollama.d.ts +2 -0
  106. package/dist/models/manifests/ollama.js +71 -0
  107. package/dist/models/manifests/openai-compatible.d.ts +8 -0
  108. package/dist/models/manifests/openai-compatible.js +18 -0
  109. package/dist/models/manifests/openai.d.ts +11 -0
  110. package/dist/models/manifests/openai.js +559 -0
  111. package/dist/models/manifests/openrouter.d.ts +8 -0
  112. package/dist/models/manifests/openrouter.js +18 -0
  113. package/dist/models/manifests/perplexity.d.ts +8 -0
  114. package/dist/models/manifests/perplexity.js +18 -0
  115. package/dist/models/manifests/recraft.d.ts +8 -0
  116. package/dist/models/manifests/recraft.js +18 -0
  117. package/dist/models/manifests/replicate.d.ts +8 -0
  118. package/dist/models/manifests/replicate.js +18 -0
  119. package/dist/models/manifests/sagemaker.d.ts +8 -0
  120. package/dist/models/manifests/sagemaker.js +18 -0
  121. package/dist/models/manifests/stability.d.ts +8 -0
  122. package/dist/models/manifests/stability.js +18 -0
  123. package/dist/models/manifests/together-ai.d.ts +8 -0
  124. package/dist/models/manifests/together-ai.js +18 -0
  125. package/dist/models/manifests/vertex.d.ts +8 -0
  126. package/dist/models/manifests/vertex.js +18 -0
  127. package/dist/models/manifests/voyage.d.ts +8 -0
  128. package/dist/models/manifests/voyage.js +18 -0
  129. package/dist/models/manifests/xai.d.ts +8 -0
  130. package/dist/models/manifests/xai.js +18 -0
  131. package/dist/types/model.d.ts +77 -0
  132. package/package.json +3 -2
@@ -0,0 +1,559 @@
1
+ /**
2
+ * OpenAI model manifest. contextWindow values come from
3
+ * MODEL_CONTEXT_WINDOWS.openai (src/lib/constants/contextWindows.ts), which
4
+ * disagrees with MODEL_REGISTRY.limits.maxContextTokens for several ids
5
+ * (e.g. gpt-5: 400_000 here vs 256_000 there) — MODEL_CONTEXT_WINDOWS wins
6
+ * as the more actively-maintained store. maxOutputTokens/aliases/capability
7
+ * flags come from MODEL_REGISTRY (src/lib/models/modelRegistry.ts:30-984).
8
+ * pricingPerMTok comes from PRICING.openai (src/lib/utils/pricing.ts).
9
+ */
10
+ export const openaiManifest = {
11
+ defaultContextWindow: 128_000,
12
+ models: {
13
+ "gpt-4o": {
14
+ aliases: ["gpt4o", "gpt-4-omni", "openai-flagship"],
15
+ displayName: "GPT-4 Omni",
16
+ contextWindow: 128_000,
17
+ maxOutputTokens: 4_096,
18
+ pricingPerMTok: { input: 2.5, output: 10.0, cacheRead: 0.625 },
19
+ vision: true,
20
+ functionCalling: true,
21
+ reasoning: true,
22
+ jsonMode: true,
23
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4O]
24
+ // (src/lib/models/modelRegistry.ts:30-73).
25
+ curated: {
26
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
27
+ useCases: {
28
+ coding: 9,
29
+ creative: 8,
30
+ analysis: 9,
31
+ conversation: 9,
32
+ reasoning: 9,
33
+ translation: 8,
34
+ summarization: 8,
35
+ },
36
+ category: "general",
37
+ },
38
+ },
39
+ "gpt-4o-mini": {
40
+ aliases: ["gpt4o-mini", "gpt-4-mini", "fastest", "cheap"],
41
+ displayName: "GPT-4 Omni Mini",
42
+ contextWindow: 128_000,
43
+ maxOutputTokens: 16_384,
44
+ pricingPerMTok: { input: 0.15, output: 0.6, cacheRead: 0.0375 },
45
+ vision: true,
46
+ functionCalling: true,
47
+ reasoning: true,
48
+ jsonMode: true,
49
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4O_MINI]
50
+ // (src/lib/models/modelRegistry.ts:75-118).
51
+ curated: {
52
+ performance: { speed: "fast", quality: "high", accuracy: "high" },
53
+ useCases: {
54
+ coding: 8,
55
+ creative: 7,
56
+ analysis: 8,
57
+ conversation: 8,
58
+ reasoning: 8,
59
+ translation: 8,
60
+ summarization: 9,
61
+ },
62
+ category: "general",
63
+ },
64
+ },
65
+ "gpt-5": {
66
+ aliases: ["gpt5", "gpt-5-flagship", "openai-latest"],
67
+ displayName: "GPT-5",
68
+ contextWindow: 400_000,
69
+ maxOutputTokens: 32_768,
70
+ pricingPerMTok: { input: 1.25, output: 10.0, cacheRead: 0.3125 },
71
+ vision: true,
72
+ functionCalling: true,
73
+ reasoning: true,
74
+ jsonMode: true,
75
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5]
76
+ // (src/lib/models/modelRegistry.ts:121-165).
77
+ curated: {
78
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
79
+ useCases: {
80
+ coding: 10,
81
+ creative: 10,
82
+ analysis: 10,
83
+ conversation: 10,
84
+ reasoning: 10,
85
+ translation: 9,
86
+ summarization: 9,
87
+ },
88
+ category: "reasoning",
89
+ },
90
+ },
91
+ "gpt-5-mini": {
92
+ aliases: ["gpt5-mini", "gpt-5-fast"],
93
+ displayName: "GPT-5 Mini",
94
+ contextWindow: 400_000,
95
+ maxOutputTokens: 16_384,
96
+ pricingPerMTok: { input: 0.25, output: 2.0, cacheRead: 0.0625 },
97
+ vision: true,
98
+ functionCalling: true,
99
+ reasoning: true,
100
+ jsonMode: true,
101
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_MINI]
102
+ // (src/lib/models/modelRegistry.ts:167-210).
103
+ curated: {
104
+ performance: { speed: "fast", quality: "high", accuracy: "high" },
105
+ useCases: {
106
+ coding: 8,
107
+ creative: 8,
108
+ analysis: 8,
109
+ conversation: 9,
110
+ reasoning: 8,
111
+ translation: 8,
112
+ summarization: 9,
113
+ },
114
+ category: "general",
115
+ },
116
+ },
117
+ o3: {
118
+ aliases: ["o3-reasoning", "o3-thinking"],
119
+ displayName: "O3",
120
+ contextWindow: 200_000,
121
+ maxOutputTokens: 100_000,
122
+ pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
123
+ vision: true,
124
+ functionCalling: true,
125
+ reasoning: true,
126
+ jsonMode: true,
127
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3]
128
+ // (src/lib/models/modelRegistry.ts:213-257).
129
+ curated: {
130
+ performance: { speed: "slow", quality: "high", accuracy: "high" },
131
+ useCases: {
132
+ coding: 10,
133
+ creative: 8,
134
+ analysis: 10,
135
+ conversation: 7,
136
+ reasoning: 10,
137
+ translation: 7,
138
+ summarization: 8,
139
+ },
140
+ category: "reasoning",
141
+ },
142
+ },
143
+ "o3-mini": {
144
+ aliases: ["o3-mini-reasoning"],
145
+ displayName: "O3 Mini",
146
+ contextWindow: 200_000,
147
+ maxOutputTokens: 65_536,
148
+ pricingPerMTok: { input: 1.1, output: 4.4, cacheRead: 0.275 },
149
+ vision: false,
150
+ functionCalling: true,
151
+ reasoning: true,
152
+ jsonMode: true,
153
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3_MINI]
154
+ // (src/lib/models/modelRegistry.ts:259-303).
155
+ curated: {
156
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
157
+ useCases: {
158
+ coding: 9,
159
+ creative: 6,
160
+ analysis: 9,
161
+ conversation: 7,
162
+ reasoning: 9,
163
+ translation: 6,
164
+ summarization: 7,
165
+ },
166
+ category: "reasoning",
167
+ },
168
+ },
169
+ "gpt-5-nano": {
170
+ aliases: ["gpt5-nano", "gpt-5-cheapest"],
171
+ displayName: "GPT-5 Nano",
172
+ contextWindow: 400_000,
173
+ maxOutputTokens: 128_000,
174
+ pricingPerMTok: { input: 0.05, output: 0.4, cacheRead: 0.0125 },
175
+ vision: true,
176
+ functionCalling: true,
177
+ reasoning: true,
178
+ jsonMode: true,
179
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_NANO]
180
+ // (src/lib/models/modelRegistry.ts:305-349).
181
+ curated: {
182
+ performance: { speed: "fast", quality: "medium", accuracy: "medium" },
183
+ useCases: {
184
+ coding: 6,
185
+ creative: 6,
186
+ analysis: 6,
187
+ conversation: 8,
188
+ reasoning: 6,
189
+ translation: 7,
190
+ summarization: 8,
191
+ },
192
+ category: "general",
193
+ },
194
+ },
195
+ "gpt-5.2": {
196
+ aliases: ["gpt52", "gpt-5.2-thinking", "openai-latest-reasoning"],
197
+ displayName: "GPT-5.2 Thinking",
198
+ contextWindow: 400_000,
199
+ maxOutputTokens: 64_000,
200
+ pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
201
+ vision: true,
202
+ functionCalling: true,
203
+ reasoning: true,
204
+ jsonMode: true,
205
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2]
206
+ // (src/lib/models/modelRegistry.ts:352-396).
207
+ curated: {
208
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
209
+ useCases: {
210
+ coding: 10,
211
+ creative: 10,
212
+ analysis: 10,
213
+ conversation: 9,
214
+ reasoning: 10,
215
+ translation: 9,
216
+ summarization: 9,
217
+ },
218
+ category: "reasoning",
219
+ },
220
+ },
221
+ "gpt-5.2-chat-latest": {
222
+ aliases: ["gpt52-chat", "gpt-5.2-instant", "gpt52-fast"],
223
+ displayName: "GPT-5.2 Instant",
224
+ contextWindow: 128_000,
225
+ maxOutputTokens: 32_000,
226
+ // Inherits gpt-5.2's rate — matches findRates()'s existing prefix-match
227
+ // resolution for this id today (no distinct PRICING.openai key exists).
228
+ pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
229
+ vision: true,
230
+ functionCalling: true,
231
+ reasoning: true,
232
+ jsonMode: true,
233
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2_CHAT_LATEST]
234
+ // (src/lib/models/modelRegistry.ts:398-442).
235
+ curated: {
236
+ performance: { speed: "fast", quality: "high", accuracy: "high" },
237
+ useCases: {
238
+ coding: 9,
239
+ creative: 9,
240
+ analysis: 9,
241
+ conversation: 10,
242
+ reasoning: 9,
243
+ translation: 9,
244
+ summarization: 9,
245
+ },
246
+ category: "general",
247
+ },
248
+ },
249
+ "gpt-5.2-pro": {
250
+ aliases: ["gpt52-pro", "gpt-5.2-professional", "openai-science"],
251
+ displayName: "GPT-5.2 Pro",
252
+ contextWindow: 400_000,
253
+ maxOutputTokens: 128_000,
254
+ // Inherits gpt-5.2's rate — see gpt-5.2-chat-latest's comment above.
255
+ pricingPerMTok: { input: 1.75, output: 14.0, cacheRead: 0.4375 },
256
+ vision: true,
257
+ functionCalling: true,
258
+ reasoning: true,
259
+ jsonMode: true,
260
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_5_2_PRO]
261
+ // (src/lib/models/modelRegistry.ts:444-488).
262
+ curated: {
263
+ performance: { speed: "slow", quality: "high", accuracy: "high" },
264
+ useCases: {
265
+ coding: 10,
266
+ creative: 9,
267
+ analysis: 10,
268
+ conversation: 8,
269
+ reasoning: 10,
270
+ translation: 9,
271
+ summarization: 9,
272
+ },
273
+ category: "reasoning",
274
+ },
275
+ },
276
+ "gpt-4.1": {
277
+ aliases: ["gpt-4.1", "gpt41", "million-context"],
278
+ displayName: "GPT-4.1",
279
+ contextWindow: 1_047_576,
280
+ maxOutputTokens: 128_000,
281
+ pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
282
+ vision: true,
283
+ functionCalling: true,
284
+ reasoning: true,
285
+ jsonMode: true,
286
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1]
287
+ // (src/lib/models/modelRegistry.ts:491-534).
288
+ curated: {
289
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
290
+ useCases: {
291
+ coding: 10,
292
+ creative: 8,
293
+ analysis: 9,
294
+ conversation: 8,
295
+ reasoning: 9,
296
+ translation: 8,
297
+ summarization: 9,
298
+ },
299
+ category: "coding",
300
+ },
301
+ },
302
+ "gpt-4.1-mini": {
303
+ aliases: ["gpt-4.1-mini", "gpt41-mini"],
304
+ displayName: "GPT-4.1 Mini",
305
+ contextWindow: 1_047_576,
306
+ maxOutputTokens: 128_000,
307
+ pricingPerMTok: { input: 0.4, output: 1.6, cacheRead: 0.1 },
308
+ vision: true,
309
+ functionCalling: true,
310
+ reasoning: true,
311
+ jsonMode: true,
312
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1_MINI]
313
+ // (src/lib/models/modelRegistry.ts:536-579).
314
+ curated: {
315
+ performance: { speed: "fast", quality: "high", accuracy: "high" },
316
+ useCases: {
317
+ coding: 9,
318
+ creative: 7,
319
+ analysis: 8,
320
+ conversation: 8,
321
+ reasoning: 8,
322
+ translation: 8,
323
+ summarization: 9,
324
+ },
325
+ category: "coding",
326
+ },
327
+ },
328
+ "gpt-4.1-nano": {
329
+ aliases: ["gpt-4.1-nano", "gpt41-nano"],
330
+ displayName: "GPT-4.1 Nano",
331
+ contextWindow: 1_047_576,
332
+ maxOutputTokens: 128_000,
333
+ pricingPerMTok: { input: 0.1, output: 0.4, cacheRead: 0.025 },
334
+ vision: true,
335
+ functionCalling: true,
336
+ reasoning: true,
337
+ jsonMode: true,
338
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_1_NANO]
339
+ // (src/lib/models/modelRegistry.ts:581-624).
340
+ curated: {
341
+ performance: { speed: "fast", quality: "medium", accuracy: "medium" },
342
+ useCases: {
343
+ coding: 7,
344
+ creative: 6,
345
+ analysis: 7,
346
+ conversation: 7,
347
+ reasoning: 7,
348
+ translation: 7,
349
+ summarization: 8,
350
+ },
351
+ category: "coding",
352
+ },
353
+ },
354
+ "o3-pro": {
355
+ aliases: ["o3-pro", "o3-professional"],
356
+ displayName: "O3 Pro",
357
+ contextWindow: 200_000,
358
+ maxOutputTokens: 100_000,
359
+ // Inherits o3's rate — matches findRates()'s existing prefix-match
360
+ // resolution for this id today (no distinct PRICING.openai key exists).
361
+ pricingPerMTok: { input: 2.0, output: 8.0, cacheRead: 0.5 },
362
+ vision: true,
363
+ functionCalling: true,
364
+ reasoning: true,
365
+ jsonMode: true,
366
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O3_PRO]
367
+ // (src/lib/models/modelRegistry.ts:627-671).
368
+ curated: {
369
+ performance: { speed: "slow", quality: "high", accuracy: "high" },
370
+ useCases: {
371
+ coding: 10,
372
+ creative: 7,
373
+ analysis: 10,
374
+ conversation: 6,
375
+ reasoning: 10,
376
+ translation: 6,
377
+ summarization: 7,
378
+ },
379
+ category: "reasoning",
380
+ },
381
+ },
382
+ "o4-mini": {
383
+ aliases: ["o4-mini", "o4-fast"],
384
+ displayName: "O4 Mini",
385
+ contextWindow: 200_000,
386
+ maxOutputTokens: 100_000,
387
+ pricingPerMTok: { input: 1.1, output: 4.4, cacheRead: 0.275 },
388
+ vision: true,
389
+ functionCalling: true,
390
+ reasoning: true,
391
+ jsonMode: true,
392
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O4_MINI]
393
+ // (src/lib/models/modelRegistry.ts:673-717).
394
+ curated: {
395
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
396
+ useCases: {
397
+ coding: 9,
398
+ creative: 6,
399
+ analysis: 9,
400
+ conversation: 7,
401
+ reasoning: 10,
402
+ translation: 6,
403
+ summarization: 7,
404
+ },
405
+ category: "reasoning",
406
+ },
407
+ },
408
+ o1: {
409
+ aliases: ["o1-full", "o1-premium"],
410
+ displayName: "O1",
411
+ contextWindow: 200_000,
412
+ maxOutputTokens: 32_768,
413
+ pricingPerMTok: { input: 15.0, output: 60.0, cacheRead: 3.75 },
414
+ // DELIBERATE DEVIATION FROM task-3-brief.md (which specifies `true`):
415
+ // set to `false` to mirror live behavior exactly. Today,
416
+ // ProviderImageAdapter.supportsVision("openai", "o1") returns false —
417
+ // VISION_CAPABILITIES.openai (providerImageAdapter.ts) has no "o1"
418
+ // entry (o1-preview/o1-mini are also absent, but so is o1 itself) and
419
+ // there is no "openai" key in VISION_FAMILY_RULES for a regex fallback
420
+ // to catch it. This manifest's job in this PR is to be a faithful,
421
+ // behavior-preserving replacement for the tables it will supersede
422
+ // (Tasks 7-11 migrate the consumers; Task 14 proves behavior was
423
+ // preserved) — that proof only holds if the manifest encodes what the
424
+ // system actually does today, not what it should do.
425
+ //
426
+ // This is very likely a live bug, not a fact about o1: OpenAI's real
427
+ // o1 (distinct from o1-preview/o1-mini) is believed to accept image
428
+ // input, and MODEL_REGISTRY[OpenAIModels.O1].capabilities.vision is
429
+ // itself `true` (modelRegistry.ts:726) — i.e. the existing hand-curated
430
+ // registry already disagrees with VISION_CAPABILITIES.openai on this
431
+ // exact point. Correcting VISION_CAPABILITIES.openai to add "o1" is a
432
+ // separate, deliberately deferred change with its own commit and its
433
+ // own test, not something to smuggle into a purely-additive data port.
434
+ vision: false,
435
+ functionCalling: true,
436
+ reasoning: true,
437
+ jsonMode: true,
438
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O1]
439
+ // (src/lib/models/modelRegistry.ts:719-763).
440
+ curated: {
441
+ performance: { speed: "slow", quality: "high", accuracy: "high" },
442
+ useCases: {
443
+ coding: 10,
444
+ creative: 7,
445
+ analysis: 10,
446
+ conversation: 6,
447
+ reasoning: 10,
448
+ translation: 6,
449
+ summarization: 7,
450
+ },
451
+ category: "reasoning",
452
+ },
453
+ },
454
+ "o1-mini": {
455
+ aliases: ["o1-mini", "o1-budget"],
456
+ displayName: "O1 Mini",
457
+ contextWindow: 128_000,
458
+ maxOutputTokens: 65_536,
459
+ pricingPerMTok: { input: 0.55, output: 2.2, cacheRead: 0.1375 },
460
+ vision: false,
461
+ functionCalling: true,
462
+ reasoning: true,
463
+ jsonMode: true,
464
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.O1_MINI]
465
+ // (src/lib/models/modelRegistry.ts:810-853).
466
+ curated: {
467
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
468
+ useCases: {
469
+ coding: 8,
470
+ creative: 5,
471
+ analysis: 8,
472
+ conversation: 6,
473
+ reasoning: 8,
474
+ translation: 5,
475
+ summarization: 6,
476
+ },
477
+ category: "reasoning",
478
+ },
479
+ },
480
+ "gpt-4": {
481
+ aliases: ["gpt4", "gpt-4-base"],
482
+ displayName: "GPT-4",
483
+ contextWindow: 8_192,
484
+ maxOutputTokens: 4_096,
485
+ pricingPerMTok: { input: 30.0, output: 60.0 },
486
+ vision: false,
487
+ functionCalling: true,
488
+ reasoning: true,
489
+ jsonMode: true,
490
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4]
491
+ // (src/lib/models/modelRegistry.ts:856-899).
492
+ curated: {
493
+ performance: { speed: "slow", quality: "high", accuracy: "high" },
494
+ useCases: {
495
+ coding: 8,
496
+ creative: 8,
497
+ analysis: 8,
498
+ conversation: 8,
499
+ reasoning: 8,
500
+ translation: 8,
501
+ summarization: 8,
502
+ },
503
+ category: "general",
504
+ },
505
+ },
506
+ "gpt-4-turbo": {
507
+ aliases: ["gpt4-turbo", "gpt-4-turbo-preview"],
508
+ displayName: "GPT-4 Turbo",
509
+ contextWindow: 128_000,
510
+ maxOutputTokens: 4_096,
511
+ pricingPerMTok: { input: 10.0, output: 30.0 },
512
+ vision: true,
513
+ functionCalling: true,
514
+ reasoning: true,
515
+ jsonMode: true,
516
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_4_TURBO]
517
+ // (src/lib/models/modelRegistry.ts:901-944).
518
+ curated: {
519
+ performance: { speed: "medium", quality: "high", accuracy: "high" },
520
+ useCases: {
521
+ coding: 8,
522
+ creative: 8,
523
+ analysis: 9,
524
+ conversation: 8,
525
+ reasoning: 8,
526
+ translation: 8,
527
+ summarization: 8,
528
+ },
529
+ category: "general",
530
+ },
531
+ },
532
+ "gpt-3.5-turbo": {
533
+ aliases: ["gpt35", "gpt-3.5", "chatgpt"],
534
+ displayName: "GPT-3.5 Turbo",
535
+ contextWindow: 16_385,
536
+ maxOutputTokens: 4_096,
537
+ pricingPerMTok: { input: 0.5, output: 1.0 },
538
+ vision: false,
539
+ functionCalling: true,
540
+ reasoning: false,
541
+ jsonMode: true,
542
+ // Carried forward verbatim from MODEL_REGISTRY[OpenAIModels.GPT_3_5_TURBO]
543
+ // (src/lib/models/modelRegistry.ts:946-989).
544
+ curated: {
545
+ performance: { speed: "fast", quality: "medium", accuracy: "medium" },
546
+ useCases: {
547
+ coding: 6,
548
+ creative: 6,
549
+ analysis: 6,
550
+ conversation: 7,
551
+ reasoning: 5,
552
+ translation: 7,
553
+ summarization: 7,
554
+ },
555
+ category: "general",
556
+ },
557
+ },
558
+ },
559
+ };
@@ -0,0 +1,8 @@
1
+ import type { ProviderModelManifest } from "../../types/index.js";
2
+ /**
3
+ * Minimal manifest: openrouter has no MODEL_REGISTRY entries today, so
4
+ * only the provider-wide fallback is known. Named models can be added here
5
+ * incrementally without touching any consumer — see Task 5 of the model
6
+ * metadata consolidation plan.
7
+ */
8
+ export declare const openrouterManifest: ProviderModelManifest;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Minimal manifest: openrouter has no MODEL_REGISTRY entries today, so
3
+ * only the provider-wide fallback is known. Named models can be added here
4
+ * incrementally without touching any consumer — see Task 5 of the model
5
+ * metadata consolidation plan.
6
+ */
7
+ export const openrouterManifest = {
8
+ defaultContextWindow: 128000,
9
+ models: {
10
+ _default: {
11
+ aliases: [],
12
+ contextWindow: 128000,
13
+ maxOutputTokens: 64000,
14
+ vision: false,
15
+ functionCalling: false,
16
+ },
17
+ },
18
+ };
@@ -0,0 +1,8 @@
1
+ import type { ProviderModelManifest } from "../../types/index.js";
2
+ /**
3
+ * Minimal manifest: perplexity has no MODEL_REGISTRY entries today, so
4
+ * only the provider-wide fallback is known. Named models can be added here
5
+ * incrementally without touching any consumer — see Task 5 of the model
6
+ * metadata consolidation plan.
7
+ */
8
+ export declare const perplexityManifest: ProviderModelManifest;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Minimal manifest: perplexity has no MODEL_REGISTRY entries today, so
3
+ * only the provider-wide fallback is known. Named models can be added here
4
+ * incrementally without touching any consumer — see Task 5 of the model
5
+ * metadata consolidation plan.
6
+ */
7
+ export const perplexityManifest = {
8
+ defaultContextWindow: 127000,
9
+ models: {
10
+ _default: {
11
+ aliases: [],
12
+ contextWindow: 127000,
13
+ maxOutputTokens: 64000,
14
+ vision: false,
15
+ functionCalling: false,
16
+ },
17
+ },
18
+ };
@@ -0,0 +1,8 @@
1
+ import type { ProviderModelManifest } from "../../types/index.js";
2
+ /**
3
+ * Minimal manifest: recraft has no MODEL_REGISTRY entries today, so
4
+ * only the provider-wide fallback is known. Named models can be added here
5
+ * incrementally without touching any consumer — see Task 5 of the model
6
+ * metadata consolidation plan.
7
+ */
8
+ export declare const recraftManifest: ProviderModelManifest;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Minimal manifest: recraft has no MODEL_REGISTRY entries today, so
3
+ * only the provider-wide fallback is known. Named models can be added here
4
+ * incrementally without touching any consumer — see Task 5 of the model
5
+ * metadata consolidation plan.
6
+ */
7
+ export const recraftManifest = {
8
+ defaultContextWindow: 2000,
9
+ models: {
10
+ _default: {
11
+ aliases: [],
12
+ contextWindow: 2000,
13
+ maxOutputTokens: 2000,
14
+ vision: false,
15
+ functionCalling: false,
16
+ },
17
+ },
18
+ };
@@ -0,0 +1,8 @@
1
+ import type { ProviderModelManifest } from "../../types/index.js";
2
+ /**
3
+ * Minimal manifest: replicate has no MODEL_REGISTRY entries today, so
4
+ * only the provider-wide fallback is known. Named models can be added here
5
+ * incrementally without touching any consumer — see Task 5 of the model
6
+ * metadata consolidation plan.
7
+ */
8
+ export declare const replicateManifest: ProviderModelManifest;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Minimal manifest: replicate has no MODEL_REGISTRY entries today, so
3
+ * only the provider-wide fallback is known. Named models can be added here
4
+ * incrementally without touching any consumer — see Task 5 of the model
5
+ * metadata consolidation plan.
6
+ */
7
+ export const replicateManifest = {
8
+ defaultContextWindow: 32768,
9
+ models: {
10
+ _default: {
11
+ aliases: [],
12
+ contextWindow: 32768,
13
+ maxOutputTokens: 32768,
14
+ vision: false,
15
+ functionCalling: false,
16
+ },
17
+ },
18
+ };
@@ -0,0 +1,8 @@
1
+ import type { ProviderModelManifest } from "../../types/index.js";
2
+ /**
3
+ * Minimal manifest: sagemaker has no MODEL_REGISTRY entries today, so
4
+ * only the provider-wide fallback is known. Named models can be added here
5
+ * incrementally without touching any consumer — see Task 5 of the model
6
+ * metadata consolidation plan.
7
+ */
8
+ export declare const sagemakerManifest: ProviderModelManifest;