diff --git a/src/gateway/env.ts b/src/gateway/env.ts index a57e781..6c920f1 100644 --- a/src/gateway/env.ts +++ b/src/gateway/env.ts @@ -55,6 +55,7 @@ export function buildEnvVars(env: MoltbotEnv): Record { if (env.SLACK_APP_TOKEN) envVars.SLACK_APP_TOKEN = env.SLACK_APP_TOKEN; if (env.CDP_SECRET) envVars.CDP_SECRET = env.CDP_SECRET; if (env.WORKER_URL) envVars.WORKER_URL = env.WORKER_URL; + if (env.BRAVE_API_KEY) envVars.BRAVE_API_KEY = env.BRAVE_API_KEY; return envVars; } diff --git a/src/types.ts b/src/types.ts index bb82c8c..52a3ed9 100644 --- a/src/types.ts +++ b/src/types.ts @@ -26,6 +26,7 @@ export interface MoltbotEnv { DISCORD_DM_POLICY?: string; SLACK_BOT_TOKEN?: string; SLACK_APP_TOKEN?: string; + BRAVE_API_KEY?: string; // Cloudflare Access configuration for admin routes CF_ACCESS_TEAM_DOMAIN?: string; // e.g., 'myteam.cloudflareaccess.com' CF_ACCESS_AUD?: string; // Application Audience (AUD) tag diff --git a/start-moltbot.sh b/start-moltbot.sh index 7e225e8..48d0764 100644 --- a/start-moltbot.sh +++ b/start-moltbot.sh @@ -152,6 +152,7 @@ config.agents.defaults = config.agents.defaults || {}; config.agents.defaults.model = config.agents.defaults.model || {}; config.gateway = config.gateway || {}; config.channels = config.channels || {}; +config.tools = config.tools || {}; // Clean up any broken anthropic provider config from previous runs // (older versions didn't include required 'name' field) @@ -191,6 +192,18 @@ if (process.env.TELEGRAM_BOT_TOKEN) { config.channels.telegram.dmPolicy = process.env.TELEGRAM_DM_POLICY || 'pairing'; } +// web search via Brave +if (process.env.BRAVE_API_KEY) { + config.tools.web = config.tools.web || {}; + config.tools.web.search = config.tools.web.search || {}; + config.tools.web.search.enabled = true; + config.tools.web.search.provider = 'brave'; + config.tools.web.search.maxResults = 5; + config.tools.web.search.timeoutSeconds = 20; + config.tools.web.search.cacheTtlMinutes = 15; + config.tools.web.search.apiKey = process.env.BRAVE_API_KEY; +} + // Discord configuration if (process.env.DISCORD_BOT_TOKEN) { config.channels.discord = config.channels.discord || {};