@dreb/ai 2.6.2 → 2.6.3
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/README.md +1 -1
- package/dist/models.d.ts +1 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.generated.d.ts +205 -1
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +212 -8
- package/dist/models.generated.js.map +1 -1
- package/dist/models.js +5 -2
- package/dist/models.js.map +1 -1
- package/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/dist/providers/amazon-bedrock.js +10 -3
- package/dist/providers/amazon-bedrock.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +14 -8
- package/dist/providers/anthropic.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -443,7 +443,7 @@ if (model.reasoning) {
|
|
|
443
443
|
const response = await completeSimple(model, {
|
|
444
444
|
messages: [{ role: 'user', content: 'Solve: 2x + 5 = 13' }]
|
|
445
445
|
}, {
|
|
446
|
-
reasoning: 'medium' // 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' (xhigh maps to high on
|
|
446
|
+
reasoning: 'medium' // 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' (xhigh maps to 'max' on Opus 4.6+, 'high' on other Anthropic models)
|
|
447
447
|
});
|
|
448
448
|
|
|
449
449
|
// Access thinking and text blocks
|
package/dist/models.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usag
|
|
|
46
46
|
*
|
|
47
47
|
* Supported today:
|
|
48
48
|
* - GPT-5.2 / GPT-5.3 / GPT-5.4 model families
|
|
49
|
-
* - Opus 4.6 models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
|
|
49
|
+
* - Opus 4.6+ models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
|
|
50
50
|
*/
|
|
51
51
|
export declare function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean;
|
|
52
52
|
/**
|
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,CAe3E;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 (model.id.includes(\"gpt-5.2\") || model.id.includes(\"gpt-5.3\") || model.id.includes(\"gpt-5.4\")) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tmodel.id.includes(\"opus-4-6\") ||\n\t\tmodel.id.includes(\"opus-4.6\") ||\n\t\tmodel.id.includes(\"opus-4-7\") ||\n\t\tmodel.id.includes(\"opus-4.7\")\n\t) {\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"]}
|
|
@@ -255,6 +255,23 @@ export declare const MODELS: {
|
|
|
255
255
|
contextWindow: number;
|
|
256
256
|
maxTokens: number;
|
|
257
257
|
};
|
|
258
|
+
readonly "anthropic.claude-opus-4-7": {
|
|
259
|
+
id: string;
|
|
260
|
+
name: string;
|
|
261
|
+
api: "bedrock-converse-stream";
|
|
262
|
+
provider: string;
|
|
263
|
+
baseUrl: string;
|
|
264
|
+
reasoning: true;
|
|
265
|
+
input: ("image" | "text")[];
|
|
266
|
+
cost: {
|
|
267
|
+
input: number;
|
|
268
|
+
output: number;
|
|
269
|
+
cacheRead: number;
|
|
270
|
+
cacheWrite: number;
|
|
271
|
+
};
|
|
272
|
+
contextWindow: number;
|
|
273
|
+
maxTokens: number;
|
|
274
|
+
};
|
|
258
275
|
readonly "anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
259
276
|
id: string;
|
|
260
277
|
name: string;
|
|
@@ -408,6 +425,23 @@ export declare const MODELS: {
|
|
|
408
425
|
contextWindow: number;
|
|
409
426
|
maxTokens: number;
|
|
410
427
|
};
|
|
428
|
+
readonly "eu.anthropic.claude-opus-4-7": {
|
|
429
|
+
id: string;
|
|
430
|
+
name: string;
|
|
431
|
+
api: "bedrock-converse-stream";
|
|
432
|
+
provider: string;
|
|
433
|
+
baseUrl: string;
|
|
434
|
+
reasoning: true;
|
|
435
|
+
input: ("image" | "text")[];
|
|
436
|
+
cost: {
|
|
437
|
+
input: number;
|
|
438
|
+
output: number;
|
|
439
|
+
cacheRead: number;
|
|
440
|
+
cacheWrite: number;
|
|
441
|
+
};
|
|
442
|
+
contextWindow: number;
|
|
443
|
+
maxTokens: number;
|
|
444
|
+
};
|
|
411
445
|
readonly "eu.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
412
446
|
id: string;
|
|
413
447
|
name: string;
|
|
@@ -510,6 +544,23 @@ export declare const MODELS: {
|
|
|
510
544
|
contextWindow: number;
|
|
511
545
|
maxTokens: number;
|
|
512
546
|
};
|
|
547
|
+
readonly "global.anthropic.claude-opus-4-7": {
|
|
548
|
+
id: string;
|
|
549
|
+
name: string;
|
|
550
|
+
api: "bedrock-converse-stream";
|
|
551
|
+
provider: string;
|
|
552
|
+
baseUrl: string;
|
|
553
|
+
reasoning: true;
|
|
554
|
+
input: ("image" | "text")[];
|
|
555
|
+
cost: {
|
|
556
|
+
input: number;
|
|
557
|
+
output: number;
|
|
558
|
+
cacheRead: number;
|
|
559
|
+
cacheWrite: number;
|
|
560
|
+
};
|
|
561
|
+
contextWindow: number;
|
|
562
|
+
maxTokens: number;
|
|
563
|
+
};
|
|
513
564
|
readonly "global.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
514
565
|
id: string;
|
|
515
566
|
name: string;
|
|
@@ -1343,6 +1394,23 @@ export declare const MODELS: {
|
|
|
1343
1394
|
contextWindow: number;
|
|
1344
1395
|
maxTokens: number;
|
|
1345
1396
|
};
|
|
1397
|
+
readonly "us.anthropic.claude-opus-4-7": {
|
|
1398
|
+
id: string;
|
|
1399
|
+
name: string;
|
|
1400
|
+
api: "bedrock-converse-stream";
|
|
1401
|
+
provider: string;
|
|
1402
|
+
baseUrl: string;
|
|
1403
|
+
reasoning: true;
|
|
1404
|
+
input: ("image" | "text")[];
|
|
1405
|
+
cost: {
|
|
1406
|
+
input: number;
|
|
1407
|
+
output: number;
|
|
1408
|
+
cacheRead: number;
|
|
1409
|
+
cacheWrite: number;
|
|
1410
|
+
};
|
|
1411
|
+
contextWindow: number;
|
|
1412
|
+
maxTokens: number;
|
|
1413
|
+
};
|
|
1346
1414
|
readonly "us.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
1347
1415
|
id: string;
|
|
1348
1416
|
name: string;
|
|
@@ -1770,6 +1838,23 @@ export declare const MODELS: {
|
|
|
1770
1838
|
contextWindow: number;
|
|
1771
1839
|
maxTokens: number;
|
|
1772
1840
|
};
|
|
1841
|
+
readonly "claude-opus-4-7": {
|
|
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
|
+
};
|
|
1773
1858
|
readonly "claude-sonnet-4-0": {
|
|
1774
1859
|
id: string;
|
|
1775
1860
|
name: string;
|
|
@@ -6342,6 +6427,23 @@ export declare const MODELS: {
|
|
|
6342
6427
|
contextWindow: number;
|
|
6343
6428
|
maxTokens: number;
|
|
6344
6429
|
};
|
|
6430
|
+
readonly "claude-opus-4-7": {
|
|
6431
|
+
id: string;
|
|
6432
|
+
name: string;
|
|
6433
|
+
api: "anthropic-messages";
|
|
6434
|
+
provider: string;
|
|
6435
|
+
baseUrl: string;
|
|
6436
|
+
reasoning: true;
|
|
6437
|
+
input: ("image" | "text")[];
|
|
6438
|
+
cost: {
|
|
6439
|
+
input: number;
|
|
6440
|
+
output: number;
|
|
6441
|
+
cacheRead: number;
|
|
6442
|
+
cacheWrite: number;
|
|
6443
|
+
};
|
|
6444
|
+
contextWindow: number;
|
|
6445
|
+
maxTokens: number;
|
|
6446
|
+
};
|
|
6345
6447
|
readonly "claude-sonnet-4": {
|
|
6346
6448
|
id: string;
|
|
6347
6449
|
name: string;
|
|
@@ -6767,6 +6869,40 @@ export declare const MODELS: {
|
|
|
6767
6869
|
contextWindow: number;
|
|
6768
6870
|
maxTokens: number;
|
|
6769
6871
|
};
|
|
6872
|
+
readonly "qwen3.5-plus": {
|
|
6873
|
+
id: string;
|
|
6874
|
+
name: string;
|
|
6875
|
+
api: "openai-completions";
|
|
6876
|
+
provider: string;
|
|
6877
|
+
baseUrl: string;
|
|
6878
|
+
reasoning: true;
|
|
6879
|
+
input: ("image" | "text")[];
|
|
6880
|
+
cost: {
|
|
6881
|
+
input: number;
|
|
6882
|
+
output: number;
|
|
6883
|
+
cacheRead: number;
|
|
6884
|
+
cacheWrite: number;
|
|
6885
|
+
};
|
|
6886
|
+
contextWindow: number;
|
|
6887
|
+
maxTokens: number;
|
|
6888
|
+
};
|
|
6889
|
+
readonly "qwen3.6-plus": {
|
|
6890
|
+
id: string;
|
|
6891
|
+
name: string;
|
|
6892
|
+
api: "openai-completions";
|
|
6893
|
+
provider: string;
|
|
6894
|
+
baseUrl: string;
|
|
6895
|
+
reasoning: true;
|
|
6896
|
+
input: ("image" | "text")[];
|
|
6897
|
+
cost: {
|
|
6898
|
+
input: number;
|
|
6899
|
+
output: number;
|
|
6900
|
+
cacheRead: number;
|
|
6901
|
+
cacheWrite: number;
|
|
6902
|
+
};
|
|
6903
|
+
contextWindow: number;
|
|
6904
|
+
maxTokens: number;
|
|
6905
|
+
};
|
|
6770
6906
|
};
|
|
6771
6907
|
readonly "opencode-go": {
|
|
6772
6908
|
readonly "glm-5": {
|
|
@@ -6888,6 +7024,40 @@ export declare const MODELS: {
|
|
|
6888
7024
|
contextWindow: number;
|
|
6889
7025
|
maxTokens: number;
|
|
6890
7026
|
};
|
|
7027
|
+
readonly "qwen3.5-plus": {
|
|
7028
|
+
id: string;
|
|
7029
|
+
name: string;
|
|
7030
|
+
api: "openai-completions";
|
|
7031
|
+
provider: string;
|
|
7032
|
+
baseUrl: string;
|
|
7033
|
+
reasoning: true;
|
|
7034
|
+
input: ("image" | "text")[];
|
|
7035
|
+
cost: {
|
|
7036
|
+
input: number;
|
|
7037
|
+
output: number;
|
|
7038
|
+
cacheRead: number;
|
|
7039
|
+
cacheWrite: number;
|
|
7040
|
+
};
|
|
7041
|
+
contextWindow: number;
|
|
7042
|
+
maxTokens: number;
|
|
7043
|
+
};
|
|
7044
|
+
readonly "qwen3.6-plus": {
|
|
7045
|
+
id: string;
|
|
7046
|
+
name: string;
|
|
7047
|
+
api: "openai-completions";
|
|
7048
|
+
provider: string;
|
|
7049
|
+
baseUrl: string;
|
|
7050
|
+
reasoning: true;
|
|
7051
|
+
input: ("image" | "text")[];
|
|
7052
|
+
cost: {
|
|
7053
|
+
input: number;
|
|
7054
|
+
output: number;
|
|
7055
|
+
cacheRead: number;
|
|
7056
|
+
cacheWrite: number;
|
|
7057
|
+
};
|
|
7058
|
+
contextWindow: number;
|
|
7059
|
+
maxTokens: number;
|
|
7060
|
+
};
|
|
6891
7061
|
};
|
|
6892
7062
|
readonly openrouter: {
|
|
6893
7063
|
readonly "ai21/jamba-large-1.7": {
|
|
@@ -7196,6 +7366,23 @@ export declare const MODELS: {
|
|
|
7196
7366
|
contextWindow: number;
|
|
7197
7367
|
maxTokens: number;
|
|
7198
7368
|
};
|
|
7369
|
+
readonly "anthropic/claude-opus-4.7": {
|
|
7370
|
+
id: string;
|
|
7371
|
+
name: string;
|
|
7372
|
+
api: "openai-completions";
|
|
7373
|
+
provider: string;
|
|
7374
|
+
baseUrl: string;
|
|
7375
|
+
reasoning: true;
|
|
7376
|
+
input: ("image" | "text")[];
|
|
7377
|
+
cost: {
|
|
7378
|
+
input: number;
|
|
7379
|
+
output: number;
|
|
7380
|
+
cacheRead: number;
|
|
7381
|
+
cacheWrite: number;
|
|
7382
|
+
};
|
|
7383
|
+
contextWindow: number;
|
|
7384
|
+
maxTokens: number;
|
|
7385
|
+
};
|
|
7199
7386
|
readonly "anthropic/claude-sonnet-4": {
|
|
7200
7387
|
id: string;
|
|
7201
7388
|
name: string;
|
|
@@ -11533,6 +11720,23 @@ export declare const MODELS: {
|
|
|
11533
11720
|
contextWindow: number;
|
|
11534
11721
|
maxTokens: number;
|
|
11535
11722
|
};
|
|
11723
|
+
readonly "anthropic/claude-opus-4.7": {
|
|
11724
|
+
id: string;
|
|
11725
|
+
name: string;
|
|
11726
|
+
api: "anthropic-messages";
|
|
11727
|
+
provider: string;
|
|
11728
|
+
baseUrl: string;
|
|
11729
|
+
reasoning: true;
|
|
11730
|
+
input: ("image" | "text")[];
|
|
11731
|
+
cost: {
|
|
11732
|
+
input: number;
|
|
11733
|
+
output: number;
|
|
11734
|
+
cacheRead: number;
|
|
11735
|
+
cacheWrite: number;
|
|
11736
|
+
};
|
|
11737
|
+
contextWindow: number;
|
|
11738
|
+
maxTokens: number;
|
|
11739
|
+
};
|
|
11536
11740
|
readonly "anthropic/claude-sonnet-4": {
|
|
11537
11741
|
id: string;
|
|
11538
11742
|
name: string;
|
|
@@ -13699,7 +13903,7 @@ export declare const MODELS: {
|
|
|
13699
13903
|
provider: string;
|
|
13700
13904
|
baseUrl: string;
|
|
13701
13905
|
reasoning: true;
|
|
13702
|
-
input: "text"[];
|
|
13906
|
+
input: ("image" | "text")[];
|
|
13703
13907
|
cost: {
|
|
13704
13908
|
input: number;
|
|
13705
13909
|
output: number;
|