feat(catalog): updated model catalog with new models and variant support
- Removed deprecated devin models and legacy GPT-5 codex variants from model catalog. - Added Gemini 3.5 Flash Lite and Gemini 3.6 Flash models across multiple providers. - Added SWE-1.6, SWE-1.7, poolside/laguna, and other new models to catalog. - Added variant collapse support for Gemini 3.6 Flash family. - Updated context windows, pricing, and API routing for various qwen and grok models.
This commit is contained in:
@@ -2,6 +2,42 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- Added MiniMax M3 model with reasoning and multi-modal support
|
||||
- Added Gemini 3.5 Flash Lite model across multiple providers
|
||||
- Added Gemini 3.6 Flash model across multiple providers with thinking support
|
||||
- Added Hy3 model with reasoning and effort-based thinking
|
||||
- Added Doubao-Seed-Character model with image input support
|
||||
- Added LongCat 2.0 model across multiple providers
|
||||
- Added Laguna S 2.1 model (free and paid tiers) across multiple providers
|
||||
- Added Qwen 3.6 35B A3B model with thinking support
|
||||
- Added SWE-1.6 Slow model to devin agent catalog
|
||||
- Added XiaomiMiMo/MiMo-V2.5 model with reasoning support
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed Grok 4.5 API type from "openai-completions" to "openai-responses"
|
||||
- Changed thinking format for "o3-mini" from "zai" to "kimi"
|
||||
- Renamed "Auto Router (Beta)" to "OpenRouter Auto Router (Beta)"
|
||||
- Renamed "Body Builder (beta)" to "OpenRouter Body Builder (beta)"
|
||||
- Renamed "Pareto Code Router" to "OpenRouter Pareto Code Router"
|
||||
- Updated numerous model context window sizes, costs, and token limits
|
||||
- Updated "o3-mini" model to support thinking capabilities
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed Claude Fable 5 family of models from devin catalog
|
||||
- Removed Claude Opus 4.6 and 4.7 model families from devin catalog
|
||||
- Removed Claude Sonnet 4.6 and 5 model families from devin catalog
|
||||
- Removed DeepSeek V4 Pro from devin catalog
|
||||
- Removed Gemini 3.1 Pro and Gemini 3.5 Flash families from devin catalog
|
||||
- Removed GLM-5.2 and GLM-5.2 1M from devin catalog
|
||||
- Removed GPT-5 through GPT-5.3 Codex variants from openai-codex catalog
|
||||
- Removed GPT-5.4 nano from openai-codex catalog
|
||||
- Removed SWE-1.6 family models from devin catalog
|
||||
- Removed Nemotron 3 Ultra from devin catalog
|
||||
|
||||
## [17.0.6] - 2026-07-20
|
||||
|
||||
### Added
|
||||
|
||||
+1118
-2051
File diff suppressed because it is too large
Load Diff
@@ -227,13 +227,12 @@ const GEMINI_3_PRO_FAMILY_BUDGETS: Readonly<Partial<Record<Effort, number>>> = {
|
||||
};
|
||||
|
||||
/**
|
||||
* The two Cloud Code Assist providers share the same Antigravity discovery list
|
||||
* but disagree on the thinking transport: `google-antigravity` (daily-cloudcode-pa)
|
||||
* sends an explicit `thinkingBudget` (verified against captured requests), while
|
||||
* `google-gemini-cli` (cloudcode-pa) follows the official Gemini CLI and uses
|
||||
* `thinkingLevel`. The Gemini 3.x families therefore differ only in thinking
|
||||
* transport (and, for Flash, the per-tier wire-id routing); everything else is
|
||||
* shared verbatim.
|
||||
* Cloud Code Assist's legacy Gemini 3.5 Flash and 3.1 Pro families use
|
||||
* different thinking transports: `google-antigravity` (daily-cloudcode-pa)
|
||||
* sends captured `thinkingBudget` values, while `google-gemini-cli`
|
||||
* (cloudcode-pa) follows the official Gemini CLI and uses `thinkingLevel`.
|
||||
* Gemini 3.6 exposes one wire id per level and uses `thinkingLevel` on both
|
||||
* endpoints.
|
||||
*/
|
||||
function geminiFlashFamily(mode: "budget" | "google-level"): EffortVariantFamily {
|
||||
const budget = mode === "budget";
|
||||
@@ -266,6 +265,23 @@ function geminiFlashFamily(mode: "budget" | "google-level"): EffortVariantFamily
|
||||
};
|
||||
}
|
||||
|
||||
const GEMINI_36_FLASH_FAMILY: EffortVariantFamily = {
|
||||
id: "gemini-3.6-flash",
|
||||
name: "Gemini 3.6 Flash",
|
||||
members: ["gemini-3.6-flash-low", "gemini-3.6-flash-medium", "gemini-3.6-flash-high", "gemini-3.6-flash-tiered"],
|
||||
routing: {
|
||||
[Effort.Minimal]: "gemini-3.6-flash-low",
|
||||
[Effort.Low]: "gemini-3.6-flash-low",
|
||||
[Effort.Medium]: "gemini-3.6-flash-medium",
|
||||
[Effort.High]: "gemini-3.6-flash-high",
|
||||
},
|
||||
thinking: {
|
||||
mode: "google-level",
|
||||
efforts: GEMINI_3_FLASH_FAMILY_EFFORTS,
|
||||
requiresEffort: true,
|
||||
},
|
||||
};
|
||||
|
||||
function geminiProFamily(mode: "budget" | "google-level"): EffortVariantFamily {
|
||||
const budget = mode === "budget";
|
||||
return {
|
||||
@@ -346,14 +362,19 @@ const SHARED_CCA_FAMILIES: readonly EffortVariantFamily[] = [
|
||||
thinkingPair("gemini-2.5-flash", "Gemini 2.5 Flash"),
|
||||
];
|
||||
|
||||
/** `google-antigravity` (daily-cloudcode-pa): Gemini 3.x on the budget transport. */
|
||||
/** `google-antigravity` Gemini families, using each generation's native transport. */
|
||||
export const ANTIGRAVITY_VARIANT_COLLAPSE_TABLE: VariantCollapseTable = {
|
||||
families: [geminiFlashFamily("budget"), geminiProFamily("budget"), ...SHARED_CCA_FAMILIES],
|
||||
families: [GEMINI_36_FLASH_FAMILY, geminiFlashFamily("budget"), geminiProFamily("budget"), ...SHARED_CCA_FAMILIES],
|
||||
};
|
||||
|
||||
/** `google-gemini-cli` (cloudcode-pa): Gemini 3.x on the level transport (official CLI parity). */
|
||||
/** `google-gemini-cli` Gemini families on the official CLI's level transport. */
|
||||
export const GEMINI_CLI_VARIANT_COLLAPSE_TABLE: VariantCollapseTable = {
|
||||
families: [geminiFlashFamily("google-level"), geminiProFamily("google-level"), ...SHARED_CCA_FAMILIES],
|
||||
families: [
|
||||
GEMINI_36_FLASH_FAMILY,
|
||||
geminiFlashFamily("google-level"),
|
||||
geminiProFamily("google-level"),
|
||||
...SHARED_CCA_FAMILIES,
|
||||
],
|
||||
};
|
||||
export const DEVIN_VARIANT_COLLAPSE_TABLE: VariantCollapseTable = {
|
||||
families: [
|
||||
|
||||
@@ -109,6 +109,41 @@ describe("collapseEffortVariants", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("collapses Gemini 3.6 Flash tiers into one routed logical spec", () => {
|
||||
const out = collapseEffortVariants(
|
||||
[
|
||||
memberSpec("gemini-3.6-flash-high"),
|
||||
memberSpec("gemini-3.6-flash-low"),
|
||||
memberSpec("gemini-3.6-flash-medium"),
|
||||
memberSpec("gemini-3.6-flash-tiered"),
|
||||
],
|
||||
ANTIGRAVITY_VARIANT_COLLAPSE_TABLE,
|
||||
);
|
||||
|
||||
expect(out).toHaveLength(1);
|
||||
const flash = out[0];
|
||||
expect(flash?.id).toBe("gemini-3.6-flash");
|
||||
expect(flash?.name).toBe("Gemini 3.6 Flash");
|
||||
expect(flash?.requestModelId).toBe("gemini-3.6-flash-low");
|
||||
expect(flash?.thinking).toEqual({
|
||||
mode: "google-level",
|
||||
efforts: [Effort.Minimal, Effort.Low, Effort.Medium, Effort.High],
|
||||
requiresEffort: true,
|
||||
effortRouting: {
|
||||
minimal: "gemini-3.6-flash-low",
|
||||
low: "gemini-3.6-flash-low",
|
||||
medium: "gemini-3.6-flash-medium",
|
||||
high: "gemini-3.6-flash-high",
|
||||
},
|
||||
});
|
||||
|
||||
const model = buildModel(flash as ModelSpec<"google-gemini-cli">);
|
||||
expect(resolveWireModelId(model, Effort.Minimal)).toBe("gemini-3.6-flash-low");
|
||||
expect(resolveWireModelId(model, Effort.Low)).toBe("gemini-3.6-flash-low");
|
||||
expect(resolveWireModelId(model, Effort.Medium)).toBe("gemini-3.6-flash-medium");
|
||||
expect(resolveWireModelId(model, Effort.High)).toBe("gemini-3.6-flash-high");
|
||||
});
|
||||
|
||||
it("drops routes whose target member is absent", () => {
|
||||
const out = collapseEffortVariants(
|
||||
[memberSpec("gemini-3.5-flash-extra-low")],
|
||||
|
||||
Reference in New Issue
Block a user