diff options
| author | Dax Raad <[email protected]> | 2025-09-16 03:10:17 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-09-16 03:10:17 -0400 |
| commit | 2d5bd26a5980622baf49fa3479d87e634abda1d7 (patch) | |
| tree | 00709fece96f223adeac2a6f2547860f284bc6da | |
| parent | 8f58fef5adc75ab322653c8a40e878e4e24ccade (diff) | |
| download | opencode-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.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/provider/transform.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 2 |
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, |
