fix(providers): strip store param for non-Responses APIs when supportsStore=false
shouldStripResponsesStore only stripped store for openai-responses API models, but upstream pi-ai sends store:false for all API types. Providers like Cerebras that use openai-completions reject the unknown store parameter with HTTP 400. Remove the OPENAI_RESPONSES_APIS guard so store is stripped for any model that declares compat.supportsStore=false regardless of API type. Fixes #51058
This commit is contained in:
parent
50ce9ac1c6
commit
11f6265c86
@ -2143,6 +2143,27 @@ describe("applyExtraParamsToAgent", () => {
|
||||
expect(payload.context_management).toEqual([{ type: "compaction", compact_threshold: 12_345 }]);
|
||||
});
|
||||
|
||||
it("strips store from payload for openai-completions providers with supportsStore=false (#51058)", () => {
|
||||
const payload = runResponsesPayloadMutationCase({
|
||||
applyProvider: "cerebras",
|
||||
applyModelId: "llama3.1-8b",
|
||||
model: {
|
||||
api: "openai-completions",
|
||||
provider: "cerebras",
|
||||
id: "llama3.1-8b",
|
||||
name: "llama3.1-8b",
|
||||
baseUrl: "https://api.cerebras.ai/v1",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 128_000,
|
||||
maxTokens: 8_192,
|
||||
compat: { supportsStore: false },
|
||||
} as unknown as Model<"openai-completions">,
|
||||
});
|
||||
expect(payload).not.toHaveProperty("store");
|
||||
});
|
||||
|
||||
it("auto-injects OpenAI Responses context_management compaction for direct OpenAI models", () => {
|
||||
const payload = runResponsesPayloadMutationCase({
|
||||
applyProvider: "openai",
|
||||
|
||||
@ -148,10 +148,9 @@ function shouldStripResponsesStore(
|
||||
if (forceStore) {
|
||||
return false;
|
||||
}
|
||||
if (typeof model.api !== "string") {
|
||||
return false;
|
||||
}
|
||||
return OPENAI_RESPONSES_APIS.has(model.api) && model.compat?.supportsStore === false;
|
||||
// Strip store for ANY API type when the model declares supportsStore=false.
|
||||
// Providers like Cerebras reject unknown parameters including `store` (#51058).
|
||||
return model.compat?.supportsStore === false;
|
||||
}
|
||||
|
||||
function shouldStripResponsesPromptCache(model: { api?: unknown; baseUrl?: unknown }): boolean {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user