@juspay/neurolink 11.3.1 → 11.5.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 +6 -2
- package/dist/adapters/providerImageAdapter.js +3 -1
- package/dist/browser/neurolink.min.js +276 -276
- package/dist/constants/contextWindows.js +1 -1
- package/dist/constants/enums.d.ts +26 -1
- package/dist/constants/enums.js +37 -3
- package/dist/lib/adapters/providerImageAdapter.js +3 -1
- package/dist/lib/constants/contextWindows.js +1 -1
- package/dist/lib/constants/enums.d.ts +26 -1
- package/dist/lib/constants/enums.js +37 -3
- 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/models/modelRegistry.js +225 -7
- package/dist/lib/types/model.d.ts +77 -0
- package/dist/lib/utils/modelChoices.js +0 -1
- 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/models/modelRegistry.js +225 -7
- package/dist/types/model.d.ts +77 -0
- package/dist/utils/modelChoices.js +0 -1
- package/package.json +5 -2
|
@@ -282,7 +282,7 @@ export const MODEL_CONTEXT_WINDOWS = {
|
|
|
282
282
|
bedrock: {
|
|
283
283
|
_default: 200_000,
|
|
284
284
|
// Claude 4.6
|
|
285
|
-
"anthropic.claude-opus-4-6-v1
|
|
285
|
+
"anthropic.claude-opus-4-6-v1": 1_000_000,
|
|
286
286
|
"anthropic.claude-sonnet-4-6": 1_000_000,
|
|
287
287
|
// Claude 4.5
|
|
288
288
|
"anthropic.claude-opus-4-5-20251101-v1:0": 200_000,
|
|
@@ -67,7 +67,7 @@ export declare enum OpenRouterModels {
|
|
|
67
67
|
* Supported Models for Amazon Bedrock
|
|
68
68
|
*/
|
|
69
69
|
export declare enum BedrockModels {
|
|
70
|
-
CLAUDE_4_6_OPUS = "anthropic.claude-opus-4-6-v1
|
|
70
|
+
CLAUDE_4_6_OPUS = "anthropic.claude-opus-4-6-v1",
|
|
71
71
|
CLAUDE_4_6_SONNET = "anthropic.claude-sonnet-4-6",
|
|
72
72
|
CLAUDE_4_5_OPUS = "anthropic.claude-opus-4-5-20251101-v1:0",
|
|
73
73
|
CLAUDE_4_5_SONNET = "anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
@@ -230,6 +230,13 @@ export declare enum AzureOpenAIModels {
|
|
|
230
230
|
GPT_5_CHAT = "gpt-5-chat",
|
|
231
231
|
GPT_5_CODEX = "gpt-5-codex",
|
|
232
232
|
GPT_5_PRO = "gpt-5-pro",
|
|
233
|
+
/**
|
|
234
|
+
* @deprecated No such model exists on Azure OpenAI. "Turbo" was a GPT-3.5 and
|
|
235
|
+
* GPT-4 era suffix and was never carried into the GPT-5 family; the real
|
|
236
|
+
* series is gpt-5 / gpt-5-mini / gpt-5-nano / gpt-5-chat / gpt-5-codex /
|
|
237
|
+
* gpt-5-pro. Deploying this id fails. Kept only so existing code still
|
|
238
|
+
* compiles — scheduled for removal in the next major. Use GPT_5 instead.
|
|
239
|
+
*/
|
|
233
240
|
GPT_5_TURBO = "gpt-5-turbo",
|
|
234
241
|
O4_MINI = "o4-mini",
|
|
235
242
|
O3 = "o3",
|
|
@@ -329,13 +336,21 @@ export declare enum GoogleAIModels {
|
|
|
329
336
|
* Supported Models for Anthropic (Direct API)
|
|
330
337
|
*/
|
|
331
338
|
export declare enum AnthropicModels {
|
|
339
|
+
CLAUDE_OPUS_5 = "claude-opus-5",
|
|
340
|
+
CLAUDE_SONNET_5 = "claude-sonnet-5",
|
|
341
|
+
CLAUDE_FABLE_5 = "claude-fable-5",
|
|
342
|
+
CLAUDE_OPUS_4_8 = "claude-opus-4-8",
|
|
343
|
+
CLAUDE_OPUS_4_7 = "claude-opus-4-7",
|
|
332
344
|
CLAUDE_OPUS_4_6 = "claude-opus-4-6",
|
|
333
345
|
CLAUDE_SONNET_4_6 = "claude-sonnet-4-6",
|
|
334
346
|
CLAUDE_OPUS_4_5 = "claude-opus-4-5-20251101",
|
|
335
347
|
CLAUDE_SONNET_4_5 = "claude-sonnet-4-5-20250929",
|
|
336
348
|
CLAUDE_4_5_HAIKU = "claude-haiku-4-5-20251001",
|
|
349
|
+
/** @deprecated Retired from the Claude API on August 5, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
337
350
|
CLAUDE_OPUS_4_1 = "claude-opus-4-1-20250805",
|
|
351
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
338
352
|
CLAUDE_OPUS_4_0 = "claude-opus-4-20250514",
|
|
353
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_SONNET_4_6 instead. */
|
|
339
354
|
CLAUDE_SONNET_4_0 = "claude-sonnet-4-20250514",
|
|
340
355
|
/** @deprecated Retired from Anthropic API. Use CLAUDE_SONNET_4_6 instead. */
|
|
341
356
|
CLAUDE_SONNET_3_7 = "claude-3-7-sonnet-20250219",
|
|
@@ -370,7 +385,17 @@ export declare enum MistralModels {
|
|
|
370
385
|
CODESTRAL_EMBED = "codestral-embed",
|
|
371
386
|
DEVSTRAL_MEDIUM_LATEST = "devstral-medium-latest",
|
|
372
387
|
DEVSTRAL_SMALL_LATEST = "devstral-small-latest",
|
|
388
|
+
/**
|
|
389
|
+
* @deprecated Retired by Mistral on 2026-05-31. The id is also wrong: the
|
|
390
|
+
* API string was `pixtral-large-2411`, and Mistral publishes no dateless
|
|
391
|
+
* `pixtral-large` alias. Use MISTRAL_MEDIUM_LATEST instead.
|
|
392
|
+
*/
|
|
373
393
|
PIXTRAL_LARGE = "pixtral-large",
|
|
394
|
+
/**
|
|
395
|
+
* @deprecated Retired by Mistral on 2025-12-31. The API string was
|
|
396
|
+
* `pixtral-12b-2409`; no dateless alias is published. Mistral recommends
|
|
397
|
+
* Ministral 3 14B as the replacement.
|
|
398
|
+
*/
|
|
374
399
|
PIXTRAL_12B = "pixtral-12b",
|
|
375
400
|
VOXTRAL_SMALL_LATEST = "voxtral-small-latest",
|
|
376
401
|
VOXTRAL_MINI_LATEST = "voxtral-mini-latest",
|
package/dist/constants/enums.js
CHANGED
|
@@ -88,7 +88,7 @@ export var BedrockModels;
|
|
|
88
88
|
// ANTHROPIC CLAUDE MODELS
|
|
89
89
|
// ============================================================================
|
|
90
90
|
// Claude 4.6 Series (Latest - February 2026)
|
|
91
|
-
BedrockModels["CLAUDE_4_6_OPUS"] = "anthropic.claude-opus-4-6-v1
|
|
91
|
+
BedrockModels["CLAUDE_4_6_OPUS"] = "anthropic.claude-opus-4-6-v1";
|
|
92
92
|
BedrockModels["CLAUDE_4_6_SONNET"] = "anthropic.claude-sonnet-4-6";
|
|
93
93
|
// Claude 4.5 Series (September-November 2025)
|
|
94
94
|
BedrockModels["CLAUDE_4_5_OPUS"] = "anthropic.claude-opus-4-5-20251101-v1:0";
|
|
@@ -322,6 +322,13 @@ export var AzureOpenAIModels;
|
|
|
322
322
|
AzureOpenAIModels["GPT_5_CHAT"] = "gpt-5-chat";
|
|
323
323
|
AzureOpenAIModels["GPT_5_CODEX"] = "gpt-5-codex";
|
|
324
324
|
AzureOpenAIModels["GPT_5_PRO"] = "gpt-5-pro";
|
|
325
|
+
/**
|
|
326
|
+
* @deprecated No such model exists on Azure OpenAI. "Turbo" was a GPT-3.5 and
|
|
327
|
+
* GPT-4 era suffix and was never carried into the GPT-5 family; the real
|
|
328
|
+
* series is gpt-5 / gpt-5-mini / gpt-5-nano / gpt-5-chat / gpt-5-codex /
|
|
329
|
+
* gpt-5-pro. Deploying this id fails. Kept only so existing code still
|
|
330
|
+
* compiles — scheduled for removal in the next major. Use GPT_5 instead.
|
|
331
|
+
*/
|
|
325
332
|
AzureOpenAIModels["GPT_5_TURBO"] = "gpt-5-turbo";
|
|
326
333
|
// O-Series Reasoning Models
|
|
327
334
|
AzureOpenAIModels["O4_MINI"] = "o4-mini";
|
|
@@ -444,9 +451,23 @@ export var GoogleAIModels;
|
|
|
444
451
|
/**
|
|
445
452
|
* Supported Models for Anthropic (Direct API)
|
|
446
453
|
*/
|
|
454
|
+
// Model states below track Anthropic's own status table at
|
|
455
|
+
// platform.claude.com/docs/en/about-claude/model-deprecations. Those dates
|
|
456
|
+
// cover Anthropic-operated platforms only — Amazon Bedrock and Google Cloud
|
|
457
|
+
// set their own retirement schedules, so BedrockModels/VertexModels entries
|
|
458
|
+
// are NOT retired just because the direct-API twin is.
|
|
447
459
|
export var AnthropicModels;
|
|
448
460
|
(function (AnthropicModels) {
|
|
449
|
-
// Claude
|
|
461
|
+
// Claude 5 Series (mid 2026). MODEL_CONTEXT_WINDOWS.anthropic
|
|
462
|
+
// (src/lib/constants/contextWindows.ts) already carries the 1M window
|
|
463
|
+
// these ids resolve to.
|
|
464
|
+
AnthropicModels["CLAUDE_OPUS_5"] = "claude-opus-5";
|
|
465
|
+
AnthropicModels["CLAUDE_SONNET_5"] = "claude-sonnet-5";
|
|
466
|
+
AnthropicModels["CLAUDE_FABLE_5"] = "claude-fable-5";
|
|
467
|
+
// Claude 4.7 / 4.8 Series
|
|
468
|
+
AnthropicModels["CLAUDE_OPUS_4_8"] = "claude-opus-4-8";
|
|
469
|
+
AnthropicModels["CLAUDE_OPUS_4_7"] = "claude-opus-4-7";
|
|
470
|
+
// Claude 4.6 Series (February 2026)
|
|
450
471
|
AnthropicModels["CLAUDE_OPUS_4_6"] = "claude-opus-4-6";
|
|
451
472
|
AnthropicModels["CLAUDE_SONNET_4_6"] = "claude-sonnet-4-6";
|
|
452
473
|
// Claude 4.5 Series (September-November 2025)
|
|
@@ -454,9 +475,12 @@ export var AnthropicModels;
|
|
|
454
475
|
AnthropicModels["CLAUDE_SONNET_4_5"] = "claude-sonnet-4-5-20250929";
|
|
455
476
|
AnthropicModels["CLAUDE_4_5_HAIKU"] = "claude-haiku-4-5-20251001";
|
|
456
477
|
// Claude 4.1 Series (Legacy)
|
|
478
|
+
/** @deprecated Retired from the Claude API on August 5, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
457
479
|
AnthropicModels["CLAUDE_OPUS_4_1"] = "claude-opus-4-1-20250805";
|
|
458
480
|
// Claude 4.0 Series (Legacy)
|
|
481
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
459
482
|
AnthropicModels["CLAUDE_OPUS_4_0"] = "claude-opus-4-20250514";
|
|
483
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_SONNET_4_6 instead. */
|
|
460
484
|
AnthropicModels["CLAUDE_SONNET_4_0"] = "claude-sonnet-4-20250514";
|
|
461
485
|
// Claude 3.7 Series (Legacy)
|
|
462
486
|
/** @deprecated Retired from Anthropic API. Use CLAUDE_SONNET_4_6 instead. */
|
|
@@ -502,8 +526,18 @@ export var MistralModels;
|
|
|
502
526
|
// Devstral (Software Development)
|
|
503
527
|
MistralModels["DEVSTRAL_MEDIUM_LATEST"] = "devstral-medium-latest";
|
|
504
528
|
MistralModels["DEVSTRAL_SMALL_LATEST"] = "devstral-small-latest";
|
|
505
|
-
// Pixtral (Multimodal/Vision)
|
|
529
|
+
// Pixtral (Multimodal/Vision) — both retired by Mistral.
|
|
530
|
+
/**
|
|
531
|
+
* @deprecated Retired by Mistral on 2026-05-31. The id is also wrong: the
|
|
532
|
+
* API string was `pixtral-large-2411`, and Mistral publishes no dateless
|
|
533
|
+
* `pixtral-large` alias. Use MISTRAL_MEDIUM_LATEST instead.
|
|
534
|
+
*/
|
|
506
535
|
MistralModels["PIXTRAL_LARGE"] = "pixtral-large";
|
|
536
|
+
/**
|
|
537
|
+
* @deprecated Retired by Mistral on 2025-12-31. The API string was
|
|
538
|
+
* `pixtral-12b-2409`; no dateless alias is published. Mistral recommends
|
|
539
|
+
* Ministral 3 14B as the replacement.
|
|
540
|
+
*/
|
|
507
541
|
MistralModels["PIXTRAL_12B"] = "pixtral-12b";
|
|
508
542
|
// Voxtral (Audio)
|
|
509
543
|
MistralModels["VOXTRAL_SMALL_LATEST"] = "voxtral-small-latest";
|
|
@@ -192,7 +192,9 @@ const VISION_CAPABILITIES = {
|
|
|
192
192
|
// GPT-5 family
|
|
193
193
|
"gpt-5",
|
|
194
194
|
"gpt-5-pro",
|
|
195
|
-
"gpt-5-turbo",
|
|
195
|
+
// "gpt-5-turbo" removed: Azure publishes no such model, so advertising
|
|
196
|
+
// vision for it made supportsVision() vouch for an id that cannot be
|
|
197
|
+
// deployed.
|
|
196
198
|
"gpt-5-chat",
|
|
197
199
|
"gpt-5-mini",
|
|
198
200
|
// GPT-4.1 family
|
|
@@ -282,7 +282,7 @@ export const MODEL_CONTEXT_WINDOWS = {
|
|
|
282
282
|
bedrock: {
|
|
283
283
|
_default: 200_000,
|
|
284
284
|
// Claude 4.6
|
|
285
|
-
"anthropic.claude-opus-4-6-v1
|
|
285
|
+
"anthropic.claude-opus-4-6-v1": 1_000_000,
|
|
286
286
|
"anthropic.claude-sonnet-4-6": 1_000_000,
|
|
287
287
|
// Claude 4.5
|
|
288
288
|
"anthropic.claude-opus-4-5-20251101-v1:0": 200_000,
|
|
@@ -67,7 +67,7 @@ export declare enum OpenRouterModels {
|
|
|
67
67
|
* Supported Models for Amazon Bedrock
|
|
68
68
|
*/
|
|
69
69
|
export declare enum BedrockModels {
|
|
70
|
-
CLAUDE_4_6_OPUS = "anthropic.claude-opus-4-6-v1
|
|
70
|
+
CLAUDE_4_6_OPUS = "anthropic.claude-opus-4-6-v1",
|
|
71
71
|
CLAUDE_4_6_SONNET = "anthropic.claude-sonnet-4-6",
|
|
72
72
|
CLAUDE_4_5_OPUS = "anthropic.claude-opus-4-5-20251101-v1:0",
|
|
73
73
|
CLAUDE_4_5_SONNET = "anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
@@ -230,6 +230,13 @@ export declare enum AzureOpenAIModels {
|
|
|
230
230
|
GPT_5_CHAT = "gpt-5-chat",
|
|
231
231
|
GPT_5_CODEX = "gpt-5-codex",
|
|
232
232
|
GPT_5_PRO = "gpt-5-pro",
|
|
233
|
+
/**
|
|
234
|
+
* @deprecated No such model exists on Azure OpenAI. "Turbo" was a GPT-3.5 and
|
|
235
|
+
* GPT-4 era suffix and was never carried into the GPT-5 family; the real
|
|
236
|
+
* series is gpt-5 / gpt-5-mini / gpt-5-nano / gpt-5-chat / gpt-5-codex /
|
|
237
|
+
* gpt-5-pro. Deploying this id fails. Kept only so existing code still
|
|
238
|
+
* compiles — scheduled for removal in the next major. Use GPT_5 instead.
|
|
239
|
+
*/
|
|
233
240
|
GPT_5_TURBO = "gpt-5-turbo",
|
|
234
241
|
O4_MINI = "o4-mini",
|
|
235
242
|
O3 = "o3",
|
|
@@ -329,13 +336,21 @@ export declare enum GoogleAIModels {
|
|
|
329
336
|
* Supported Models for Anthropic (Direct API)
|
|
330
337
|
*/
|
|
331
338
|
export declare enum AnthropicModels {
|
|
339
|
+
CLAUDE_OPUS_5 = "claude-opus-5",
|
|
340
|
+
CLAUDE_SONNET_5 = "claude-sonnet-5",
|
|
341
|
+
CLAUDE_FABLE_5 = "claude-fable-5",
|
|
342
|
+
CLAUDE_OPUS_4_8 = "claude-opus-4-8",
|
|
343
|
+
CLAUDE_OPUS_4_7 = "claude-opus-4-7",
|
|
332
344
|
CLAUDE_OPUS_4_6 = "claude-opus-4-6",
|
|
333
345
|
CLAUDE_SONNET_4_6 = "claude-sonnet-4-6",
|
|
334
346
|
CLAUDE_OPUS_4_5 = "claude-opus-4-5-20251101",
|
|
335
347
|
CLAUDE_SONNET_4_5 = "claude-sonnet-4-5-20250929",
|
|
336
348
|
CLAUDE_4_5_HAIKU = "claude-haiku-4-5-20251001",
|
|
349
|
+
/** @deprecated Retired from the Claude API on August 5, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
337
350
|
CLAUDE_OPUS_4_1 = "claude-opus-4-1-20250805",
|
|
351
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
338
352
|
CLAUDE_OPUS_4_0 = "claude-opus-4-20250514",
|
|
353
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_SONNET_4_6 instead. */
|
|
339
354
|
CLAUDE_SONNET_4_0 = "claude-sonnet-4-20250514",
|
|
340
355
|
/** @deprecated Retired from Anthropic API. Use CLAUDE_SONNET_4_6 instead. */
|
|
341
356
|
CLAUDE_SONNET_3_7 = "claude-3-7-sonnet-20250219",
|
|
@@ -370,7 +385,17 @@ export declare enum MistralModels {
|
|
|
370
385
|
CODESTRAL_EMBED = "codestral-embed",
|
|
371
386
|
DEVSTRAL_MEDIUM_LATEST = "devstral-medium-latest",
|
|
372
387
|
DEVSTRAL_SMALL_LATEST = "devstral-small-latest",
|
|
388
|
+
/**
|
|
389
|
+
* @deprecated Retired by Mistral on 2026-05-31. The id is also wrong: the
|
|
390
|
+
* API string was `pixtral-large-2411`, and Mistral publishes no dateless
|
|
391
|
+
* `pixtral-large` alias. Use MISTRAL_MEDIUM_LATEST instead.
|
|
392
|
+
*/
|
|
373
393
|
PIXTRAL_LARGE = "pixtral-large",
|
|
394
|
+
/**
|
|
395
|
+
* @deprecated Retired by Mistral on 2025-12-31. The API string was
|
|
396
|
+
* `pixtral-12b-2409`; no dateless alias is published. Mistral recommends
|
|
397
|
+
* Ministral 3 14B as the replacement.
|
|
398
|
+
*/
|
|
374
399
|
PIXTRAL_12B = "pixtral-12b",
|
|
375
400
|
VOXTRAL_SMALL_LATEST = "voxtral-small-latest",
|
|
376
401
|
VOXTRAL_MINI_LATEST = "voxtral-mini-latest",
|
|
@@ -88,7 +88,7 @@ export var BedrockModels;
|
|
|
88
88
|
// ANTHROPIC CLAUDE MODELS
|
|
89
89
|
// ============================================================================
|
|
90
90
|
// Claude 4.6 Series (Latest - February 2026)
|
|
91
|
-
BedrockModels["CLAUDE_4_6_OPUS"] = "anthropic.claude-opus-4-6-v1
|
|
91
|
+
BedrockModels["CLAUDE_4_6_OPUS"] = "anthropic.claude-opus-4-6-v1";
|
|
92
92
|
BedrockModels["CLAUDE_4_6_SONNET"] = "anthropic.claude-sonnet-4-6";
|
|
93
93
|
// Claude 4.5 Series (September-November 2025)
|
|
94
94
|
BedrockModels["CLAUDE_4_5_OPUS"] = "anthropic.claude-opus-4-5-20251101-v1:0";
|
|
@@ -322,6 +322,13 @@ export var AzureOpenAIModels;
|
|
|
322
322
|
AzureOpenAIModels["GPT_5_CHAT"] = "gpt-5-chat";
|
|
323
323
|
AzureOpenAIModels["GPT_5_CODEX"] = "gpt-5-codex";
|
|
324
324
|
AzureOpenAIModels["GPT_5_PRO"] = "gpt-5-pro";
|
|
325
|
+
/**
|
|
326
|
+
* @deprecated No such model exists on Azure OpenAI. "Turbo" was a GPT-3.5 and
|
|
327
|
+
* GPT-4 era suffix and was never carried into the GPT-5 family; the real
|
|
328
|
+
* series is gpt-5 / gpt-5-mini / gpt-5-nano / gpt-5-chat / gpt-5-codex /
|
|
329
|
+
* gpt-5-pro. Deploying this id fails. Kept only so existing code still
|
|
330
|
+
* compiles — scheduled for removal in the next major. Use GPT_5 instead.
|
|
331
|
+
*/
|
|
325
332
|
AzureOpenAIModels["GPT_5_TURBO"] = "gpt-5-turbo";
|
|
326
333
|
// O-Series Reasoning Models
|
|
327
334
|
AzureOpenAIModels["O4_MINI"] = "o4-mini";
|
|
@@ -444,9 +451,23 @@ export var GoogleAIModels;
|
|
|
444
451
|
/**
|
|
445
452
|
* Supported Models for Anthropic (Direct API)
|
|
446
453
|
*/
|
|
454
|
+
// Model states below track Anthropic's own status table at
|
|
455
|
+
// platform.claude.com/docs/en/about-claude/model-deprecations. Those dates
|
|
456
|
+
// cover Anthropic-operated platforms only — Amazon Bedrock and Google Cloud
|
|
457
|
+
// set their own retirement schedules, so BedrockModels/VertexModels entries
|
|
458
|
+
// are NOT retired just because the direct-API twin is.
|
|
447
459
|
export var AnthropicModels;
|
|
448
460
|
(function (AnthropicModels) {
|
|
449
|
-
// Claude
|
|
461
|
+
// Claude 5 Series (mid 2026). MODEL_CONTEXT_WINDOWS.anthropic
|
|
462
|
+
// (src/lib/constants/contextWindows.ts) already carries the 1M window
|
|
463
|
+
// these ids resolve to.
|
|
464
|
+
AnthropicModels["CLAUDE_OPUS_5"] = "claude-opus-5";
|
|
465
|
+
AnthropicModels["CLAUDE_SONNET_5"] = "claude-sonnet-5";
|
|
466
|
+
AnthropicModels["CLAUDE_FABLE_5"] = "claude-fable-5";
|
|
467
|
+
// Claude 4.7 / 4.8 Series
|
|
468
|
+
AnthropicModels["CLAUDE_OPUS_4_8"] = "claude-opus-4-8";
|
|
469
|
+
AnthropicModels["CLAUDE_OPUS_4_7"] = "claude-opus-4-7";
|
|
470
|
+
// Claude 4.6 Series (February 2026)
|
|
450
471
|
AnthropicModels["CLAUDE_OPUS_4_6"] = "claude-opus-4-6";
|
|
451
472
|
AnthropicModels["CLAUDE_SONNET_4_6"] = "claude-sonnet-4-6";
|
|
452
473
|
// Claude 4.5 Series (September-November 2025)
|
|
@@ -454,9 +475,12 @@ export var AnthropicModels;
|
|
|
454
475
|
AnthropicModels["CLAUDE_SONNET_4_5"] = "claude-sonnet-4-5-20250929";
|
|
455
476
|
AnthropicModels["CLAUDE_4_5_HAIKU"] = "claude-haiku-4-5-20251001";
|
|
456
477
|
// Claude 4.1 Series (Legacy)
|
|
478
|
+
/** @deprecated Retired from the Claude API on August 5, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
457
479
|
AnthropicModels["CLAUDE_OPUS_4_1"] = "claude-opus-4-1-20250805";
|
|
458
480
|
// Claude 4.0 Series (Legacy)
|
|
481
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_OPUS_4_8 instead. */
|
|
459
482
|
AnthropicModels["CLAUDE_OPUS_4_0"] = "claude-opus-4-20250514";
|
|
483
|
+
/** @deprecated Retired from the Claude API on June 15, 2026. Use CLAUDE_SONNET_4_6 instead. */
|
|
460
484
|
AnthropicModels["CLAUDE_SONNET_4_0"] = "claude-sonnet-4-20250514";
|
|
461
485
|
// Claude 3.7 Series (Legacy)
|
|
462
486
|
/** @deprecated Retired from Anthropic API. Use CLAUDE_SONNET_4_6 instead. */
|
|
@@ -502,8 +526,18 @@ export var MistralModels;
|
|
|
502
526
|
// Devstral (Software Development)
|
|
503
527
|
MistralModels["DEVSTRAL_MEDIUM_LATEST"] = "devstral-medium-latest";
|
|
504
528
|
MistralModels["DEVSTRAL_SMALL_LATEST"] = "devstral-small-latest";
|
|
505
|
-
// Pixtral (Multimodal/Vision)
|
|
529
|
+
// Pixtral (Multimodal/Vision) — both retired by Mistral.
|
|
530
|
+
/**
|
|
531
|
+
* @deprecated Retired by Mistral on 2026-05-31. The id is also wrong: the
|
|
532
|
+
* API string was `pixtral-large-2411`, and Mistral publishes no dateless
|
|
533
|
+
* `pixtral-large` alias. Use MISTRAL_MEDIUM_LATEST instead.
|
|
534
|
+
*/
|
|
506
535
|
MistralModels["PIXTRAL_LARGE"] = "pixtral-large";
|
|
536
|
+
/**
|
|
537
|
+
* @deprecated Retired by Mistral on 2025-12-31. The API string was
|
|
538
|
+
* `pixtral-12b-2409`; no dateless alias is published. Mistral recommends
|
|
539
|
+
* Ministral 3 14B as the replacement.
|
|
540
|
+
*/
|
|
507
541
|
MistralModels["PIXTRAL_12B"] = "pixtral-12b";
|
|
508
542
|
// Voxtral (Audio)
|
|
509
543
|
MistralModels["VOXTRAL_SMALL_LATEST"] = "voxtral-small-latest";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ProviderModelManifest, ProviderModelManifestEntry } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Every provider's model manifest, keyed by the exact AIProviderName enum
|
|
4
|
+
* value (kebab-case) — e.g. "google-ai", "nvidia-nim". Manifests are pure
|
|
5
|
+
* data with zero heavy dependencies, so they are imported statically here
|
|
6
|
+
* (Critical Rule 1's dynamic-import mandate targets providerRegistry.ts's
|
|
7
|
+
* *provider* factories, which pull in real SDK clients — not this).
|
|
8
|
+
*/
|
|
9
|
+
export declare const MANIFEST_REGISTRY: Record<string, ProviderModelManifest>;
|
|
10
|
+
export declare function getManifestForProvider(provider: string): ProviderModelManifest | undefined;
|
|
11
|
+
export declare function getAllManifestProviders(): string[];
|
|
12
|
+
/**
|
|
13
|
+
* Resolve a model against a provider's manifest WITHOUT ever falling back to
|
|
14
|
+
* the provider's `_default` entry. Used by callers that need to insert their
|
|
15
|
+
* own special-case fallback (cross-provider pricing, proxy pass-through)
|
|
16
|
+
* between "no real match" and "give up" — see resolveManifestEntry's
|
|
17
|
+
* docblock for why the split exists.
|
|
18
|
+
*
|
|
19
|
+
* Resolution order: exact canonical id, then a declared alias, then
|
|
20
|
+
* longest-prefix match (for tagged/gateway-shaped ids like Ollama's
|
|
21
|
+
* "llama3.2:latest" or OpenRouter's "openai/gpt-4o"), then undefined.
|
|
22
|
+
* Family rules are applied on top of whichever entry matched.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveManifestEntryExact(provider: string, model: string): ProviderModelManifestEntry | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve a model against a provider's manifest, falling back to the
|
|
27
|
+
* provider's `_default` entry (synthesized from `PROVIDER_MAX_TOKENS`,
|
|
28
|
+
* clamped to `defaultContextWindow`, when no explicit `_default` model
|
|
29
|
+
* entry exists) when no real model matches. Family rules are tested
|
|
30
|
+
* against the ORIGINAL model string even on the `_default` path, so an
|
|
31
|
+
* unmatched gateway-shaped id still gets patched.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveManifestEntry(provider: string, model: string): ProviderModelManifestEntry | undefined;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { PROVIDER_MAX_TOKENS } from "../core/constants.js";
|
|
2
|
+
import { anthropicManifest } from "./manifests/anthropic.js";
|
|
3
|
+
import { openaiManifest } from "./manifests/openai.js";
|
|
4
|
+
import { azureManifest } from "./manifests/azure.js";
|
|
5
|
+
import { bedrockManifest } from "./manifests/bedrock.js";
|
|
6
|
+
import { ollamaManifest } from "./manifests/ollama.js";
|
|
7
|
+
import { mistralManifest } from "./manifests/mistral.js";
|
|
8
|
+
import { googleAiManifest } from "./manifests/google-ai.js";
|
|
9
|
+
import { openaiCompatibleManifest } from "./manifests/openai-compatible.js";
|
|
10
|
+
import { openrouterManifest } from "./manifests/openrouter.js";
|
|
11
|
+
import { vertexManifest } from "./manifests/vertex.js";
|
|
12
|
+
import { huggingfaceManifest } from "./manifests/huggingface.js";
|
|
13
|
+
import { litellmManifest } from "./manifests/litellm.js";
|
|
14
|
+
import { sagemakerManifest } from "./manifests/sagemaker.js";
|
|
15
|
+
import { deepseekManifest } from "./manifests/deepseek.js";
|
|
16
|
+
import { nvidiaNimManifest } from "./manifests/nvidia-nim.js";
|
|
17
|
+
import { lmStudioManifest } from "./manifests/lm-studio.js";
|
|
18
|
+
import { llamacppManifest } from "./manifests/llamacpp.js";
|
|
19
|
+
import { xaiManifest } from "./manifests/xai.js";
|
|
20
|
+
import { groqManifest } from "./manifests/groq.js";
|
|
21
|
+
import { cohereManifest } from "./manifests/cohere.js";
|
|
22
|
+
import { togetherAiManifest } from "./manifests/together-ai.js";
|
|
23
|
+
import { fireworksManifest } from "./manifests/fireworks.js";
|
|
24
|
+
import { perplexityManifest } from "./manifests/perplexity.js";
|
|
25
|
+
import { cloudflareManifest } from "./manifests/cloudflare.js";
|
|
26
|
+
import { replicateManifest } from "./manifests/replicate.js";
|
|
27
|
+
import { voyageManifest } from "./manifests/voyage.js";
|
|
28
|
+
import { jinaManifest } from "./manifests/jina.js";
|
|
29
|
+
import { stabilityManifest } from "./manifests/stability.js";
|
|
30
|
+
import { ideogramManifest } from "./manifests/ideogram.js";
|
|
31
|
+
import { recraftManifest } from "./manifests/recraft.js";
|
|
32
|
+
/**
|
|
33
|
+
* Every provider's model manifest, keyed by the exact AIProviderName enum
|
|
34
|
+
* value (kebab-case) — e.g. "google-ai", "nvidia-nim". Manifests are pure
|
|
35
|
+
* data with zero heavy dependencies, so they are imported statically here
|
|
36
|
+
* (Critical Rule 1's dynamic-import mandate targets providerRegistry.ts's
|
|
37
|
+
* *provider* factories, which pull in real SDK clients — not this).
|
|
38
|
+
*/
|
|
39
|
+
export const MANIFEST_REGISTRY = {
|
|
40
|
+
anthropic: anthropicManifest,
|
|
41
|
+
openai: openaiManifest,
|
|
42
|
+
azure: azureManifest,
|
|
43
|
+
bedrock: bedrockManifest,
|
|
44
|
+
ollama: ollamaManifest,
|
|
45
|
+
mistral: mistralManifest,
|
|
46
|
+
"google-ai": googleAiManifest,
|
|
47
|
+
"openai-compatible": openaiCompatibleManifest,
|
|
48
|
+
openrouter: openrouterManifest,
|
|
49
|
+
vertex: vertexManifest,
|
|
50
|
+
huggingface: huggingfaceManifest,
|
|
51
|
+
litellm: litellmManifest,
|
|
52
|
+
sagemaker: sagemakerManifest,
|
|
53
|
+
deepseek: deepseekManifest,
|
|
54
|
+
"nvidia-nim": nvidiaNimManifest,
|
|
55
|
+
"lm-studio": lmStudioManifest,
|
|
56
|
+
llamacpp: llamacppManifest,
|
|
57
|
+
xai: xaiManifest,
|
|
58
|
+
groq: groqManifest,
|
|
59
|
+
cohere: cohereManifest,
|
|
60
|
+
"together-ai": togetherAiManifest,
|
|
61
|
+
fireworks: fireworksManifest,
|
|
62
|
+
perplexity: perplexityManifest,
|
|
63
|
+
cloudflare: cloudflareManifest,
|
|
64
|
+
replicate: replicateManifest,
|
|
65
|
+
voyage: voyageManifest,
|
|
66
|
+
jina: jinaManifest,
|
|
67
|
+
stability: stabilityManifest,
|
|
68
|
+
ideogram: ideogramManifest,
|
|
69
|
+
recraft: recraftManifest,
|
|
70
|
+
};
|
|
71
|
+
export function getManifestForProvider(provider) {
|
|
72
|
+
return MANIFEST_REGISTRY[provider];
|
|
73
|
+
}
|
|
74
|
+
export function getAllManifestProviders() {
|
|
75
|
+
return Object.keys(MANIFEST_REGISTRY);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Apply every matching family rule's patch, in declaration order, on top of
|
|
79
|
+
* a base entry. Later rules win on overlapping fields (last patch applied
|
|
80
|
+
* wins), matching the "later registrations overwrite earlier ones" idiom
|
|
81
|
+
* used elsewhere in this subsystem (see registerRuntimeContextWindow's
|
|
82
|
+
* docblock, src/lib/constants/contextWindows.ts).
|
|
83
|
+
*/
|
|
84
|
+
function applyFamilyRules(manifest, model, base) {
|
|
85
|
+
if (!manifest.familyRules) {
|
|
86
|
+
return base;
|
|
87
|
+
}
|
|
88
|
+
let result = base;
|
|
89
|
+
for (const rule of manifest.familyRules) {
|
|
90
|
+
if (rule.pattern.test(model)) {
|
|
91
|
+
result = { ...result, ...rule.patch };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resolve a model against a provider's manifest WITHOUT ever falling back to
|
|
98
|
+
* the provider's `_default` entry. Used by callers that need to insert their
|
|
99
|
+
* own special-case fallback (cross-provider pricing, proxy pass-through)
|
|
100
|
+
* between "no real match" and "give up" — see resolveManifestEntry's
|
|
101
|
+
* docblock for why the split exists.
|
|
102
|
+
*
|
|
103
|
+
* Resolution order: exact canonical id, then a declared alias, then
|
|
104
|
+
* longest-prefix match (for tagged/gateway-shaped ids like Ollama's
|
|
105
|
+
* "llama3.2:latest" or OpenRouter's "openai/gpt-4o"), then undefined.
|
|
106
|
+
* Family rules are applied on top of whichever entry matched.
|
|
107
|
+
*/
|
|
108
|
+
export function resolveManifestEntryExact(provider, model) {
|
|
109
|
+
const manifest = MANIFEST_REGISTRY[provider];
|
|
110
|
+
if (!manifest) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const exact = manifest.models[model];
|
|
114
|
+
if (exact) {
|
|
115
|
+
return applyFamilyRules(manifest, model, exact);
|
|
116
|
+
}
|
|
117
|
+
const aliasMatch = Object.entries(manifest.models).find(([canonicalId, entry]) => canonicalId !== "_default" && entry.aliases.includes(model));
|
|
118
|
+
if (aliasMatch) {
|
|
119
|
+
return applyFamilyRules(manifest, model, aliasMatch[1]);
|
|
120
|
+
}
|
|
121
|
+
const sortedKeys = Object.keys(manifest.models)
|
|
122
|
+
.filter((k) => k !== "_default")
|
|
123
|
+
.sort((a, b) => b.length - a.length);
|
|
124
|
+
const prefixKey = sortedKeys.find((k) => model.startsWith(k));
|
|
125
|
+
if (prefixKey) {
|
|
126
|
+
return applyFamilyRules(manifest, model, manifest.models[prefixKey]);
|
|
127
|
+
}
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Provider-specific output-token ceiling used to synthesize a `_default`
|
|
132
|
+
* entry when a manifest declares no explicit one (currently every
|
|
133
|
+
* MODEL_REGISTRY-generated manifest — azure, bedrock, ollama, mistral,
|
|
134
|
+
* google-ai — since `generateFullManifest` only emits real model ids).
|
|
135
|
+
* Mirrors the same table + fallback chain the minimal-manifest generator
|
|
136
|
+
* already uses (scripts/generate-remaining-manifests.ts), so a provider
|
|
137
|
+
* with no PROVIDER_MAX_TOKENS entry still gets an honest ceiling instead of
|
|
138
|
+
* `undefined`. Clamped against the manifest's own `defaultContextWindow` —
|
|
139
|
+
* an output ceiling can never legitimately exceed total context.
|
|
140
|
+
*/
|
|
141
|
+
function defaultMaxOutputTokens(provider, defaultContextWindow) {
|
|
142
|
+
const providerLimits = PROVIDER_MAX_TOKENS[provider];
|
|
143
|
+
const rawMax = typeof providerLimits === "number"
|
|
144
|
+
? providerLimits
|
|
145
|
+
: (providerLimits?.default ?? PROVIDER_MAX_TOKENS.default);
|
|
146
|
+
return Math.min(rawMax, defaultContextWindow);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve a model against a provider's manifest, falling back to the
|
|
150
|
+
* provider's `_default` entry (synthesized from `PROVIDER_MAX_TOKENS`,
|
|
151
|
+
* clamped to `defaultContextWindow`, when no explicit `_default` model
|
|
152
|
+
* entry exists) when no real model matches. Family rules are tested
|
|
153
|
+
* against the ORIGINAL model string even on the `_default` path, so an
|
|
154
|
+
* unmatched gateway-shaped id still gets patched.
|
|
155
|
+
*/
|
|
156
|
+
export function resolveManifestEntry(provider, model) {
|
|
157
|
+
const exact = resolveManifestEntryExact(provider, model);
|
|
158
|
+
if (exact) {
|
|
159
|
+
return exact;
|
|
160
|
+
}
|
|
161
|
+
const manifest = MANIFEST_REGISTRY[provider];
|
|
162
|
+
if (!manifest) {
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
const defaultEntry = manifest.models._default ?? {
|
|
166
|
+
aliases: [],
|
|
167
|
+
contextWindow: manifest.defaultContextWindow,
|
|
168
|
+
maxOutputTokens: defaultMaxOutputTokens(provider, manifest.defaultContextWindow),
|
|
169
|
+
vision: false,
|
|
170
|
+
functionCalling: false,
|
|
171
|
+
};
|
|
172
|
+
return applyFamilyRules(manifest, model, defaultEntry);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=manifestRegistry.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ProviderModelManifest } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Anthropic model manifest. Canonical ids match AnthropicModels
|
|
4
|
+
* (src/lib/constants/enums.ts:524+) and MODEL_CONTEXT_WINDOWS.anthropic
|
|
5
|
+
* (src/lib/constants/contextWindows.ts:160-182). maxOutputTokens values
|
|
6
|
+
* come from getClaudeMaxOutputTokens (src/lib/utils/tokenLimits.ts) — the
|
|
7
|
+
* regex ladder already authoritative for native Claude request paths.
|
|
8
|
+
*/
|
|
9
|
+
export declare const anthropicManifest: ProviderModelManifest;
|