parent
d93f8ffc13
commit
aa581460a9
@ -127,4 +127,40 @@ describe("resolveModel", () => {
|
||||
expect(result.model?.provider).toBe("custom");
|
||||
expect(result.model?.id).toBe("missing-model");
|
||||
});
|
||||
|
||||
it("inherits provider api when registry model has no api (issue #1695)", async () => {
|
||||
const { discoverModels } = await import("@mariozechner/pi-coding-agent");
|
||||
const mockModel = {
|
||||
id: "test-model",
|
||||
name: "test-model",
|
||||
provider: "lmstudio",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 4096,
|
||||
maxTokens: 4096,
|
||||
// No api field set
|
||||
};
|
||||
|
||||
vi.mocked(discoverModels).mockReturnValue({
|
||||
find: vi.fn(() => mockModel),
|
||||
} as any);
|
||||
|
||||
const cfg = {
|
||||
models: {
|
||||
providers: {
|
||||
lmstudio: {
|
||||
api: "openai-responses",
|
||||
baseUrl: "http://localhost:1234",
|
||||
},
|
||||
},
|
||||
},
|
||||
} as MoltbotConfig;
|
||||
|
||||
const result = resolveModel("lmstudio", "test-model", "/tmp/agent", cfg);
|
||||
|
||||
expect(result.model?.api).toBe("openai-responses");
|
||||
expect(result.model?.id).toBe("test-model");
|
||||
expect(result.model?.provider).toBe("lmstudio");
|
||||
});
|
||||
});
|
||||
|
||||
@ -97,5 +97,7 @@ export function resolveModel(
|
||||
modelRegistry,
|
||||
};
|
||||
}
|
||||
return { model: normalizeModelCompat(model), authStorage, modelRegistry };
|
||||
const providerCfg = cfg?.models?.providers?.[provider];
|
||||
const merged = { ...model, api: model.api ?? providerCfg?.api };
|
||||
return { model: normalizeModelCompat(merged), authStorage, modelRegistry };
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user