UNPKG

dynamic-interaction

Version:

Dynamic interaction 动态交互mcp,用于cursor、windsurf、trae 等 AI 智能编辑器 Agent 运行时交互使用

66 lines (65 loc) 2.75 kB
"use strict"; /** * 系统信息处理器 * 处理客户端请求系统信息的消息 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.handleClientReady = handleClientReady; exports.handleSessionAcknowledge = handleSessionAcknowledge; exports.handleSystemInfoRequest = handleSystemInfoRequest; const logger_1 = require("../../../logger"); const router_1 = require("../router"); const transport_1 = require("../../websocket/transport"); const store_1 = require("../../notifications/store"); function handleClientReady(session, data, ws) { logger_1.logger.debug('收到客户端就绪消息'); if (session) { // 发送包含会话信息的系统信息 transport_1.transport.sendSystemInfo(ws, session.id, session.request.projectDirectory || process.cwd(), session.startTime, session.timeout, session.mode); } else { // 发送通用系统信息 transport_1.transport.sendSystemInfo(ws); } // 检查并处理等待队列中的消息 const { messageProcessor } = require('../processor'); messageProcessor.checkQueueAndProcess(); } function handleSessionAcknowledge(session, data, ws) { logger_1.logger.debug('收到会话确认消息'); if (data.notificationId) { // 标记通知为已确认 const success = store_1.notificationStore.acknowledgeNotification(data.notificationId); if (success) { logger_1.logger.info(`通知已被用户确认,ID: ${data.notificationId}`); } else { logger_1.logger.warn(`尝试确认不存在的通知,ID: ${data.notificationId}`); } } if (data.sessionId) { logger_1.logger.info(`会话已被用户确认,ID: ${data.sessionId}`); } } function handleSystemInfoRequest(session, data, ws) { logger_1.logger.debug('收到系统信息请求'); const { lifecycleManager } = require('../../core/lifecycle'); const stats = lifecycleManager.getServerStats(); transport_1.transport.send(ws, { type: 'system_info', data: { sessionId: session?.id || '无', workspaceDirectory: session?.request.projectDirectory || process.cwd(), sessionStartTime: session?.startTime, leaseTimeoutSeconds: session?.timeout || 0, mode: session?.mode, serverVersion: process.env.npm_package_version || '1.0.0', serverStats: stats, timestamp: Date.now() } }); } // 注册处理器 router_1.messageRouter.register('client_ready', handleClientReady); router_1.messageRouter.register('session_acknowledge', handleSessionAcknowledge); router_1.messageRouter.register('system_info_request', handleSystemInfoRequest);