this repo has no description
1/**
2 * Example usage of the config module
3 *
4 * This file demonstrates how to use the configuration in your application.
5 * Run with: bun run src/config.example.ts
6 */
7
8import { config, validateConfig, isWebhookMode, isAnthropicProxyReady } from './config';
9
10console.log('=== ADHD Support Agent Configuration ===\n');
11
12// Validate configuration at startup
13try {
14 validateConfig();
15 console.log('✅ Configuration is valid\n');
16} catch (error: unknown) {
17 const message = error instanceof Error ? error.message : String(error);
18 console.error('❌ Configuration error:', message);
19 process.exit(1);
20}
21
22// Display configuration
23console.log('Server Configuration:');
24console.log(` PORT: ${config.PORT.toString()}`);
25console.log(` DB_PATH: ${config.DB_PATH}`);
26console.log();
27
28console.log('Letta Configuration:');
29console.log(` LETTA_BASE_URL: ${config.LETTA_BASE_URL}`);
30console.log();
31
32console.log('Telegram Configuration:');
33console.log(` TELEGRAM_BOT_TOKEN: ${config.TELEGRAM_BOT_TOKEN.slice(0, 10)}...`);
34console.log(` Mode: ${isWebhookMode() ? 'Webhook' : 'Polling'}`);
35if (isWebhookMode()) {
36 console.log(` TELEGRAM_WEBHOOK_URL: ${config.TELEGRAM_WEBHOOK_URL}`);
37}
38console.log();
39
40console.log('Anthropic Proxy Configuration:');
41console.log(` ANTHROPIC_PROXY_URL: ${config.ANTHROPIC_PROXY_URL}`);
42console.log(` Status: ${isAnthropicProxyReady() ? 'Ready' : 'Needs OAuth setup'}`);
43console.log();
44
45console.log('OpenAI Configuration:');
46console.log(` OPENAI_API_KEY: ${config.OPENAI_API_KEY.slice(0, 10)}...`);
47console.log();
48
49// Example: Conditional logic based on configuration
50if (!isAnthropicProxyReady()) {
51 console.warn('⚠️ Warning: Anthropic proxy is not configured.');
52 console.warn(' Please complete OAuth flow to set ANTHROPIC_PROXY_SESSION_ID');
53}
54
55if (!isWebhookMode()) {
56 console.warn('⚠️ Warning: Running in polling mode (development only).');
57 console.warn(' Set TELEGRAM_WEBHOOK_URL and TELEGRAM_WEBHOOK_SECRET_TOKEN for production.');
58}