From 986c60353e80a1778c799e819af66cbb4cf602db Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Fri, 14 Nov 2025 17:41:01 +0000 Subject: [PATCH] set `promptCacheKey` for openai compatible providers (#4203) Co-authored-by: GitHub Action --- packages/opencode/src/provider/transform.ts | 9 +++++++-- packages/opencode/src/session/prompt.ts | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 668f3041..ccc36ba2 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -128,10 +128,15 @@ export namespace ProviderTransform { return undefined } - export function options(providerID: string, modelID: string, sessionID: string): Record | undefined { + export function options( + providerID: string, + modelID: string, + npm: string, + sessionID: string, + ): Record | undefined { const result: Record = {} - if (providerID === "openai") { + if (providerID === "openai" || npm.includes("openai")) { result["promptCacheKey"] = sessionID } diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index ae6aff22..0fb7ad22 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -266,7 +266,7 @@ export namespace SessionPrompt { : undefined, topP: agent.topP ?? ProviderTransform.topP(model.providerID, model.modelID), options: { - ...ProviderTransform.options(model.providerID, model.modelID, input.sessionID), + ...ProviderTransform.options(model.providerID, model.modelID, model.npm ?? "", input.sessionID), ...model.info.options, ...agent.options, }, @@ -1819,7 +1819,7 @@ export namespace SessionPrompt { const small = (await Provider.getSmallModel(input.providerID)) ?? (await Provider.getModel(input.providerID, input.modelID)) const options = { - ...ProviderTransform.options(small.providerID, small.modelID, input.session.id), + ...ProviderTransform.options(small.providerID, small.modelID, small.npm ?? "", input.session.id), ...small.info.options, } if (small.providerID === "openai" || small.modelID.includes("gpt-5")) {