summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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 ?? {})) {