ken-you-code
Version:
Connect your codebase to Kimi: Ultra-fast AI code analysis with Kimi-K2 model via MCP
64 lines (63 loc) • 1.79 kB
JavaScript
import { config as dotenvConfig } from 'dotenv';
import path from 'path';
import fs from 'fs';
// Load from user config first, then fall back to local .env
const homeDir = process.env.HOME || process.env.USERPROFILE || '';
const userConfigPath = path.join(homeDir, '.mcp', 'ken-you-code.env');
const fallbackConfigPath = path.join(homeDir, '.mcp', 'single-model-specialist.env');
if (fs.existsSync(userConfigPath)) {
dotenvConfig({ path: userConfigPath });
}
else if (fs.existsSync(fallbackConfigPath)) {
dotenvConfig({ path: fallbackConfigPath });
}
else {
dotenvConfig(); // Fall back to local .env
}
function getEnvVar(name, defaultValue) {
const value = process.env[name];
if (!value) {
if (defaultValue === undefined) {
throw new Error(`Environment variable ${name} is required`);
}
return defaultValue;
}
return value;
}
function getEnvArray(name, defaultValue) {
const value = process.env[name];
if (!value) {
return defaultValue;
}
return value.split(',').map((item) => item.trim());
}
export const config = {
openRouterApiKey: getEnvVar('OPENROUTER_API_KEY'),
workspaceRoot: process.env.WORKSPACE_ROOT,
logLevel: getEnvVar('LOG_LEVEL', 'INFO'),
defaultModel: getEnvVar('DEFAULT_MODEL', 'moonshotai/kimi-k2'),
maxFileSizeMB: parseInt(getEnvVar('MAX_FILE_SIZE_MB', '5'), 10),
allowedExtensions: getEnvArray('ALLOWED_EXTENSIONS', [
'.py',
'.js',
'.ts',
'.tsx',
'.jsx',
'.md',
'.json',
'.yaml',
'.yml',
'.txt',
'.html',
'.css',
'.sql',
'.sh',
'.go',
'.rs',
'.java',
'.c',
'.cpp',
'.h',
'.hpp',
]),
};