@juspay/neurolink 11.3.0 → 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.
- package/CHANGELOG.md +2 -2
- package/dist/adapters/providerImageAdapter.js +1 -1
- package/dist/browser/neurolink.min.js +6 -6
- package/dist/cli/commands/mcp.js +8 -8
- package/dist/constants/contextWindows.js +1 -1
- package/dist/constants/enums.d.ts +3 -2
- package/dist/constants/enums.js +7 -3
- package/dist/constants/tokens.d.ts +1 -1
- package/dist/constants/tokens.js +1 -1
- package/dist/lib/adapters/providerImageAdapter.js +1 -1
- package/dist/lib/constants/contextWindows.js +1 -1
- package/dist/lib/constants/enums.d.ts +3 -2
- package/dist/lib/constants/enums.js +7 -3
- package/dist/lib/constants/tokens.d.ts +1 -1
- package/dist/lib/constants/tokens.js +1 -1
- package/dist/lib/models/manifestRegistry.d.ts +33 -0
- package/dist/lib/models/manifestRegistry.js +174 -0
- package/dist/lib/models/manifests/anthropic.d.ts +9 -0
- package/dist/lib/models/manifests/anthropic.js +346 -0
- package/dist/lib/models/manifests/azure.d.ts +2 -0
- package/dist/lib/models/manifests/azure.js +87 -0
- package/dist/lib/models/manifests/bedrock.d.ts +2 -0
- package/dist/lib/models/manifests/bedrock.js +75 -0
- package/dist/lib/models/manifests/cloudflare.d.ts +8 -0
- package/dist/lib/models/manifests/cloudflare.js +19 -0
- package/dist/lib/models/manifests/cohere.d.ts +8 -0
- package/dist/lib/models/manifests/cohere.js +19 -0
- package/dist/lib/models/manifests/deepseek.d.ts +8 -0
- package/dist/lib/models/manifests/deepseek.js +19 -0
- package/dist/lib/models/manifests/fireworks.d.ts +8 -0
- package/dist/lib/models/manifests/fireworks.js +19 -0
- package/dist/lib/models/manifests/google-ai.d.ts +2 -0
- package/dist/lib/models/manifests/google-ai.js +28 -0
- package/dist/lib/models/manifests/groq.d.ts +8 -0
- package/dist/lib/models/manifests/groq.js +19 -0
- package/dist/lib/models/manifests/huggingface.d.ts +8 -0
- package/dist/lib/models/manifests/huggingface.js +19 -0
- package/dist/lib/models/manifests/ideogram.d.ts +8 -0
- package/dist/lib/models/manifests/ideogram.js +19 -0
- package/dist/lib/models/manifests/jina.d.ts +8 -0
- package/dist/lib/models/manifests/jina.js +19 -0
- package/dist/lib/models/manifests/litellm.d.ts +8 -0
- package/dist/lib/models/manifests/litellm.js +19 -0
- package/dist/lib/models/manifests/llamacpp.d.ts +8 -0
- package/dist/lib/models/manifests/llamacpp.js +19 -0
- package/dist/lib/models/manifests/lm-studio.d.ts +8 -0
- package/dist/lib/models/manifests/lm-studio.js +19 -0
- package/dist/lib/models/manifests/mistral.d.ts +2 -0
- package/dist/lib/models/manifests/mistral.js +50 -0
- package/dist/lib/models/manifests/nvidia-nim.d.ts +8 -0
- package/dist/lib/models/manifests/nvidia-nim.js +19 -0
- package/dist/lib/models/manifests/ollama.d.ts +2 -0
- package/dist/lib/models/manifests/ollama.js +72 -0
- package/dist/lib/models/manifests/openai-compatible.d.ts +8 -0
- package/dist/lib/models/manifests/openai-compatible.js +19 -0
- package/dist/lib/models/manifests/openai.d.ts +11 -0
- package/dist/lib/models/manifests/openai.js +560 -0
- package/dist/lib/models/manifests/openrouter.d.ts +8 -0
- package/dist/lib/models/manifests/openrouter.js +19 -0
- package/dist/lib/models/manifests/perplexity.d.ts +8 -0
- package/dist/lib/models/manifests/perplexity.js +19 -0
- package/dist/lib/models/manifests/recraft.d.ts +8 -0
- package/dist/lib/models/manifests/recraft.js +19 -0
- package/dist/lib/models/manifests/replicate.d.ts +8 -0
- package/dist/lib/models/manifests/replicate.js +19 -0
- package/dist/lib/models/manifests/sagemaker.d.ts +8 -0
- package/dist/lib/models/manifests/sagemaker.js +19 -0
- package/dist/lib/models/manifests/stability.d.ts +8 -0
- package/dist/lib/models/manifests/stability.js +19 -0
- package/dist/lib/models/manifests/together-ai.d.ts +8 -0
- package/dist/lib/models/manifests/together-ai.js +19 -0
- package/dist/lib/models/manifests/vertex.d.ts +8 -0
- package/dist/lib/models/manifests/vertex.js +19 -0
- package/dist/lib/models/manifests/voyage.d.ts +8 -0
- package/dist/lib/models/manifests/voyage.js +19 -0
- package/dist/lib/models/manifests/xai.d.ts +8 -0
- package/dist/lib/models/manifests/xai.js +19 -0
- package/dist/lib/providers/googleVertex/constants.js +1 -1
- package/dist/lib/types/model.d.ts +77 -0
- package/dist/models/manifestRegistry.d.ts +33 -0
- package/dist/models/manifestRegistry.js +173 -0
- package/dist/models/manifests/anthropic.d.ts +9 -0
- package/dist/models/manifests/anthropic.js +345 -0
- package/dist/models/manifests/azure.d.ts +2 -0
- package/dist/models/manifests/azure.js +86 -0
- package/dist/models/manifests/bedrock.d.ts +2 -0
- package/dist/models/manifests/bedrock.js +74 -0
- package/dist/models/manifests/cloudflare.d.ts +8 -0
- package/dist/models/manifests/cloudflare.js +18 -0
- package/dist/models/manifests/cohere.d.ts +8 -0
- package/dist/models/manifests/cohere.js +18 -0
- package/dist/models/manifests/deepseek.d.ts +8 -0
- package/dist/models/manifests/deepseek.js +18 -0
- package/dist/models/manifests/fireworks.d.ts +8 -0
- package/dist/models/manifests/fireworks.js +18 -0
- package/dist/models/manifests/google-ai.d.ts +2 -0
- package/dist/models/manifests/google-ai.js +27 -0
- package/dist/models/manifests/groq.d.ts +8 -0
- package/dist/models/manifests/groq.js +18 -0
- package/dist/models/manifests/huggingface.d.ts +8 -0
- package/dist/models/manifests/huggingface.js +18 -0
- package/dist/models/manifests/ideogram.d.ts +8 -0
- package/dist/models/manifests/ideogram.js +18 -0
- package/dist/models/manifests/jina.d.ts +8 -0
- package/dist/models/manifests/jina.js +18 -0
- package/dist/models/manifests/litellm.d.ts +8 -0
- package/dist/models/manifests/litellm.js +18 -0
- package/dist/models/manifests/llamacpp.d.ts +8 -0
- package/dist/models/manifests/llamacpp.js +18 -0
- package/dist/models/manifests/lm-studio.d.ts +8 -0
- package/dist/models/manifests/lm-studio.js +18 -0
- package/dist/models/manifests/mistral.d.ts +2 -0
- package/dist/models/manifests/mistral.js +49 -0
- package/dist/models/manifests/nvidia-nim.d.ts +8 -0
- package/dist/models/manifests/nvidia-nim.js +18 -0
- package/dist/models/manifests/ollama.d.ts +2 -0
- package/dist/models/manifests/ollama.js +71 -0
- package/dist/models/manifests/openai-compatible.d.ts +8 -0
- package/dist/models/manifests/openai-compatible.js +18 -0
- package/dist/models/manifests/openai.d.ts +11 -0
- package/dist/models/manifests/openai.js +559 -0
- package/dist/models/manifests/openrouter.d.ts +8 -0
- package/dist/models/manifests/openrouter.js +18 -0
- package/dist/models/manifests/perplexity.d.ts +8 -0
- package/dist/models/manifests/perplexity.js +18 -0
- package/dist/models/manifests/recraft.d.ts +8 -0
- package/dist/models/manifests/recraft.js +18 -0
- package/dist/models/manifests/replicate.d.ts +8 -0
- package/dist/models/manifests/replicate.js +18 -0
- package/dist/models/manifests/sagemaker.d.ts +8 -0
- package/dist/models/manifests/sagemaker.js +18 -0
- package/dist/models/manifests/stability.d.ts +8 -0
- package/dist/models/manifests/stability.js +18 -0
- package/dist/models/manifests/together-ai.d.ts +8 -0
- package/dist/models/manifests/together-ai.js +18 -0
- package/dist/models/manifests/vertex.d.ts +8 -0
- package/dist/models/manifests/vertex.js +18 -0
- package/dist/models/manifests/voyage.d.ts +8 -0
- package/dist/models/manifests/voyage.js +18 -0
- package/dist/models/manifests/xai.d.ts +8 -0
- package/dist/models/manifests/xai.js +18 -0
- package/dist/providers/googleVertex/constants.js +1 -1
- package/dist/types/model.d.ts +77 -0
- package/package.json +3 -2
|
@@ -0,0 +1,560 @@
|
|
|
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
|
+
};
|
|
560
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -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,19 @@
|
|
|
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
|
+
};
|
|
19
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -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,19 @@
|
|
|
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
|
+
};
|
|
19
|
+
//# sourceMappingURL=perplexity.js.map
|
|
@@ -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,19 @@
|
|
|
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
|
+
};
|
|
19
|
+
//# sourceMappingURL=recraft.js.map
|
|
@@ -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,19 @@
|
|
|
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
|
+
};
|
|
19
|
+
//# sourceMappingURL=replicate.js.map
|
|
@@ -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;
|