feat(ai): separate generated model data (#6765)

This commit is contained in:
Armin Ronacher
2026-07-17 11:08:48 +02:00
committed by GitHub
parent b0c2a90e51
commit a9f6a3159a
44 changed files with 4455 additions and 19265 deletions
+1
View File
@@ -8,6 +8,7 @@ dist/
packages/*/dist/ packages/*/dist/
packages/*/dist-chrome/ packages/*/dist-chrome/
packages/*/dist-firefox/ packages/*/dist-firefox/
packages/ai/src/providers/data/
*.cpuprofile *.cpuprofile
# Environment # Environment
+1 -1
View File
@@ -1553,7 +1553,7 @@ Add a lazy wrapper `src/api/<api-id>.lazy.ts` (`<name>Api()` via `lazyApi()`) so
#### 3. Model Generation (`scripts/generate-models.ts`, `scripts/generate-image-models.ts`) #### 3. Model Generation (`scripts/generate-models.ts`, `scripts/generate-image-models.ts`)
- Add logic to fetch and parse models from the provider's source (e.g., models.dev API) - Add logic to fetch and parse models from the provider's source (e.g., models.dev API)
- Map chat/tool-capable provider model data to the standardized `Model` interface via `scripts/generate-models.ts`; regeneration emits `src/providers/<id>.models.ts` and the aggregator - Map chat/tool-capable provider model data to the standardized `Model` interface via `scripts/generate-models.ts`; regeneration emits structural `src/providers/<id>.models.ts` shards, ignored values in `src/providers/data/`, and the aggregator
- Map image-generation provider model data to the standardized `ImagesModel` interface via `scripts/generate-image-models.ts` - Map image-generation provider model data to the standardized `ImagesModel` interface via `scripts/generate-image-models.ts`
- Handle provider-specific quirks (pricing format, capability flags, model ID transformations) - Handle provider-specific quirks (pricing format, capability flags, model ID transformations)
+1 -1
View File
@@ -52,7 +52,7 @@
"generate-models": "node scripts/generate-models.ts", "generate-models": "node scripts/generate-models.ts",
"generate-model-catalog": "node scripts/generate-models.ts --strict --json-only --json-output ../../.artifacts/model-catalog", "generate-model-catalog": "node scripts/generate-models.ts --strict --json-only --json-output ../../.artifacts/model-catalog",
"generate-image-models": "node scripts/generate-image-models.ts", "generate-image-models": "node scripts/generate-image-models.ts",
"build": "tsgo -p tsconfig.build.json", "build": "npm run generate-models && tsgo -p tsconfig.build.json && shx rm -rf dist/providers/data && shx cp -r src/providers/data dist/providers/data",
"test": "vitest --run", "test": "vitest --run",
"prepublishOnly": "npm run clean && npm run build" "prepublishOnly": "npm run clean && npm run build"
}, },
+26 -53
View File
@@ -2287,74 +2287,56 @@ async function generateModels() {
} }
const sortedProviderIds = Object.keys(providers).sort(); const sortedProviderIds = Object.keys(providers).sort();
const jsonProviders: Record<string, Record<string, Model<any>>> = {};
for (const providerId of sortedProviderIds) {
jsonProviders[providerId] = {};
for (const modelId of Object.keys(providers[providerId]).sort()) {
jsonProviders[providerId][modelId] = providers[providerId][modelId];
}
}
const writeJson = (path: string, value: unknown) => writeFileSync(path, `${JSON.stringify(value)}\n`);
if (!generatorOptions.jsonOnly) { if (!generatorOptions.jsonOnly) {
// Generate TypeScript files: one catalog per provider plus an aggregator // Generate TypeScript structural catalogs and adjacent JSON values.
const generatedHeader = `// This file is auto-generated by scripts/generate-models.ts const generatedHeader = `// This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
`; `;
const catalogConstName = (providerId: string) => const catalogConstName = (providerId: string) =>
`${providerId.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}_MODELS`; `${providerId.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}_MODELS`;
const providersDir = join(packageRoot, "src/providers");
const dataDir = join(providersDir, "data");
function emitModel(model: Model<any>, indent: string): string { function emitModelShape(model: Model<any>, indent: string): string {
let output = `${indent}"${model.id}": {\n`; return `${indent}${JSON.stringify(model.id)}: Model<${JSON.stringify(model.api)}> & {\n${indent}\tid: ${JSON.stringify(model.id)};\n${indent}\tprovider: ${JSON.stringify(model.provider)};\n${indent}};\n`;
output += `${indent}\tid: "${model.id}",\n`;
output += `${indent}\tname: "${model.name}",\n`;
output += `${indent}\tapi: "${model.api}",\n`;
output += `${indent}\tprovider: "${model.provider}",\n`;
if (model.baseUrl !== undefined) {
output += `${indent}\tbaseUrl: "${model.baseUrl}",\n`;
}
if (model.headers) {
output += `${indent}\theaders: ${JSON.stringify(model.headers)},\n`;
}
if (model.compat) {
output += `${indent}\tcompat: ${JSON.stringify(model.compat)},\n`;
}
output += `${indent}\treasoning: ${model.reasoning},\n`;
if (model.thinkingLevelMap) {
output += `${indent}\tthinkingLevelMap: ${JSON.stringify(model.thinkingLevelMap)},\n`;
}
output += `${indent}\tinput: [${model.input.map(i => `"${i}"`).join(", ")}],\n`;
output += `${indent}\tcost: {\n`;
output += `${indent}\t\tinput: ${model.cost.input},\n`;
output += `${indent}\t\toutput: ${model.cost.output},\n`;
output += `${indent}\t\tcacheRead: ${model.cost.cacheRead},\n`;
output += `${indent}\t\tcacheWrite: ${model.cost.cacheWrite},\n`;
if (model.cost.tiers) {
output += `${indent}\t\ttiers: ${JSON.stringify(model.cost.tiers)},\n`;
}
output += `${indent}\t},\n`;
output += `${indent}\tcontextWindow: ${model.contextWindow},\n`;
output += `${indent}\tmaxTokens: ${model.maxTokens},\n`;
output += `${indent}} satisfies Model<"${model.api}">,\n`;
return output;
} }
const providersDir = join(packageRoot, "src/providers"); // Remove stale per-provider catalogs and their generated values.
// Remove stale per-provider catalogs
for (const entry of readdirSync(providersDir)) { for (const entry of readdirSync(providersDir)) {
if (entry.endsWith(".models.ts")) { if (entry.endsWith(".models.ts")) {
rmSync(join(providersDir, entry)); rmSync(join(providersDir, entry));
} }
} }
rmSync(dataDir, { recursive: true, force: true });
mkdirSync(dataDir, { recursive: true });
// Per-provider catalogs (sorted for deterministic output) // Per-provider catalog structure and values (sorted for deterministic output).
for (const providerId of sortedProviderIds) { for (const providerId of sortedProviderIds) {
const models = providers[providerId]; const models = providers[providerId];
let output = generatedHeader;
output += `import type { Model } from "../types.ts";\n\n`;
output += `export const ${catalogConstName(providerId)} = {\n`;
const sortedModelIds = Object.keys(models).sort(); const sortedModelIds = Object.keys(models).sort();
let output = generatedHeader;
output += `import values from "./data/${providerId}.json" with { type: "json" };\n`;
output += `import type { Model } from "../types.ts";\n\n`;
output += `export const ${catalogConstName(providerId)} = values as {\n`;
for (const modelId of sortedModelIds) { for (const modelId of sortedModelIds) {
output += emitModel(models[modelId], "\t"); output += emitModelShape(models[modelId], "\t");
} }
output += `} as const;\n`; output += `};\n`;
writeFileSync(join(providersDir, `${providerId}.models.ts`), output); writeFileSync(join(providersDir, `${providerId}.models.ts`), output);
writeJson(join(dataDir, `${providerId}.json`), jsonProviders[providerId]);
} }
console.log(`Generated ${sortedProviderIds.length} catalogs under src/providers/`); console.log(`Generated ${sortedProviderIds.length} catalog structures under src/providers/`);
console.log("Generated JSON model values under src/providers/data/");
// Aggregator // Aggregator
let output = generatedHeader; let output = generatedHeader;
@@ -2371,18 +2353,9 @@ async function generateModels() {
} }
if (generatorOptions.jsonOutputDir) { if (generatorOptions.jsonOutputDir) {
const jsonProviders: Record<string, Record<string, Model<any>>> = {};
for (const providerId of sortedProviderIds) {
jsonProviders[providerId] = {};
for (const modelId of Object.keys(providers[providerId]).sort()) {
jsonProviders[providerId][modelId] = providers[providerId][modelId];
}
}
const providerOutputDir = join(generatorOptions.jsonOutputDir, "providers"); const providerOutputDir = join(generatorOptions.jsonOutputDir, "providers");
rmSync(generatorOptions.jsonOutputDir, { recursive: true, force: true }); rmSync(generatorOptions.jsonOutputDir, { recursive: true, force: true });
mkdirSync(providerOutputDir, { recursive: true }); mkdirSync(providerOutputDir, { recursive: true });
const writeJson = (path: string, value: unknown) => writeFileSync(path, `${JSON.stringify(value)}\n`);
writeJson(join(generatorOptions.jsonOutputDir, "models.json"), jsonProviders); writeJson(join(generatorOptions.jsonOutputDir, "models.json"), jsonProviders);
writeJson(join(generatorOptions.jsonOutputDir, "providers.json"), sortedProviderIds); writeJson(join(generatorOptions.jsonOutputDir, "providers.json"), sortedProviderIds);
for (const providerId of sortedProviderIds) { for (const providerId of sortedProviderIds) {
File diff suppressed because it is too large Load Diff
+15 -57
View File
@@ -1,62 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/ant-ling.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const ANT_LING_MODELS = { export const ANT_LING_MODELS = values as {
"Ling-2.6-1T": { "Ling-2.6-1T": Model<"openai-completions"> & {
id: "Ling-2.6-1T", id: "Ling-2.6-1T";
name: "Ling 2.6 1T", provider: "ant-ling";
api: "openai-completions", };
provider: "ant-ling", "Ling-2.6-flash": Model<"openai-completions"> & {
baseUrl: "https://api.ant-ling.com/v1", id: "Ling-2.6-flash";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false}, provider: "ant-ling";
reasoning: false, };
input: ["text"], "Ring-2.6-1T": Model<"openai-completions"> & {
cost: { id: "Ring-2.6-1T";
input: 0.06, provider: "ant-ling";
output: 0.25, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"Ling-2.6-flash": {
id: "Ling-2.6-flash",
name: "Ling 2.6 Flash",
api: "openai-completions",
provider: "ant-ling",
baseUrl: "https://api.ant-ling.com/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false},
reasoning: false,
input: ["text"],
cost: {
input: 0.01,
output: 0.02,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"Ring-2.6-1T": {
id: "Ring-2.6-1T",
name: "Ring 2.6 1T",
api: "openai-completions",
provider: "ant-ling",
baseUrl: "https://api.ant-ling.com/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"xhigh"},
input: ["text"],
cost: {
input: 0.06,
output: 0.25,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
} as const;
+59 -252
View File
@@ -1,257 +1,64 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/anthropic.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const ANTHROPIC_MODELS = { export const ANTHROPIC_MODELS = values as {
"claude-fable-5": { "claude-fable-5": Model<"anthropic-messages"> & {
id: "claude-fable-5", id: "claude-fable-5";
name: "Claude Fable 5", provider: "anthropic";
api: "anthropic-messages", };
provider: "anthropic", "claude-haiku-4-5": Model<"anthropic-messages"> & {
baseUrl: "https://api.anthropic.com", id: "claude-haiku-4-5";
compat: {"forceAdaptiveThinking":true}, provider: "anthropic";
reasoning: true, };
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"}, "claude-haiku-4-5-20251001": Model<"anthropic-messages"> & {
input: ["text", "image"], id: "claude-haiku-4-5-20251001";
cost: { provider: "anthropic";
input: 10, };
output: 50, "claude-opus-4-1": Model<"anthropic-messages"> & {
cacheRead: 1, id: "claude-opus-4-1";
cacheWrite: 12.5, provider: "anthropic";
}, };
contextWindow: 1000000, "claude-opus-4-1-20250805": Model<"anthropic-messages"> & {
maxTokens: 128000, id: "claude-opus-4-1-20250805";
} satisfies Model<"anthropic-messages">, provider: "anthropic";
"claude-haiku-4-5": { };
id: "claude-haiku-4-5", "claude-opus-4-5": Model<"anthropic-messages"> & {
name: "Claude Haiku 4.5 (latest)", id: "claude-opus-4-5";
api: "anthropic-messages", provider: "anthropic";
provider: "anthropic", };
baseUrl: "https://api.anthropic.com", "claude-opus-4-5-20251101": Model<"anthropic-messages"> & {
reasoning: true, id: "claude-opus-4-5-20251101";
input: ["text", "image"], provider: "anthropic";
cost: { };
input: 1, "claude-opus-4-6": Model<"anthropic-messages"> & {
output: 5, id: "claude-opus-4-6";
cacheRead: 0.1, provider: "anthropic";
cacheWrite: 1.25, };
}, "claude-opus-4-7": Model<"anthropic-messages"> & {
contextWindow: 200000, id: "claude-opus-4-7";
maxTokens: 64000, provider: "anthropic";
} satisfies Model<"anthropic-messages">, };
"claude-haiku-4-5-20251001": { "claude-opus-4-8": Model<"anthropic-messages"> & {
id: "claude-haiku-4-5-20251001", id: "claude-opus-4-8";
name: "Claude Haiku 4.5", provider: "anthropic";
api: "anthropic-messages", };
provider: "anthropic", "claude-sonnet-4-5": Model<"anthropic-messages"> & {
baseUrl: "https://api.anthropic.com", id: "claude-sonnet-4-5";
reasoning: true, provider: "anthropic";
input: ["text", "image"], };
cost: { "claude-sonnet-4-5-20250929": Model<"anthropic-messages"> & {
input: 1, id: "claude-sonnet-4-5-20250929";
output: 5, provider: "anthropic";
cacheRead: 0.1, };
cacheWrite: 1.25, "claude-sonnet-4-6": Model<"anthropic-messages"> & {
}, id: "claude-sonnet-4-6";
contextWindow: 200000, provider: "anthropic";
maxTokens: 64000, };
} satisfies Model<"anthropic-messages">, "claude-sonnet-5": Model<"anthropic-messages"> & {
"claude-opus-4-1": { id: "claude-sonnet-5";
id: "claude-opus-4-1", provider: "anthropic";
name: "Claude Opus 4.1 (latest)", };
api: "anthropic-messages", };
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 15,
output: 75,
cacheRead: 1.5,
cacheWrite: 18.75,
},
contextWindow: 200000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-1-20250805": {
id: "claude-opus-4-1-20250805",
name: "Claude Opus 4.1",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 15,
output: 75,
cacheRead: 1.5,
cacheWrite: 18.75,
},
contextWindow: 200000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-5": {
id: "claude-opus-4-5",
name: "Claude Opus 4.5 (latest)",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-5-20251101": {
id: "claude-opus-4-5-20251101",
name: "Claude Opus 4.5",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-6": {
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
compat: {"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-7": {
id: "claude-opus-4-7",
name: "Claude Opus 4.7",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
compat: {"forceAdaptiveThinking":true,"supportsTemperature":false},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-8": {
id: "claude-opus-4-8",
name: "Claude Opus 4.8",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
compat: {"forceAdaptiveThinking":true,"supportsTemperature":false},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4-5": {
id: "claude-sonnet-4-5",
name: "Claude Sonnet 4.5 (latest)",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4-5-20250929": {
id: "claude-sonnet-4-5-20250929",
name: "Claude Sonnet 4.5",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4-6": {
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
compat: {"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"max":"max"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-5": {
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
api: "anthropic-messages",
provider: "anthropic",
baseUrl: "https://api.anthropic.com",
compat: {"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 2,
output: 10,
cacheRead: 0.2,
cacheWrite: 2.5,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
} as const;
File diff suppressed because it is too large Load Diff
+15 -56
View File
@@ -1,61 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/cerebras.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const CEREBRAS_MODELS = { export const CEREBRAS_MODELS = values as {
"gemma-4-31b": { "gemma-4-31b": Model<"openai-completions"> & {
id: "gemma-4-31b", id: "gemma-4-31b";
name: "Gemma 4 31B IT", provider: "cerebras";
api: "openai-completions", };
provider: "cerebras", "gpt-oss-120b": Model<"openai-completions"> & {
baseUrl: "https://api.cerebras.ai/v1", id: "gpt-oss-120b";
compat: {"supportsStore":false,"supportsDeveloperRole":false}, provider: "cerebras";
reasoning: true, };
input: ["text", "image"], "zai-glm-4.7": Model<"openai-completions"> & {
cost: { id: "zai-glm-4.7";
input: 0.99, provider: "cerebras";
output: 1.49, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 40960,
} satisfies Model<"openai-completions">,
"gpt-oss-120b": {
id: "gpt-oss-120b",
name: "GPT OSS 120B",
api: "openai-completions",
provider: "cerebras",
baseUrl: "https://api.cerebras.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.35,
output: 0.75,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 40960,
} satisfies Model<"openai-completions">,
"zai-glm-4.7": {
id: "zai-glm-4.7",
name: "Z.AI GLM-4.7",
api: "openai-completions",
provider: "cerebras",
baseUrl: "https://api.cerebras.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false},
reasoning: true,
input: ["text"],
cost: {
input: 2.25,
output: 2.75,
cacheRead: 2.25,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 40960,
} satisfies Model<"openai-completions">,
} as const;
@@ -1,760 +1,176 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/cloudflare-ai-gateway.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const CLOUDFLARE_AI_GATEWAY_MODELS = { export const CLOUDFLARE_AI_GATEWAY_MODELS = values as {
"claude-3-5-haiku": { "claude-3-5-haiku": Model<"anthropic-messages"> & {
id: "claude-3-5-haiku", id: "claude-3-5-haiku";
name: "Claude Haiku 3.5 (latest)", provider: "cloudflare-ai-gateway";
api: "anthropic-messages", };
provider: "cloudflare-ai-gateway", "claude-3-haiku": Model<"anthropic-messages"> & {
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", id: "claude-3-haiku";
compat: {"sendSessionAffinityHeaders":true}, provider: "cloudflare-ai-gateway";
reasoning: false, };
input: ["text", "image"], "claude-3-opus": Model<"anthropic-messages"> & {
cost: { id: "claude-3-opus";
input: 0.8, provider: "cloudflare-ai-gateway";
output: 4, };
cacheRead: 0.08, "claude-3-sonnet": Model<"anthropic-messages"> & {
cacheWrite: 1, id: "claude-3-sonnet";
}, provider: "cloudflare-ai-gateway";
contextWindow: 200000, };
maxTokens: 8192, "claude-3.5-haiku": Model<"anthropic-messages"> & {
} satisfies Model<"anthropic-messages">, id: "claude-3.5-haiku";
"claude-3-haiku": { provider: "cloudflare-ai-gateway";
id: "claude-3-haiku", };
name: "Claude Haiku 3", "claude-3.5-sonnet": Model<"anthropic-messages"> & {
api: "anthropic-messages", id: "claude-3.5-sonnet";
provider: "cloudflare-ai-gateway", provider: "cloudflare-ai-gateway";
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", };
compat: {"sendSessionAffinityHeaders":true}, "claude-fable-5": Model<"anthropic-messages"> & {
reasoning: false, id: "claude-fable-5";
input: ["text", "image"], provider: "cloudflare-ai-gateway";
cost: { };
input: 0.25, "claude-haiku-4-5": Model<"anthropic-messages"> & {
output: 1.25, id: "claude-haiku-4-5";
cacheRead: 0.03, provider: "cloudflare-ai-gateway";
cacheWrite: 0.3, };
}, "claude-opus-4": Model<"anthropic-messages"> & {
contextWindow: 200000, id: "claude-opus-4";
maxTokens: 4096, provider: "cloudflare-ai-gateway";
} satisfies Model<"anthropic-messages">, };
"claude-3-opus": { "claude-opus-4-1": Model<"anthropic-messages"> & {
id: "claude-3-opus", id: "claude-opus-4-1";
name: "Claude Opus 3", provider: "cloudflare-ai-gateway";
api: "anthropic-messages", };
provider: "cloudflare-ai-gateway", "claude-opus-4-5": Model<"anthropic-messages"> & {
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", id: "claude-opus-4-5";
compat: {"sendSessionAffinityHeaders":true}, provider: "cloudflare-ai-gateway";
reasoning: false, };
input: ["text", "image"], "claude-opus-4-6": Model<"anthropic-messages"> & {
cost: { id: "claude-opus-4-6";
input: 15, provider: "cloudflare-ai-gateway";
output: 75, };
cacheRead: 1.5, "claude-opus-4-7": Model<"anthropic-messages"> & {
cacheWrite: 18.75, id: "claude-opus-4-7";
}, provider: "cloudflare-ai-gateway";
contextWindow: 200000, };
maxTokens: 4096, "claude-opus-4-8": Model<"anthropic-messages"> & {
} satisfies Model<"anthropic-messages">, id: "claude-opus-4-8";
"claude-3-sonnet": { provider: "cloudflare-ai-gateway";
id: "claude-3-sonnet", };
name: "Claude Sonnet 3", "claude-sonnet-4": Model<"anthropic-messages"> & {
api: "anthropic-messages", id: "claude-sonnet-4";
provider: "cloudflare-ai-gateway", provider: "cloudflare-ai-gateway";
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", };
compat: {"sendSessionAffinityHeaders":true}, "claude-sonnet-4-5": Model<"anthropic-messages"> & {
reasoning: false, id: "claude-sonnet-4-5";
input: ["text", "image"], provider: "cloudflare-ai-gateway";
cost: { };
input: 3, "claude-sonnet-4-6": Model<"anthropic-messages"> & {
output: 15, id: "claude-sonnet-4-6";
cacheRead: 0.3, provider: "cloudflare-ai-gateway";
cacheWrite: 0.3, };
}, "claude-sonnet-5": Model<"anthropic-messages"> & {
contextWindow: 200000, id: "claude-sonnet-5";
maxTokens: 4096, provider: "cloudflare-ai-gateway";
} satisfies Model<"anthropic-messages">, };
"claude-3.5-haiku": { "gpt-4": Model<"openai-responses"> & {
id: "claude-3.5-haiku", id: "gpt-4";
name: "Claude Haiku 3.5 (latest)", provider: "cloudflare-ai-gateway";
api: "anthropic-messages", };
provider: "cloudflare-ai-gateway", "gpt-4-turbo": Model<"openai-responses"> & {
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", id: "gpt-4-turbo";
compat: {"sendSessionAffinityHeaders":true}, provider: "cloudflare-ai-gateway";
reasoning: false, };
input: ["text", "image"], "gpt-4o": Model<"openai-responses"> & {
cost: { id: "gpt-4o";
input: 0.8, provider: "cloudflare-ai-gateway";
output: 4, };
cacheRead: 0.08, "gpt-4o-mini": Model<"openai-responses"> & {
cacheWrite: 1, id: "gpt-4o-mini";
}, provider: "cloudflare-ai-gateway";
contextWindow: 200000, };
maxTokens: 8192, "gpt-5.1": Model<"openai-responses"> & {
} satisfies Model<"anthropic-messages">, id: "gpt-5.1";
"claude-3.5-sonnet": { provider: "cloudflare-ai-gateway";
id: "claude-3.5-sonnet", };
name: "Claude Sonnet 3.5 v2", "gpt-5.1-codex": Model<"openai-responses"> & {
api: "anthropic-messages", id: "gpt-5.1-codex";
provider: "cloudflare-ai-gateway", provider: "cloudflare-ai-gateway";
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", };
compat: {"sendSessionAffinityHeaders":true}, "gpt-5.2": Model<"openai-responses"> & {
reasoning: false, id: "gpt-5.2";
input: ["text", "image"], provider: "cloudflare-ai-gateway";
cost: { };
input: 3, "gpt-5.2-codex": Model<"openai-responses"> & {
output: 15, id: "gpt-5.2-codex";
cacheRead: 0.3, provider: "cloudflare-ai-gateway";
cacheWrite: 3.75, };
}, "gpt-5.3-codex": Model<"openai-responses"> & {
contextWindow: 200000, id: "gpt-5.3-codex";
maxTokens: 8192, provider: "cloudflare-ai-gateway";
} satisfies Model<"anthropic-messages">, };
"claude-fable-5": { "gpt-5.4": Model<"openai-responses"> & {
id: "claude-fable-5", id: "gpt-5.4";
name: "Claude Fable 5", provider: "cloudflare-ai-gateway";
api: "anthropic-messages", };
provider: "cloudflare-ai-gateway", "gpt-5.5": Model<"openai-responses"> & {
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", id: "gpt-5.5";
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true}, provider: "cloudflare-ai-gateway";
reasoning: true, };
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"}, "gpt-5.6-luna": Model<"openai-responses"> & {
input: ["text", "image"], id: "gpt-5.6-luna";
cost: { provider: "cloudflare-ai-gateway";
input: 10, };
output: 50, "gpt-5.6-sol": Model<"openai-responses"> & {
cacheRead: 1, id: "gpt-5.6-sol";
cacheWrite: 12.5, provider: "cloudflare-ai-gateway";
}, };
contextWindow: 1000000, "gpt-5.6-terra": Model<"openai-responses"> & {
maxTokens: 128000, id: "gpt-5.6-terra";
} satisfies Model<"anthropic-messages">, provider: "cloudflare-ai-gateway";
"claude-haiku-4-5": { };
id: "claude-haiku-4-5", "o1": Model<"openai-responses"> & {
name: "Claude Haiku 4.5 (latest)", id: "o1";
api: "anthropic-messages", provider: "cloudflare-ai-gateway";
provider: "cloudflare-ai-gateway", };
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", "o3": Model<"openai-responses"> & {
compat: {"sendSessionAffinityHeaders":true}, id: "o3";
reasoning: true, provider: "cloudflare-ai-gateway";
input: ["text", "image"], };
cost: { "o3-mini": Model<"openai-responses"> & {
input: 1, id: "o3-mini";
output: 5, provider: "cloudflare-ai-gateway";
cacheRead: 0.1, };
cacheWrite: 1.25, "o3-pro": Model<"openai-responses"> & {
}, id: "o3-pro";
contextWindow: 200000, provider: "cloudflare-ai-gateway";
maxTokens: 64000, };
} satisfies Model<"anthropic-messages">, "o4-mini": Model<"openai-responses"> & {
"claude-opus-4": { id: "o4-mini";
id: "claude-opus-4", provider: "cloudflare-ai-gateway";
name: "Claude Opus 4 (latest)", };
api: "anthropic-messages", "workers-ai/@cf/moonshotai/kimi-k2.5": Model<"openai-completions"> & {
provider: "cloudflare-ai-gateway", id: "workers-ai/@cf/moonshotai/kimi-k2.5";
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", provider: "cloudflare-ai-gateway";
compat: {"sendSessionAffinityHeaders":true}, };
reasoning: true, "workers-ai/@cf/moonshotai/kimi-k2.6": Model<"openai-completions"> & {
input: ["text", "image"], id: "workers-ai/@cf/moonshotai/kimi-k2.6";
cost: { provider: "cloudflare-ai-gateway";
input: 15, };
output: 75, "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": Model<"openai-completions"> & {
cacheRead: 1.5, id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b";
cacheWrite: 18.75, provider: "cloudflare-ai-gateway";
}, };
contextWindow: 200000, "workers-ai/@cf/zai-org/glm-4.7-flash": Model<"openai-completions"> & {
maxTokens: 32000, id: "workers-ai/@cf/zai-org/glm-4.7-flash";
} satisfies Model<"anthropic-messages">, provider: "cloudflare-ai-gateway";
"claude-opus-4-1": { };
id: "claude-opus-4-1", "workers-ai/@cf/zai-org/glm-5.2": Model<"openai-completions"> & {
name: "Claude Opus 4.1 (latest)", id: "workers-ai/@cf/zai-org/glm-5.2";
api: "anthropic-messages", provider: "cloudflare-ai-gateway";
provider: "cloudflare-ai-gateway", };
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", };
compat: {"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 15,
output: 75,
cacheRead: 1.5,
cacheWrite: 18.75,
},
contextWindow: 200000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-5": {
id: "claude-opus-4-5",
name: "Claude Opus 4.5 (latest)",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-6": {
id: "claude-opus-4-6",
name: "Claude Opus 4.6 (latest)",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-7": {
id: "claude-opus-4-7",
name: "Claude Opus 4.7",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true,"supportsTemperature":false},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-opus-4-8": {
id: "claude-opus-4-8",
name: "Claude Opus 4.8",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true,"supportsTemperature":false},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4": {
id: "claude-sonnet-4",
name: "Claude Sonnet 4 (latest)",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4-5": {
id: "claude-sonnet-4-5",
name: "Claude Sonnet 4.5 (latest)",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4-6": {
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"max":"max"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-5": {
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
api: "anthropic-messages",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic",
compat: {"sendSessionAffinityHeaders":true,"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 2,
output: 10,
cacheRead: 0.2,
cacheWrite: 2.5,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"gpt-4": {
id: "gpt-4",
name: "GPT-4",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: false,
input: ["text"],
cost: {
input: 30,
output: 60,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8192,
maxTokens: 8192,
} satisfies Model<"openai-responses">,
"gpt-4-turbo": {
id: "gpt-4-turbo",
name: "GPT-4 Turbo",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 10,
output: 30,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-responses">,
"gpt-4o": {
id: "gpt-4o",
name: "GPT-4o",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 2.5,
output: 10,
cacheRead: 1.25,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-responses">,
"gpt-4o-mini": {
id: "gpt-4o-mini",
name: "GPT-4o mini",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.08,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-responses">,
"gpt-5.1": {
id: "gpt-5.1",
name: "GPT-5.1",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.13,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.1-codex": {
id: "gpt-5.1-codex",
name: "GPT-5.1 Codex",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.2": {
id: "gpt-5.2",
name: "GPT-5.2",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.2-codex": {
id: "gpt-5.2-codex",
name: "GPT-5.2 Codex",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.3-codex": {
id: "gpt-5.3-codex",
name: "GPT-5.3 Codex",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.4": {
id: "gpt-5.4",
name: "GPT-5.4",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.5": {
id: "gpt-5.5",
name: "GPT-5.5",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-luna": {
id: "gpt-5.6-luna",
name: "GPT-5.6 Luna",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 1,
output: 6,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-sol": {
id: "gpt-5.6-sol",
name: "GPT-5.6 Sol",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-terra": {
id: "gpt-5.6-terra",
name: "GPT-5.6 Terra",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"o1": {
id: "o1",
name: "o1",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 15,
output: 60,
cacheRead: 7.5,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model<"openai-responses">,
"o3": {
id: "o3",
name: "o3",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 8,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model<"openai-responses">,
"o3-mini": {
id: "o3-mini",
name: "o3-mini",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
input: ["text"],
cost: {
input: 1.1,
output: 4.4,
cacheRead: 0.55,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model<"openai-responses">,
"o3-pro": {
id: "o3-pro",
name: "o3-pro",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 20,
output: 80,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model<"openai-responses">,
"o4-mini": {
id: "o4-mini",
name: "o4-mini",
api: "openai-responses",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.1,
output: 4.4,
cacheRead: 0.28,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model<"openai-responses">,
"workers-ai/@cf/moonshotai/kimi-k2.5": {
id: "workers-ai/@cf/moonshotai/kimi-k2.5",
name: "Kimi K2.5",
api: "openai-completions",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.6,
output: 3,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
"workers-ai/@cf/moonshotai/kimi-k2.6": {
id: "workers-ai/@cf/moonshotai/kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
"workers-ai/@cf/nvidia/nemotron-3-120b-a12b": {
id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b",
name: "Nemotron 3 Super 120B",
api: "openai-completions",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
"workers-ai/@cf/zai-org/glm-4.7-flash": {
id: "workers-ai/@cf/zai-org/glm-4.7-flash",
name: "GLM-4.7-Flash",
api: "openai-completions",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.06,
output: 0.4,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"workers-ai/@cf/zai-org/glm-5.2": {
id: "workers-ai/@cf/zai-org/glm-5.2",
name: "Glm 5.2",
api: "openai-completions",
provider: "cloudflare-ai-gateway",
baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 1.4,
output: 4.4,
cacheRead: 0.26,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
} as const;
@@ -1,241 +1,60 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/cloudflare-workers-ai.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const CLOUDFLARE_WORKERS_AI_MODELS = { export const CLOUDFLARE_WORKERS_AI_MODELS = values as {
"@cf/google/gemma-4-26b-a4b-it": { "@cf/google/gemma-4-26b-a4b-it": Model<"openai-completions"> & {
id: "@cf/google/gemma-4-26b-a4b-it", id: "@cf/google/gemma-4-26b-a4b-it";
name: "Gemma 4 26B A4B IT", provider: "cloudflare-workers-ai";
api: "openai-completions", };
provider: "cloudflare-workers-ai", "@cf/ibm-granite/granite-4.0-h-micro": Model<"openai-completions"> & {
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", id: "@cf/ibm-granite/granite-4.0-h-micro";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true}, provider: "cloudflare-workers-ai";
reasoning: true, };
input: ["text", "image"], "@cf/meta/llama-3.3-70b-instruct-fp8-fast": Model<"openai-completions"> & {
cost: { id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast";
input: 0.1, provider: "cloudflare-workers-ai";
output: 0.3, };
cacheRead: 0, "@cf/meta/llama-4-scout-17b-16e-instruct": Model<"openai-completions"> & {
cacheWrite: 0, id: "@cf/meta/llama-4-scout-17b-16e-instruct";
}, provider: "cloudflare-workers-ai";
contextWindow: 256000, };
maxTokens: 16384, "@cf/mistralai/mistral-small-3.1-24b-instruct": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "@cf/mistralai/mistral-small-3.1-24b-instruct";
"@cf/ibm-granite/granite-4.0-h-micro": { provider: "cloudflare-workers-ai";
id: "@cf/ibm-granite/granite-4.0-h-micro", };
name: "Granite 4.0 H Micro", "@cf/moonshotai/kimi-k2.6": Model<"openai-completions"> & {
api: "openai-completions", id: "@cf/moonshotai/kimi-k2.6";
provider: "cloudflare-workers-ai", provider: "cloudflare-workers-ai";
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true}, "@cf/moonshotai/kimi-k2.7-code": Model<"openai-completions"> & {
reasoning: false, id: "@cf/moonshotai/kimi-k2.7-code";
input: ["text"], provider: "cloudflare-workers-ai";
cost: { };
input: 0.017, "@cf/nvidia/nemotron-3-120b-a12b": Model<"openai-completions"> & {
output: 0.112, id: "@cf/nvidia/nemotron-3-120b-a12b";
cacheRead: 0, provider: "cloudflare-workers-ai";
cacheWrite: 0, };
}, "@cf/openai/gpt-oss-120b": Model<"openai-completions"> & {
contextWindow: 131000, id: "@cf/openai/gpt-oss-120b";
maxTokens: 131000, provider: "cloudflare-workers-ai";
} satisfies Model<"openai-completions">, };
"@cf/meta/llama-3.3-70b-instruct-fp8-fast": { "@cf/openai/gpt-oss-20b": Model<"openai-completions"> & {
id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", id: "@cf/openai/gpt-oss-20b";
name: "Llama 3.3 70B Instruct fp8 Fast", provider: "cloudflare-workers-ai";
api: "openai-completions", };
provider: "cloudflare-workers-ai", "@cf/qwen/qwen3-30b-a3b-fp8": Model<"openai-completions"> & {
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", id: "@cf/qwen/qwen3-30b-a3b-fp8";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true}, provider: "cloudflare-workers-ai";
reasoning: false, };
input: ["text"], "@cf/zai-org/glm-4.7-flash": Model<"openai-completions"> & {
cost: { id: "@cf/zai-org/glm-4.7-flash";
input: 0.293, provider: "cloudflare-workers-ai";
output: 2.253, };
cacheRead: 0, "@cf/zai-org/glm-5.2": Model<"openai-completions"> & {
cacheWrite: 0, id: "@cf/zai-org/glm-5.2";
}, provider: "cloudflare-workers-ai";
contextWindow: 24000, };
maxTokens: 24000, };
} satisfies Model<"openai-completions">,
"@cf/meta/llama-4-scout-17b-16e-instruct": {
id: "@cf/meta/llama-4-scout-17b-16e-instruct",
name: "Llama 4 Scout 17B 16E Instruct",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.27,
output: 0.85,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"@cf/mistralai/mistral-small-3.1-24b-instruct": {
id: "@cf/mistralai/mistral-small-3.1-24b-instruct",
name: "Mistral Small 3.1 24B Instruct",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: false,
input: ["text"],
cost: {
input: 0.351,
output: 0.555,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
"@cf/moonshotai/kimi-k2.6": {
id: "@cf/moonshotai/kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
"@cf/moonshotai/kimi-k2.7-code": {
id: "@cf/moonshotai/kimi-k2.7-code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"@cf/nvidia/nemotron-3-120b-a12b": {
id: "@cf/nvidia/nemotron-3-120b-a12b",
name: "Nemotron 3 Super 120B",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
"@cf/openai/gpt-oss-120b": {
id: "@cf/openai/gpt-oss-120b",
name: "GPT OSS 120B",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.35,
output: 0.75,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"@cf/openai/gpt-oss-20b": {
id: "@cf/openai/gpt-oss-20b",
name: "GPT OSS 20B",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.2,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"@cf/qwen/qwen3-30b-a3b-fp8": {
id: "@cf/qwen/qwen3-30b-a3b-fp8",
name: "Qwen3 30B A3b fp8",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.0509,
output: 0.335,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"@cf/zai-org/glm-4.7-flash": {
id: "@cf/zai-org/glm-4.7-flash",
name: "GLM-4.7-Flash",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.0605,
output: 0.4,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"@cf/zai-org/glm-5.2": {
id: "@cf/zai-org/glm-5.2",
name: "Glm 5.2",
api: "openai-completions",
provider: "cloudflare-workers-ai",
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsLongCacheRetention":false,"sendSessionAffinityHeaders":true},
reasoning: true,
input: ["text"],
cost: {
input: 1.4,
output: 4.4,
cacheRead: 0.26,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
} as const;
+4
View File
@@ -0,0 +1,4 @@
declare module "*.json" {
const value: unknown;
export default value;
}
+11 -40
View File
@@ -1,45 +1,16 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/deepseek.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const DEEPSEEK_MODELS = { export const DEEPSEEK_MODELS = values as {
"deepseek-v4-flash": { "deepseek-v4-flash": Model<"openai-completions"> & {
id: "deepseek-v4-flash", id: "deepseek-v4-flash";
name: "DeepSeek V4 Flash", provider: "deepseek";
api: "openai-completions", };
provider: "deepseek", "deepseek-v4-pro": Model<"openai-completions"> & {
baseUrl: "https://api.deepseek.com", id: "deepseek-v4-pro";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "deepseek";
reasoning: true, };
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}, };
input: ["text"],
cost: {
input: 0.14,
output: 0.28,
cacheRead: 0.0028,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 384000,
} satisfies Model<"openai-completions">,
"deepseek-v4-pro": {
id: "deepseek-v4-pro",
name: "DeepSeek V4 Pro",
api: "openai-completions",
provider: "deepseek",
baseUrl: "https://api.deepseek.com",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","max":"max"},
input: ["text"],
cost: {
input: 0.435,
output: 0.87,
cacheRead: 0.003625,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 384000,
} satisfies Model<"openai-completions">,
} as const;
+67 -292
View File
@@ -1,297 +1,72 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/fireworks.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const FIREWORKS_MODELS = { export const FIREWORKS_MODELS = values as {
"accounts/fireworks/models/deepseek-v4-flash": { "accounts/fireworks/models/deepseek-v4-flash": Model<"anthropic-messages"> & {
id: "accounts/fireworks/models/deepseek-v4-flash", id: "accounts/fireworks/models/deepseek-v4-flash";
name: "DeepSeek V4 Flash", provider: "fireworks";
api: "anthropic-messages", };
provider: "fireworks", "accounts/fireworks/models/deepseek-v4-pro": Model<"anthropic-messages"> & {
baseUrl: "https://api.fireworks.ai/inference", id: "accounts/fireworks/models/deepseek-v4-pro";
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false}, provider: "fireworks";
reasoning: true, };
input: ["text"], "accounts/fireworks/models/glm-5p1": Model<"anthropic-messages"> & {
cost: { id: "accounts/fireworks/models/glm-5p1";
input: 0.14, provider: "fireworks";
output: 0.28, };
cacheRead: 0.028, "accounts/fireworks/models/glm-5p2": Model<"openai-completions"> & {
cacheWrite: 0, id: "accounts/fireworks/models/glm-5p2";
}, provider: "fireworks";
contextWindow: 1000000, };
maxTokens: 384000, "accounts/fireworks/models/gpt-oss-120b": Model<"anthropic-messages"> & {
} satisfies Model<"anthropic-messages">, id: "accounts/fireworks/models/gpt-oss-120b";
"accounts/fireworks/models/deepseek-v4-pro": { provider: "fireworks";
id: "accounts/fireworks/models/deepseek-v4-pro", };
name: "DeepSeek V4 Pro", "accounts/fireworks/models/gpt-oss-20b": Model<"anthropic-messages"> & {
api: "anthropic-messages", id: "accounts/fireworks/models/gpt-oss-20b";
provider: "fireworks", provider: "fireworks";
baseUrl: "https://api.fireworks.ai/inference", };
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false}, "accounts/fireworks/models/kimi-k2p6": Model<"anthropic-messages"> & {
reasoning: true, id: "accounts/fireworks/models/kimi-k2p6";
input: ["text"], provider: "fireworks";
cost: { };
input: 1.74, "accounts/fireworks/models/kimi-k2p7-code": Model<"anthropic-messages"> & {
output: 3.48, id: "accounts/fireworks/models/kimi-k2p7-code";
cacheRead: 0.145, provider: "fireworks";
cacheWrite: 0, };
}, "accounts/fireworks/models/minimax-m2p7": Model<"anthropic-messages"> & {
contextWindow: 1000000, id: "accounts/fireworks/models/minimax-m2p7";
maxTokens: 384000, provider: "fireworks";
} satisfies Model<"anthropic-messages">, };
"accounts/fireworks/models/glm-5p1": { "accounts/fireworks/models/minimax-m3": Model<"anthropic-messages"> & {
id: "accounts/fireworks/models/glm-5p1", id: "accounts/fireworks/models/minimax-m3";
name: "GLM 5.1", provider: "fireworks";
api: "anthropic-messages", };
provider: "fireworks", "accounts/fireworks/models/qwen3p7-plus": Model<"anthropic-messages"> & {
baseUrl: "https://api.fireworks.ai/inference", id: "accounts/fireworks/models/qwen3p7-plus";
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false}, provider: "fireworks";
reasoning: true, };
input: ["text"], "accounts/fireworks/routers/glm-5p1-fast": Model<"anthropic-messages"> & {
cost: { id: "accounts/fireworks/routers/glm-5p1-fast";
input: 1.4, provider: "fireworks";
output: 4.4, };
cacheRead: 0.26, "accounts/fireworks/routers/glm-5p2-fast": Model<"openai-completions"> & {
cacheWrite: 0, id: "accounts/fireworks/routers/glm-5p2-fast";
}, provider: "fireworks";
contextWindow: 202800, };
maxTokens: 131072, "accounts/fireworks/routers/kimi-k2p6-fast": Model<"anthropic-messages"> & {
} satisfies Model<"anthropic-messages">, id: "accounts/fireworks/routers/kimi-k2p6-fast";
"accounts/fireworks/models/glm-5p2": { provider: "fireworks";
id: "accounts/fireworks/models/glm-5p2", };
name: "GLM 5.2", "accounts/fireworks/routers/kimi-k2p6-turbo": Model<"anthropic-messages"> & {
api: "openai-completions", id: "accounts/fireworks/routers/kimi-k2p6-turbo";
provider: "fireworks", provider: "fireworks";
baseUrl: "https://api.fireworks.ai/inference/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false}, "accounts/fireworks/routers/kimi-k2p7-code-fast": Model<"anthropic-messages"> & {
reasoning: true, id: "accounts/fireworks/routers/kimi-k2p7-code-fast";
thinkingLevelMap: {"off":"none","minimal":null,"low":"high","medium":"high","max":"max"}, provider: "fireworks";
input: ["text"], };
cost: { };
input: 1.4,
output: 4.4,
cacheRead: 0.14,
cacheWrite: 0,
},
contextWindow: 1048575,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"accounts/fireworks/models/gpt-oss-120b": {
id: "accounts/fireworks/models/gpt-oss-120b",
name: "GPT OSS 120B",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/gpt-oss-20b": {
id: "accounts/fireworks/models/gpt-oss-20b",
name: "GPT OSS 20B",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.07,
output: 0.3,
cacheRead: 0.035,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/kimi-k2p6": {
id: "accounts/fireworks/models/kimi-k2p6",
name: "Kimi K2.6",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/kimi-k2p7-code": {
id: "accounts/fireworks/models/kimi-k2p7-code",
name: "Kimi K2.7 Code",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/minimax-m2p7": {
id: "accounts/fireworks/models/minimax-m2p7",
name: "MiniMax-M2.7",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 196608,
maxTokens: 196608,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/minimax-m3": {
id: "accounts/fireworks/models/minimax-m3",
name: "MiniMax-M3",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 512000,
maxTokens: 512000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/qwen3p7-plus": {
id: "accounts/fireworks/models/qwen3p7-plus",
name: "Qwen 3.7 Plus",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.4,
output: 1.6,
cacheRead: 0.08,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/glm-5p1-fast": {
id: "accounts/fireworks/routers/glm-5p1-fast",
name: "GLM 5.1 Fast",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 2.8,
output: 8.8,
cacheRead: 0.52,
cacheWrite: 0,
},
contextWindow: 202800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/glm-5p2-fast": {
id: "accounts/fireworks/routers/glm-5p2-fast",
name: "GLM 5.2 Fast",
api: "openai-completions",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false},
reasoning: true,
thinkingLevelMap: {"off":"none","minimal":null,"low":"high","medium":"high","max":"max"},
input: ["text"],
cost: {
input: 2.1,
output: 6.6,
cacheRead: 0.21,
cacheWrite: 0,
},
contextWindow: 1048575,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"accounts/fireworks/routers/kimi-k2p6-fast": {
id: "accounts/fireworks/routers/kimi-k2p6-fast",
name: "Kimi K2.6 Fast",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 8,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/kimi-k2p6-turbo": {
id: "accounts/fireworks/routers/kimi-k2p6-turbo",
name: "Kimi K2.6 Turbo",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 8,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/kimi-k2p7-code-fast": {
id: "accounts/fireworks/routers/kimi-k2p7-code-fast",
name: "Kimi K2.7 Code Fast",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.9,
output: 8,
cacheRead: 0.38,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
} as const;
+115 -538
View File
@@ -1,543 +1,120 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/github-copilot.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const GITHUB_COPILOT_MODELS = { export const GITHUB_COPILOT_MODELS = values as {
"claude-fable-5": { "claude-fable-5": Model<"openai-completions"> & {
id: "claude-fable-5", id: "claude-fable-5";
name: "Claude Fable 5", provider: "github-copilot";
api: "openai-completions", };
provider: "github-copilot", "claude-haiku-4.5": Model<"anthropic-messages"> & {
baseUrl: "https://api.individual.githubcopilot.com", id: "claude-haiku-4.5";
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, provider: "github-copilot";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false}, };
reasoning: true, "claude-opus-4.5": Model<"anthropic-messages"> & {
thinkingLevelMap: {"off":null,"xhigh":"xhigh","max":"max"}, id: "claude-opus-4.5";
input: ["text", "image"], provider: "github-copilot";
cost: { };
input: 10, "claude-opus-4.6": Model<"anthropic-messages"> & {
output: 50, id: "claude-opus-4.6";
cacheRead: 1, provider: "github-copilot";
cacheWrite: 12.5, };
}, "claude-opus-4.7": Model<"anthropic-messages"> & {
contextWindow: 1000000, id: "claude-opus-4.7";
maxTokens: 128000, provider: "github-copilot";
} satisfies Model<"openai-completions">, };
"claude-haiku-4.5": { "claude-opus-4.8": Model<"anthropic-messages"> & {
id: "claude-haiku-4.5", id: "claude-opus-4.8";
name: "Claude Haiku 4.5 (latest)", provider: "github-copilot";
api: "anthropic-messages", };
provider: "github-copilot", "claude-sonnet-4": Model<"anthropic-messages"> & {
baseUrl: "https://api.individual.githubcopilot.com", id: "claude-sonnet-4";
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, provider: "github-copilot";
compat: {"supportsEagerToolInputStreaming":false}, };
reasoning: true, "claude-sonnet-4.5": Model<"anthropic-messages"> & {
input: ["text", "image"], id: "claude-sonnet-4.5";
cost: { provider: "github-copilot";
input: 1, };
output: 5, "claude-sonnet-4.6": Model<"anthropic-messages"> & {
cacheRead: 0.1, id: "claude-sonnet-4.6";
cacheWrite: 1.25, provider: "github-copilot";
}, };
contextWindow: 200000, "claude-sonnet-5": Model<"anthropic-messages"> & {
maxTokens: 64000, id: "claude-sonnet-5";
} satisfies Model<"anthropic-messages">, provider: "github-copilot";
"claude-opus-4.5": { };
id: "claude-opus-4.5", "gemini-2.5-pro": Model<"openai-completions"> & {
name: "Claude Opus 4.5 (latest)", id: "gemini-2.5-pro";
api: "anthropic-messages", provider: "github-copilot";
provider: "github-copilot", };
baseUrl: "https://api.individual.githubcopilot.com", "gemini-3-flash-preview": Model<"openai-completions"> & {
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, id: "gemini-3-flash-preview";
reasoning: true, provider: "github-copilot";
input: ["text", "image"], };
cost: { "gemini-3.1-pro-preview": Model<"openai-completions"> & {
input: 5, id: "gemini-3.1-pro-preview";
output: 25, provider: "github-copilot";
cacheRead: 0.5, };
cacheWrite: 6.25, "gemini-3.5-flash": Model<"openai-completions"> & {
}, id: "gemini-3.5-flash";
contextWindow: 200000, provider: "github-copilot";
maxTokens: 32000, };
} satisfies Model<"anthropic-messages">, "gpt-4.1": Model<"openai-completions"> & {
"claude-opus-4.6": { id: "gpt-4.1";
id: "claude-opus-4.6", provider: "github-copilot";
name: "Claude Opus 4.6", };
api: "anthropic-messages", "gpt-5-mini": Model<"openai-responses"> & {
provider: "github-copilot", id: "gpt-5-mini";
baseUrl: "https://api.individual.githubcopilot.com", provider: "github-copilot";
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, };
compat: {"forceAdaptiveThinking":true}, "gpt-5.2": Model<"openai-responses"> & {
reasoning: true, id: "gpt-5.2";
thinkingLevelMap: {"max":"max"}, provider: "github-copilot";
input: ["text", "image"], };
cost: { "gpt-5.2-codex": Model<"openai-responses"> & {
input: 5, id: "gpt-5.2-codex";
output: 25, provider: "github-copilot";
cacheRead: 0.5, };
cacheWrite: 6.25, "gpt-5.3-codex": Model<"openai-responses"> & {
}, id: "gpt-5.3-codex";
contextWindow: 1000000, provider: "github-copilot";
maxTokens: 32000, };
} satisfies Model<"anthropic-messages">, "gpt-5.4": Model<"openai-responses"> & {
"claude-opus-4.7": { id: "gpt-5.4";
id: "claude-opus-4.7", provider: "github-copilot";
name: "Claude Opus 4.7", };
api: "anthropic-messages", "gpt-5.4-mini": Model<"openai-responses"> & {
provider: "github-copilot", id: "gpt-5.4-mini";
baseUrl: "https://api.individual.githubcopilot.com", provider: "github-copilot";
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, };
compat: {"forceAdaptiveThinking":true,"supportsTemperature":false}, "gpt-5.4-nano": Model<"openai-responses"> & {
reasoning: true, id: "gpt-5.4-nano";
thinkingLevelMap: {"xhigh":"xhigh","max":"max","minimal":"low"}, provider: "github-copilot";
input: ["text", "image"], };
cost: { "gpt-5.5": Model<"openai-responses"> & {
input: 5, id: "gpt-5.5";
output: 25, provider: "github-copilot";
cacheRead: 0.5, };
cacheWrite: 6.25, "gpt-5.6-luna": Model<"openai-responses"> & {
}, id: "gpt-5.6-luna";
contextWindow: 1000000, provider: "github-copilot";
maxTokens: 32000, };
} satisfies Model<"anthropic-messages">, "gpt-5.6-sol": Model<"openai-responses"> & {
"claude-opus-4.8": { id: "gpt-5.6-sol";
id: "claude-opus-4.8", provider: "github-copilot";
name: "Claude Opus 4.8", };
api: "anthropic-messages", "gpt-5.6-terra": Model<"openai-responses"> & {
provider: "github-copilot", id: "gpt-5.6-terra";
baseUrl: "https://api.individual.githubcopilot.com", provider: "github-copilot";
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, };
compat: {"forceAdaptiveThinking":true,"supportsTemperature":false}, "kimi-k2.7-code": Model<"openai-completions"> & {
reasoning: true, id: "kimi-k2.7-code";
thinkingLevelMap: {"xhigh":"xhigh","max":"max","minimal":"low"}, provider: "github-copilot";
input: ["text", "image"], };
cost: { "mai-code-1-flash-picker": Model<"openai-responses"> & {
input: 5, id: "mai-code-1-flash-picker";
output: 25, provider: "github-copilot";
cacheRead: 0.5, };
cacheWrite: 6.25, };
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4": {
id: "claude-sonnet-4",
name: "Claude Sonnet 4 (latest)",
api: "anthropic-messages",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsEagerToolInputStreaming":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 216000,
maxTokens: 16000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4.5": {
id: "claude-sonnet-4.5",
name: "Claude Sonnet 4.5 (latest)",
api: "anthropic-messages",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsEagerToolInputStreaming":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-4.6": {
id: "claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
api: "anthropic-messages",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"max":"max","minimal":"low"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"claude-sonnet-5": {
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
api: "anthropic-messages",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 2,
output: 10,
cacheRead: 0.2,
cacheWrite: 2.5,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"gemini-2.5-pro": {
id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"gemini-3-flash-preview": {
id: "gemini-3-flash-preview",
name: "Gemini 3 Flash Preview",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"gemini-3.1-pro-preview": {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"gemini-3.5-flash": {
id: "gemini-3.5-flash",
name: "Gemini 3.5 Flash",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.5,
output: 9,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"gpt-4.1": {
id: "gpt-4.1",
name: "GPT-4.1",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: false,
input: ["text", "image"],
cost: {
input: 2,
output: 8,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"gpt-5-mini": {
id: "gpt-5-mini",
name: "GPT-5 Mini",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low"},
input: ["text", "image"],
cost: {
input: 0.25,
output: 2,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 264000,
maxTokens: 64000,
} satisfies Model<"openai-responses">,
"gpt-5.2": {
id: "gpt-5.2",
name: "GPT-5.2",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.2-codex": {
id: "gpt-5.2-codex",
name: "GPT-5.2 Codex",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.3-codex": {
id: "gpt-5.3-codex",
name: "GPT-5.3 Codex",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 1.75,
output: 14,
cacheRead: 0.175,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.4": {
id: "gpt-5.4",
name: "GPT-5.4",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.4-mini": {
id: "gpt-5.4-mini",
name: "GPT-5.4 mini",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 0.75,
output: 4.5,
cacheRead: 0.075,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.4-nano": {
id: "gpt-5.4-nano",
name: "GPT-5.4 nano",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 0.2,
output: 1.25,
cacheRead: 0.02,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.5": {
id: "gpt-5.5",
name: "GPT-5.5",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-luna": {
id: "gpt-5.6-luna",
name: "GPT-5.6 Luna",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 1,
output: 6,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-sol": {
id: "gpt-5.6-sol",
name: "GPT-5.6 Sol",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"gpt-5.6-terra": {
id: "gpt-5.6-terra",
name: "GPT-5.6 Terra",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"low","xhigh":"xhigh","max":"max"},
input: ["text", "image"],
cost: {
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 0,
},
contextWindow: 1050000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
"kimi-k2.7-code": {
id: "kimi-k2.7-code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 32000,
} satisfies Model<"openai-completions">,
"mai-code-1-flash-picker": {
id: "mai-code-1-flash-picker",
name: "MAI-Code-1-Flash",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
input: ["text"],
cost: {
input: 0.75,
output: 4.5,
cacheRead: 0.075,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
} as const;
+43 -179
View File
@@ -1,184 +1,48 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/google-vertex.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const GOOGLE_VERTEX_MODELS = { export const GOOGLE_VERTEX_MODELS = values as {
"gemini-2.5-flash": { "gemini-2.5-flash": Model<"google-vertex"> & {
id: "gemini-2.5-flash", id: "gemini-2.5-flash";
name: "Gemini 2.5 Flash", provider: "google-vertex";
api: "google-vertex", };
provider: "google-vertex", "gemini-2.5-flash-lite": Model<"google-vertex"> & {
baseUrl: "https://{location}-aiplatform.googleapis.com", id: "gemini-2.5-flash-lite";
reasoning: true, provider: "google-vertex";
input: ["text", "image"], };
cost: { "gemini-2.5-pro": Model<"google-vertex"> & {
input: 0.3, id: "gemini-2.5-pro";
output: 2.5, provider: "google-vertex";
cacheRead: 0.03, };
cacheWrite: 0, "gemini-3-flash-preview": Model<"google-vertex"> & {
}, id: "gemini-3-flash-preview";
contextWindow: 1048576, provider: "google-vertex";
maxTokens: 65536, };
} satisfies Model<"google-vertex">, "gemini-3.1-flash-lite": Model<"google-vertex"> & {
"gemini-2.5-flash-lite": { id: "gemini-3.1-flash-lite";
id: "gemini-2.5-flash-lite", provider: "google-vertex";
name: "Gemini 2.5 Flash-Lite", };
api: "google-vertex", "gemini-3.1-pro-preview": Model<"google-vertex"> & {
provider: "google-vertex", id: "gemini-3.1-pro-preview";
baseUrl: "https://{location}-aiplatform.googleapis.com", provider: "google-vertex";
reasoning: true, };
input: ["text", "image"], "gemini-3.1-pro-preview-customtools": Model<"google-vertex"> & {
cost: { id: "gemini-3.1-pro-preview-customtools";
input: 0.1, provider: "google-vertex";
output: 0.4, };
cacheRead: 0.01, "gemini-3.5-flash": Model<"google-vertex"> & {
cacheWrite: 0, id: "gemini-3.5-flash";
}, provider: "google-vertex";
contextWindow: 1048576, };
maxTokens: 65536, "gemini-flash-latest": Model<"google-vertex"> & {
} satisfies Model<"google-vertex">, id: "gemini-flash-latest";
"gemini-2.5-pro": { provider: "google-vertex";
id: "gemini-2.5-pro", };
name: "Gemini 2.5 Pro", "gemini-flash-lite-latest": Model<"google-vertex"> & {
api: "google-vertex", id: "gemini-flash-lite-latest";
provider: "google-vertex", provider: "google-vertex";
baseUrl: "https://{location}-aiplatform.googleapis.com", };
reasoning: true, };
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-3-flash-preview": {
id: "gemini-3-flash-preview",
name: "Gemini 3 Flash Preview",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-3.1-flash-lite": {
id: "gemini-3.1-flash-lite",
name: "Gemini 3.1 Flash Lite",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.25,
output: 1.5,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-3.1-pro-preview": {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-3.1-pro-preview-customtools": {
id: "gemini-3.1-pro-preview-customtools",
name: "Gemini 3.1 Pro Preview Custom Tools",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-3.5-flash": {
id: "gemini-3.5-flash",
name: "Gemini 3.5 Flash",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.5,
output: 9,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-flash-latest": {
id: "gemini-flash-latest",
name: "Gemini Flash Latest",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.5,
output: 9,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
"gemini-flash-lite-latest": {
id: "gemini-flash-lite-latest",
name: "Gemini Flash-Lite Latest",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.25,
output: 1.5,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
} as const;
+67 -285
View File
@@ -1,290 +1,72 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/google.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const GOOGLE_MODELS = { export const GOOGLE_MODELS = values as {
"gemini-2.0-flash": { "gemini-2.0-flash": Model<"google-generative-ai"> & {
id: "gemini-2.0-flash", id: "gemini-2.0-flash";
name: "Gemini 2.0 Flash", provider: "google";
api: "google-generative-ai", };
provider: "google", "gemini-2.0-flash-lite": Model<"google-generative-ai"> & {
baseUrl: "https://generativelanguage.googleapis.com/v1beta", id: "gemini-2.0-flash-lite";
reasoning: false, provider: "google";
input: ["text", "image"], };
cost: { "gemini-2.5-flash": Model<"google-generative-ai"> & {
input: 0.1, id: "gemini-2.5-flash";
output: 0.4, provider: "google";
cacheRead: 0.025, };
cacheWrite: 0, "gemini-2.5-flash-lite": Model<"google-generative-ai"> & {
}, id: "gemini-2.5-flash-lite";
contextWindow: 1048576, provider: "google";
maxTokens: 8192, };
} satisfies Model<"google-generative-ai">, "gemini-2.5-pro": Model<"google-generative-ai"> & {
"gemini-2.0-flash-lite": { id: "gemini-2.5-pro";
id: "gemini-2.0-flash-lite", provider: "google";
name: "Gemini 2.0 Flash-Lite", };
api: "google-generative-ai", "gemini-3-flash-preview": Model<"google-generative-ai"> & {
provider: "google", id: "gemini-3-flash-preview";
baseUrl: "https://generativelanguage.googleapis.com/v1beta", provider: "google";
reasoning: false, };
input: ["text", "image"], "gemini-3-pro-preview": Model<"google-generative-ai"> & {
cost: { id: "gemini-3-pro-preview";
input: 0.075, provider: "google";
output: 0.3, };
cacheRead: 0, "gemini-3.1-flash-lite": Model<"google-generative-ai"> & {
cacheWrite: 0, id: "gemini-3.1-flash-lite";
}, provider: "google";
contextWindow: 1048576, };
maxTokens: 8192, "gemini-3.1-flash-lite-preview": Model<"google-generative-ai"> & {
} satisfies Model<"google-generative-ai">, id: "gemini-3.1-flash-lite-preview";
"gemini-2.5-flash": { provider: "google";
id: "gemini-2.5-flash", };
name: "Gemini 2.5 Flash", "gemini-3.1-pro-preview": Model<"google-generative-ai"> & {
api: "google-generative-ai", id: "gemini-3.1-pro-preview";
provider: "google", provider: "google";
baseUrl: "https://generativelanguage.googleapis.com/v1beta", };
reasoning: true, "gemini-3.1-pro-preview-customtools": Model<"google-generative-ai"> & {
input: ["text", "image"], id: "gemini-3.1-pro-preview-customtools";
cost: { provider: "google";
input: 0.3, };
output: 2.5, "gemini-3.5-flash": Model<"google-generative-ai"> & {
cacheRead: 0.03, id: "gemini-3.5-flash";
cacheWrite: 0, provider: "google";
}, };
contextWindow: 1048576, "gemini-flash-latest": Model<"google-generative-ai"> & {
maxTokens: 65536, id: "gemini-flash-latest";
} satisfies Model<"google-generative-ai">, provider: "google";
"gemini-2.5-flash-lite": { };
id: "gemini-2.5-flash-lite", "gemini-flash-lite-latest": Model<"google-generative-ai"> & {
name: "Gemini 2.5 Flash-Lite", id: "gemini-flash-lite-latest";
api: "google-generative-ai", provider: "google";
provider: "google", };
baseUrl: "https://generativelanguage.googleapis.com/v1beta", "gemma-4-26b-a4b-it": Model<"google-generative-ai"> & {
reasoning: true, id: "gemma-4-26b-a4b-it";
input: ["text", "image"], provider: "google";
cost: { };
input: 0.1, "gemma-4-31b-it": Model<"google-generative-ai"> & {
output: 0.4, id: "gemma-4-31b-it";
cacheRead: 0.01, provider: "google";
cacheWrite: 0, };
}, };
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-2.5-pro": {
id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3-flash-preview": {
id: "gemini-3-flash-preview",
name: "Gemini 3 Flash Preview",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3-pro-preview": {
id: "gemini-3-pro-preview",
name: "Gemini 3 Pro Preview",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.1-flash-lite": {
id: "gemini-3.1-flash-lite",
name: "Gemini 3.1 Flash Lite",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.25,
output: 1.5,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.1-flash-lite-preview": {
id: "gemini-3.1-flash-lite-preview",
name: "Gemini 3.1 Flash Lite Preview",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.25,
output: 1.5,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.1-pro-preview": {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.1-pro-preview-customtools": {
id: "gemini-3.1-pro-preview-customtools",
name: "Gemini 3.1 Pro Preview Custom Tools",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.5-flash": {
id: "gemini-3.5-flash",
name: "Gemini 3.5 Flash",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.5,
output: 9,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-flash-latest": {
id: "gemini-flash-latest",
name: "Gemini Flash Latest",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.5,
output: 9,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-flash-lite-latest": {
id: "gemini-flash-lite-latest",
name: "Gemini Flash-Lite Latest",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.25,
output: 1.5,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemma-4-26b-a4b-it": {
id: "gemma-4-26b-a4b-it",
name: "Gemma 4 26B A4B IT",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"google-generative-ai">,
"gemma-4-31b-it": {
id: "gemma-4-31b-it",
name: "Gemma 4 31B IT",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"},
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"google-generative-ai">,
} as const;
+31 -122
View File
@@ -1,127 +1,36 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/groq.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const GROQ_MODELS = { export const GROQ_MODELS = values as {
"llama-3.1-8b-instant": { "llama-3.1-8b-instant": Model<"openai-completions"> & {
id: "llama-3.1-8b-instant", id: "llama-3.1-8b-instant";
name: "Llama 3.1 8B", provider: "groq";
api: "openai-completions", };
provider: "groq", "llama-3.3-70b-versatile": Model<"openai-completions"> & {
baseUrl: "https://api.groq.com/openai/v1", id: "llama-3.3-70b-versatile";
reasoning: false, provider: "groq";
input: ["text"], };
cost: { "meta-llama/llama-4-scout-17b-16e-instruct": Model<"openai-completions"> & {
input: 0.05, id: "meta-llama/llama-4-scout-17b-16e-instruct";
output: 0.08, provider: "groq";
cacheRead: 0, };
cacheWrite: 0, "openai/gpt-oss-120b": Model<"openai-completions"> & {
}, id: "openai/gpt-oss-120b";
contextWindow: 131072, provider: "groq";
maxTokens: 131072, };
} satisfies Model<"openai-completions">, "openai/gpt-oss-20b": Model<"openai-completions"> & {
"llama-3.3-70b-versatile": { id: "openai/gpt-oss-20b";
id: "llama-3.3-70b-versatile", provider: "groq";
name: "Llama 3.3 70B", };
api: "openai-completions", "openai/gpt-oss-safeguard-20b": Model<"openai-completions"> & {
provider: "groq", id: "openai/gpt-oss-safeguard-20b";
baseUrl: "https://api.groq.com/openai/v1", provider: "groq";
reasoning: false, };
input: ["text"], "qwen/qwen3-32b": Model<"openai-completions"> & {
cost: { id: "qwen/qwen3-32b";
input: 0.59, provider: "groq";
output: 0.79, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"meta-llama/llama-4-scout-17b-16e-instruct": {
id: "meta-llama/llama-4-scout-17b-16e-instruct",
name: "Llama 4 Scout 17B 16E",
api: "openai-completions",
provider: "groq",
baseUrl: "https://api.groq.com/openai/v1",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.11,
output: 0.34,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-120b": {
id: "openai/gpt-oss-120b",
name: "GPT OSS 120B",
api: "openai-completions",
provider: "groq",
baseUrl: "https://api.groq.com/openai/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.075,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-20b": {
id: "openai/gpt-oss-20b",
name: "GPT OSS 20B",
api: "openai-completions",
provider: "groq",
baseUrl: "https://api.groq.com/openai/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.075,
output: 0.3,
cacheRead: 0.0375,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-safeguard-20b": {
id: "openai/gpt-oss-safeguard-20b",
name: "Safety GPT OSS 20B",
api: "openai-completions",
provider: "groq",
baseUrl: "https://api.groq.com/openai/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.075,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"qwen/qwen3-32b": {
id: "qwen/qwen3-32b",
name: "Qwen3-32B",
api: "openai-completions",
provider: "groq",
baseUrl: "https://api.groq.com/openai/v1",
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"default"},
input: ["text"],
cost: {
input: 0.29,
output: 0.59,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 40960,
} satisfies Model<"openai-completions">,
} as const;
File diff suppressed because it is too large Load Diff
+23 -98
View File
@@ -1,103 +1,28 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/kimi-coding.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const KIMI_CODING_MODELS = { export const KIMI_CODING_MODELS = values as {
"k2p7": { "k2p7": Model<"anthropic-messages"> & {
id: "k2p7", id: "k2p7";
name: "Kimi K2.7 Code", provider: "kimi-coding";
api: "anthropic-messages", };
provider: "kimi-coding", "k3": Model<"anthropic-messages"> & {
baseUrl: "https://api.kimi.com/coding", id: "k3";
headers: {"User-Agent":"KimiCLI/1.5"}, provider: "kimi-coding";
compat: {"forceAdaptiveThinking":true}, };
reasoning: true, "kimi-for-coding": Model<"anthropic-messages"> & {
input: ["text", "image"], id: "kimi-for-coding";
cost: { provider: "kimi-coding";
input: 0.95, };
output: 4, "kimi-for-coding-highspeed": Model<"anthropic-messages"> & {
cacheRead: 0.19, id: "kimi-for-coding-highspeed";
cacheWrite: 0, provider: "kimi-coding";
}, };
contextWindow: 262144, "kimi-k2-thinking": Model<"anthropic-messages"> & {
maxTokens: 32768, id: "kimi-k2-thinking";
} satisfies Model<"anthropic-messages">, provider: "kimi-coding";
"k3": { };
id: "k3", };
name: "Kimi K3",
api: "anthropic-messages",
provider: "kimi-coding",
baseUrl: "https://api.kimi.com/coding",
headers: {"User-Agent":"KimiCLI/1.5"},
compat: {"allowEmptySignature":true,"forceAdaptiveThinking":true},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"kimi-for-coding": {
id: "kimi-for-coding",
name: "Kimi For Coding",
api: "anthropic-messages",
provider: "kimi-coding",
baseUrl: "https://api.kimi.com/coding",
headers: {"User-Agent":"KimiCLI/1.5"},
compat: {"allowEmptySignature":true,"forceAdaptiveThinking":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
"kimi-for-coding-highspeed": {
id: "kimi-for-coding-highspeed",
name: "Kimi For Coding HighSpeed",
api: "anthropic-messages",
provider: "kimi-coding",
baseUrl: "https://api.kimi.com/coding",
headers: {"User-Agent":"KimiCLI/1.5"},
compat: {"forceAdaptiveThinking":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.9,
output: 8,
cacheRead: 0.38,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
"kimi-k2-thinking": {
id: "kimi-k2-thinking",
name: "Kimi K2 Thinking",
api: "anthropic-messages",
provider: "kimi-coding",
baseUrl: "https://api.kimi.com/coding",
headers: {"User-Agent":"KimiCLI/1.5"},
compat: {"forceAdaptiveThinking":true},
reasoning: true,
input: ["text"],
cost: {
input: 0.6,
output: 2.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
} as const;
+15 -53
View File
@@ -1,58 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/minimax-cn.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const MINIMAX_CN_MODELS = { export const MINIMAX_CN_MODELS = values as {
"MiniMax-M2.7": { "MiniMax-M2.7": Model<"anthropic-messages"> & {
id: "MiniMax-M2.7", id: "MiniMax-M2.7";
name: "MiniMax-M2.7", provider: "minimax-cn";
api: "anthropic-messages", };
provider: "minimax-cn", "MiniMax-M2.7-highspeed": Model<"anthropic-messages"> & {
baseUrl: "https://api.minimaxi.com/anthropic", id: "MiniMax-M2.7-highspeed";
reasoning: true, provider: "minimax-cn";
input: ["text"], };
cost: { "MiniMax-M3": Model<"anthropic-messages"> & {
input: 0.3, id: "MiniMax-M3";
output: 1.2, provider: "minimax-cn";
cacheRead: 0.06, };
cacheWrite: 0.375, };
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"MiniMax-M2.7-highspeed": {
id: "MiniMax-M2.7-highspeed",
name: "MiniMax-M2.7-highspeed",
api: "anthropic-messages",
provider: "minimax-cn",
baseUrl: "https://api.minimaxi.com/anthropic",
reasoning: true,
input: ["text"],
cost: {
input: 0.6,
output: 2.4,
cacheRead: 0.06,
cacheWrite: 0.375,
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"MiniMax-M3": {
id: "MiniMax-M3",
name: "MiniMax-M3",
api: "anthropic-messages",
provider: "minimax-cn",
baseUrl: "https://api.minimaxi.com/anthropic",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
} as const;
+15 -53
View File
@@ -1,58 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/minimax.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const MINIMAX_MODELS = { export const MINIMAX_MODELS = values as {
"MiniMax-M2.7": { "MiniMax-M2.7": Model<"anthropic-messages"> & {
id: "MiniMax-M2.7", id: "MiniMax-M2.7";
name: "MiniMax-M2.7", provider: "minimax";
api: "anthropic-messages", };
provider: "minimax", "MiniMax-M2.7-highspeed": Model<"anthropic-messages"> & {
baseUrl: "https://api.minimax.io/anthropic", id: "MiniMax-M2.7-highspeed";
reasoning: true, provider: "minimax";
input: ["text"], };
cost: { "MiniMax-M3": Model<"anthropic-messages"> & {
input: 0.3, id: "MiniMax-M3";
output: 1.2, provider: "minimax";
cacheRead: 0.06, };
cacheWrite: 0.375, };
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"MiniMax-M2.7-highspeed": {
id: "MiniMax-M2.7-highspeed",
name: "MiniMax-M2.7-highspeed",
api: "anthropic-messages",
provider: "minimax",
baseUrl: "https://api.minimax.io/anthropic",
reasoning: true,
input: ["text"],
cost: {
input: 0.6,
output: 2.4,
cacheRead: 0.06,
cacheWrite: 0.375,
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"MiniMax-M3": {
id: "MiniMax-M3",
name: "MiniMax-M3",
api: "anthropic-messages",
provider: "minimax",
baseUrl: "https://api.minimax.io/anthropic",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
} as const;
+123 -512
View File
@@ -1,517 +1,128 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/mistral.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const MISTRAL_MODELS = { export const MISTRAL_MODELS = values as {
"codestral-latest": { "codestral-latest": Model<"mistral-conversations"> & {
id: "codestral-latest", id: "codestral-latest";
name: "Codestral (latest)", provider: "mistral";
api: "mistral-conversations", };
provider: "mistral", "devstral-2512": Model<"mistral-conversations"> & {
baseUrl: "https://api.mistral.ai", id: "devstral-2512";
reasoning: false, provider: "mistral";
input: ["text"], };
cost: { "devstral-latest": Model<"mistral-conversations"> & {
input: 0.3, id: "devstral-latest";
output: 0.9, provider: "mistral";
cacheRead: 0.03, };
cacheWrite: 0, "devstral-medium-2507": Model<"mistral-conversations"> & {
}, id: "devstral-medium-2507";
contextWindow: 256000, provider: "mistral";
maxTokens: 4096, };
} satisfies Model<"mistral-conversations">, "devstral-medium-latest": Model<"mistral-conversations"> & {
"devstral-2512": { id: "devstral-medium-latest";
id: "devstral-2512", provider: "mistral";
name: "Devstral 2", };
api: "mistral-conversations", "devstral-small-2505": Model<"mistral-conversations"> & {
provider: "mistral", id: "devstral-small-2505";
baseUrl: "https://api.mistral.ai", provider: "mistral";
reasoning: false, };
input: ["text"], "devstral-small-2507": Model<"mistral-conversations"> & {
cost: { id: "devstral-small-2507";
input: 0.4, provider: "mistral";
output: 2, };
cacheRead: 0.04, "labs-devstral-small-2512": Model<"mistral-conversations"> & {
cacheWrite: 0, id: "labs-devstral-small-2512";
}, provider: "mistral";
contextWindow: 262144, };
maxTokens: 262144, "magistral-medium-latest": Model<"mistral-conversations"> & {
} satisfies Model<"mistral-conversations">, id: "magistral-medium-latest";
"devstral-latest": { provider: "mistral";
id: "devstral-latest", };
name: "Devstral 2", "magistral-small": Model<"mistral-conversations"> & {
api: "mistral-conversations", id: "magistral-small";
provider: "mistral", provider: "mistral";
baseUrl: "https://api.mistral.ai", };
reasoning: false, "ministral-3b-latest": Model<"mistral-conversations"> & {
input: ["text"], id: "ministral-3b-latest";
cost: { provider: "mistral";
input: 0.4, };
output: 2, "ministral-8b-latest": Model<"mistral-conversations"> & {
cacheRead: 0.04, id: "ministral-8b-latest";
cacheWrite: 0, provider: "mistral";
}, };
contextWindow: 262144, "mistral-large-2411": Model<"mistral-conversations"> & {
maxTokens: 262144, id: "mistral-large-2411";
} satisfies Model<"mistral-conversations">, provider: "mistral";
"devstral-medium-2507": { };
id: "devstral-medium-2507", "mistral-large-2512": Model<"mistral-conversations"> & {
name: "Devstral Medium", id: "mistral-large-2512";
api: "mistral-conversations", provider: "mistral";
provider: "mistral", };
baseUrl: "https://api.mistral.ai", "mistral-large-latest": Model<"mistral-conversations"> & {
reasoning: false, id: "mistral-large-latest";
input: ["text"], provider: "mistral";
cost: { };
input: 0.4, "mistral-medium-2505": Model<"mistral-conversations"> & {
output: 2, id: "mistral-medium-2505";
cacheRead: 0.04, provider: "mistral";
cacheWrite: 0, };
}, "mistral-medium-2508": Model<"mistral-conversations"> & {
contextWindow: 128000, id: "mistral-medium-2508";
maxTokens: 128000, provider: "mistral";
} satisfies Model<"mistral-conversations">, };
"devstral-medium-latest": { "mistral-medium-2604": Model<"mistral-conversations"> & {
id: "devstral-medium-latest", id: "mistral-medium-2604";
name: "Devstral 2 (latest)", provider: "mistral";
api: "mistral-conversations", };
provider: "mistral", "mistral-medium-3.5": Model<"mistral-conversations"> & {
baseUrl: "https://api.mistral.ai", id: "mistral-medium-3.5";
reasoning: false, provider: "mistral";
input: ["text"], };
cost: { "mistral-medium-latest": Model<"mistral-conversations"> & {
input: 0.4, id: "mistral-medium-latest";
output: 2, provider: "mistral";
cacheRead: 0.04, };
cacheWrite: 0, "mistral-nemo": Model<"mistral-conversations"> & {
}, id: "mistral-nemo";
contextWindow: 262144, provider: "mistral";
maxTokens: 262144, };
} satisfies Model<"mistral-conversations">, "mistral-small-2506": Model<"mistral-conversations"> & {
"devstral-small-2505": { id: "mistral-small-2506";
id: "devstral-small-2505", provider: "mistral";
name: "Devstral Small 2505", };
api: "mistral-conversations", "mistral-small-2603": Model<"mistral-conversations"> & {
provider: "mistral", id: "mistral-small-2603";
baseUrl: "https://api.mistral.ai", provider: "mistral";
reasoning: false, };
input: ["text"], "mistral-small-latest": Model<"mistral-conversations"> & {
cost: { id: "mistral-small-latest";
input: 0.1, provider: "mistral";
output: 0.3, };
cacheRead: 0.01, "open-mistral-7b": Model<"mistral-conversations"> & {
cacheWrite: 0, id: "open-mistral-7b";
}, provider: "mistral";
contextWindow: 128000, };
maxTokens: 128000, "open-mistral-nemo": Model<"mistral-conversations"> & {
} satisfies Model<"mistral-conversations">, id: "open-mistral-nemo";
"devstral-small-2507": { provider: "mistral";
id: "devstral-small-2507", };
name: "Devstral Small", "open-mixtral-8x22b": Model<"mistral-conversations"> & {
api: "mistral-conversations", id: "open-mixtral-8x22b";
provider: "mistral", provider: "mistral";
baseUrl: "https://api.mistral.ai", };
reasoning: false, "open-mixtral-8x7b": Model<"mistral-conversations"> & {
input: ["text"], id: "open-mixtral-8x7b";
cost: { provider: "mistral";
input: 0.1, };
output: 0.3, "pixtral-12b": Model<"mistral-conversations"> & {
cacheRead: 0.01, id: "pixtral-12b";
cacheWrite: 0, provider: "mistral";
}, };
contextWindow: 128000, "pixtral-large-latest": Model<"mistral-conversations"> & {
maxTokens: 128000, id: "pixtral-large-latest";
} satisfies Model<"mistral-conversations">, provider: "mistral";
"labs-devstral-small-2512": { };
id: "labs-devstral-small-2512", };
name: "Devstral Small 2",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"mistral-conversations">,
"magistral-medium-latest": {
id: "magistral-medium-latest",
name: "Magistral Medium (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text"],
cost: {
input: 2,
output: 5,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"mistral-conversations">,
"magistral-small": {
id: "magistral-small",
name: "Magistral Small",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"ministral-3b-latest": {
id: "ministral-3b-latest",
name: "Ministral 3B (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.04,
output: 0.04,
cacheRead: 0.004,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"ministral-8b-latest": {
id: "ministral-8b-latest",
name: "Ministral 8B (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.1,
output: 0.1,
cacheRead: 0.01,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"mistral-large-2411": {
id: "mistral-large-2411",
name: "Mistral Large 2.1",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 2,
output: 6,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 16384,
} satisfies Model<"mistral-conversations">,
"mistral-large-2512": {
id: "mistral-large-2512",
name: "Mistral Large 3",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-large-latest": {
id: "mistral-large-latest",
name: "Mistral Large (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-medium-2505": {
id: "mistral-medium-2505",
name: "Mistral Medium 3",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.4,
output: 2,
cacheRead: 0.04,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"mistral-conversations">,
"mistral-medium-2508": {
id: "mistral-medium-2508",
name: "Mistral Medium 3.1",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.4,
output: 2,
cacheRead: 0.04,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-medium-2604": {
id: "mistral-medium-2604",
name: "Mistral Medium 3.5",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.5,
output: 7.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-medium-3.5": {
id: "mistral-medium-3.5",
name: "Mistral Medium 3.5",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.5,
output: 7.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-medium-latest": {
id: "mistral-medium-latest",
name: "Mistral Medium (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.5,
output: 7.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"mistral-conversations">,
"mistral-nemo": {
id: "mistral-nemo",
name: "Mistral Nemo",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.15,
output: 0.15,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"mistral-small-2506": {
id: "mistral-small-2506",
name: "Mistral Small 3.2",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.1,
output: 0.3,
cacheRead: 0.01,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"mistral-conversations">,
"mistral-small-2603": {
id: "mistral-small-2603",
name: "Mistral Small 4",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"mistral-conversations">,
"mistral-small-latest": {
id: "mistral-small-latest",
name: "Mistral Small (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"mistral-conversations">,
"open-mistral-7b": {
id: "open-mistral-7b",
name: "Mistral 7B",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.25,
output: 0.25,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 8000,
maxTokens: 8000,
} satisfies Model<"mistral-conversations">,
"open-mistral-nemo": {
id: "open-mistral-nemo",
name: "Open Mistral Nemo",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.15,
output: 0.15,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"open-mixtral-8x22b": {
id: "open-mixtral-8x22b",
name: "Mixtral 8x22B",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 2,
output: 6,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 64000,
maxTokens: 64000,
} satisfies Model<"mistral-conversations">,
"open-mixtral-8x7b": {
id: "open-mixtral-8x7b",
name: "Mixtral 8x7B",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text"],
cost: {
input: 0.7,
output: 0.7,
cacheRead: 0.07,
cacheWrite: 0,
},
contextWindow: 32000,
maxTokens: 32000,
} satisfies Model<"mistral-conversations">,
"pixtral-12b": {
id: "pixtral-12b",
name: "Pixtral 12B",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.15,
output: 0.15,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
"pixtral-large-latest": {
id: "pixtral-large-latest",
name: "Pixtral Large (latest)",
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 2,
output: 6,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 128000,
} satisfies Model<"mistral-conversations">,
} as const;
+43 -185
View File
@@ -1,190 +1,48 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/moonshotai-cn.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const MOONSHOTAI_CN_MODELS = { export const MOONSHOTAI_CN_MODELS = values as {
"kimi-k2-0711-preview": { "kimi-k2-0711-preview": Model<"openai-completions"> & {
id: "kimi-k2-0711-preview", id: "kimi-k2-0711-preview";
name: "Kimi K2 0711", provider: "moonshotai-cn";
api: "openai-completions", };
provider: "moonshotai-cn", "kimi-k2-0905-preview": Model<"openai-completions"> & {
baseUrl: "https://api.moonshot.cn/v1", id: "kimi-k2-0905-preview";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}, provider: "moonshotai-cn";
reasoning: false, };
input: ["text"], "kimi-k2-thinking": Model<"openai-completions"> & {
cost: { id: "kimi-k2-thinking";
input: 0.6, provider: "moonshotai-cn";
output: 2.5, };
cacheRead: 0.15, "kimi-k2-thinking-turbo": Model<"openai-completions"> & {
cacheWrite: 0, id: "kimi-k2-thinking-turbo";
}, provider: "moonshotai-cn";
contextWindow: 131072, };
maxTokens: 16384, "kimi-k2-turbo-preview": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "kimi-k2-turbo-preview";
"kimi-k2-0905-preview": { provider: "moonshotai-cn";
id: "kimi-k2-0905-preview", };
name: "Kimi K2 0905", "kimi-k2.5": Model<"openai-completions"> & {
api: "openai-completions", id: "kimi-k2.5";
provider: "moonshotai-cn", provider: "moonshotai-cn";
baseUrl: "https://api.moonshot.cn/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}, "kimi-k2.6": Model<"openai-completions"> & {
reasoning: false, id: "kimi-k2.6";
input: ["text"], provider: "moonshotai-cn";
cost: { };
input: 0.6, "kimi-k2.7-code": Model<"openai-completions"> & {
output: 2.5, id: "kimi-k2.7-code";
cacheRead: 0.15, provider: "moonshotai-cn";
cacheWrite: 0, };
}, "kimi-k2.7-code-highspeed": Model<"openai-completions"> & {
contextWindow: 262144, id: "kimi-k2.7-code-highspeed";
maxTokens: 262144, provider: "moonshotai-cn";
} satisfies Model<"openai-completions">, };
"kimi-k2-thinking": { "kimi-k3": Model<"openai-completions"> & {
id: "kimi-k2-thinking", id: "kimi-k3";
name: "Kimi K2 Thinking", provider: "moonshotai-cn";
api: "openai-completions", };
provider: "moonshotai-cn", };
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0.6,
output: 2.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2-thinking-turbo": {
id: "kimi-k2-thinking-turbo",
name: "Kimi K2 Thinking Turbo",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 1.15,
output: 8,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2-turbo-preview": {
id: "kimi-k2-turbo-preview",
name: "Kimi K2 Turbo",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false,
input: ["text"],
cost: {
input: 2.4,
output: 10,
cacheRead: 0.6,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.5": {
id: "kimi-k2.5",
name: "Kimi K2.5",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.6,
output: 3,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.6": {
id: "kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.7-code": {
id: "kimi-k2.7-code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.7-code-highspeed": {
id: "kimi-k2.7-code-highspeed",
name: "Kimi K2.7 Code HighSpeed",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.9,
output: 8,
cacheRead: 0.38,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k3": {
id: "kimi-k3",
name: "Kimi K3",
api: "openai-completions",
provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+43 -185
View File
@@ -1,190 +1,48 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/moonshotai.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const MOONSHOTAI_MODELS = { export const MOONSHOTAI_MODELS = values as {
"kimi-k2-0711-preview": { "kimi-k2-0711-preview": Model<"openai-completions"> & {
id: "kimi-k2-0711-preview", id: "kimi-k2-0711-preview";
name: "Kimi K2 0711", provider: "moonshotai";
api: "openai-completions", };
provider: "moonshotai", "kimi-k2-0905-preview": Model<"openai-completions"> & {
baseUrl: "https://api.moonshot.ai/v1", id: "kimi-k2-0905-preview";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}, provider: "moonshotai";
reasoning: false, };
input: ["text"], "kimi-k2-thinking": Model<"openai-completions"> & {
cost: { id: "kimi-k2-thinking";
input: 0.6, provider: "moonshotai";
output: 2.5, };
cacheRead: 0.15, "kimi-k2-thinking-turbo": Model<"openai-completions"> & {
cacheWrite: 0, id: "kimi-k2-thinking-turbo";
}, provider: "moonshotai";
contextWindow: 131072, };
maxTokens: 16384, "kimi-k2-turbo-preview": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "kimi-k2-turbo-preview";
"kimi-k2-0905-preview": { provider: "moonshotai";
id: "kimi-k2-0905-preview", };
name: "Kimi K2 0905", "kimi-k2.5": Model<"openai-completions"> & {
api: "openai-completions", id: "kimi-k2.5";
provider: "moonshotai", provider: "moonshotai";
baseUrl: "https://api.moonshot.ai/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}, "kimi-k2.6": Model<"openai-completions"> & {
reasoning: false, id: "kimi-k2.6";
input: ["text"], provider: "moonshotai";
cost: { };
input: 0.6, "kimi-k2.7-code": Model<"openai-completions"> & {
output: 2.5, id: "kimi-k2.7-code";
cacheRead: 0.15, provider: "moonshotai";
cacheWrite: 0, };
}, "kimi-k2.7-code-highspeed": Model<"openai-completions"> & {
contextWindow: 262144, id: "kimi-k2.7-code-highspeed";
maxTokens: 262144, provider: "moonshotai";
} satisfies Model<"openai-completions">, };
"kimi-k2-thinking": { "kimi-k3": Model<"openai-completions"> & {
id: "kimi-k2-thinking", id: "kimi-k3";
name: "Kimi K2 Thinking", provider: "moonshotai";
api: "openai-completions", };
provider: "moonshotai", };
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0.6,
output: 2.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2-thinking-turbo": {
id: "kimi-k2-thinking-turbo",
name: "Kimi K2 Thinking Turbo",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 1.15,
output: 8,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2-turbo-preview": {
id: "kimi-k2-turbo-preview",
name: "Kimi K2 Turbo",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false,
input: ["text"],
cost: {
input: 2.4,
output: 10,
cacheRead: 0.6,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.5": {
id: "kimi-k2.5",
name: "Kimi K2.5",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.6,
output: 3,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.6": {
id: "kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.7-code": {
id: "kimi-k2.7-code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k2.7-code-highspeed": {
id: "kimi-k2.7-code-highspeed",
name: "Kimi K2.7 Code HighSpeed",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true,
thinkingLevelMap: {"off":null},
input: ["text", "image"],
cost: {
input: 1.9,
output: 8,
cacheRead: 0.38,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k3": {
id: "kimi-k3",
name: "Kimi K3",
api: "openai-completions",
provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+83 -382
View File
@@ -1,387 +1,88 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/nvidia.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const NVIDIA_MODELS = { export const NVIDIA_MODELS = values as {
"meta/llama-3.1-70b-instruct": { "meta/llama-3.1-70b-instruct": Model<"openai-completions"> & {
id: "meta/llama-3.1-70b-instruct", id: "meta/llama-3.1-70b-instruct";
name: "Llama 3.1 70b Instruct", provider: "nvidia";
api: "openai-completions", };
provider: "nvidia", "meta/llama-3.1-8b-instruct": Model<"openai-completions"> & {
baseUrl: "https://integrate.api.nvidia.com/v1", id: "meta/llama-3.1-8b-instruct";
headers: {"NVCF-POLL-SECONDS":"3600"}, provider: "nvidia";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, };
reasoning: false, "meta/llama-3.2-11b-vision-instruct": Model<"openai-completions"> & {
input: ["text"], id: "meta/llama-3.2-11b-vision-instruct";
cost: { provider: "nvidia";
input: 0, };
output: 0, "meta/llama-3.2-90b-vision-instruct": Model<"openai-completions"> & {
cacheRead: 0, id: "meta/llama-3.2-90b-vision-instruct";
cacheWrite: 0, provider: "nvidia";
}, };
contextWindow: 128000, "meta/llama-3.3-70b-instruct": Model<"openai-completions"> & {
maxTokens: 4096, id: "meta/llama-3.3-70b-instruct";
} satisfies Model<"openai-completions">, provider: "nvidia";
"meta/llama-3.1-8b-instruct": { };
id: "meta/llama-3.1-8b-instruct", "minimaxai/minimax-m3": Model<"openai-completions"> & {
name: "Llama 3.1 8B Instruct", id: "minimaxai/minimax-m3";
api: "openai-completions", provider: "nvidia";
provider: "nvidia", };
baseUrl: "https://integrate.api.nvidia.com/v1", "mistralai/mistral-large-3-675b-instruct-2512": Model<"openai-completions"> & {
headers: {"NVCF-POLL-SECONDS":"3600"}, id: "mistralai/mistral-large-3-675b-instruct-2512";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, provider: "nvidia";
reasoning: false, };
input: ["text"], "mistralai/mistral-small-4-119b-2603": Model<"openai-completions"> & {
cost: { id: "mistralai/mistral-small-4-119b-2603";
input: 0, provider: "nvidia";
output: 0, };
cacheRead: 0, "moonshotai/kimi-k2.6": Model<"openai-completions"> & {
cacheWrite: 0, id: "moonshotai/kimi-k2.6";
}, provider: "nvidia";
contextWindow: 16000, };
maxTokens: 4096, "nvidia/nemotron-3-nano-30b-a3b": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "nvidia/nemotron-3-nano-30b-a3b";
"meta/llama-3.2-11b-vision-instruct": { provider: "nvidia";
id: "meta/llama-3.2-11b-vision-instruct", };
name: "Llama 3.2 11b Vision Instruct", "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": Model<"openai-completions"> & {
api: "openai-completions", id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning";
provider: "nvidia", provider: "nvidia";
baseUrl: "https://integrate.api.nvidia.com/v1", };
headers: {"NVCF-POLL-SECONDS":"3600"}, "nvidia/nemotron-3-super-120b-a12b": Model<"openai-completions"> & {
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, id: "nvidia/nemotron-3-super-120b-a12b";
reasoning: false, provider: "nvidia";
input: ["text", "image"], };
cost: { "nvidia/nemotron-3-ultra-550b-a55b": Model<"openai-completions"> & {
input: 0, id: "nvidia/nemotron-3-ultra-550b-a55b";
output: 0, provider: "nvidia";
cacheRead: 0, };
cacheWrite: 0, "nvidia/nvidia-nemotron-nano-9b-v2": Model<"openai-completions"> & {
}, id: "nvidia/nvidia-nemotron-nano-9b-v2";
contextWindow: 128000, provider: "nvidia";
maxTokens: 4096, };
} satisfies Model<"openai-completions">, "openai/gpt-oss-120b": Model<"openai-completions"> & {
"meta/llama-3.2-90b-vision-instruct": { id: "openai/gpt-oss-120b";
id: "meta/llama-3.2-90b-vision-instruct", provider: "nvidia";
name: "Llama-3.2-90B-Vision-Instruct", };
api: "openai-completions", "openai/gpt-oss-20b": Model<"openai-completions"> & {
provider: "nvidia", id: "openai/gpt-oss-20b";
baseUrl: "https://integrate.api.nvidia.com/v1", provider: "nvidia";
headers: {"NVCF-POLL-SECONDS":"3600"}, };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, "qwen/qwen3.5-122b-a10b": Model<"openai-completions"> & {
reasoning: false, id: "qwen/qwen3.5-122b-a10b";
input: ["text", "image"], provider: "nvidia";
cost: { };
input: 0, "stepfun-ai/step-3.5-flash": Model<"openai-completions"> & {
output: 0, id: "stepfun-ai/step-3.5-flash";
cacheRead: 0, provider: "nvidia";
cacheWrite: 0, };
}, "stepfun-ai/step-3.7-flash": Model<"openai-completions"> & {
contextWindow: 128000, id: "stepfun-ai/step-3.7-flash";
maxTokens: 8192, provider: "nvidia";
} satisfies Model<"openai-completions">, };
"meta/llama-3.3-70b-instruct": { "z-ai/glm-5.2": Model<"openai-completions"> & {
id: "meta/llama-3.3-70b-instruct", id: "z-ai/glm-5.2";
name: "Llama 3.3 70b Instruct", provider: "nvidia";
api: "openai-completions", };
provider: "nvidia", };
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"minimaxai/minimax-m3": {
id: "minimaxai/minimax-m3",
name: "MiniMax-M3",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"mistralai/mistral-large-3-675b-instruct-2512": {
id: "mistralai/mistral-large-3-675b-instruct-2512",
name: "Mistral Large 3 675B Instruct 2512",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: false,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"mistralai/mistral-small-4-119b-2603": {
id: "mistralai/mistral-small-4-119b-2603",
name: "mistral-small-4-119b-2603",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"moonshotai/kimi-k2.6": {
id: "moonshotai/kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-nano-30b-a3b": {
id: "nvidia/nemotron-3-nano-30b-a3b",
name: "nemotron-3-nano-30b-a3b",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": {
id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning",
name: "Nemotron 3 Nano Omni",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-super-120b-a12b": {
id: "nvidia/nemotron-3-super-120b-a12b",
name: "Nemotron 3 Super",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.2,
output: 0.8,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-ultra-550b-a55b": {
id: "nvidia/nemotron-3-ultra-550b-a55b",
name: "Nemotron 3 Ultra 550B A55B",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 2.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"nvidia/nvidia-nemotron-nano-9b-v2": {
id: "nvidia/nvidia-nemotron-nano-9b-v2",
name: "nvidia-nemotron-nano-9b-v2",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-120b": {
id: "openai/gpt-oss-120b",
name: "GPT-OSS-120B",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-20b": {
id: "openai/gpt-oss-20b",
name: "GPT OSS 20B",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen3.5-122b-a10b": {
id: "qwen/qwen3.5-122b-a10b",
name: "Qwen3.5 122B-A10B",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"stepfun-ai/step-3.5-flash": {
id: "stepfun-ai/step-3.5-flash",
name: "Step 3.5 Flash",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"stepfun-ai/step-3.7-flash": {
id: "stepfun-ai/step-3.7-flash",
name: "Step 3.7 Flash",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"z-ai/glm-5.2": {
id: "z-ai/glm-5.2",
name: "GLM-5.2",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+31 -139
View File
@@ -1,144 +1,36 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/openai-codex.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const OPENAI_CODEX_MODELS = { export const OPENAI_CODEX_MODELS = values as {
"gpt-5.3-codex-spark": { "gpt-5.3-codex-spark": Model<"openai-codex-responses"> & {
id: "gpt-5.3-codex-spark", id: "gpt-5.3-codex-spark";
name: "GPT-5.3 Codex Spark", provider: "openai-codex";
api: "openai-codex-responses", };
provider: "openai-codex", "gpt-5.4": Model<"openai-codex-responses"> & {
baseUrl: "https://chatgpt.com/backend-api", id: "gpt-5.4";
reasoning: true, provider: "openai-codex";
thinkingLevelMap: {"xhigh":"xhigh","minimal":"low"}, };
input: ["text"], "gpt-5.4-mini": Model<"openai-codex-responses"> & {
cost: { id: "gpt-5.4-mini";
input: 1.75, provider: "openai-codex";
output: 14, };
cacheRead: 0.175, "gpt-5.5": Model<"openai-codex-responses"> & {
cacheWrite: 0, id: "gpt-5.5";
}, provider: "openai-codex";
contextWindow: 128000, };
maxTokens: 128000, "gpt-5.6-luna": Model<"openai-codex-responses"> & {
} satisfies Model<"openai-codex-responses">, id: "gpt-5.6-luna";
"gpt-5.4": { provider: "openai-codex";
id: "gpt-5.4", };
name: "GPT-5.4", "gpt-5.6-sol": Model<"openai-codex-responses"> & {
api: "openai-codex-responses", id: "gpt-5.6-sol";
provider: "openai-codex", provider: "openai-codex";
baseUrl: "https://chatgpt.com/backend-api", };
compat: {"supportsToolSearch":true}, "gpt-5.6-terra": Model<"openai-codex-responses"> & {
reasoning: true, id: "gpt-5.6-terra";
thinkingLevelMap: {"xhigh":"xhigh","minimal":"low"}, provider: "openai-codex";
input: ["text", "image"], };
cost: { };
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 0,
tiers: [{"inputTokensAbove":272000,"input":5,"output":22.5,"cacheRead":0.5,"cacheWrite":0}],
},
contextWindow: 272000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
"gpt-5.4-mini": {
id: "gpt-5.4-mini",
name: "GPT-5.4 mini",
api: "openai-codex-responses",
provider: "openai-codex",
baseUrl: "https://chatgpt.com/backend-api",
compat: {"supportsToolSearch":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","minimal":"low"},
input: ["text", "image"],
cost: {
input: 0.75,
output: 4.5,
cacheRead: 0.075,
cacheWrite: 0,
},
contextWindow: 272000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
"gpt-5.5": {
id: "gpt-5.5",
name: "GPT-5.5",
api: "openai-codex-responses",
provider: "openai-codex",
baseUrl: "https://chatgpt.com/backend-api",
compat: {"supportsToolSearch":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","minimal":"low"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 0,
tiers: [{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":0}],
},
contextWindow: 272000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
"gpt-5.6-luna": {
id: "gpt-5.6-luna",
name: "GPT-5.6 Luna",
api: "openai-codex-responses",
provider: "openai-codex",
baseUrl: "https://chatgpt.com/backend-api",
compat: {"supportsToolSearch":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max","minimal":"low"},
input: ["text", "image"],
cost: {
input: 1,
output: 6,
cacheRead: 0.1,
cacheWrite: 1.25,
tiers: [{"inputTokensAbove":272000,"input":2,"output":9,"cacheRead":0.2,"cacheWrite":2.5}],
},
contextWindow: 372000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
"gpt-5.6-sol": {
id: "gpt-5.6-sol",
name: "GPT-5.6 Sol",
api: "openai-codex-responses",
provider: "openai-codex",
baseUrl: "https://chatgpt.com/backend-api",
compat: {"supportsToolSearch":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max","minimal":"low"},
input: ["text", "image"],
cost: {
input: 5,
output: 30,
cacheRead: 0.5,
cacheWrite: 6.25,
tiers: [{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}],
},
contextWindow: 372000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
"gpt-5.6-terra": {
id: "gpt-5.6-terra",
name: "GPT-5.6 Terra",
api: "openai-codex-responses",
provider: "openai-codex",
baseUrl: "https://chatgpt.com/backend-api",
compat: {"supportsToolSearch":true},
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh","max":"max","minimal":"low"},
input: ["text", "image"],
cost: {
input: 2.5,
output: 15,
cacheRead: 0.25,
cacheWrite: 3.125,
tiers: [{"inputTokensAbove":272000,"input":5,"output":22.5,"cacheRead":0.5,"cacheWrite":6.25}],
},
contextWindow: 372000,
maxTokens: 128000,
} satisfies Model<"openai-codex-responses">,
} as const;
File diff suppressed because it is too large Load Diff
+63 -273
View File
@@ -1,278 +1,68 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/opencode-go.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const OPENCODE_GO_MODELS = { export const OPENCODE_GO_MODELS = values as {
"deepseek-v4-flash": { "deepseek-v4-flash": Model<"openai-completions"> & {
id: "deepseek-v4-flash", id: "deepseek-v4-flash";
name: "DeepSeek V4 Flash", provider: "opencode-go";
api: "openai-completions", };
provider: "opencode-go", "deepseek-v4-pro": Model<"openai-completions"> & {
baseUrl: "https://opencode.ai/zen/go/v1", id: "deepseek-v4-pro";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "opencode-go";
reasoning: true, };
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}, "glm-5.1": Model<"openai-completions"> & {
input: ["text"], id: "glm-5.1";
cost: { provider: "opencode-go";
input: 0.14, };
output: 0.28, "glm-5.2": Model<"openai-completions"> & {
cacheRead: 0.0028, id: "glm-5.2";
cacheWrite: 0, provider: "opencode-go";
}, };
contextWindow: 1000000, "grok-4.5": Model<"openai-completions"> & {
maxTokens: 384000, id: "grok-4.5";
} satisfies Model<"openai-completions">, provider: "opencode-go";
"deepseek-v4-pro": { };
id: "deepseek-v4-pro", "kimi-k2.6": Model<"openai-completions"> & {
name: "DeepSeek V4 Pro", id: "kimi-k2.6";
api: "openai-completions", provider: "opencode-go";
provider: "opencode-go", };
baseUrl: "https://opencode.ai/zen/go/v1", "kimi-k2.7-code": Model<"openai-completions"> & {
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, id: "kimi-k2.7-code";
reasoning: true, provider: "opencode-go";
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}, };
input: ["text"], "kimi-k3": Model<"openai-completions"> & {
cost: { id: "kimi-k3";
input: 1.74, provider: "opencode-go";
output: 3.48, };
cacheRead: 0.0145, "mimo-v2.5": Model<"openai-completions"> & {
cacheWrite: 0, id: "mimo-v2.5";
}, provider: "opencode-go";
contextWindow: 1000000, };
maxTokens: 384000, "mimo-v2.5-pro": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "mimo-v2.5-pro";
"glm-5.1": { provider: "opencode-go";
id: "glm-5.1", };
name: "GLM-5.1", "minimax-m2.7": Model<"openai-completions"> & {
api: "openai-completions", id: "minimax-m2.7";
provider: "opencode-go", provider: "opencode-go";
baseUrl: "https://opencode.ai/zen/go/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"}, "minimax-m3": Model<"anthropic-messages"> & {
reasoning: true, id: "minimax-m3";
input: ["text"], provider: "opencode-go";
cost: { };
input: 1.4, "qwen3.6-plus": Model<"openai-completions"> & {
output: 4.4, id: "qwen3.6-plus";
cacheRead: 0.26, provider: "opencode-go";
cacheWrite: 0, };
}, "qwen3.7-max": Model<"anthropic-messages"> & {
contextWindow: 202752, id: "qwen3.7-max";
maxTokens: 32768, provider: "opencode-go";
} satisfies Model<"openai-completions">, };
"glm-5.2": { "qwen3.7-plus": Model<"anthropic-messages"> & {
id: "glm-5.2", id: "qwen3.7-plus";
name: "GLM-5.2", provider: "opencode-go";
api: "openai-completions", };
provider: "opencode-go", };
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":"high","max":"max"},
input: ["text"],
cost: {
input: 1.4,
output: 4.4,
cacheRead: 0.26,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"grok-4.5": {
id: "grok-4.5",
name: "Grok 4.5",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 6,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 500000,
maxTokens: 500000,
} satisfies Model<"openai-completions">,
"kimi-k2.6": {
id: "kimi-k2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"deepseek","supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"kimi-k2.7-code": {
id: "kimi-k2.7-code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"kimi-k3": {
id: "kimi-k3",
name: "Kimi K3",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5": {
id: "mimo-v2.5",
name: "MiMo V2.5",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.14,
output: 0.28,
cacheRead: 0.0028,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro": {
id: "mimo-v2.5-pro",
name: "MiMo V2.5 Pro",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text"],
cost: {
input: 1.74,
output: 3.48,
cacheRead: 0.0145,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
"minimax-m2.7": {
id: "minimax-m2.7",
name: "MiniMax-M2.7",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},
reasoning: true,
input: ["text"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"minimax-m3": {
id: "minimax-m3",
name: "MiniMax-M3",
api: "anthropic-messages",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"qwen3.6-plus": {
id: "qwen3.6-plus",
name: "Qwen3.6 Plus",
api: "openai-completions",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"qwen","maxTokensField":"max_tokens"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0.05,
cacheWrite: 0.625,
},
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"qwen3.7-max": {
id: "qwen3.7-max",
name: "Qwen3.7 Max",
api: "anthropic-messages",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go",
reasoning: true,
input: ["text"],
cost: {
input: 2.5,
output: 7.5,
cacheRead: 0.5,
cacheWrite: 3.125,
},
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
"qwen3.7-plus": {
id: "qwen3.7-plus",
name: "Qwen3.7 Plus",
api: "anthropic-messages",
provider: "opencode-go",
baseUrl: "https://opencode.ai/zen/go",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.4,
output: 1.6,
cacheRead: 0.04,
cacheWrite: 0.5,
},
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
} as const;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+83 -377
View File
@@ -1,382 +1,88 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/together.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const TOGETHER_MODELS = { export const TOGETHER_MODELS = values as {
"MiniMaxAI/MiniMax-M2.7": { "MiniMaxAI/MiniMax-M2.7": Model<"openai-completions"> & {
id: "MiniMaxAI/MiniMax-M2.7", id: "MiniMaxAI/MiniMax-M2.7";
name: "MiniMax-M2.7", provider: "together";
api: "openai-completions", };
provider: "together", "MiniMaxAI/MiniMax-M3": Model<"openai-completions"> & {
baseUrl: "https://api.together.ai/v1", id: "MiniMaxAI/MiniMax-M3";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, provider: "together";
reasoning: true, };
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null}, "Qwen/Qwen2.5-7B-Instruct-Turbo": Model<"openai-completions"> & {
input: ["text"], id: "Qwen/Qwen2.5-7B-Instruct-Turbo";
cost: { provider: "together";
input: 0.3, };
output: 1.2, "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": Model<"openai-completions"> & {
cacheRead: 0.06, id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput";
cacheWrite: 0, provider: "together";
}, };
contextWindow: 202752, "Qwen/Qwen3.5-397B-A17B": Model<"openai-completions"> & {
maxTokens: 131072, id: "Qwen/Qwen3.5-397B-A17B";
} satisfies Model<"openai-completions">, provider: "together";
"MiniMaxAI/MiniMax-M3": { };
id: "MiniMaxAI/MiniMax-M3", "Qwen/Qwen3.5-9B": Model<"openai-completions"> & {
name: "MiniMax-M3", id: "Qwen/Qwen3.5-9B";
api: "openai-completions", provider: "together";
provider: "together", };
baseUrl: "https://api.together.ai/v1", "Qwen/Qwen3.6-Plus": Model<"openai-completions"> & {
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false}, id: "Qwen/Qwen3.6-Plus";
reasoning: true, provider: "together";
thinkingLevelMap: {"minimal":null,"low":null,"medium":null}, };
input: ["text", "image"], "Qwen/Qwen3.7-Max": Model<"openai-completions"> & {
cost: { id: "Qwen/Qwen3.7-Max";
input: 0.3, provider: "together";
output: 1.2, };
cacheRead: 0.06, "deepseek-ai/DeepSeek-V4-Pro": Model<"openai-completions"> & {
cacheWrite: 0, id: "deepseek-ai/DeepSeek-V4-Pro";
}, provider: "together";
contextWindow: 524288, };
maxTokens: 250000, "essentialai/Rnj-1-Instruct": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "essentialai/Rnj-1-Instruct";
"Qwen/Qwen2.5-7B-Instruct-Turbo": { provider: "together";
id: "Qwen/Qwen2.5-7B-Instruct-Turbo", };
name: "Qwen 2.5 7B Instruct Turbo", "google/gemma-4-31B-it": Model<"openai-completions"> & {
api: "openai-completions", id: "google/gemma-4-31B-it";
provider: "together", provider: "together";
baseUrl: "https://api.together.ai/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false}, "meta-llama/Llama-3.3-70B-Instruct-Turbo": Model<"openai-completions"> & {
reasoning: false, id: "meta-llama/Llama-3.3-70B-Instruct-Turbo";
input: ["text"], provider: "together";
cost: { };
input: 0.3, "moonshotai/Kimi-K2.6": Model<"openai-completions"> & {
output: 0.3, id: "moonshotai/Kimi-K2.6";
cacheRead: 0, provider: "together";
cacheWrite: 0, };
}, "moonshotai/Kimi-K2.7-Code": Model<"openai-completions"> & {
contextWindow: 32768, id: "moonshotai/Kimi-K2.7-Code";
maxTokens: 32768, provider: "together";
} satisfies Model<"openai-completions">, };
"Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { "nvidia/nemotron-3-ultra-550b-a55b": Model<"openai-completions"> & {
id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", id: "nvidia/nemotron-3-ultra-550b-a55b";
name: "Qwen3 235B A22B Instruct 2507 FP8", provider: "together";
api: "openai-completions", };
provider: "together", "openai/gpt-oss-120b": Model<"openai-completions"> & {
baseUrl: "https://api.together.ai/v1", id: "openai/gpt-oss-120b";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false}, provider: "together";
reasoning: false, };
input: ["text"], "openai/gpt-oss-20b": Model<"openai-completions"> & {
cost: { id: "openai/gpt-oss-20b";
input: 0.2, provider: "together";
output: 0.6, };
cacheRead: 0, "zai-org/GLM-5": Model<"openai-completions"> & {
cacheWrite: 0, id: "zai-org/GLM-5";
}, provider: "together";
contextWindow: 262144, };
maxTokens: 262144, "zai-org/GLM-5.1": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "zai-org/GLM-5.1";
"Qwen/Qwen3.5-397B-A17B": { provider: "together";
id: "Qwen/Qwen3.5-397B-A17B", };
name: "Qwen3.5 397B A17B", "zai-org/GLM-5.2": Model<"openai-completions"> & {
api: "openai-completions", id: "zai-org/GLM-5.2";
provider: "together", provider: "together";
baseUrl: "https://api.together.ai/v1", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false}, };
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text", "image"],
cost: {
input: 0.6,
output: 3.6,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 130000,
} satisfies Model<"openai-completions">,
"Qwen/Qwen3.5-9B": {
id: "Qwen/Qwen3.5-9B",
name: "Qwen3.5 9B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text", "image"],
cost: {
input: 0.17,
output: 0.25,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"Qwen/Qwen3.6-Plus": {
id: "Qwen/Qwen3.6-Plus",
name: "Qwen3.6 Plus",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 500000,
} satisfies Model<"openai-completions">,
"Qwen/Qwen3.7-Max": {
id: "Qwen/Qwen3.7-Max",
name: "Qwen3.7 Max",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: false,
input: ["text"],
cost: {
input: 1.25,
output: 3.75,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 500000,
} satisfies Model<"openai-completions">,
"deepseek-ai/DeepSeek-V4-Pro": {
id: "deepseek-ai/DeepSeek-V4-Pro",
name: "DeepSeek V4 Pro",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null},
input: ["text"],
cost: {
input: 1.74,
output: 3.48,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 512000,
maxTokens: 384000,
} satisfies Model<"openai-completions">,
"essentialai/Rnj-1-Instruct": {
id: "essentialai/Rnj-1-Instruct",
name: "Rnj-1 Instruct",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: false,
input: ["text"],
cost: {
input: 0.15,
output: 0.15,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"google/gemma-4-31B-it": {
id: "google/gemma-4-31B-it",
name: "Gemma 4 31B Instruct",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text", "image"],
cost: {
input: 0.39,
output: 0.97,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"meta-llama/Llama-3.3-70B-Instruct-Turbo": {
id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
name: "Llama 3.3 70B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: false,
input: ["text"],
cost: {
input: 1.04,
output: 1.04,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"moonshotai/Kimi-K2.6": {
id: "moonshotai/Kimi-K2.6",
name: "Kimi K2.6",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text", "image"],
cost: {
input: 1.2,
output: 4.5,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 131000,
} satisfies Model<"openai-completions">,
"moonshotai/Kimi-K2.7-Code": {
id: "moonshotai/Kimi-K2.7-Code",
name: "Kimi K2.7 Code",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 0.95,
output: 4,
cacheRead: 0.19,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-ultra-550b-a55b": {
id: "nvidia/nemotron-3-ultra-550b-a55b",
name: "Nemotron 3 Ultra 550B A55B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 0.6,
output: 3.6,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 512300,
maxTokens: 512300,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-120b": {
id: "openai/gpt-oss-120b",
name: "GPT OSS 120B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"openai","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null},
input: ["text"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-20b": {
id: "openai/gpt-oss-20b",
name: "GPT OSS 20B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","thinkingFormat":"openai","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null},
input: ["text"],
cost: {
input: 0.05,
output: 0.2,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"zai-org/GLM-5": {
id: "zai-org/GLM-5",
name: "GLM-5",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 1,
output: 3.2,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 202752,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"zai-org/GLM-5.1": {
id: "zai-org/GLM-5.1",
name: "GLM-5.1",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 1.4,
output: 4.4,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 202752,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"zai-org/GLM-5.2": {
id: "zai-org/GLM-5.2",
name: "GLM-5.2",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"together","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 1.4,
output: 4.4,
cacheRead: 0.26,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 164000,
} satisfies Model<"openai-completions">,
} as const;
File diff suppressed because it is too large Load Diff
+15 -57
View File
@@ -1,62 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/xai.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const XAI_MODELS = { export const XAI_MODELS = values as {
"grok-4.3": { "grok-4.3": Model<"openai-completions"> & {
id: "grok-4.3", id: "grok-4.3";
name: "Grok 4.3", provider: "xai";
api: "openai-completions", };
provider: "xai", "grok-4.5": Model<"openai-responses"> & {
baseUrl: "https://api.x.ai/v1", id: "grok-4.5";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false}, provider: "xai";
reasoning: true, };
input: ["text", "image"], "grok-build-0.1": Model<"openai-completions"> & {
cost: { id: "grok-build-0.1";
input: 1.25, provider: "xai";
output: 2.5, };
cacheRead: 0.2, };
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 30000,
} satisfies Model<"openai-completions">,
"grok-4.5": {
id: "grok-4.5",
name: "Grok 4.5",
api: "openai-responses",
provider: "xai",
baseUrl: "https://api.x.ai/v1",
compat: {"supportsLongCacheRetention":false},
reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null},
input: ["text", "image"],
cost: {
input: 2,
output: 6,
cacheRead: 0.5,
cacheWrite: 0,
},
contextWindow: 500000,
maxTokens: 500000,
} satisfies Model<"openai-responses">,
"grok-build-0.1": {
id: "grok-build-0.1",
name: "Grok Build 0.1",
api: "openai-completions",
provider: "xai",
baseUrl: "https://api.x.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 1,
output: 2,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 256000,
} satisfies Model<"openai-completions">,
} as const;
@@ -1,61 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/xiaomi-token-plan-ams.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const XIAOMI_TOKEN_PLAN_AMS_MODELS = { export const XIAOMI_TOKEN_PLAN_AMS_MODELS = values as {
"mimo-v2-pro": { "mimo-v2-pro": Model<"openai-completions"> & {
id: "mimo-v2-pro", id: "mimo-v2-pro";
name: "MiMo-V2-Pro", provider: "xiaomi-token-plan-ams";
api: "openai-completions", };
provider: "xiaomi-token-plan-ams", "mimo-v2.5": Model<"openai-completions"> & {
baseUrl: "https://token-plan-ams.xiaomimimo.com/v1", id: "mimo-v2.5";
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "xiaomi-token-plan-ams";
reasoning: true, };
input: ["text"], "mimo-v2.5-pro": Model<"openai-completions"> & {
cost: { id: "mimo-v2.5-pro";
input: 0, provider: "xiaomi-token-plan-ams";
output: 0, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5": {
id: "mimo-v2.5",
name: "MiMo-V2.5",
api: "openai-completions",
provider: "xiaomi-token-plan-ams",
baseUrl: "https://token-plan-ams.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro": {
id: "mimo-v2.5-pro",
name: "MiMo-V2.5-Pro",
api: "openai-completions",
provider: "xiaomi-token-plan-ams",
baseUrl: "https://token-plan-ams.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
@@ -1,61 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/xiaomi-token-plan-cn.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const XIAOMI_TOKEN_PLAN_CN_MODELS = { export const XIAOMI_TOKEN_PLAN_CN_MODELS = values as {
"mimo-v2-pro": { "mimo-v2-pro": Model<"openai-completions"> & {
id: "mimo-v2-pro", id: "mimo-v2-pro";
name: "MiMo-V2-Pro", provider: "xiaomi-token-plan-cn";
api: "openai-completions", };
provider: "xiaomi-token-plan-cn", "mimo-v2.5": Model<"openai-completions"> & {
baseUrl: "https://token-plan-cn.xiaomimimo.com/v1", id: "mimo-v2.5";
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "xiaomi-token-plan-cn";
reasoning: true, };
input: ["text"], "mimo-v2.5-pro": Model<"openai-completions"> & {
cost: { id: "mimo-v2.5-pro";
input: 0, provider: "xiaomi-token-plan-cn";
output: 0, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5": {
id: "mimo-v2.5",
name: "MiMo-V2.5",
api: "openai-completions",
provider: "xiaomi-token-plan-cn",
baseUrl: "https://token-plan-cn.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro": {
id: "mimo-v2.5-pro",
name: "MiMo-V2.5-Pro",
api: "openai-completions",
provider: "xiaomi-token-plan-cn",
baseUrl: "https://token-plan-cn.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
@@ -1,61 +1,20 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/xiaomi-token-plan-sgp.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const XIAOMI_TOKEN_PLAN_SGP_MODELS = { export const XIAOMI_TOKEN_PLAN_SGP_MODELS = values as {
"mimo-v2-pro": { "mimo-v2-pro": Model<"openai-completions"> & {
id: "mimo-v2-pro", id: "mimo-v2-pro";
name: "MiMo-V2-Pro", provider: "xiaomi-token-plan-sgp";
api: "openai-completions", };
provider: "xiaomi-token-plan-sgp", "mimo-v2.5": Model<"openai-completions"> & {
baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1", id: "mimo-v2.5";
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "xiaomi-token-plan-sgp";
reasoning: true, };
input: ["text"], "mimo-v2.5-pro": Model<"openai-completions"> & {
cost: { id: "mimo-v2.5-pro";
input: 0, provider: "xiaomi-token-plan-sgp";
output: 0, };
cacheRead: 0, };
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5": {
id: "mimo-v2.5",
name: "MiMo-V2.5",
api: "openai-completions",
provider: "xiaomi-token-plan-sgp",
baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro": {
id: "mimo-v2.5-pro",
name: "MiMo-V2.5-Pro",
api: "openai-completions",
provider: "xiaomi-token-plan-sgp",
baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+27 -110
View File
@@ -1,115 +1,32 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/xiaomi.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const XIAOMI_MODELS = { export const XIAOMI_MODELS = values as {
"mimo-v2-flash": { "mimo-v2-flash": Model<"openai-completions"> & {
id: "mimo-v2-flash", id: "mimo-v2-flash";
name: "MiMo-V2-Flash", provider: "xiaomi";
api: "openai-completions", };
provider: "xiaomi", "mimo-v2-omni": Model<"openai-completions"> & {
baseUrl: "https://api.xiaomimimo.com/v1", id: "mimo-v2-omni";
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, provider: "xiaomi";
reasoning: true, };
input: ["text"], "mimo-v2-pro": Model<"openai-completions"> & {
cost: { id: "mimo-v2-pro";
input: 0.14, provider: "xiaomi";
output: 0.28, };
cacheRead: 0.0028, "mimo-v2.5": Model<"openai-completions"> & {
cacheWrite: 0, id: "mimo-v2.5";
}, provider: "xiaomi";
contextWindow: 262144, };
maxTokens: 65536, "mimo-v2.5-pro": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "mimo-v2.5-pro";
"mimo-v2-omni": { provider: "xiaomi";
id: "mimo-v2-omni", };
name: "MiMo-V2-Omni", "mimo-v2.5-pro-ultraspeed": Model<"openai-completions"> & {
api: "openai-completions", id: "mimo-v2.5-pro-ultraspeed";
provider: "xiaomi", provider: "xiaomi";
baseUrl: "https://api.xiaomimimo.com/v1", };
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"}, };
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.14,
output: 0.28,
cacheRead: 0.0028,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2-pro": {
id: "mimo-v2-pro",
name: "MiMo-V2-Pro",
api: "openai-completions",
provider: "xiaomi",
baseUrl: "https://api.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0.435,
output: 0.87,
cacheRead: 0.0036,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5": {
id: "mimo-v2.5",
name: "MiMo-V2.5",
api: "openai-completions",
provider: "xiaomi",
baseUrl: "https://api.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.14,
output: 0.28,
cacheRead: 0.0028,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro": {
id: "mimo-v2.5-pro",
name: "MiMo-V2.5-Pro",
api: "openai-completions",
provider: "xiaomi",
baseUrl: "https://api.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 0.435,
output: 0.87,
cacheRead: 0.0036,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mimo-v2.5-pro-ultraspeed": {
id: "mimo-v2.5-pro-ultraspeed",
name: "MiMo-V2.5-Pro-UltraSpeed",
api: "openai-completions",
provider: "xiaomi",
baseUrl: "https://api.xiaomimimo.com/v1",
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
reasoning: true,
input: ["text"],
cost: {
input: 1.305,
output: 2.61,
cacheRead: 0.0108,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+27 -111
View File
@@ -1,116 +1,32 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/zai-coding-cn.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const ZAI_CODING_CN_MODELS = { export const ZAI_CODING_CN_MODELS = values as {
"glm-4.5-air": { "glm-4.5-air": Model<"openai-completions"> & {
id: "glm-4.5-air", id: "glm-4.5-air";
name: "GLM-4.5-Air", provider: "zai-coding-cn";
api: "openai-completions", };
provider: "zai-coding-cn", "glm-4.7": Model<"openai-completions"> & {
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", id: "glm-4.7";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai"}, provider: "zai-coding-cn";
reasoning: true, };
input: ["text"], "glm-5-turbo": Model<"openai-completions"> & {
cost: { id: "glm-5-turbo";
input: 0, provider: "zai-coding-cn";
output: 0, };
cacheRead: 0, "glm-5.1": Model<"openai-completions"> & {
cacheWrite: 0, id: "glm-5.1";
}, provider: "zai-coding-cn";
contextWindow: 131072, };
maxTokens: 98304, "glm-5.2": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "glm-5.2";
"glm-4.7": { provider: "zai-coding-cn";
id: "glm-4.7", };
name: "GLM-4.7", "glm-5v-turbo": Model<"openai-completions"> & {
api: "openai-completions", id: "glm-5v-turbo";
provider: "zai-coding-cn", provider: "zai-coding-cn";
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true}, };
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5-turbo": {
id: "glm-5-turbo",
name: "GLM-5-Turbo",
api: "openai-completions",
provider: "zai-coding-cn",
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5.1": {
id: "glm-5.1",
name: "GLM-5.1",
api: "openai-completions",
provider: "zai-coding-cn",
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5.2": {
id: "glm-5.2",
name: "GLM-5.2",
api: "openai-completions",
provider: "zai-coding-cn",
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":"high","medium":"high","high":"high","max":"max"},
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5v-turbo": {
id: "glm-5v-turbo",
name: "GLM-5V-Turbo",
api: "openai-completions",
provider: "zai-coding-cn",
baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+27 -111
View File
@@ -1,116 +1,32 @@
// This file is auto-generated by scripts/generate-models.ts // This file is auto-generated by scripts/generate-models.ts
// Do not edit manually - run 'npm run generate-models' to update // Do not edit manually - run 'npm run generate-models' to update
import values from "./data/zai.json" with { type: "json" };
import type { Model } from "../types.ts"; import type { Model } from "../types.ts";
export const ZAI_MODELS = { export const ZAI_MODELS = values as {
"glm-4.5-air": { "glm-4.5-air": Model<"openai-completions"> & {
id: "glm-4.5-air", id: "glm-4.5-air";
name: "GLM-4.5-Air", provider: "zai";
api: "openai-completions", };
provider: "zai", "glm-4.7": Model<"openai-completions"> & {
baseUrl: "https://api.z.ai/api/coding/paas/v4", id: "glm-4.7";
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai"}, provider: "zai";
reasoning: true, };
input: ["text"], "glm-5-turbo": Model<"openai-completions"> & {
cost: { id: "glm-5-turbo";
input: 0, provider: "zai";
output: 0, };
cacheRead: 0, "glm-5.1": Model<"openai-completions"> & {
cacheWrite: 0, id: "glm-5.1";
}, provider: "zai";
contextWindow: 131072, };
maxTokens: 98304, "glm-5.2": Model<"openai-completions"> & {
} satisfies Model<"openai-completions">, id: "glm-5.2";
"glm-4.7": { provider: "zai";
id: "glm-4.7", };
name: "GLM-4.7", "glm-5v-turbo": Model<"openai-completions"> & {
api: "openai-completions", id: "glm-5v-turbo";
provider: "zai", provider: "zai";
baseUrl: "https://api.z.ai/api/coding/paas/v4", };
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true}, };
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5-turbo": {
id: "glm-5-turbo",
name: "GLM-5-Turbo",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5.1": {
id: "glm-5.1",
name: "GLM-5.1",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5.2": {
id: "glm-5.2",
name: "GLM-5.2",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":"high","medium":"high","high":"high","max":"max"},
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"glm-5v-turbo": {
id: "glm-5v-turbo",
name: "GLM-5V-Turbo",
api: "openai-completions",
provider: "zai",
baseUrl: "https://api.z.ai/api/coding/paas/v4",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"thinkingFormat":"zai","zaiToolStream":true},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
} as const;
+3 -1
View File
@@ -2,7 +2,9 @@
"extends": "../../tsconfig.base.json", "extends": "../../tsconfig.base.json",
"compilerOptions": { "compilerOptions": {
"outDir": "./dist", "outDir": "./dist",
"rootDir": "./src" "rootDir": "./src",
"module": "NodeNext",
"moduleResolution": "NodeNext"
}, },
"include": ["src/**/*.ts"], "include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "**/*.d.ts", "src/**/*.d.ts"] "exclude": ["node_modules", "dist", "**/*.d.ts", "src/**/*.d.ts"]
+20 -2
View File
@@ -1,10 +1,27 @@
import { writeFileSync } from "node:fs"; import { existsSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os"; import { tmpdir } from "node:os";
import { join } from "node:path"; import { dirname, join, resolve } from "node:path";
import { build } from "esbuild"; import { build } from "esbuild";
const outputPath = join(tmpdir(), "pi-browser-smoke.js"); const outputPath = join(tmpdir(), "pi-browser-smoke.js");
const errorLogPath = join(tmpdir(), "pi-browser-smoke-errors.log"); const errorLogPath = join(tmpdir(), "pi-browser-smoke-errors.log");
const generatedCatalogDataDir = join(process.cwd(), "packages/ai/src/providers/data");
// Fresh checkouts do not materialize provider JSON until npm run build.
const generatedCatalogDataPlugin = {
name: "generated-model-catalog",
setup(build) {
build.onResolve({ filter: /^\.\/data\/[^/]+\.json$/ }, (args) => {
const path = resolve(dirname(args.importer), args.path);
if (dirname(path) !== generatedCatalogDataDir || existsSync(path)) return;
return { path, namespace: "empty-generated-model-catalog" };
});
build.onLoad({ filter: /.*/, namespace: "empty-generated-model-catalog" }, () => ({
contents: "{}",
loader: "json",
}));
},
};
try { try {
await build({ await build({
@@ -14,6 +31,7 @@ try {
format: "esm", format: "esm",
logLevel: "silent", logLevel: "silent",
outfile: outputPath, outfile: outputPath,
plugins: [generatedCatalogDataPlugin],
}); });
process.exit(0); process.exit(0);
} catch (error) { } catch (error) {
+4
View File
@@ -209,6 +209,10 @@ const bunInstallDirectory = join(outDir, "bun-install");
const binaryDirectory = join(outDir, "bun"); const binaryDirectory = join(outDir, "bun");
mkdirSync(tarballDirectory, { recursive: true }); mkdirSync(tarballDirectory, { recursive: true });
if (!options.skipCheck || !options.skipTest) {
run("npm", ["--prefix", "packages/ai", "run", "generate-models"], { cwd: repoRoot });
}
if (!options.skipCheck) { if (!options.skipCheck) {
run("npm", ["run", "check"], { cwd: repoRoot }); run("npm", ["run", "check"], { cwd: repoRoot });
} }
+2
View File
@@ -2,6 +2,8 @@
"extends": "./tsconfig.base.json", "extends": "./tsconfig.base.json",
"compilerOptions": { "compilerOptions": {
"noEmit": true, "noEmit": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"paths": { "paths": {
"*": ["./*"], "*": ["./*"],
"@earendil-works/pi-ai": ["./packages/ai/src/index.ts"], "@earendil-works/pi-ai": ["./packages/ai/src/index.ts"],