feat(catalog): updated model catalog configurations and pricing
- Added configurations for `anthropic/claude-sonnet-5` under openrouter, vercel-ai-gateway, and zenmux providers. - Reduced model pricing and cost structure rates for `anthropic/claude-sonnet-5`. - Removed `trustExplicitThinkingOnly` compatibility flag from several Claude and Gemini model entries. - Removed legacy `disableStrictTools` property from model definitions and updated tests. - Fixed model builder variant collapse logic to properly map `compatConfig` to `compat`. - Sanitized environment variables in git-clone test helpers to avoid host-leakage in test runs.
This commit is contained in:
@@ -15648,10 +15648,7 @@
|
||||
"xhigh": "claude-opus-4-7-max"
|
||||
}
|
||||
},
|
||||
"requestModelId": "claude-opus-4-7-low",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "claude-opus-4-7-low"
|
||||
},
|
||||
"claude-opus-4-7-fast": {
|
||||
"id": "claude-opus-4-7-fast",
|
||||
@@ -15691,10 +15688,7 @@
|
||||
"xhigh": "claude-opus-4-7-max-fast"
|
||||
}
|
||||
},
|
||||
"requestModelId": "claude-opus-4-7-low-fast",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "claude-opus-4-7-low-fast"
|
||||
},
|
||||
"claude-opus-4-8": {
|
||||
"id": "claude-opus-4-8",
|
||||
@@ -15734,10 +15728,7 @@
|
||||
"xhigh": "claude-opus-4-8-max"
|
||||
}
|
||||
},
|
||||
"requestModelId": "claude-opus-4-8-low",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "claude-opus-4-8-low"
|
||||
},
|
||||
"claude-opus-4-8-fast": {
|
||||
"id": "claude-opus-4-8-fast",
|
||||
@@ -15777,10 +15768,7 @@
|
||||
"xhigh": "claude-opus-4-8-max-fast"
|
||||
}
|
||||
},
|
||||
"requestModelId": "claude-opus-4-8-low-fast",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "claude-opus-4-8-low-fast"
|
||||
},
|
||||
"claude-sonnet-4-6": {
|
||||
"id": "claude-sonnet-4-6",
|
||||
@@ -16019,10 +16007,7 @@
|
||||
"high": "gemini-3-1-pro-high"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gemini-3-1-pro-low",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gemini-3-1-pro-low"
|
||||
},
|
||||
"gemini-3-5-flash": {
|
||||
"id": "gemini-3-5-flash",
|
||||
@@ -16060,10 +16045,7 @@
|
||||
"high": "gemini-3-5-flash-high"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gemini-3-5-flash-minimal",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gemini-3-5-flash-minimal"
|
||||
},
|
||||
"gemini-3-flash": {
|
||||
"id": "gemini-3-flash",
|
||||
@@ -16101,10 +16083,7 @@
|
||||
"high": "MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH"
|
||||
}
|
||||
},
|
||||
"requestModelId": "MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL"
|
||||
},
|
||||
"glm-5-1": {
|
||||
"id": "glm-5-1",
|
||||
@@ -16284,10 +16263,7 @@
|
||||
"xhigh": "MODEL_GPT_5_2_XHIGH"
|
||||
}
|
||||
},
|
||||
"requestModelId": "MODEL_GPT_5_2_NONE",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "MODEL_GPT_5_2_NONE"
|
||||
},
|
||||
"gpt-5-3-codex": {
|
||||
"id": "gpt-5-3-codex",
|
||||
@@ -16327,10 +16303,7 @@
|
||||
"xhigh": "gpt-5-3-codex-xhigh"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-3-codex-low",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-3-codex-low"
|
||||
},
|
||||
"gpt-5-3-codex-fast": {
|
||||
"id": "gpt-5-3-codex-fast",
|
||||
@@ -16370,10 +16343,7 @@
|
||||
"xhigh": "gpt-5-3-codex-xhigh-priority"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-3-codex-low-priority",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-3-codex-low-priority"
|
||||
},
|
||||
"gpt-5-4": {
|
||||
"id": "gpt-5-4",
|
||||
@@ -16413,10 +16383,7 @@
|
||||
"xhigh": "gpt-5-4-xhigh"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-4-none",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-4-none"
|
||||
},
|
||||
"gpt-5-4-fast": {
|
||||
"id": "gpt-5-4-fast",
|
||||
@@ -16456,10 +16423,7 @@
|
||||
"xhigh": "gpt-5-4-xhigh-priority"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-4-none-priority",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-4-none-priority"
|
||||
},
|
||||
"gpt-5-4-mini": {
|
||||
"id": "gpt-5-4-mini",
|
||||
@@ -16499,10 +16463,7 @@
|
||||
"xhigh": "gpt-5-4-mini-xhigh"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-4-mini-low",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-4-mini-low"
|
||||
},
|
||||
"gpt-5-5": {
|
||||
"id": "gpt-5-5",
|
||||
@@ -16542,10 +16503,7 @@
|
||||
"xhigh": "gpt-5-5-xhigh"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-5-none",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-5-none"
|
||||
},
|
||||
"gpt-5-5-fast": {
|
||||
"id": "gpt-5-5-fast",
|
||||
@@ -16585,10 +16543,7 @@
|
||||
"xhigh": "gpt-5-5-xhigh-priority"
|
||||
}
|
||||
},
|
||||
"requestModelId": "gpt-5-5-none-priority",
|
||||
"compat": {
|
||||
"trustExplicitThinkingOnly": true
|
||||
}
|
||||
"requestModelId": "gpt-5-5-none-priority"
|
||||
},
|
||||
"kimi-k2-6": {
|
||||
"id": "kimi-k2-6",
|
||||
@@ -62399,10 +62354,10 @@
|
||||
"image"
|
||||
],
|
||||
"cost": {
|
||||
"input": 3,
|
||||
"output": 15,
|
||||
"cacheRead": 0.3,
|
||||
"cacheWrite": 3.75
|
||||
"input": 2,
|
||||
"output": 10,
|
||||
"cacheRead": 0.19999999999999998,
|
||||
"cacheWrite": 2.5
|
||||
},
|
||||
"contextWindow": 1000000,
|
||||
"maxTokens": 128000,
|
||||
@@ -63321,6 +63276,43 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"anthropic/claude-sonnet-5": {
|
||||
"id": "anthropic/claude-sonnet-5",
|
||||
"name": "Claude Sonnet 5",
|
||||
"api": "openrouter",
|
||||
"provider": "openrouter",
|
||||
"baseUrl": "https://openrouter.ai/api/v1",
|
||||
"reasoning": true,
|
||||
"input": [
|
||||
"text",
|
||||
"image"
|
||||
],
|
||||
"cost": {
|
||||
"input": 2,
|
||||
"output": 10,
|
||||
"cacheRead": 0.19999999999999998,
|
||||
"cacheWrite": 2.5
|
||||
},
|
||||
"contextWindow": 1000000,
|
||||
"maxTokens": 128000,
|
||||
"thinking": {
|
||||
"mode": "effort",
|
||||
"efforts": [
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"effortMap": {
|
||||
"minimal": "low",
|
||||
"low": "medium",
|
||||
"medium": "high",
|
||||
"high": "xhigh",
|
||||
"xhigh": "max"
|
||||
}
|
||||
}
|
||||
},
|
||||
"arcee-ai/trinity-large-preview": {
|
||||
"id": "arcee-ai/trinity-large-preview",
|
||||
"name": "Trinity Large Preview",
|
||||
@@ -76018,7 +76010,6 @@
|
||||
},
|
||||
"compat": {
|
||||
"officialEndpoint": false,
|
||||
"disableStrictTools": false,
|
||||
"disableAdaptiveThinking": false,
|
||||
"supportsEagerToolInputStreaming": true,
|
||||
"supportsLongCacheRetention": false,
|
||||
@@ -76909,6 +76900,44 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"anthropic/claude-sonnet-5": {
|
||||
"id": "anthropic/claude-sonnet-5",
|
||||
"name": "Claude Sonnet 5",
|
||||
"api": "anthropic-messages",
|
||||
"provider": "vercel-ai-gateway",
|
||||
"baseUrl": "https://ai-gateway.vercel.sh",
|
||||
"reasoning": true,
|
||||
"input": [
|
||||
"text",
|
||||
"image"
|
||||
],
|
||||
"cost": {
|
||||
"input": 2,
|
||||
"output": 10,
|
||||
"cacheRead": 0.19999999999999998,
|
||||
"cacheWrite": 2.5
|
||||
},
|
||||
"contextWindow": 1000000,
|
||||
"maxTokens": 128000,
|
||||
"thinking": {
|
||||
"mode": "anthropic-adaptive",
|
||||
"efforts": [
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"effortMap": {
|
||||
"minimal": "low",
|
||||
"low": "medium",
|
||||
"medium": "high",
|
||||
"high": "xhigh",
|
||||
"xhigh": "max"
|
||||
},
|
||||
"supportsDisplay": true
|
||||
}
|
||||
},
|
||||
"arcee-ai/trinity-large-preview": {
|
||||
"id": "arcee-ai/trinity-large-preview",
|
||||
"name": "Trinity Large Preview",
|
||||
@@ -78749,7 +78778,6 @@
|
||||
},
|
||||
"compat": {
|
||||
"officialEndpoint": false,
|
||||
"disableStrictTools": false,
|
||||
"disableAdaptiveThinking": false,
|
||||
"supportsEagerToolInputStreaming": true,
|
||||
"supportsLongCacheRetention": false,
|
||||
@@ -83885,6 +83913,44 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"anthropic/claude-sonnet-5": {
|
||||
"id": "anthropic/claude-sonnet-5",
|
||||
"name": "Claude Sonnet 5",
|
||||
"api": "anthropic-messages",
|
||||
"provider": "zenmux",
|
||||
"baseUrl": "https://zenmux.ai/api/anthropic",
|
||||
"reasoning": true,
|
||||
"input": [
|
||||
"text",
|
||||
"image"
|
||||
],
|
||||
"cost": {
|
||||
"input": 2,
|
||||
"output": 10,
|
||||
"cacheRead": 0.2,
|
||||
"cacheWrite": 4
|
||||
},
|
||||
"contextWindow": 1000000,
|
||||
"maxTokens": 128000,
|
||||
"thinking": {
|
||||
"mode": "anthropic-adaptive",
|
||||
"efforts": [
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"effortMap": {
|
||||
"minimal": "low",
|
||||
"low": "medium",
|
||||
"medium": "high",
|
||||
"high": "xhigh",
|
||||
"xhigh": "max"
|
||||
},
|
||||
"supportsDisplay": true
|
||||
}
|
||||
},
|
||||
"baidu/ernie-5.0-thinking-preview": {
|
||||
"id": "baidu/ernie-5.0-thinking-preview",
|
||||
"name": "ERNIE 5.0",
|
||||
|
||||
@@ -954,7 +954,7 @@ export function collapseBuiltModelVariants<TApi extends Api>(models: readonly Mo
|
||||
const inputRefs = new Set<Model<TApi>>(models);
|
||||
return collapsed.map(model =>
|
||||
// Resolved compat re-fed as override config resolves to itself.
|
||||
inputRefs.has(model) ? model : buildModel(model as unknown as ModelSpec<TApi>),
|
||||
inputRefs.has(model) ? model : buildModel({ ...model, compat: model.compatConfig } as unknown as ModelSpec<TApi>),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1797,7 +1797,7 @@ describe("ModelRegistry", () => {
|
||||
for (const model of models) {
|
||||
expect(
|
||||
(model.compatConfig as { disableStrictTools?: boolean } | undefined)?.disableStrictTools,
|
||||
).toBeFalsy();
|
||||
).toBeUndefined();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -16,13 +16,21 @@ const GIT_ENV = {
|
||||
GIT_AUTHOR_EMAIL: "t@example.com",
|
||||
GIT_COMMITTER_NAME: "t",
|
||||
GIT_COMMITTER_EMAIL: "t@example.com",
|
||||
GIT_CONFIG_GLOBAL: "/dev/null",
|
||||
GIT_CONFIG_SYSTEM: "/dev/null",
|
||||
} as const;
|
||||
|
||||
function gitRun(cwd: string, args: string[]): string {
|
||||
const env = { ...process.env, ...GIT_ENV };
|
||||
delete env.GIT_DIR;
|
||||
delete env.GIT_WORK_TREE;
|
||||
delete env.GIT_INDEX_FILE;
|
||||
delete env.GIT_OBJECT_DIRECTORY;
|
||||
delete env.GIT_ALTERNATE_OBJECT_DIRECTORIES;
|
||||
const result = Bun.spawnSync({
|
||||
cmd: ["git", ...args],
|
||||
cwd,
|
||||
env: { ...process.env, ...GIT_ENV },
|
||||
env,
|
||||
stdout: "pipe",
|
||||
stderr: "pipe",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user