


























@@ -257,6 +257,30 @@ describe("anthropic provider replay hooks", () => {
257257).toBe(false);
258258});
259259260+it("does not forward-compat case-mismatched Anthropic model ids", async () => {
261+const provider = await registerSingleProviderPlugin(anthropicPlugin);
262+263+const resolved = provider.resolveDynamicModel?.({
264+provider: "anthropic",
265+modelId: "CLAUDE-OPUS-4-7",
266+modelRegistry: createModelRegistry([
267+{
268+id: "claude-opus-4-6",
269+name: "Claude Opus 4.6",
270+provider: "anthropic",
271+api: "anthropic-messages",
272+reasoning: true,
273+input: ["text", "image"],
274+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
275+contextWindow: 200_000,
276+maxTokens: 32_000,
277+} as ProviderRuntimeModel,
278+]),
279+} as ProviderResolveDynamicModelContext);
280+281+expect(resolved).toBeUndefined();
282+});
283+260284it("normalizes exact claude opus 4.7 variants to 1M context", async () => {
261285const provider = await registerSingleProviderPlugin(anthropicPlugin);
262286此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。