{"repo": "agions/taskflow-ai", "files": {"src/constants/index.ts": {"d728967214d3d933e0a86ae686ed2833f6d18843": {"t": 1785746049.2317736, "n": 6329, "h": "8452fc8a6390ae52", "c": "/**\n * TaskFlow AI 常量定义\n */\n\nexport const APP_NAME = 'TaskFlow AI';\nexport const APP_VERSION = '2.0.0';\nexport const APP_DESCRIPTION = '智能PRD文档解析与任务管理助手';\n\nexport const CONFIG_DIR = '.taskflow';\nexport const CONFIG_FILE = 'config.json';\nexport const CACHE_DIR = 'cache';\nexport const LOGS_DIR = 'logs';\nexport const TEMPLATES_DIR = 'templates';\nexport const PLUGINS_DIR = 'plugins';\n\nexport const DEFAULT_OUTPUT_DIR = 'output';\nexport const DEFAULT_REPORTS_DIR = 'reports';\n\nexport const SUPPORTED_PRD_FORMATS = [\n '.md',\n '.markdown',\n '.txt',\n '.doc',\n '.docx',\n '.pdf',\n '.html',\n '.htm',\n] as const;\n\nexport const SUPPORTED_OUTPUT_FORMATS = [\n 'json',\n 'yaml',\n 'markdown',\n 'html',\n 'csv',\n 'excel',\n] as const;\n\nexport const AI_PROVIDERS = {\n DEEPSEEK: 'deepseek',\n ZHIPU: 'zhipu',\n QWEN: 'qwen',\n BAIDU: 'baidu',\n MOONSHOT: 'moonshot',\n SPARK: 'spark',\n OPENAI: 'openai',\n CLAUDE: 'claude',\n} as const;\n\nexport const DEFAULT_AI_SETTINGS = {\n maxTokens: 4000,\n temperature: 0.7,\n timeout: 30000,\n retryAttempts: 3,\n retryDelay: 1000,\n};\n\nexport const AI_MODEL_ENDPOINTS = {\n [AI_PROVIDERS.DEEPSEEK]: 'https://api.deepseek.com/v1',\n [AI_PROVIDERS.ZHIPU]: 'https://open.bigmodel.cn/api/paas/v4',\n [AI_PROVIDERS.QWEN]: 'https://dashscope.aliyuncs.com/api/v1',\n [AI_PROVIDERS.BAIDU]: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',\n [AI_PROVIDERS.MOONSHOT]: 'https://api.moonshot.cn/v1',\n [AI_PROVIDERS.SPARK]: 'https://spark-api.xf-yun.com/v1.1',\n};\n\nexport const MCP_CONFIG = {\n DEFAULT_PORT: 3000,\n DEFAULT_HOST: 'localhost',\n SERVER_NAME: 'taskflow-ai',\n PROTOCOL_VERSION: '2024-11-05',\n TIMEOUT: 30000,\n MAX_REQUESTS_PER_MINUTE: 100,\n};\n\nexport const MCP_TOOLS = {\n FILE_READ: 'file_read',\n FILE_WRITE: 'file_write',\n FILE_LIST: 'file_list',\n SHELL_EXEC: 'shell_exec',\n PROJECT_ANALYZE: 'project_analyze',\n TASK_CREATE: 'task_create',\n TASK_UPDATE: 'task_update',\n TASK_LIST: 'task_list',\n PRD_PARSE: 'prd_parse',\n VISUALIZE: 'visualize',\n} as const;\n\nexport const MCP_RESOURCES = {\n TASKS: '/tasks',\n PROJECTS: '/projects',\n MODELS: '/models',\n CONFIG: '/config',\n STATUS: '/status',\n HEALTH: '/health',\n} as const;\n\nexport const TASK_TYPES = {\n FRONTEND: 'frontend',\n BACKEND: 'backend',\n DATABASE: 'database',\n TESTING: 'testing',\n DEPLOYMENT: 'deployment',\n DOCUMENTATION: 'documentation',\n RESEARCH: 'research',\n DESIGN: 'design',\n} as const;\n\nexport const TASK_STATUSES = {\n TODO: 'todo',\n IN_PROGRESS: 'in-progress',\n REVIEW: 'review',\n TESTING: 'testing',\n DONE: 'done',\n BLOCKED: 'blocked',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const PRIORITY_LEVELS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n CRITICAL: 'critical',\n} as const;\n\nexport const COMPLEXITY_LEVELS = {\n SIMPLE: 'simple',\n MEDIUM: 'medium',\n COMPLEX: 'complex',\n EPIC: 'epic',\n} as const;\n\nexport const CHART_TYPES = {\n GANTT: 'gantt',\n BURNDOWN: 'burndown',\n PIE: 'pie',\n BAR: 'bar',\n LINE: 'line',\n TIMELINE: 'timeline',\n KANBAN: 'kanban',\n} as const;\n\nexport const CHART_THEMES = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport const DEFAULT_COLORS = [\n '#3B82F6', // Blue\n '#10B981', // Green\n '#F59E0B', // Yellow\n '#EF4444', // Red\n '#8B5CF6', // Purple\n '#06B6D4', // Cyan\n '#84CC16', // Lime\n '#F97316', // Orange\n '#EC4899', // Pink\n '#6B7280', // Gray\n];\n\nexport const ERROR_CODES = {\n CONFIG_NOT_FOUND: 1001,\n CONFIG_INVALID: 1002,\n CONFIG_PARSE_ERROR: 1003,\n\n FILE_NOT_FOUND: 2001,\n FILE_READ_ERROR: 2002,\n FILE_WRITE_ERROR: 2003,\n\n UNSUPPORTED_FORMAT: 2004,\n\n PRD_PARSE_ERROR: 3001,\n PRD_FORMAT_UNSUPPORTED: 3002,\n PRD_CONTENT_INVALID: 3003,\n\n AI_MODEL_ERROR: 4001,\n AI_API_ERROR: 4002,\n AI_RATE_LIMIT: 4003,\n AI_TIMEOUT: 4004,\n\n MCP_SERVER_ERROR: 5001,\n MCP_TOOL_ERROR: 5002,\n MCP_RESOURCE_ERROR: 5003,\n\n VALIDATION_ERROR: 6001,\n REQUIRED_FIELD_MISSING: 6002,\n INVALID_FORMAT: 6003,\n\n NETWORK_ERROR: 7001,\n CONNECTION_TIMEOUT: 7002,\n\n PLUGIN_NOT_FOUND: 8001,\n PLUGIN_LOAD_ERROR: 8002,\n PLUGIN_EXECUTION_ERROR: 8003,\n} as const;\n\nimport { TaskFlowConfig } from '../types';\n\nexport const DEFAULT_CONFIG: TaskFlowConfig = {\n projectName: '',\n version: '1.0.0',\n workspace: '',\n environment: 'development',\n models: [],\n aiModels: [],\n cache: {\n enabled: false,\n l1: { enabled: false, maxSize: 0, ttl: 0 },\n l2: { enabled: false, ttl: 0 },\n },\n logging: { level: 'info', console: true, format: 'text' },\n plugins: { enabled: [], directory: './plugins', autoLoad: false },\n extensions: {\n tools: { directory: './tools', autoDiscover: false },\n workflows: { directory: './workflows', autoDiscover: false },\n },\n security: {\n enableCommandWhitelist: false,\n enablePrivateIPRestriction: false,\n enablePathTraversalProtection: true,\n enableCredentialMasking: true,\n },\n mcpSettings: {\n enabled: true,\n port: MCP_CONFIG.DEFAULT_PORT,\n host: MCP_CONFIG.DEFAULT_HOST,\n serverName: MCP_CONFIG.SERVER_NAME,\n version: MCP_CONFIG.PROTOCOL_VERSION,\n capabilities: [],\n security: {\n authRequired: false,\n allowedOrigins: ['*'],\n rateLimit: {\n requestsPerMinute: MCP_CONFIG.MAX_REQUESTS_PER_MINUTE,\n tokensPerMinute: 10000,\n },\n sandbox: {\n enabled: true,\n timeout: 30000,\n },\n },\n tools: [],\n resources: [],\n },\n};\n\nexport const CLI_COLORS = {\n PRIMARY: '#3B82F6',\n SUCCESS: '#10B981',\n WARNING: '#F59E0B',\n ERROR: '#EF4444',\n INFO: '#06B6D4',\n MUTED: '#6B7280',\n};\n\nexport const CLI_SYMBOLS = {\n SUCCESS: '✅',\n ERROR: '❌',\n WARNING: '⚠️',\n INFO: 'ℹ️',\n LOADING: '⏳',\n ARROW: '➜',\n BULLET: '•',\n};\n\nexport const REGEX_PATTERNS = {\n EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n URL: /^https?:\\/\\/.+/,\n SEMVER: /^\\d+\\.\\d+\\.\\d+$/,\n TASK_ID: /^[a-zA-Z0-9-_]+$/,\n PROJECT_NAME: /^[a-zA-Z0-9-_\\s]+$/,\n};\n\nexport const PERFORMANCE = {\n CACHE_TTL: 60 * 60 * 1000, // 1小时\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_BATCH_SIZE: 100,\n DEBOUNCE_DELAY: 300,\n THROTTLE_DELAY: 1000,\n};\n\nexport const ENV_VARS = {\n NODE_ENV: 'NODE_ENV',\n DEBUG: 'DEBUG',\n CONFIG_PATH: 'TASKFLOW_CONFIG_PATH',\n DATA_DIR: 'TASKFLOW_DATA_DIR',\n CACHE_DIR: 'TASKFLOW_CACHE_DIR',\n LOG_LEVEL: 'TASKFLOW_LOG_LEVEL',\n MCP_PORT: 'TASKFLOW_MCP_PORT',\n MCP_HOST: 'TASKFLOW_MCP_HOST',\n} as const;\n"}, "b6e944d2e095265ba56e6145431a77c136eea518": {"t": 1785759209.7170212, "n": 6329, "h": "8452fc8a6390ae52", "c": "/**\n * TaskFlow AI 常量定义\n */\n\nexport const APP_NAME = 'TaskFlow AI';\nexport const APP_VERSION = '2.0.0';\nexport const APP_DESCRIPTION = '智能PRD文档解析与任务管理助手';\n\nexport const CONFIG_DIR = '.taskflow';\nexport const CONFIG_FILE = 'config.json';\nexport const CACHE_DIR = 'cache';\nexport const LOGS_DIR = 'logs';\nexport const TEMPLATES_DIR = 'templates';\nexport const PLUGINS_DIR = 'plugins';\n\nexport const DEFAULT_OUTPUT_DIR = 'output';\nexport const DEFAULT_REPORTS_DIR = 'reports';\n\nexport const SUPPORTED_PRD_FORMATS = [\n '.md',\n '.markdown',\n '.txt',\n '.doc',\n '.docx',\n '.pdf',\n '.html',\n '.htm',\n] as const;\n\nexport const SUPPORTED_OUTPUT_FORMATS = [\n 'json',\n 'yaml',\n 'markdown',\n 'html',\n 'csv',\n 'excel',\n] as const;\n\nexport const AI_PROVIDERS = {\n DEEPSEEK: 'deepseek',\n ZHIPU: 'zhipu',\n QWEN: 'qwen',\n BAIDU: 'baidu',\n MOONSHOT: 'moonshot',\n SPARK: 'spark',\n OPENAI: 'openai',\n CLAUDE: 'claude',\n} as const;\n\nexport const DEFAULT_AI_SETTINGS = {\n maxTokens: 4000,\n temperature: 0.7,\n timeout: 30000,\n retryAttempts: 3,\n retryDelay: 1000,\n};\n\nexport const AI_MODEL_ENDPOINTS = {\n [AI_PROVIDERS.DEEPSEEK]: 'https://api.deepseek.com/v1',\n [AI_PROVIDERS.ZHIPU]: 'https://open.bigmodel.cn/api/paas/v4',\n [AI_PROVIDERS.QWEN]: 'https://dashscope.aliyuncs.com/api/v1',\n [AI_PROVIDERS.BAIDU]: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',\n [AI_PROVIDERS.MOONSHOT]: 'https://api.moonshot.cn/v1',\n [AI_PROVIDERS.SPARK]: 'https://spark-api.xf-yun.com/v1.1',\n};\n\nexport const MCP_CONFIG = {\n DEFAULT_PORT: 3000,\n DEFAULT_HOST: 'localhost',\n SERVER_NAME: 'taskflow-ai',\n PROTOCOL_VERSION: '2024-11-05',\n TIMEOUT: 30000,\n MAX_REQUESTS_PER_MINUTE: 100,\n};\n\nexport const MCP_TOOLS = {\n FILE_READ: 'file_read',\n FILE_WRITE: 'file_write',\n FILE_LIST: 'file_list',\n SHELL_EXEC: 'shell_exec',\n PROJECT_ANALYZE: 'project_analyze',\n TASK_CREATE: 'task_create',\n TASK_UPDATE: 'task_update',\n TASK_LIST: 'task_list',\n PRD_PARSE: 'prd_parse',\n VISUALIZE: 'visualize',\n} as const;\n\nexport const MCP_RESOURCES = {\n TASKS: '/tasks',\n PROJECTS: '/projects',\n MODELS: '/models',\n CONFIG: '/config',\n STATUS: '/status',\n HEALTH: '/health',\n} as const;\n\nexport const TASK_TYPES = {\n FRONTEND: 'frontend',\n BACKEND: 'backend',\n DATABASE: 'database',\n TESTING: 'testing',\n DEPLOYMENT: 'deployment',\n DOCUMENTATION: 'documentation',\n RESEARCH: 'research',\n DESIGN: 'design',\n} as const;\n\nexport const TASK_STATUSES = {\n TODO: 'todo',\n IN_PROGRESS: 'in-progress',\n REVIEW: 'review',\n TESTING: 'testing',\n DONE: 'done',\n BLOCKED: 'blocked',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const PRIORITY_LEVELS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n CRITICAL: 'critical',\n} as const;\n\nexport const COMPLEXITY_LEVELS = {\n SIMPLE: 'simple',\n MEDIUM: 'medium',\n COMPLEX: 'complex',\n EPIC: 'epic',\n} as const;\n\nexport const CHART_TYPES = {\n GANTT: 'gantt',\n BURNDOWN: 'burndown',\n PIE: 'pie',\n BAR: 'bar',\n LINE: 'line',\n TIMELINE: 'timeline',\n KANBAN: 'kanban',\n} as const;\n\nexport const CHART_THEMES = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport const DEFAULT_COLORS = [\n '#3B82F6', // Blue\n '#10B981', // Green\n '#F59E0B', // Yellow\n '#EF4444', // Red\n '#8B5CF6', // Purple\n '#06B6D4', // Cyan\n '#84CC16', // Lime\n '#F97316', // Orange\n '#EC4899', // Pink\n '#6B7280', // Gray\n];\n\nexport const ERROR_CODES = {\n CONFIG_NOT_FOUND: 1001,\n CONFIG_INVALID: 1002,\n CONFIG_PARSE_ERROR: 1003,\n\n FILE_NOT_FOUND: 2001,\n FILE_READ_ERROR: 2002,\n FILE_WRITE_ERROR: 2003,\n\n UNSUPPORTED_FORMAT: 2004,\n\n PRD_PARSE_ERROR: 3001,\n PRD_FORMAT_UNSUPPORTED: 3002,\n PRD_CONTENT_INVALID: 3003,\n\n AI_MODEL_ERROR: 4001,\n AI_API_ERROR: 4002,\n AI_RATE_LIMIT: 4003,\n AI_TIMEOUT: 4004,\n\n MCP_SERVER_ERROR: 5001,\n MCP_TOOL_ERROR: 5002,\n MCP_RESOURCE_ERROR: 5003,\n\n VALIDATION_ERROR: 6001,\n REQUIRED_FIELD_MISSING: 6002,\n INVALID_FORMAT: 6003,\n\n NETWORK_ERROR: 7001,\n CONNECTION_TIMEOUT: 7002,\n\n PLUGIN_NOT_FOUND: 8001,\n PLUGIN_LOAD_ERROR: 8002,\n PLUGIN_EXECUTION_ERROR: 8003,\n} as const;\n\nimport { TaskFlowConfig } from '../types';\n\nexport const DEFAULT_CONFIG: TaskFlowConfig = {\n projectName: '',\n version: '1.0.0',\n workspace: '',\n environment: 'development',\n models: [],\n aiModels: [],\n cache: {\n enabled: false,\n l1: { enabled: false, maxSize: 0, ttl: 0 },\n l2: { enabled: false, ttl: 0 },\n },\n logging: { level: 'info', console: true, format: 'text' },\n plugins: { enabled: [], directory: './plugins', autoLoad: false },\n extensions: {\n tools: { directory: './tools', autoDiscover: false },\n workflows: { directory: './workflows', autoDiscover: false },\n },\n security: {\n enableCommandWhitelist: false,\n enablePrivateIPRestriction: false,\n enablePathTraversalProtection: true,\n enableCredentialMasking: true,\n },\n mcpSettings: {\n enabled: true,\n port: MCP_CONFIG.DEFAULT_PORT,\n host: MCP_CONFIG.DEFAULT_HOST,\n serverName: MCP_CONFIG.SERVER_NAME,\n version: MCP_CONFIG.PROTOCOL_VERSION,\n capabilities: [],\n security: {\n authRequired: false,\n allowedOrigins: ['*'],\n rateLimit: {\n requestsPerMinute: MCP_CONFIG.MAX_REQUESTS_PER_MINUTE,\n tokensPerMinute: 10000,\n },\n sandbox: {\n enabled: true,\n timeout: 30000,\n },\n },\n tools: [],\n resources: [],\n },\n};\n\nexport const CLI_COLORS = {\n PRIMARY: '#3B82F6',\n SUCCESS: '#10B981',\n WARNING: '#F59E0B',\n ERROR: '#EF4444',\n INFO: '#06B6D4',\n MUTED: '#6B7280',\n};\n\nexport const CLI_SYMBOLS = {\n SUCCESS: '✅',\n ERROR: '❌',\n WARNING: '⚠️',\n INFO: 'ℹ️',\n LOADING: '⏳',\n ARROW: '➜',\n BULLET: '•',\n};\n\nexport const REGEX_PATTERNS = {\n EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n URL: /^https?:\\/\\/.+/,\n SEMVER: /^\\d+\\.\\d+\\.\\d+$/,\n TASK_ID: /^[a-zA-Z0-9-_]+$/,\n PROJECT_NAME: /^[a-zA-Z0-9-_\\s]+$/,\n};\n\nexport const PERFORMANCE = {\n CACHE_TTL: 60 * 60 * 1000, // 1小时\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_BATCH_SIZE: 100,\n DEBOUNCE_DELAY: 300,\n THROTTLE_DELAY: 1000,\n};\n\nexport const ENV_VARS = {\n NODE_ENV: 'NODE_ENV',\n DEBUG: 'DEBUG',\n CONFIG_PATH: 'TASKFLOW_CONFIG_PATH',\n DATA_DIR: 'TASKFLOW_DATA_DIR',\n CACHE_DIR: 'TASKFLOW_CACHE_DIR',\n LOG_LEVEL: 'TASKFLOW_LOG_LEVEL',\n MCP_PORT: 'TASKFLOW_MCP_PORT',\n MCP_HOST: 'TASKFLOW_MCP_HOST',\n} as const;\n"}, "769fa517333d6fedb851372deb361e87d34e0913": {"t": 1785759212.2895746, "n": 6284, "h": "18b87c1708df41d4", "c": "/**\n * TaskFlow AI 常量定义\n */\n\nexport const APP_NAME = 'TaskFlow AI';\nexport const APP_VERSION = '2.0.0';\nexport const APP_DESCRIPTION = '智能PRD文档解析与任务管理助手';\n\nexport const CONFIG_DIR = '.taskflow';\nexport const CONFIG_FILE = 'config.json';\nexport const CACHE_DIR = 'cache';\nexport const LOGS_DIR = 'logs';\nexport const TEMPLATES_DIR = 'templates';\nexport const PLUGINS_DIR = 'plugins';\n\nexport const DEFAULT_OUTPUT_DIR = 'output';\nexport const DEFAULT_REPORTS_DIR = 'reports';\n\nexport const SUPPORTED_PRD_FORMATS = [\n '.md',\n '.markdown',\n '.txt',\n '.doc',\n '.docx',\n '.pdf',\n '.html',\n '.htm',\n] as const;\n\nexport const SUPPORTED_OUTPUT_FORMATS = [\n 'json',\n 'yaml',\n 'markdown',\n 'html',\n 'csv',\n 'excel',\n] as const;\n\nexport const AI_PROVIDERS = {\n DEEPSEEK: 'deepseek',\n ZHIPU: 'zhipu',\n QWEN: 'qwen',\n BAIDU: 'baidu',\n MOONSHOT: 'moonshot',\n SPARK: 'spark',\n OPENAI: 'openai',\n CLAUDE: 'claude',\n} as const;\n\nexport const DEFAULT_AI_SETTINGS = {\n maxTokens: 4000,\n temperature: 0.7,\n timeout: 30000,\n retryAttempts: 3,\n retryDelay: 1000,\n};\n\nexport const AI_MODEL_ENDPOINTS = {\n [AI_PROVIDERS.DEEPSEEK]: 'https://api.deepseek.com/v1',\n [AI_PROVIDERS.ZHIPU]: 'https://open.bigmodel.cn/api/paas/v4',\n [AI_PROVIDERS.QWEN]: 'https://dashscope.aliyuncs.com/api/v1',\n [AI_PROVIDERS.BAIDU]: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',\n [AI_PROVIDERS.MOONSHOT]: 'https://api.moonshot.cn/v1',\n [AI_PROVIDERS.SPARK]: 'https://spark-api.xf-yun.com/v1.1',\n};\n\nexport const MCP_CONFIG = {\n DEFAULT_PORT: 3000,\n DEFAULT_HOST: 'localhost',\n SERVER_NAME: 'taskflow-ai',\n PROTOCOL_VERSION: '2024-11-05',\n TIMEOUT: 30000,\n MAX_REQUESTS_PER_MINUTE: 100,\n};\n\nexport const MCP_TOOLS = {\n FILE_READ: 'file_read',\n FILE_WRITE: 'file_write',\n FILE_LIST: 'file_list',\n SHELL_EXEC: 'shell_exec',\n PROJECT_ANALYZE: 'project_analyze',\n TASK_CREATE: 'task_create',\n TASK_UPDATE: 'task_update',\n TASK_LIST: 'task_list',\n PRD_PARSE: 'prd_parse',\n VISUALIZE: 'visualize',\n} as const;\n\nexport const MCP_RESOURCES = {\n TASKS: '/tasks',\n PROJECTS: '/projects',\n MODELS: '/models',\n CONFIG: '/config',\n STATUS: '/status',\n HEALTH: '/health',\n} as const;\n\nexport const TASK_TYPES = {\n FRONTEND: 'frontend',\n BACKEND: 'backend',\n DATABASE: 'database',\n TESTING: 'testing',\n DEPLOYMENT: 'deployment',\n DOCUMENTATION: 'documentation',\n RESEARCH: 'research',\n DESIGN: 'design',\n} as const;\n\nexport const TASK_STATUSES = {\n TODO: 'todo',\n IN_PROGRESS: 'in-progress',\n REVIEW: 'review',\n TESTING: 'testing',\n DONE: 'done',\n BLOCKED: 'blocked',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const PRIORITY_LEVELS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n CRITICAL: 'critical',\n} as const;\n\nexport const COMPLEXITY_LEVELS = {\n SIMPLE: 'simple',\n MEDIUM: 'medium',\n COMPLEX: 'complex',\n EPIC: 'epic',\n} as const;\n\nexport const CHART_TYPES = {\n GANTT: 'gantt',\n BURNDOWN: 'burndown',\n PIE: 'pie',\n BAR: 'bar',\n LINE: 'line',\n TIMELINE: 'timeline',\n KANBAN: 'kanban',\n} as const;\n\nexport const CHART_THEMES = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport const DEFAULT_COLORS = [\n '#3B82F6', // Blue\n '#10B981', // Green\n '#F59E0B', // Yellow\n '#EF4444', // Red\n '#8B5CF6', // Purple\n '#06B6D4', // Cyan\n '#84CC16', // Lime\n '#F97316', // Orange\n '#EC4899', // Pink\n '#6B7280', // Gray\n];\n\nexport const ERROR_CODES = {\n CONFIG_NOT_FOUND: 1001,\n CONFIG_INVALID: 1002,\n CONFIG_PARSE_ERROR: 1003,\n\n FILE_NOT_FOUND: 2001,\n FILE_READ_ERROR: 2002,\n FILE_WRITE_ERROR: 2003,\n\n UNSUPPORTED_FORMAT: 2004,\n\n PRD_PARSE_ERROR: 3001,\n PRD_FORMAT_UNSUPPORTED: 3002,\n PRD_CONTENT_INVALID: 3003,\n\n AI_MODEL_ERROR: 4001,\n AI_API_ERROR: 4002,\n AI_RATE_LIMIT: 4003,\n AI_TIMEOUT: 4004,\n\n MCP_SERVER_ERROR: 5001,\n MCP_TOOL_ERROR: 5002,\n MCP_RESOURCE_ERROR: 5003,\n\n VALIDATION_ERROR: 6001,\n REQUIRED_FIELD_MISSING: 6002,\n INVALID_FORMAT: 6003,\n\n NETWORK_ERROR: 7001,\n CONNECTION_TIMEOUT: 7002,\n\n PLUGIN_NOT_FOUND: 8001,\n PLUGIN_LOAD_ERROR: 8002,\n PLUGIN_EXECUTION_ERROR: 8003,\n} as const;\n\nimport { TaskFlowConfig } from '../types';\n\nexport const DEFAULT_CONFIG: TaskFlowConfig = {\n projectName: '',\n version: '1.0.0',\n workspace: '',\n environment: 'development',\n models: [],\n aiModels: [],\n cache: { enabled: false, l1: { enabled: false, maxSize: 0, ttl: 0 }, l2: { enabled: false, ttl: 0 } },\n logging: { level: 'info', console: true, format: 'text' },\n plugins: { enabled: [], directory: './plugins', autoLoad: false },\n extensions: { tools: { directory: './tools', autoDiscover: false }, workflows: { directory: './workflows', autoDiscover: false } },\n security: { enableCommandWhitelist: false, enablePrivateIPRestriction: false, enablePathTraversalProtection: true, enableCredentialMasking: true },\n mcpSettings: {\n enabled: true,\n port: MCP_CONFIG.DEFAULT_PORT,\n host: MCP_CONFIG.DEFAULT_HOST,\n serverName: MCP_CONFIG.SERVER_NAME,\n version: MCP_CONFIG.PROTOCOL_VERSION,\n capabilities: [],\n security: {\n authRequired: false,\n allowedOrigins: ['*'],\n rateLimit: {\n requestsPerMinute: MCP_CONFIG.MAX_REQUESTS_PER_MINUTE,\n tokensPerMinute: 10000,\n },\n sandbox: {\n enabled: true,\n timeout: 30000,\n },\n },\n tools: [],\n resources: [],\n },\n};\n\nexport const CLI_COLORS = {\n PRIMARY: '#3B82F6',\n SUCCESS: '#10B981',\n WARNING: '#F59E0B',\n ERROR: '#EF4444',\n INFO: '#06B6D4',\n MUTED: '#6B7280',\n};\n\nexport const CLI_SYMBOLS = {\n SUCCESS: '✅',\n ERROR: '❌',\n WARNING: '⚠️',\n INFO: 'ℹ️',\n LOADING: '⏳',\n ARROW: '➜',\n BULLET: '•',\n};\n\nexport const REGEX_PATTERNS = {\n EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n URL: /^https?:\\/\\/.+/,\n SEMVER: /^\\d+\\.\\d+\\.\\d+$/,\n TASK_ID: /^[a-zA-Z0-9-_]+$/,\n PROJECT_NAME: /^[a-zA-Z0-9-_\\s]+$/,\n};\n\nexport const PERFORMANCE = {\n CACHE_TTL: 60 * 60 * 1000, // 1小时\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_BATCH_SIZE: 100,\n DEBOUNCE_DELAY: 300,\n THROTTLE_DELAY: 1000,\n};\n\nexport const ENV_VARS = {\n NODE_ENV: 'NODE_ENV',\n DEBUG: 'DEBUG',\n CONFIG_PATH: 'TASKFLOW_CONFIG_PATH',\n DATA_DIR: 'TASKFLOW_DATA_DIR',\n CACHE_DIR: 'TASKFLOW_CACHE_DIR',\n LOG_LEVEL: 'TASKFLOW_LOG_LEVEL',\n MCP_PORT: 'TASKFLOW_MCP_PORT',\n MCP_HOST: 'TASKFLOW_MCP_HOST',\n} as const;\n"}, "dba32f34205e255827da75891a9fcfc65e70ad21": {"t": 1785759214.185841, "n": 6340, "h": "43411613374de2e6", "c": "/**\n * TaskFlow AI 常量定义\n */\n\nexport const APP_NAME = 'TaskFlow AI';\nexport const APP_VERSION = '2.0.0';\nexport const APP_DESCRIPTION = '智能PRD文档解析与任务管理助手';\n\nexport const CONFIG_DIR = '.taskflow';\nexport const CONFIG_FILE = 'config.json';\nexport const CACHE_DIR = 'cache';\nexport const LOGS_DIR = 'logs';\nexport const TEMPLATES_DIR = 'templates';\nexport const PLUGINS_DIR = 'plugins';\n\nexport const DEFAULT_OUTPUT_DIR = 'output';\nexport const DEFAULT_REPORTS_DIR = 'reports';\n\nexport const SUPPORTED_PRD_FORMATS = [\n '.md',\n '.markdown',\n '.txt',\n '.doc',\n '.docx',\n '.pdf',\n '.html',\n '.htm',\n] as const;\n\nexport const SUPPORTED_OUTPUT_FORMATS = [\n 'json',\n 'yaml',\n 'markdown',\n 'html',\n 'csv',\n 'excel',\n] as const;\n\nexport const AI_PROVIDERS = {\n DEEPSEEK: 'deepseek',\n ZHIPU: 'zhipu',\n QWEN: 'qwen',\n BAIDU: 'baidu',\n MOONSHOT: 'moonshot',\n SPARK: 'spark',\n OPENAI: 'openai',\n CLAUDE: 'claude',\n} as const;\n\nexport const DEFAULT_AI_SETTINGS = {\n maxTokens: 4000,\n temperature: 0.7,\n timeout: 30000,\n retryAttempts: 3,\n retryDelay: 1000,\n};\n\nexport const AI_MODEL_ENDPOINTS = {\n [AI_PROVIDERS.DEEPSEEK]: 'https://api.deepseek.com/v1',\n [AI_PROVIDERS.ZHIPU]: 'https://open.bigmodel.cn/api/paas/v4',\n [AI_PROVIDERS.QWEN]: 'https://dashscope.aliyuncs.com/api/v1',\n [AI_PROVIDERS.BAIDU]: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',\n [AI_PROVIDERS.MOONSHOT]: 'https://api.moonshot.cn/v1',\n [AI_PROVIDERS.SPARK]: 'https://spark-api.xf-yun.com/v1.1',\n};\n\nexport const MCP_CONFIG = {\n DEFAULT_PORT: 3000,\n DEFAULT_HOST: 'localhost',\n SERVER_NAME: 'taskflow-ai',\n PROTOCOL_VERSION: '2024-11-05',\n TIMEOUT: 30000,\n MAX_REQUESTS_PER_MINUTE: 100,\n};\n\nexport const MCP_TOOLS = {\n FILE_READ: 'file_read',\n FILE_WRITE: 'file_write',\n FILE_LIST: 'file_list',\n SHELL_EXEC: 'shell_exec',\n PROJECT_ANALYZE: 'project_analyze',\n TASK_CREATE: 'task_create',\n TASK_UPDATE: 'task_update',\n TASK_LIST: 'task_list',\n PRD_PARSE: 'prd_parse',\n VISUALIZE: 'visualize',\n} as const;\n\nexport const MCP_RESOURCES = {\n TASKS: '/tasks',\n PROJECTS: '/projects',\n MODELS: '/models',\n CONFIG: '/config',\n STATUS: '/status',\n HEALTH: '/health',\n} as const;\n\nexport const TASK_TYPES = {\n FRONTEND: 'frontend',\n BACKEND: 'backend',\n DATABASE: 'database',\n TESTING: 'testing',\n DEPLOYMENT: 'deployment',\n DOCUMENTATION: 'documentation',\n RESEARCH: 'research',\n DESIGN: 'design',\n} as const;\n\nexport const TASK_STATUSES = {\n TODO: 'todo',\n IN_PROGRESS: 'in-progress',\n REVIEW: 'review',\n TESTING: 'testing',\n DONE: 'done',\n BLOCKED: 'blocked',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const PRIORITY_LEVELS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n CRITICAL: 'critical',\n} as const;\n\nexport const COMPLEXITY_LEVELS = {\n SIMPLE: 'simple',\n MEDIUM: 'medium',\n COMPLEX: 'complex',\n EPIC: 'epic',\n} as const;\n\nexport const CHART_TYPES = {\n GANTT: 'gantt',\n BURNDOWN: 'burndown',\n PIE: 'pie',\n BAR: 'bar',\n LINE: 'line',\n TIMELINE: 'timeline',\n KANBAN: 'kanban',\n} as const;\n\nexport const CHART_THEMES = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport const DEFAULT_COLORS = [\n '#3B82F6', // Blue\n '#10B981', // Green\n '#F59E0B', // Yellow\n '#EF4444', // Red\n '#8B5CF6', // Purple\n '#06B6D4', // Cyan\n '#84CC16', // Lime\n '#F97316', // Orange\n '#EC4899', // Pink\n '#6B7280', // Gray\n];\n\nexport const ERROR_CODES = {\n CONFIG_NOT_FOUND: 1001,\n CONFIG_INVALID: 1002,\n CONFIG_PARSE_ERROR: 1003,\n\n FILE_NOT_FOUND: 2001,\n FILE_READ_ERROR: 2002,\n FILE_WRITE_ERROR: 2003,\n\n UNSUPPORTED_FORMAT: 2004,\n\n PRD_PARSE_ERROR: 3001,\n PRD_FORMAT_UNSUPPORTED: 3002,\n PRD_CONTENT_INVALID: 3003,\n\n AI_MODEL_ERROR: 4001,\n AI_API_ERROR: 4002,\n AI_RATE_LIMIT: 4003,\n AI_TIMEOUT: 4004,\n\n MCP_SERVER_ERROR: 5001,\n MCP_TOOL_ERROR: 5002,\n MCP_RESOURCE_ERROR: 5003,\n\n VALIDATION_ERROR: 6001,\n REQUIRED_FIELD_MISSING: 6002,\n INVALID_FORMAT: 6003,\n\n NETWORK_ERROR: 7001,\n CONNECTION_TIMEOUT: 7002,\n\n PLUGIN_NOT_FOUND: 8001,\n PLUGIN_LOAD_ERROR: 8002,\n PLUGIN_EXECUTION_ERROR: 8003,\n} as const;\n\nimport { TaskFlowConfig } from '../types';\n\nexport const DEFAULT_CONFIG: TaskFlowConfig = {\n projectName: '',\n version: '1.0.0',\n workspace: '',\n environment: 'development',\n models: [],\n aiModels: [],\n cache: { enabled: false, l1: { enabled: false, maxSize: 0, ttl: 0 }, l2: { enabled: false, ttl: 0 } },\n logging: { level: 'info', console: true, format: 'text' },\n plugins: { enabled: [], directory: './plugins', autoLoad: false },\n extensions: { agents: { directory: './agents', autoDiscover: false }, tools: { directory: './tools', autoDiscover: false }, workflows: { directory: './workflows', autoDiscover: false } },\n security: { enableCommandWhitelist: false, enablePrivateIPRestriction: false, enablePathTraversalProtection: true, enableCredentialMasking: true },\n mcpSettings: {\n enabled: true,\n port: MCP_CONFIG.DEFAULT_PORT,\n host: MCP_CONFIG.DEFAULT_HOST,\n serverName: MCP_CONFIG.SERVER_NAME,\n version: MCP_CONFIG.PROTOCOL_VERSION,\n capabilities: [],\n security: {\n authRequired: false,\n allowedOrigins: ['*'],\n rateLimit: {\n requestsPerMinute: MCP_CONFIG.MAX_REQUESTS_PER_MINUTE,\n tokensPerMinute: 10000,\n },\n sandbox: {\n enabled: true,\n timeout: 30000,\n },\n },\n tools: [],\n resources: [],\n },\n};\n\nexport const CLI_COLORS = {\n PRIMARY: '#3B82F6',\n SUCCESS: '#10B981',\n WARNING: '#F59E0B',\n ERROR: '#EF4444',\n INFO: '#06B6D4',\n MUTED: '#6B7280',\n};\n\nexport const CLI_SYMBOLS = {\n SUCCESS: '✅',\n ERROR: '❌',\n WARNING: '⚠️',\n INFO: 'ℹ️',\n LOADING: '⏳',\n ARROW: '➜',\n BULLET: '•',\n};\n\nexport const REGEX_PATTERNS = {\n EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n URL: /^https?:\\/\\/.+/,\n SEMVER: /^\\d+\\.\\d+\\.\\d+$/,\n TASK_ID: /^[a-zA-Z0-9-_]+$/,\n PROJECT_NAME: /^[a-zA-Z0-9-_\\s]+$/,\n};\n\nexport const PERFORMANCE = {\n CACHE_TTL: 60 * 60 * 1000, // 1小时\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_BATCH_SIZE: 100,\n DEBOUNCE_DELAY: 300,\n THROTTLE_DELAY: 1000,\n};\n\nexport const ENV_VARS = {\n NODE_ENV: 'NODE_ENV',\n DEBUG: 'DEBUG',\n CONFIG_PATH: 'TASKFLOW_CONFIG_PATH',\n DATA_DIR: 'TASKFLOW_DATA_DIR',\n CACHE_DIR: 'TASKFLOW_CACHE_DIR',\n LOG_LEVEL: 'TASKFLOW_LOG_LEVEL',\n MCP_PORT: 'TASKFLOW_MCP_PORT',\n MCP_HOST: 'TASKFLOW_MCP_HOST',\n} as const;\n"}, "651ad66dc8ef0f53db828963e684f77b36e45c23": {"t": 1785759216.0954819, "n": 6108, "h": "3d6e24375581e8bc", "c": "/**\n * TaskFlow AI 常量定义\n */\n\nexport const APP_NAME = 'TaskFlow AI';\nexport const APP_VERSION = '2.0.0';\nexport const APP_DESCRIPTION = '智能PRD文档解析与任务管理助手';\n\nexport const CONFIG_DIR = '.taskflow';\nexport const CONFIG_FILE = 'config.json';\nexport const CACHE_DIR = 'cache';\nexport const LOGS_DIR = 'logs';\nexport const TEMPLATES_DIR = 'templates';\nexport const PLUGINS_DIR = 'plugins';\n\nexport const DEFAULT_OUTPUT_DIR = 'output';\nexport const DEFAULT_REPORTS_DIR = 'reports';\n\nexport const SUPPORTED_PRD_FORMATS = [\n '.md',\n '.markdown',\n '.txt',\n '.doc',\n '.docx',\n '.pdf',\n '.html',\n '.htm',\n] as const;\n\nexport const SUPPORTED_OUTPUT_FORMATS = [\n 'json',\n 'yaml',\n 'markdown',\n 'html',\n 'csv',\n 'excel',\n] as const;\n\nexport const AI_PROVIDERS = {\n DEEPSEEK: 'deepseek',\n ZHIPU: 'zhipu',\n QWEN: 'qwen',\n BAIDU: 'baidu',\n MOONSHOT: 'moonshot',\n SPARK: 'spark',\n OPENAI: 'openai',\n CLAUDE: 'claude',\n} as const;\n\nexport const DEFAULT_AI_SETTINGS = {\n maxTokens: 4000,\n temperature: 0.7,\n timeout: 30000,\n retryAttempts: 3,\n retryDelay: 1000,\n};\n\nexport const AI_MODEL_ENDPOINTS = {\n [AI_PROVIDERS.DEEPSEEK]: 'https://api.deepseek.com/v1',\n [AI_PROVIDERS.ZHIPU]: 'https://open.bigmodel.cn/api/paas/v4',\n [AI_PROVIDERS.QWEN]: 'https://dashscope.aliyuncs.com/api/v1',\n [AI_PROVIDERS.BAIDU]: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',\n [AI_PROVIDERS.MOONSHOT]: 'https://api.moonshot.cn/v1',\n [AI_PROVIDERS.SPARK]: 'https://spark-api.xf-yun.com/v1.1',\n};\n\nexport const MCP_CONFIG = {\n DEFAULT_PORT: 3000,\n DEFAULT_HOST: 'localhost',\n SERVER_NAME: 'taskflow-ai',\n PROTOCOL_VERSION: '2024-11-05',\n TIMEOUT: 30000,\n MAX_REQUESTS_PER_MINUTE: 100,\n};\n\nexport const MCP_TOOLS = {\n FILE_READ: 'file_read',\n FILE_WRITE: 'file_write',\n FILE_LIST: 'file_list',\n SHELL_EXEC: 'shell_exec',\n PROJECT_ANALYZE: 'project_analyze',\n TASK_CREATE: 'task_create',\n TASK_UPDATE: 'task_update',\n TASK_LIST: 'task_list',\n PRD_PARSE: 'prd_parse',\n VISUALIZE: 'visualize',\n} as const;\n\nexport const MCP_RESOURCES = {\n TASKS: '/tasks',\n PROJECTS: '/projects',\n MODELS: '/models',\n CONFIG: '/config',\n STATUS: '/status',\n HEALTH: '/health',\n} as const;\n\nexport const TASK_TYPES = {\n FRONTEND: 'frontend',\n BACKEND: 'backend',\n DATABASE: 'database',\n TESTING: 'testing',\n DEPLOYMENT: 'deployment',\n DOCUMENTATION: 'documentation',\n RESEARCH: 'research',\n DESIGN: 'design',\n} as const;\n\nexport const TASK_STATUSES = {\n TODO: 'todo',\n IN_PROGRESS: 'in-progress',\n REVIEW: 'review',\n TESTING: 'testing',\n DONE: 'done',\n BLOCKED: 'blocked',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const PRIORITY_LEVELS = {\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n CRITICAL: 'critical',\n} as const;\n\nexport const COMPLEXITY_LEVELS = {\n SIMPLE: 'simple',\n MEDIUM: 'medium',\n COMPLEX: 'complex',\n EPIC: 'epic',\n} as const;\n\nexport const CHART_TYPES = {\n GANTT: 'gantt',\n BURNDOWN: 'burndown',\n PIE: 'pie',\n BAR: 'bar',\n LINE: 'line',\n TIMELINE: 'timeline',\n KANBAN: 'kanban',\n} as const;\n\nexport const CHART_THEMES = {\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport const DEFAULT_COLORS = [\n '#3B82F6', // Blue\n '#10B981', // Green\n '#F59E0B', // Yellow\n '#EF4444', // Red\n '#8B5CF6', // Purple\n '#06B6D4', // Cyan\n '#84CC16', // Lime\n '#F97316', // Orange\n '#EC4899', // Pink\n '#6B7280', // Gray\n];\n\nexport const ERROR_CODES = {\n CONFIG_NOT_FOUND: 'CONFIG_NOT_FOUND',\n CONFIG_INVALID: 'CONFIG_INVALID',\n CONFIG_PARSE_ERROR: 'CONFIG_PARSE_ERROR',\n\n FILE_NOT_FOUND: 'FILE_NOT_FOUND',\n FILE_READ_ERROR: 'FILE_READ_ERROR',\n FILE_WRITE_ERROR: 'FILE_WRITE_ERROR',\n\n PRD_PARSE_ERROR: 'PRD_PARSE_ERROR',\n PRD_FORMAT_UNSUPPORTED: 'PRD_FORMAT_UNSUPPORTED',\n PRD_CONTENT_INVALID: 'PRD_CONTENT_INVALID',\n\n AI_MODEL_ERROR: 'AI_MODEL_ERROR',\n AI_API_ERROR: 'AI_API_ERROR',\n AI_RATE_LIMIT: 'AI_RATE_LIMIT',\n AI_TIMEOUT: 'AI_TIMEOUT',\n\n MCP_SERVER_ERROR: 'MCP_SERVER_ERROR',\n MCP_TOOL_ERROR: 'MCP_TOOL_ERROR',\n MCP_RESOURCE_ERROR: 'MCP_RESOURCE_ERROR',\n\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',\n\n PLUGIN_NOT_FOUND: 'PLUGIN_NOT_FOUND',\n PLUGIN_LOAD_ERROR: 'PLUGIN_LOAD_ERROR',\n PLUGIN_EXECUTION_ERROR: 'PLUGIN_EXECUTION_ERROR',\n} as const;\n\nimport { TaskFlowConfig } from '../types';\n\nexport const DEFAULT_CONFIG = {\n projectName: '',\n version: '1.0.0',\n aiModels: [],\n mcpSettings: {\n enabled: true,\n port: MCP_CONFIG.DEFAULT_PORT,\n host: MCP_CONFIG.DEFAULT_HOST,\n serverName: MCP_CONFIG.SERVER_NAME,\n version: MCP_CONFIG.PROTOCOL_VERSION,\n capabilities: [],\n security: {\n authRequired: false,\n allowedOrigins: ['*'],\n rateLimit: {\n enabled: true,\n maxRequests: MCP_CONFIG.MAX_REQUESTS_PER_MINUTE,\n windowMs: 60000,\n },\n sandbox: {\n enabled: true,\n timeout: 30000,\n memoryLimit: 512 * 1024 * 1024, // 512MB\n },\n },\n tools: [],\n resources: [],\n },\n outputFormats: ['json', 'markdown'],\n plugins: [],\n};\n\nexport const CLI_COLORS = {\n PRIMARY: '#3B82F6',\n SUCCESS: '#10B981',\n WARNING: '#F59E0B',\n ERROR: '#EF4444',\n INFO: '#06B6D4',\n MUTED: '#6B7280',\n};\n\nexport const CLI_SYMBOLS = {\n SUCCESS: '✅',\n ERROR: '❌',\n WARNING: '⚠️',\n INFO: 'ℹ️',\n LOADING: '⏳',\n ARROW: '➜',\n BULLET: '•',\n};\n\nexport const REGEX_PATTERNS = {\n EMAIL: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n URL: /^https?:\\/\\/.+/,\n SEMVER: /^\\d+\\.\\d+\\.\\d+$/,\n TASK_ID: /^[a-zA-Z0-9-_]+$/,\n PROJECT_NAME: /^[a-zA-Z0-9-_\\s]+$/,\n};\n\nexport const PERFORMANCE = {\n CACHE_TTL: 60 * 60 * 1000, // 1小时\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_BATCH_SIZE: 100,\n DEBOUNCE_DELAY: 300,\n THROTTLE_DELAY: 1000,\n};\n\nexport const ENV_VARS = {\n NODE_ENV: 'NODE_ENV',\n DEBUG: 'DEBUG',\n CONFIG_PATH: 'TASKFLOW_CONFIG_PATH',\n DATA_DIR: 'TASKFLOW_DATA_DIR',\n CACHE_DIR: 'TASKFLOW_CACHE_DIR',\n LOG_LEVEL: 'TASKFLOW_LOG_LEVEL',\n MCP_PORT: 'TASKFLOW_MCP_PORT',\n MCP_HOST: 'TASKFLOW_MCP_HOST',\n} as const;\n"}}}}