Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/gateway/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ export function buildEnvVars(env: MoltbotEnv): Record<string, string> {
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;
}
Expand Down
11 changes: 6 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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.';
}
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion start-moltbot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 || {};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah this change needs to be reverted

config.channels.telegram.dmPolicy = process.env.TELEGRAM_DM_POLICY || 'pairing';
}
Expand Down