/** * ConfigLoader — 统一配置中心 * * 配置加载优先级(从高到低): * 1. 环境变量 (JARVIS_*) * 2. .env 文件 * 3. jarvis.config.yaml / jarvis.config.json * 4. 内置默认值 * * 支持: * - YAML / JSON 配置文件 * - 环境变量自动映射 * - 配置校验 * - jarvis init 向导式初始化 */ export interface JarvisConfig { /** LLM 配置 */ llm: { provider: "deepseek" | "openai" | "gemini" | "claude" | "siliconflow" | "zhipu" | "moonshot" | "qwen" | "doubao" | "groq" | "ollama" | "lmstudio" | "custom"; apiKey?: string; model?: string; baseUrl?: string; temperature?: number; }; /** Agent 基本配置 */ agent: { name: string; persona: "assistant" | "content_expert" | "tech_geek"; language: string; memoryPath: string; }; /** 平台配置 */ platforms: { xiaohongshu?: { apiUrl: string; enabled: boolean; }; wechat?: { apiUrl: string; enabled: boolean; }; douyin?: { apiUrl: string; enabled: boolean; }; bilibili?: { apiUrl: string; enabled: boolean; }; weibo?: { apiUrl: string; enabled: boolean; }; zhihu?: { apiUrl: string; enabled: boolean; }; }; /** Telegram Bot */ telegram?: { botToken: string; allowedUsers?: number[]; }; /** 安全配置 */ safety: { level: "strict" | "moderate" | "loose"; dailyPublishLimit: number; activeHours: [number, number]; }; /** 服务配置 */ server: { dashboardPort: number; mcpPort?: number; }; /** 调度配置 */ scheduler: { enabled: boolean; checkInterval: number; }; /** 高级配置 */ advanced: { browserHeadless: boolean; vectorMemoryEnabled: boolean; maxConcurrency: number; logLevel: "debug" | "info" | "warn" | "error"; }; } export declare class ConfigLoader { private config; private configPath; constructor(); /** * 加载配置(按优先级合并) */ load(cwd?: string): JarvisConfig; /** 获取当前配置 */ getConfig(): JarvisConfig; /** 获取配置文件路径 */ getConfigPath(): string | null; private loadConfigFile; private loadEnvFile; private loadEnvVars; validate(): { valid: boolean; errors: string[]; }; /** 生成 YAML 配置模板 */ static generateYamlTemplate(): string; /** 生成 .env 模板 */ static generateEnvTemplate(): string; /** 生成 Docker Compose 模板 */ static generateDockerCompose(): string; /** 生成 Dockerfile 模板 */ static generateDockerfile(): string; private parseSimpleYaml; private parseValue; private setNestedValue; private deepMerge; private deepClone; } //# sourceMappingURL=loader.d.ts.map