UNPKG

youling-task

Version:

基于POMDP的研发任务分解工具,支持MCP协议

56 lines 1.78 kB
#!/usr/bin/env node /** * 命令行入口点 - 启动YoulingTask MCP服务器 */ import { startYoulingTaskServer } from './server.js'; import dotenv from 'dotenv'; import logger from './utils/logger.js'; import { isMcpCliMode, sendMcpReadyStatus } from './transport/stdio-helper.js'; // 加载环境变量 dotenv.config(); // 配置 const port = parseInt(process.env.PORT || '3000', 10); const secretKey = process.env.MCP_SECRET_KEY || 'youling-task-secret'; const PACKAGE_VERSION = '1.0.6'; // 当前包版本 // 检测是否为MCP CLI模式 const isCliMode = isMcpCliMode(process.argv); // 如果是CLI模式,发送MCP就绪状态消息 if (isCliMode) { sendMcpReadyStatus({ name: "youling-task", version: PACKAGE_VERSION }); logger.info('启动MCP服务器 (stdio模式)', { version: PACKAGE_VERSION }); // stdio模式暂时不支持,直接退出 process.exit(0); } else { // 启动HTTP服务器 logger.info('启动服务器 (HTTP模式)', { port }); } startYoulingTaskServer({ port, secretKey, }) .then(({ server }) => { // 处理进程退出信号,以便优雅关闭服务器 process.on('SIGTERM', () => { logger.info('接收到信号', { signal: 'SIGTERM' }); server.close(() => { logger.info('服务器已关闭'); process.exit(0); }); }); process.on('SIGINT', () => { logger.info('接收到信号', { signal: 'SIGINT' }); server.close(() => { logger.info('服务器已关闭'); process.exit(0); }); }); }) .catch((error) => { logger.error('启动服务器失败', { error: error instanceof Error ? error.message : String(error) }); process.exit(1); }); //# sourceMappingURL=cli.js.map