summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-10 16:18:54 -0400
committerDax Raad <[email protected]>2025-06-10 16:19:02 -0400
commit6248c1e7201240d2ec0a7929cb22e46cb34106eb (patch)
tree3080204bd171d5fa7e4c9cd6db89de742a9e442c
parent772e1851c049f4f861632dacdee9cb1b3e0bda17 (diff)
downloadopencode-6248c1e7201240d2ec0a7929cb22e46cb34106eb.tar.gz
opencode-6248c1e7201240d2ec0a7929cb22e46cb34106eb.zip
merge deep config
-rw-r--r--packages/opencode/src/auth/anthropic.ts2
-rw-r--r--packages/opencode/src/provider/provider.ts18
2 files changed, 6 insertions, 14 deletions
diff --git a/packages/opencode/src/auth/anthropic.ts b/packages/opencode/src/auth/anthropic.ts
index 6d8913c80..43cbc249a 100644
--- a/packages/opencode/src/auth/anthropic.ts
+++ b/packages/opencode/src/auth/anthropic.ts
@@ -52,6 +52,8 @@ export namespace AuthAnthropic {
await fs.chmod(file.name!, 0o600)
}
+ export const exists = file.exists
+
export async function access() {
if (!(await file.exists())) return
const result = await file.json()
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 3857404b6..e894d7acf 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -1,7 +1,7 @@
import z from "zod"
import { App } from "../app/app"
import { Config } from "../config/config"
-import { mapValues, sortBy } from "remeda"
+import { mergeDeep, sortBy } from "remeda"
import { NoSuchModelError, type LanguageModel, type Provider as SDK } from "ai"
import { Log } from "../util/log"
import path from "path"
@@ -150,10 +150,7 @@ export namespace Provider {
}
return
}
- provider.options = {
- ...provider.options,
- ...options,
- }
+ provider.options = mergeDeep(provider.options, options)
provider.source = source
}
@@ -165,15 +162,8 @@ export namespace Provider {
mergeProvider(providerID, result.options, result.source)
}
- const keys = await AuthKeys.get()
- for (const [providerID, key] of Object.entries(keys)) {
- mergeProvider(
- providerID,
- {
- apiKey: key,
- },
- "global",
- )
+ for (const [providerID, key] of Object.entries(await AuthKeys.get())) {
+ mergeProvider(providerID, { apiKey: key }, "global")
}
for (const [providerID, options] of Object.entries(config.provider ?? {})) {