diff options
| author | Aiden Cline <[email protected]> | 2026-02-04 12:07:33 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-04 18:07:33 +0000 |
| commit | 305007aa0c97a3515fb679537686dbde52bb4614 (patch) | |
| tree | 94d6d27cb772a3b2521ccfa398e30f067928831e | |
| parent | a2c28fc8d733915af24f0d1945cef9c90c6d3e5f (diff) | |
| download | opencode-305007aa0c97a3515fb679537686dbde52bb4614.tar.gz opencode-305007aa0c97a3515fb679537686dbde52bb4614.zip | |
fix: cloudflare workers ai provider (#12157)
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 2a01bbc44..614d4ec14 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -457,6 +457,29 @@ export namespace Provider { }, } }, + "cloudflare-workers-ai": async (input) => { + const accountId = Env.get("CLOUDFLARE_ACCOUNT_ID") + if (!accountId) return { autoload: false } + + const apiKey = await iife(async () => { + const envToken = Env.get("CLOUDFLARE_API_KEY") + if (envToken) return envToken + const auth = await Auth.get(input.id) + if (auth?.type === "api") return auth.key + return undefined + }) + + return { + autoload: !!apiKey, + options: { + apiKey, + baseURL: `https://api.cloudflare.com/client/v4/accounts/${accountId}/ai/v1`, + }, + async getModel(sdk: any, modelID: string) { + return sdk.languageModel(modelID) + }, + } + }, "cloudflare-ai-gateway": async (input) => { const accountId = Env.get("CLOUDFLARE_ACCOUNT_ID") const gateway = Env.get("CLOUDFLARE_GATEWAY_ID") |
