@dreb/ai 2.20.0 → 2.21.1
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/dist/models.d.ts.map +1 -1
- package/dist/models.generated.d.ts +187 -0
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +189 -2
- package/dist/models.generated.js.map +1 -1
- package/dist/models.js +4 -4
- package/dist/models.js.map +1 -1
- package/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/dist/providers/amazon-bedrock.js +8 -11
- package/dist/providers/amazon-bedrock.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +8 -11
- package/dist/providers/anthropic.js.map +1 -1
- package/package.json +1 -1
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA8BnF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA4B7F;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAO/F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA8BnF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA4B7F;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAO/F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAkB3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,GAAG,EAC9C,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAGT","sourcesContent":["import { MODELS } from \"./models.generated.js\";\nimport type { Api, KnownProvider, Model, Usage } from \"./types.js\";\n\nconst modelRegistry: Map<string, Map<string, Model<Api>>> = new Map();\n\n// Initialize registry from MODELS on module load\nfor (const [provider, models] of Object.entries(MODELS)) {\n\tconst providerModels = new Map<string, Model<Api>>();\n\tfor (const [id, model] of Object.entries(models)) {\n\t\tproviderModels.set(id, model as Model<Api>);\n\t}\n\tmodelRegistry.set(provider, providerModels);\n}\n\ntype ModelApi<\n\tTProvider extends KnownProvider,\n\tTModelId extends keyof (typeof MODELS)[TProvider],\n> = (typeof MODELS)[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nexport function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<ModelApi<TProvider, TModelId>> {\n\tconst providerModels = modelRegistry.get(provider);\n\treturn providerModels?.get(modelId as string) as Model<ModelApi<TProvider, TModelId>>;\n}\n\n/**\n * Check if a model ID looks like an alias (no date suffix).\n * Aliases are preferred over dated versions when fuzzy matching.\n *\n * IDs ending with `-latest` are treated as aliases.\n * IDs ending with a date pattern (`-YYYYMMDD`) are treated as dated versions.\n */\nexport function isModelAlias(id: string): boolean {\n\tif (id.endsWith(\"-latest\")) return true;\n\treturn !/-\\d{8}$/.test(id);\n}\n\n/**\n * Find a model by fuzzy matching against the provider's registered models.\n *\n * Resolution order:\n * 1. Exact match by provider + model ID (via registry Map.get)\n * 2. Case-insensitive substring match against model ID and display name\n * 3. Among matches, prefer aliases (non-dated IDs) over dated versions\n * 4. Among ties, pick the lexicographically highest (latest) ID\n *\n * This is the same matching logic used by the CLI, subagent model resolution,\n * and interactive mode — centralised here so tests can exercise the real path.\n *\n * @example\n * findModel(\"anthropic\", \"sonnet\") // → latest claude-sonnet alias\n * findModel(\"anthropic\", \"haiku\") // → latest claude-haiku alias\n * findModel(\"openai\", \"gpt-5\") // → latest gpt-5 alias\n */\nexport function findModel(provider: string, pattern: string): Model<Api> | undefined {\n\tconst providerModels = modelRegistry.get(provider);\n\tif (!providerModels) return undefined;\n\n\t// Try exact match first\n\tconst exact = providerModels.get(pattern);\n\tif (exact) return exact;\n\n\t// Substring match (case-insensitive)\n\tconst normalizedPattern = pattern.toLowerCase();\n\tconst matches = Array.from(providerModels.values()).filter(\n\t\t(m) => m.id.toLowerCase().includes(normalizedPattern) || m.name?.toLowerCase().includes(normalizedPattern),\n\t);\n\n\tif (matches.length === 0) return undefined;\n\tif (matches.length === 1) return matches[0];\n\n\t// Multiple matches — separate into aliases and dated versions\n\tconst aliases = matches.filter((m) => isModelAlias(m.id));\n\tconst datedVersions = matches.filter((m) => !isModelAlias(m.id));\n\n\tif (aliases.length > 0) {\n\t\t// Prefer alias — if multiple, pick the lexicographically highest\n\t\taliases.sort((a, b) => b.id.localeCompare(a.id));\n\t\treturn aliases[0];\n\t}\n\n\t// All dated — prefer the latest\n\tdatedVersions.sort((a, b) => b.id.localeCompare(a.id));\n\treturn datedVersions[0];\n}\n\n/**\n * Find a model by fuzzy matching against a flat array of models.\n * Same algorithm as findModel() but operates on an arbitrary model list\n * instead of the built-in registry.\n *\n * Used by model-resolver.ts and other code that manages its own model lists.\n */\nexport function findModelInList(pattern: string, models: Model<Api>[]): Model<Api> | undefined {\n\tif (models.length === 0) return undefined;\n\n\tconst normalizedPattern = pattern.toLowerCase();\n\n\t// Exact ID match (case-insensitive)\n\tconst exactById = models.find((m) => m.id.toLowerCase() === normalizedPattern);\n\tif (exactById) return exactById;\n\n\t// Substring match (case-insensitive)\n\tconst matches = models.filter(\n\t\t(m) => m.id.toLowerCase().includes(normalizedPattern) || m.name?.toLowerCase().includes(normalizedPattern),\n\t);\n\n\tif (matches.length === 0) return undefined;\n\tif (matches.length === 1) return matches[0];\n\n\t// Multiple matches — separate into aliases and dated versions\n\tconst aliases = matches.filter((m) => isModelAlias(m.id));\n\tconst datedVersions = matches.filter((m) => !isModelAlias(m.id));\n\n\tif (aliases.length > 0) {\n\t\taliases.sort((a, b) => b.id.localeCompare(a.id));\n\t\treturn aliases[0];\n\t}\n\n\tdatedVersions.sort((a, b) => b.id.localeCompare(a.id));\n\treturn datedVersions[0];\n}\n\nexport function getProviders(): KnownProvider[] {\n\treturn Array.from(modelRegistry.keys()) as KnownProvider[];\n}\n\nexport function getModels<TProvider extends KnownProvider>(\n\tprovider: TProvider,\n): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[] {\n\tconst models = modelRegistry.get(provider);\n\treturn models ? (Array.from(models.values()) as Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[]) : [];\n}\n\nexport function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage[\"cost\"] {\n\tusage.cost.input = (model.cost.input / 1000000) * usage.input;\n\tusage.cost.output = (model.cost.output / 1000000) * usage.output;\n\tusage.cost.cacheRead = (model.cost.cacheRead / 1000000) * usage.cacheRead;\n\tusage.cost.cacheWrite = (model.cost.cacheWrite / 1000000) * usage.cacheWrite;\n\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\treturn usage.cost;\n}\n\n/**\n * Check if a model supports xhigh thinking level.\n *\n * Supported today:\n * - GPT-5.2 / GPT-5.3 / GPT-5.4 model families\n * - Opus 4.6+ models (xhigh maps to adaptive effort \"max\" on Anthropic-compatible providers)\n */\nexport function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean {\n\tif (\n\t\tmodel.id.includes(\"gpt-5.2\") ||\n\t\tmodel.id.includes(\"gpt-5.3\") ||\n\t\tmodel.id.includes(\"gpt-5.4\") ||\n\t\tmodel.id.includes(\"gpt-5.5\")\n\t) {\n\t\treturn true;\n\t}\n\n\t// Opus 4.6+ supports xhigh (adaptive effort \"max\").\n\t// Match any opus-4-N or opus-4.N where N >= 6 (1-2 digit minor version, not date suffixes).\n\tconst opusMatch = model.id.match(/opus-4[.-](\\d{1,2})(?!\\d)/);\n\tif (opusMatch && Number.parseInt(opusMatch[1], 10) >= 6) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Check if two models are equal by comparing both their id and provider.\n * Returns false if either model is null or undefined.\n */\nexport function modelsAreEqual<TApi extends Api>(\n\ta: Model<TApi> | null | undefined,\n\tb: Model<TApi> | null | undefined,\n): boolean {\n\tif (!a || !b) return false;\n\treturn a.id === b.id && a.provider === b.provider;\n}\n"]}
|
|
@@ -153,6 +153,23 @@ export declare const MODELS: {
|
|
|
153
153
|
contextWindow: number;
|
|
154
154
|
maxTokens: number;
|
|
155
155
|
};
|
|
156
|
+
readonly "anthropic.claude-opus-4-8": {
|
|
157
|
+
id: string;
|
|
158
|
+
name: string;
|
|
159
|
+
api: "bedrock-converse-stream";
|
|
160
|
+
provider: string;
|
|
161
|
+
baseUrl: string;
|
|
162
|
+
reasoning: true;
|
|
163
|
+
input: ("image" | "text")[];
|
|
164
|
+
cost: {
|
|
165
|
+
input: number;
|
|
166
|
+
output: number;
|
|
167
|
+
cacheRead: number;
|
|
168
|
+
cacheWrite: number;
|
|
169
|
+
};
|
|
170
|
+
contextWindow: number;
|
|
171
|
+
maxTokens: number;
|
|
172
|
+
};
|
|
156
173
|
readonly "anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
157
174
|
id: string;
|
|
158
175
|
name: string;
|
|
@@ -221,6 +238,23 @@ export declare const MODELS: {
|
|
|
221
238
|
contextWindow: number;
|
|
222
239
|
maxTokens: number;
|
|
223
240
|
};
|
|
241
|
+
readonly "au.anthropic.claude-opus-4-8": {
|
|
242
|
+
id: string;
|
|
243
|
+
name: string;
|
|
244
|
+
api: "bedrock-converse-stream";
|
|
245
|
+
provider: string;
|
|
246
|
+
baseUrl: string;
|
|
247
|
+
reasoning: true;
|
|
248
|
+
input: ("image" | "text")[];
|
|
249
|
+
cost: {
|
|
250
|
+
input: number;
|
|
251
|
+
output: number;
|
|
252
|
+
cacheRead: number;
|
|
253
|
+
cacheWrite: number;
|
|
254
|
+
};
|
|
255
|
+
contextWindow: number;
|
|
256
|
+
maxTokens: number;
|
|
257
|
+
};
|
|
224
258
|
readonly "au.anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
225
259
|
id: string;
|
|
226
260
|
name: string;
|
|
@@ -374,6 +408,23 @@ export declare const MODELS: {
|
|
|
374
408
|
contextWindow: number;
|
|
375
409
|
maxTokens: number;
|
|
376
410
|
};
|
|
411
|
+
readonly "eu.anthropic.claude-opus-4-8": {
|
|
412
|
+
id: string;
|
|
413
|
+
name: string;
|
|
414
|
+
api: "bedrock-converse-stream";
|
|
415
|
+
provider: string;
|
|
416
|
+
baseUrl: string;
|
|
417
|
+
reasoning: true;
|
|
418
|
+
input: ("image" | "text")[];
|
|
419
|
+
cost: {
|
|
420
|
+
input: number;
|
|
421
|
+
output: number;
|
|
422
|
+
cacheRead: number;
|
|
423
|
+
cacheWrite: number;
|
|
424
|
+
};
|
|
425
|
+
contextWindow: number;
|
|
426
|
+
maxTokens: number;
|
|
427
|
+
};
|
|
377
428
|
readonly "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
378
429
|
id: string;
|
|
379
430
|
name: string;
|
|
@@ -476,6 +527,23 @@ export declare const MODELS: {
|
|
|
476
527
|
contextWindow: number;
|
|
477
528
|
maxTokens: number;
|
|
478
529
|
};
|
|
530
|
+
readonly "global.anthropic.claude-opus-4-8": {
|
|
531
|
+
id: string;
|
|
532
|
+
name: string;
|
|
533
|
+
api: "bedrock-converse-stream";
|
|
534
|
+
provider: string;
|
|
535
|
+
baseUrl: string;
|
|
536
|
+
reasoning: true;
|
|
537
|
+
input: ("image" | "text")[];
|
|
538
|
+
cost: {
|
|
539
|
+
input: number;
|
|
540
|
+
output: number;
|
|
541
|
+
cacheRead: number;
|
|
542
|
+
cacheWrite: number;
|
|
543
|
+
};
|
|
544
|
+
contextWindow: number;
|
|
545
|
+
maxTokens: number;
|
|
546
|
+
};
|
|
479
547
|
readonly "global.anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
480
548
|
id: string;
|
|
481
549
|
name: string;
|
|
@@ -561,6 +629,23 @@ export declare const MODELS: {
|
|
|
561
629
|
contextWindow: number;
|
|
562
630
|
maxTokens: number;
|
|
563
631
|
};
|
|
632
|
+
readonly "jp.anthropic.claude-opus-4-8": {
|
|
633
|
+
id: string;
|
|
634
|
+
name: string;
|
|
635
|
+
api: "bedrock-converse-stream";
|
|
636
|
+
provider: string;
|
|
637
|
+
baseUrl: string;
|
|
638
|
+
reasoning: true;
|
|
639
|
+
input: ("image" | "text")[];
|
|
640
|
+
cost: {
|
|
641
|
+
input: number;
|
|
642
|
+
output: number;
|
|
643
|
+
cacheRead: number;
|
|
644
|
+
cacheWrite: number;
|
|
645
|
+
};
|
|
646
|
+
contextWindow: number;
|
|
647
|
+
maxTokens: number;
|
|
648
|
+
};
|
|
564
649
|
readonly "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
565
650
|
id: string;
|
|
566
651
|
name: string;
|
|
@@ -1258,6 +1343,23 @@ export declare const MODELS: {
|
|
|
1258
1343
|
contextWindow: number;
|
|
1259
1344
|
maxTokens: number;
|
|
1260
1345
|
};
|
|
1346
|
+
readonly "us.anthropic.claude-opus-4-8": {
|
|
1347
|
+
id: string;
|
|
1348
|
+
name: string;
|
|
1349
|
+
api: "bedrock-converse-stream";
|
|
1350
|
+
provider: string;
|
|
1351
|
+
baseUrl: string;
|
|
1352
|
+
reasoning: true;
|
|
1353
|
+
input: ("image" | "text")[];
|
|
1354
|
+
cost: {
|
|
1355
|
+
input: number;
|
|
1356
|
+
output: number;
|
|
1357
|
+
cacheRead: number;
|
|
1358
|
+
cacheWrite: number;
|
|
1359
|
+
};
|
|
1360
|
+
contextWindow: number;
|
|
1361
|
+
maxTokens: number;
|
|
1362
|
+
};
|
|
1261
1363
|
readonly "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
|
1262
1364
|
id: string;
|
|
1263
1365
|
name: string;
|
|
@@ -1736,6 +1838,23 @@ export declare const MODELS: {
|
|
|
1736
1838
|
contextWindow: number;
|
|
1737
1839
|
maxTokens: number;
|
|
1738
1840
|
};
|
|
1841
|
+
readonly "claude-opus-4-8": {
|
|
1842
|
+
id: string;
|
|
1843
|
+
name: string;
|
|
1844
|
+
api: "anthropic-messages";
|
|
1845
|
+
provider: string;
|
|
1846
|
+
baseUrl: string;
|
|
1847
|
+
reasoning: true;
|
|
1848
|
+
input: ("image" | "text")[];
|
|
1849
|
+
cost: {
|
|
1850
|
+
input: number;
|
|
1851
|
+
output: number;
|
|
1852
|
+
cacheRead: number;
|
|
1853
|
+
cacheWrite: number;
|
|
1854
|
+
};
|
|
1855
|
+
contextWindow: number;
|
|
1856
|
+
maxTokens: number;
|
|
1857
|
+
};
|
|
1739
1858
|
readonly "claude-sonnet-4-0": {
|
|
1740
1859
|
id: string;
|
|
1741
1860
|
name: string;
|
|
@@ -6126,6 +6245,23 @@ export declare const MODELS: {
|
|
|
6126
6245
|
contextWindow: number;
|
|
6127
6246
|
maxTokens: number;
|
|
6128
6247
|
};
|
|
6248
|
+
readonly "claude-opus-4-8": {
|
|
6249
|
+
id: string;
|
|
6250
|
+
name: string;
|
|
6251
|
+
api: "anthropic-messages";
|
|
6252
|
+
provider: string;
|
|
6253
|
+
baseUrl: string;
|
|
6254
|
+
reasoning: true;
|
|
6255
|
+
input: ("image" | "text")[];
|
|
6256
|
+
cost: {
|
|
6257
|
+
input: number;
|
|
6258
|
+
output: number;
|
|
6259
|
+
cacheRead: number;
|
|
6260
|
+
cacheWrite: number;
|
|
6261
|
+
};
|
|
6262
|
+
contextWindow: number;
|
|
6263
|
+
maxTokens: number;
|
|
6264
|
+
};
|
|
6129
6265
|
readonly "claude-sonnet-4": {
|
|
6130
6266
|
id: string;
|
|
6131
6267
|
name: string;
|
|
@@ -7201,6 +7337,40 @@ export declare const MODELS: {
|
|
|
7201
7337
|
contextWindow: number;
|
|
7202
7338
|
maxTokens: number;
|
|
7203
7339
|
};
|
|
7340
|
+
readonly "anthropic/claude-opus-4.8": {
|
|
7341
|
+
id: string;
|
|
7342
|
+
name: string;
|
|
7343
|
+
api: "openai-completions";
|
|
7344
|
+
provider: string;
|
|
7345
|
+
baseUrl: string;
|
|
7346
|
+
reasoning: true;
|
|
7347
|
+
input: ("image" | "text")[];
|
|
7348
|
+
cost: {
|
|
7349
|
+
input: number;
|
|
7350
|
+
output: number;
|
|
7351
|
+
cacheRead: number;
|
|
7352
|
+
cacheWrite: number;
|
|
7353
|
+
};
|
|
7354
|
+
contextWindow: number;
|
|
7355
|
+
maxTokens: number;
|
|
7356
|
+
};
|
|
7357
|
+
readonly "anthropic/claude-opus-4.8-fast": {
|
|
7358
|
+
id: string;
|
|
7359
|
+
name: string;
|
|
7360
|
+
api: "openai-completions";
|
|
7361
|
+
provider: string;
|
|
7362
|
+
baseUrl: string;
|
|
7363
|
+
reasoning: true;
|
|
7364
|
+
input: ("image" | "text")[];
|
|
7365
|
+
cost: {
|
|
7366
|
+
input: number;
|
|
7367
|
+
output: number;
|
|
7368
|
+
cacheRead: number;
|
|
7369
|
+
cacheWrite: number;
|
|
7370
|
+
};
|
|
7371
|
+
contextWindow: number;
|
|
7372
|
+
maxTokens: number;
|
|
7373
|
+
};
|
|
7204
7374
|
readonly "anthropic/claude-sonnet-4": {
|
|
7205
7375
|
id: string;
|
|
7206
7376
|
name: string;
|
|
@@ -11878,6 +12048,23 @@ export declare const MODELS: {
|
|
|
11878
12048
|
contextWindow: number;
|
|
11879
12049
|
maxTokens: number;
|
|
11880
12050
|
};
|
|
12051
|
+
readonly "anthropic/claude-opus-4.8": {
|
|
12052
|
+
id: string;
|
|
12053
|
+
name: string;
|
|
12054
|
+
api: "anthropic-messages";
|
|
12055
|
+
provider: string;
|
|
12056
|
+
baseUrl: string;
|
|
12057
|
+
reasoning: true;
|
|
12058
|
+
input: ("image" | "text")[];
|
|
12059
|
+
cost: {
|
|
12060
|
+
input: number;
|
|
12061
|
+
output: number;
|
|
12062
|
+
cacheRead: number;
|
|
12063
|
+
cacheWrite: number;
|
|
12064
|
+
};
|
|
12065
|
+
contextWindow: number;
|
|
12066
|
+
maxTokens: number;
|
|
12067
|
+
};
|
|
11881
12068
|
readonly "anthropic/claude-sonnet-4": {
|
|
11882
12069
|
id: string;
|
|
11883
12070
|
name: string;
|