mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 13:38:31 +00:00
feat(kiro): add GPT-5.6 model family (#2596)
Add GPT-5.6 Sol/Terra/Luna and their synthetic thinking/agentic/ thinking-agentic variants to the Kiro static catalog with the observed 272k context window and credit multipliers (2.4/1.2/0.6), register MITM mapping slots for the new base ids, and override runtime capabilities so the GPT-5.6 family reports the 272k window instead of the generic GPT-5 profile.
This commit is contained in:
@@ -11,6 +11,15 @@ describe("getCapabilitiesForModel", () => {
|
||||
search: true,
|
||||
};
|
||||
|
||||
const kiroGpt56Expected = {
|
||||
contextWindow: 272000,
|
||||
maxOutput: 128000,
|
||||
thinkingFormat: "openai",
|
||||
reasoning: true,
|
||||
vision: true,
|
||||
search: true,
|
||||
};
|
||||
|
||||
it("reports Kiro Claude Opus 4.8 as a 1M context model", () => {
|
||||
expect(getCapabilitiesForModel("kiro", "claude-opus-4.8").contextWindow).toBe(1000000);
|
||||
expect(getCapabilitiesForModel("kiro", "anthropic/claude-opus-4.8").contextWindow).toBe(1000000);
|
||||
@@ -26,4 +35,12 @@ describe("getCapabilitiesForModel", () => {
|
||||
expect(getCapabilitiesForModel("kiro", "claude-sonnet-5-agentic")).toMatchObject(claudeSonnet5Expected);
|
||||
expect(getCapabilitiesForModel("kiro", "claude-sonnet-5-thinking-agentic")).toMatchObject(claudeSonnet5Expected);
|
||||
});
|
||||
|
||||
it("reports Kiro GPT 5.6 models with the Kiro 272k context window", () => {
|
||||
expect(getCapabilitiesForModel("kiro", "gpt-5.6-sol")).toMatchObject(kiroGpt56Expected);
|
||||
expect(getCapabilitiesForModel("kiro", "openai/gpt-5.6-sol")).toMatchObject(kiroGpt56Expected);
|
||||
expect(getCapabilitiesForModel("kiro", "gpt-5.6-terra-thinking")).toMatchObject(kiroGpt56Expected);
|
||||
expect(getCapabilitiesForModel("kiro", "gpt-5.6-luna-agentic")).toMatchObject(kiroGpt56Expected);
|
||||
expect(getCapabilitiesForModel("kiro", "gpt-5.6-sol-thinking-agentic")).toMatchObject(kiroGpt56Expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -25,6 +25,13 @@ describe("Kiro MITM model slots", () => {
|
||||
expect(simpleTask).toBeTruthy();
|
||||
expect(simpleTask.alias).toBe("simple-task");
|
||||
});
|
||||
|
||||
it("offers mappable slots for GPT-5.6 family models", () => {
|
||||
const models = new Map(kiro.defaultModels.map((m) => [m.id, m]));
|
||||
expect(models.get("gpt-5.6-sol")).toMatchObject({ alias: "gpt-5.6-sol", contextLength: 272000, rateMultiplier: 2.4 });
|
||||
expect(models.get("gpt-5.6-terra")).toMatchObject({ alias: "gpt-5.6-terra", contextLength: 272000, rateMultiplier: 1.2 });
|
||||
expect(models.get("gpt-5.6-luna")).toMatchObject({ alias: "gpt-5.6-luna", contextLength: 272000, rateMultiplier: 0.6 });
|
||||
});
|
||||
});
|
||||
|
||||
describe("Kiro static provider models", () => {
|
||||
@@ -37,4 +44,47 @@ describe("Kiro static provider models", () => {
|
||||
"claude-sonnet-5-thinking-agentic",
|
||||
]));
|
||||
});
|
||||
|
||||
it("includes GPT-5.6 family and synthetic Kiro variants", () => {
|
||||
const models = new Map((PROVIDER_MODELS.kr || []).map((model) => [model.id, model]));
|
||||
const ids = [...models.keys()];
|
||||
expect(ids).toEqual(expect.arrayContaining([
|
||||
"gpt-5.6-sol",
|
||||
"gpt-5.6-sol-thinking",
|
||||
"gpt-5.6-sol-agentic",
|
||||
"gpt-5.6-sol-thinking-agentic",
|
||||
"gpt-5.6-terra",
|
||||
"gpt-5.6-terra-thinking",
|
||||
"gpt-5.6-terra-agentic",
|
||||
"gpt-5.6-terra-thinking-agentic",
|
||||
"gpt-5.6-luna",
|
||||
"gpt-5.6-luna-thinking",
|
||||
"gpt-5.6-luna-agentic",
|
||||
"gpt-5.6-luna-thinking-agentic",
|
||||
]));
|
||||
|
||||
for (const [id, rateMultiplier] of [
|
||||
["gpt-5.6-sol", 2.4],
|
||||
["gpt-5.6-sol-thinking", 2.4],
|
||||
["gpt-5.6-sol-agentic", 2.4],
|
||||
["gpt-5.6-sol-thinking-agentic", 2.4],
|
||||
["gpt-5.6-terra", 1.2],
|
||||
["gpt-5.6-terra-thinking", 1.2],
|
||||
["gpt-5.6-terra-agentic", 1.2],
|
||||
["gpt-5.6-terra-thinking-agentic", 1.2],
|
||||
["gpt-5.6-luna", 0.6],
|
||||
["gpt-5.6-luna-thinking", 0.6],
|
||||
["gpt-5.6-luna-agentic", 0.6],
|
||||
["gpt-5.6-luna-thinking-agentic", 0.6],
|
||||
]) {
|
||||
const model = models.get(id);
|
||||
const upstreamModelId = id.replace(/-(thinking-agentic|thinking|agentic)$/, "");
|
||||
expect(model).toMatchObject({
|
||||
contextLength: 272000,
|
||||
rateMultiplier,
|
||||
upstreamModelId,
|
||||
});
|
||||
expect(model.description).toContain("272k context window");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user