diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 2a01bbc4432b..614d4ec14439 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")