diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/config/config.ts | 13 | ||||
| -rw-r--r-- | packages/opencode/src/provider/models.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 1 |
3 files changed, 13 insertions, 2 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 4623f9cd0..74c21c7ea 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1,14 +1,20 @@ import { Log } from "../util/log" +import path from "path" import { z } from "zod" import { App } from "../app/app" import { Filesystem } from "../util/filesystem" import { ModelsDev } from "../provider/models" +import { mergeDeep } from "remeda" +import { Global } from "../global" export namespace Config { const log = Log.create({ service: "config" }) export const state = App.state("config", async (app) => { - let result: Info = {} + let result = await Bun.file(path.join(Global.Path.config, "config.json")) + .json() + .then((mod) => Info.parse(mod)) + .catch(() => ({}) as Info) for (const file of ["opencode.jsonc", "opencode.json"]) { const [resolved] = await Filesystem.findUp( file, @@ -17,7 +23,10 @@ export namespace Config { ) if (!resolved) continue try { - result = await import(resolved).then((mod) => Info.parse(mod.default)) + result = mergeDeep( + result, + await import(resolved).then((mod) => Info.parse(mod.default)), + ) log.info("found", { path: resolved }) break } catch (e) { diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index 40d8328d1..262558084 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -32,6 +32,7 @@ export namespace ModelsDev { export const Provider = z .object({ + api: z.string().optional(), name: z.string(), env: z.array(z.string()), id: z.string(), diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 0a2a65821..17090233a 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -103,6 +103,7 @@ export namespace Provider { if (!provider) { const info = database[id] if (!info) return + if (info.api) options["baseURL"] = info.api providers[id] = { source, info, |
