feat(kiro): add claude-opus-5.5 models to registry and capabilities

This commit is contained in:
semihisikman authored and decolua committed 2026-09-28 13:00:06 +07:00
1 parent 1fd208e2b1
commit e78b766a20
3 files changed
+90 -2

No files matched your search

+6 -1
View File
@@ -83,8 +83,13 @@ export function capabilitiesFromServiceKind(kind) {
* otherwise mis-match. Only declare deltas vs DEFAULT.
*/
export const MODEL_CAPABILITIES = {
// Claude Fable 5.1, Opus 5, 4.6/4.7/4.8, and Kiro Sonnet 5 have 1M context + adaptive thinking (override generic claude pattern)
// Claude Fable 5.1, Opus 5.5/5, 4.6/4.7/4.8, and Kiro Sonnet 5 have 1M context + adaptive thinking (override generic claude pattern)
"claude-fable-5-1": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 128000 },
// Claude Opus 5.5 — experimental preview on Kiro (rateMultiplier: 2.0, 1M context) (#4410)
"claude-opus-5.5": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5.5-thinking": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5.5-agentic": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5.5-thinking-agentic": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5-thinking": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
"claude-opus-5-agentic": { vision: true, reasoning: true, search: true, thinkingFormat: "claude-adaptive", contextWindow: 1000000, maxOutput: 128000 },
+7 -1
View File
@@ -41,7 +41,13 @@ export default {
},
},
models: [
// Opus (added per kiro.dev/changelog/models and kiro.dev/docs/models)
// Opus 5.5 — experimental preview, 1M context, 2x credits (#4410)
// Announced 2026-09-22; confirmed in kiro.dev session UI.
{ id: "claude-opus-5.5", name: "Claude Opus 5.5" },
{ id: "claude-opus-5.5-thinking", name: "Claude Opus 5.5 (Thinking)" },
{ id: "claude-opus-5.5-agentic", name: "Claude Opus 5.5 (Agentic)" },
{ id: "claude-opus-5.5-thinking-agentic", name: "Claude Opus 5.5 (Thinking + Agentic)" },
// Opus 5
{ id: "claude-opus-5", name: "Claude Opus 5" },
{ id: "claude-opus-5-thinking", name: "Claude Opus 5 (Thinking)" },
{ id: "claude-opus-5-agentic", name: "Claude Opus 5 (Agentic)" },
+77
View File
@@ -0,0 +1,77 @@
/**
* Tests for #4410 — Kiro registry missing claude-opus-5.5 models.
*
* Kiro added Claude Opus 5.5 as an experimental preview on 2026-09-22.
* The model was missing from open-sse/providers/registry/kiro.js and
* open-sse/providers/capabilities.js.
*
* Fix:
* - Add claude-opus-5.5 / -thinking / -agentic / -thinking-agentic to kiro.js
* - Add capability entries (vision, reasoning, search, 1M context, adaptive thinking)
*/
import { describe, it, expect } from "vitest";
import { getCapabilitiesForModel } from "../../open-sse/providers/capabilities.js";
import fs from "fs";
import path from "path";
const kiroSrc = fs.readFileSync(
new URL("../../open-sse/providers/registry/kiro.js", import.meta.url),
"utf-8"
);
describe("Kiro registry — claude-opus-5.5 (#4410)", () => {
it("includes claude-opus-5.5 in kiro registry", () => {
expect(kiroSrc).toContain('"claude-opus-5.5"');
});
it("includes claude-opus-5.5-thinking in kiro registry", () => {
expect(kiroSrc).toContain('"claude-opus-5.5-thinking"');
});
it("includes claude-opus-5.5-agentic in kiro registry", () => {
expect(kiroSrc).toContain('"claude-opus-5.5-agentic"');
});
it("includes claude-opus-5.5-thinking-agentic in kiro registry", () => {
expect(kiroSrc).toContain('"claude-opus-5.5-thinking-agentic"');
});
it("claude-opus-5 still present (regression guard)", () => {
expect(kiroSrc).toContain('"claude-opus-5"');
});
});
describe("capabilities — claude-opus-5.5 (#4410)", () => {
it("claude-opus-5.5 has vision:true", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5.5");
expect(caps.vision).toBe(true);
});
it("claude-opus-5.5 has reasoning:true", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5.5");
expect(caps.reasoning).toBe(true);
});
it("claude-opus-5.5 has contextWindow 1M", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5.5");
expect(caps.contextWindow).toBe(1000000);
});
it("claude-opus-5.5 has maxOutput 128000", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5.5");
expect(caps.maxOutput).toBe(128000);
});
it("claude-opus-5.5-thinking has same capabilities", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5.5-thinking");
expect(caps.vision).toBe(true);
expect(caps.reasoning).toBe(true);
expect(caps.contextWindow).toBe(1000000);
});
it("claude-opus-5 still has 1M context (regression guard)", () => {
const caps = getCapabilitiesForModel("kiro", "claude-opus-5");
expect(caps.contextWindow).toBe(1000000);
});
});