diff --git a/packages/types/src/providers/openai.ts b/packages/types/src/providers/openai.ts index 1e7b44a45a0..47b883e0e10 100644 --- a/packages/types/src/providers/openai.ts +++ b/packages/types/src/providers/openai.ts @@ -551,6 +551,7 @@ export const openAiModelInfoSaneDefaults: ModelInfo = { inputPrice: 0, outputPrice: 0, supportsNativeTools: true, + defaultToolProtocol: "native", } // https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation diff --git a/src/utils/__tests__/resolveToolProtocol.spec.ts b/src/utils/__tests__/resolveToolProtocol.spec.ts index d5f12b0b22f..68d3f3a2de8 100644 --- a/src/utils/__tests__/resolveToolProtocol.spec.ts +++ b/src/utils/__tests__/resolveToolProtocol.spec.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from "vitest" import { resolveToolProtocol } from "../resolveToolProtocol" -import { TOOL_PROTOCOL } from "@roo-code/types" +import { TOOL_PROTOCOL, openAiModelInfoSaneDefaults } from "@roo-code/types" import type { ProviderSettings, ModelInfo } from "@roo-code/types" describe("resolveToolProtocol", () => { @@ -316,5 +316,14 @@ describe("resolveToolProtocol", () => { const result = resolveToolProtocol(settings, modelInfo) expect(result).toBe(TOOL_PROTOCOL.XML) // Model default wins }) + + it("should use native tools for OpenAI compatible provider with default model info", () => { + const settings: ProviderSettings = { + apiProvider: "openai", + } + // Using the actual openAiModelInfoSaneDefaults to verify the fix + const result = resolveToolProtocol(settings, openAiModelInfoSaneDefaults) + expect(result).toBe(TOOL_PROTOCOL.NATIVE) // Should use native tools by default + }) }) })