import dotenv from 'dotenv'; dotenv.config(); /** * Sample configuration for the ClientX Discord bot. * Copy this file to config.js and replace placeholder values with your own. */ export default { clients: [ { // Unique identifier for this client id: 'YOUR_CLIENT_ID', enabled: true, // Discord user ID of the bot owner owner: 'YOUR_DISCORD_USER_ID', // Discord application credentials discord: { appId: 'YOUR_DISCORD_APP_ID', token: 'YOUR_DISCORD_BOT_TOKEN', }, // Logging configuration logging: { console: { enabled: true, colorize: true, level: 'info', }, file: { dateFormat: 'YYYY-MM-DD', timestampFormat: 'YYYY-MM-DD HH:mm:ss', combined: { enabled: true, level: 'silly', location: 'logs', maxSize: '12m', maxFiles: '30d', }, error: { enabled: true, level: 'error', location: 'logs', maxSize: '12m', maxFiles: '365d', }, }, }, // CondimentX module settings (optional) condimentX: { dryRun: false, guildID: 'YOUR_GUILD_ID', debugChannel: 'YOUR_DEBUG_CHANNEL_ID', blacklistUsers: [], blacklistRoles: [], graylistRoles: [], whitelistRoles: [], indexRoleID: 'YOUR_INDEX_ROLE_ID', viralRoleID: 'YOUR_VIRAL_ROLE_ID', antiIndexRoleID: 'YOUR_ANTI_INDEX_ROLE_ID', antiViralRoleID: 'YOUR_ANTI_VIRAL_ROLE_ID', firstCycleInterval: 30000, cycleInterval: 3600000, cycleIntervalRange: 900000, incidenceDenominator: 40, cessationDenominator: 20, probabilityLimit: 20, antiViralEffectiveness: 90, proximityWindow: 120000, messageHistoryLimit: 50, ephemeralDelay: 60000, openAI: false, openAITriggerOnlyDuringIncident: true, openAIResponseDenominator: 1, openAIInstructionsFile: './prompts/kevinarby.txt', openAITriggers: ['kevin', 'arby', 'werebeef'], openAIWebhookID: 'YOUR_OPENAI_WEBHOOK_ID', openAIWebhookToken: 'YOUR_OPENAI_WEBHOOK_TOKEN', openAIToken: 'YOUR_OPENAI_API_KEY', }, // PocketBase connection settings (optional) pocketbase: { url: 'YOUR_POCKETBASE_URL', username: 'YOUR_POCKETBASE_USERNAME', password: 'YOUR_POCKETBASE_PASSWORD', }, // AI Responses module settings (optional) responses: { apiKey: 'YOUR_OPENAI_API_KEY', defaultModel: 'gpt-4o', defaultMaxTokens: 1000, defaultTemperature: 0.7, systemPromptPath: './prompts/IO3.txt', conversationExpiry: 30 * 60 * 1000, minScore: 1.0, tools: { webSearch: false, fileSearch: false, imageGeneration: true, }, imageGeneration: { defaultModel: 'gpt-image-1', defaultQuality: 'standard', imageSavePath: './images', }, }, // Scorekeeper settings (optional) scorekeeper: { baseOutput: 1000, commendationValue: 1.0, citationValue: 1.2, decay: 90, schedule: '0 0 * * 0', }, // Modules to load for this client modules: [ 'pbUtils', 'responses', 'responsesQuery', 'scorekeeper', 'scorekeeper-example', 'condimentX', ], }, ], };