diff --git a/src/api/providers/fetchers/__tests__/roo.spec.ts b/src/api/providers/fetchers/__tests__/roo.spec.ts index 0fa574cff16..07502d95e32 100644 --- a/src/api/providers/fetchers/__tests__/roo.spec.ts +++ b/src/api/providers/fetchers/__tests__/roo.spec.ts @@ -77,6 +77,7 @@ describe("getRooModels", () => { description: "Fast coding model", deprecated: false, isFree: false, + defaultToolProtocol: "native", // Applied from MODEL_DEFAULTS }, }) }) diff --git a/src/api/providers/fetchers/roo.ts b/src/api/providers/fetchers/roo.ts index e4868bebdbb..124628c9245 100644 --- a/src/api/providers/fetchers/roo.ts +++ b/src/api/providers/fetchers/roo.ts @@ -1,10 +1,25 @@ -import { RooModelsResponseSchema } from "@roo-code/types" +import { RooModelsResponseSchema, type ModelInfo } from "@roo-code/types" import type { ModelRecord } from "../../../shared/api" import { parseApiPrice } from "../../../shared/cost" import { DEFAULT_HEADERS } from "../constants" +// Model-specific defaults that should be applied even when models come from API cache +// These override API-provided values for specific models +// Exported so RooHandler.getModel() can also apply these for fallback cases +export const MODEL_DEFAULTS: Record> = { + "minimax/minimax-m2": { + defaultToolProtocol: "native", + }, + "anthropic/claude-haiku-4.5": { + defaultToolProtocol: "native", + }, + "xai/grok-code-fast-1": { + defaultToolProtocol: "native", + }, +} + /** * Fetches available models from the Roo Code Cloud provider * @@ -119,7 +134,9 @@ export async function getRooModels(baseUrl: string, apiKey?: string): Promise> = { - "minimax/minimax-m2": { - defaultToolProtocol: "native", - }, - "anthropic/claude-haiku-4.5": { - defaultToolProtocol: "native", - }, -} - // Extend OpenAI's CompletionUsage to include Roo specific fields interface RooUsage extends OpenAI.CompletionUsage { cache_creation_input_tokens?: number