Files
Lupul-Augmentat/src/config.ts
root 37f512a404 Add 'silent' log level to config schema
- Support MCP_LOG_LEVEL=silent for stdio mode
- Fixes ZodError: Invalid enum value
- Allows complete logging suppression for MCP protocol

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 07:01:06 +02:00

54 lines
1.7 KiB
TypeScript

import { z } from 'zod';
import dotenv from 'dotenv';
dotenv.config();
const ConfigSchema = z.object({
mcp: z.object({
host: z.string().default('127.0.0.1'),
port: z.number().default(19017),
logLevel: z.enum(['debug', 'info', 'warn', 'error', 'silent']).default('info'),
}),
nats: z.object({
url: z.string().default('nats://localhost:4222'),
reconnectTimeWait: z.number().default(2000),
maxReconnectAttempts: z.number().default(10),
}),
security: z.object({
jwtSecret: z.string().min(32),
authEnabled: z.boolean().default(true),
}),
modules: z.object({
startupTimeout: z.number().default(5000),
healthCheckInterval: z.number().default(30000),
}),
});
type Config = z.infer<typeof ConfigSchema>;
function loadConfig(): Config {
const config = {
mcp: {
host: process.env.MCP_HOST || '127.0.0.1',
port: parseInt(process.env.MCP_PORT || '19017', 10),
logLevel: process.env.MCP_LOG_LEVEL || 'info',
},
nats: {
url: process.env.NATS_URL || 'nats://localhost:4222',
reconnectTimeWait: parseInt(process.env.NATS_RECONNECT_TIME_WAIT || '2000', 10),
maxReconnectAttempts: parseInt(process.env.NATS_MAX_RECONNECT_ATTEMPTS || '10', 10),
},
security: {
jwtSecret: process.env.JWT_SECRET || 'development-secret-change-in-production-minimum-32-chars',
authEnabled: process.env.AUTH_ENABLED !== 'false',
},
modules: {
startupTimeout: parseInt(process.env.MODULE_STARTUP_TIMEOUT || '5000', 10),
healthCheckInterval: parseInt(process.env.MODULE_HEALTH_CHECK_INTERVAL || '30000', 10),
},
};
return ConfigSchema.parse(config);
}
export const config = loadConfig();