summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-09-16 03:10:17 -0400
committerDax Raad <[email protected]>2025-09-16 03:10:17 -0400
commit2d5bd26a5980622baf49fa3479d87e634abda1d7 (patch)
tree00709fece96f223adeac2a6f2547860f284bc6da
parent8f58fef5adc75ab322653c8a40e878e4e24ccade (diff)
downloadopencode-2d5bd26a5980622baf49fa3479d87e634abda1d7.tar.gz
opencode-2d5bd26a5980622baf49fa3479d87e634abda1d7.zip
feat: enhance provider model mapping and reasoning capabilities
- Add npm package tracking to provider model mapping - Implement special handling for opencode provider with reasoning - Update provider options mapping to use npm package names
-rw-r--r--packages/opencode/src/provider/provider.ts4
-rw-r--r--packages/opencode/src/provider/transform.ts5
-rw-r--r--packages/opencode/src/session/prompt.ts2
3 files changed, 9 insertions, 2 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 2d30a738a..14f6ec09a 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -159,7 +159,7 @@ export namespace Provider {
} = {}
const models = new Map<
string,
- { providerID: string; modelID: string; info: ModelsDev.Model; language: LanguageModel }
+ { providerID: string; modelID: string; info: ModelsDev.Model; language: LanguageModel; npm?: string }
>()
const sdk = new Map<number, SDK>()
@@ -378,12 +378,14 @@ export namespace Provider {
modelID,
info,
language,
+ npm: info.provider?.npm ?? provider.info.npm,
})
return {
modelID,
providerID,
info,
language,
+ npm: info.provider?.npm ?? provider.info.npm,
}
} catch (e) {
if (e instanceof NoSuchModelError)
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index 094d02448..c99b05a45 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -96,6 +96,11 @@ export namespace ProviderTransform {
if (providerID !== "azure") {
result["textVerbosity"] = "low"
}
+ if (providerID === "opencode") {
+ result["promptCacheKey"] = sessionID
+ result["include"] = ["reasoning.encrypted_content"]
+ result["reasoningSummary"] = "detailed"
+ }
}
return result
}
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index 6fa794a3b..90ffdec72 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -268,7 +268,7 @@ export namespace SessionPrompt {
maxOutputTokens: ProviderTransform.maxOutputTokens(model.providerID, outputLimit, params.options),
abortSignal: abort.signal,
providerOptions: {
- [model.providerID]: params.options,
+ [model.npm === "@ai-sdk/openai" ? "openai" : model.providerID]: params.options,
},
stopWhen: stepCountIs(1),
temperature: params.temperature,