From 19f452da65698b2fce6b055837eb7022c70c349d Mon Sep 17 00:00:00 2001 From: Tanush Mahalka <49112539+tanushmahalka@users.noreply.github.com> Date: Fri, 30 Jan 2026 14:15:48 +0530 Subject: [PATCH 1/2] feat: add ANTHROPIC_OAUTH_TOKEN support for Claude Pro subscriptions Allow users to authenticate using their OAuth token as an alternative to API keys. This enables Claude Pro subscribers to use the moltworker gateway without needing separate API billing. - Add ANTHROPIC_OAUTH_TOKEN to MoltbotEnv type - Pass OAuth token through environment builder - Update validation to accept either API key or OAuth token - Add logging for OAuth token presence --- src/gateway/env.ts | 3 +++ src/index.ts | 11 ++++++----- src/types.ts | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gateway/env.ts b/src/gateway/env.ts index 26f1887..478302e 100644 --- a/src/gateway/env.ts +++ b/src/gateway/env.ts @@ -25,6 +25,9 @@ export function buildEnvVars(env: MoltbotEnv): Record { if (!envVars.ANTHROPIC_API_KEY && env.ANTHROPIC_API_KEY) { envVars.ANTHROPIC_API_KEY = env.ANTHROPIC_API_KEY; } + if (env.ANTHROPIC_OAUTH_TOKEN) { + envVars.ANTHROPIC_OAUTH_TOKEN = env.ANTHROPIC_OAUTH_TOKEN; + } if (!envVars.OPENAI_API_KEY && env.OPENAI_API_KEY) { envVars.OPENAI_API_KEY = env.OPENAI_API_KEY; } diff --git a/src/index.ts b/src/index.ts index 3ee1f5c..eacd5e3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -73,9 +73,9 @@ function validateRequiredEnv(env: MoltbotEnv): string[] { if (!env.AI_GATEWAY_BASE_URL) { missing.push('AI_GATEWAY_BASE_URL (required when using AI_GATEWAY_API_KEY)'); } - } else if (!env.ANTHROPIC_API_KEY) { - // Direct Anthropic access requires API key - missing.push('ANTHROPIC_API_KEY or AI_GATEWAY_API_KEY'); + } else if (!env.ANTHROPIC_API_KEY && !env.ANTHROPIC_OAUTH_TOKEN) { + // Direct Anthropic access requires API key or OAuth token + missing.push('ANTHROPIC_API_KEY, ANTHROPIC_OAUTH_TOKEN, or AI_GATEWAY_API_KEY'); } return missing; @@ -116,6 +116,7 @@ app.use('*', async (c, next) => { const url = new URL(c.req.url); console.log(`[REQ] ${c.req.method} ${url.pathname}${url.search}`); console.log(`[REQ] Has ANTHROPIC_API_KEY: ${!!c.env.ANTHROPIC_API_KEY}`); + console.log(`[REQ] Has ANTHROPIC_OAUTH_TOKEN: ${!!c.env.ANTHROPIC_OAUTH_TOKEN}`); console.log(`[REQ] DEV_MODE: ${c.env.DEV_MODE}`); console.log(`[REQ] DEBUG_ROUTES: ${c.env.DEBUG_ROUTES}`); await next(); @@ -249,8 +250,8 @@ app.all('*', async (c) => { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; let hint = 'Check worker logs with: wrangler tail'; - if (!c.env.ANTHROPIC_API_KEY) { - hint = 'ANTHROPIC_API_KEY is not set. Run: wrangler secret put ANTHROPIC_API_KEY'; + if (!c.env.ANTHROPIC_API_KEY && !c.env.ANTHROPIC_OAUTH_TOKEN) { + hint = 'ANTHROPIC_API_KEY or ANTHROPIC_OAUTH_TOKEN is not set. Run: wrangler secret put ANTHROPIC_API_KEY'; } else if (errorMessage.includes('heap out of memory') || errorMessage.includes('OOM')) { hint = 'Gateway ran out of memory. Try again or check for memory leaks.'; } diff --git a/src/types.ts b/src/types.ts index bb82c8c..a08bcb5 100644 --- a/src/types.ts +++ b/src/types.ts @@ -12,6 +12,7 @@ export interface MoltbotEnv { AI_GATEWAY_BASE_URL?: string; // AI Gateway URL (e.g., https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/anthropic) // Legacy direct provider configuration (fallback) ANTHROPIC_API_KEY?: string; + ANTHROPIC_OAUTH_TOKEN?: string; ANTHROPIC_BASE_URL?: string; OPENAI_API_KEY?: string; MOLTBOT_GATEWAY_TOKEN?: string; // Gateway token (mapped to CLAWDBOT_GATEWAY_TOKEN for container) From 37a3da3df040cbd73366cdccc4542e22fba1b50c Mon Sep 17 00:00:00 2001 From: Tanush Mahalka <49112539+tanushmahalka@users.noreply.github.com> Date: Fri, 30 Jan 2026 14:15:58 +0530 Subject: [PATCH 2/2] fix: remove redundant telegram dm config initialization Remove unnecessary 'config.channels.telegram.dm' initialization that was causing configuration issues. The dmPolicy is set directly without needing the intermediate dm object. --- start-moltbot.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/start-moltbot.sh b/start-moltbot.sh index 977ebf3..c61d323 100644 --- a/start-moltbot.sh +++ b/start-moltbot.sh @@ -187,7 +187,6 @@ if (process.env.TELEGRAM_BOT_TOKEN) { config.channels.telegram = config.channels.telegram || {}; config.channels.telegram.botToken = process.env.TELEGRAM_BOT_TOKEN; config.channels.telegram.enabled = true; - config.channels.telegram.dm = config.channels.telegram.dm || {}; config.channels.telegram.dmPolicy = process.env.TELEGRAM_DM_POLICY || 'pairing'; }