diff --git a/src/agents/model-compat.test.ts b/src/agents/model-compat.test.ts index ce6d12d4b..9b6538cd2 100644 --- a/src/agents/model-compat.test.ts +++ b/src/agents/model-compat.test.ts @@ -41,4 +41,26 @@ describe("normalizeModelCompat", () => { const normalized = normalizeModelCompat(model); expect(normalized.compat?.supportsDeveloperRole).toBe(false); }); + + it("forces supportsDeveloperRole off for nearai provider", () => { + const model = { + ...baseModel(), + provider: "nearai", + baseUrl: "https://cloud-api.near.ai/v1", + }; + delete (model as { compat?: unknown }).compat; + const normalized = normalizeModelCompat(model); + expect(normalized.compat?.supportsDeveloperRole).toBe(false); + }); + + it("forces supportsDeveloperRole off for near.ai baseUrl", () => { + const model = { + ...baseModel(), + provider: "custom", + baseUrl: "https://cloud-api.near.ai/v1", + }; + delete (model as { compat?: unknown }).compat; + const normalized = normalizeModelCompat(model); + expect(normalized.compat?.supportsDeveloperRole).toBe(false); + }); }); diff --git a/src/agents/model-compat.ts b/src/agents/model-compat.ts index 741819073..b9aa38c3e 100644 --- a/src/agents/model-compat.ts +++ b/src/agents/model-compat.ts @@ -7,7 +7,8 @@ function isOpenAiCompletionsModel(model: Model): model is Model<"openai-com export function normalizeModelCompat(model: Model): Model { const baseUrl = model.baseUrl ?? ""; const isZai = model.provider === "zai" || baseUrl.includes("api.z.ai"); - if (!isZai || !isOpenAiCompletionsModel(model)) return model; + const isNearAi = model.provider === "nearai" || baseUrl.includes("cloud-api.near.ai"); + if ((!isZai && !isNearAi) || !isOpenAiCompletionsModel(model)) return model; const openaiModel = model as Model<"openai-completions">; const compat = openaiModel.compat ?? undefined;