dynamic-interaction
Version:
Dynamic interaction 动态交互mcp,用于cursor、windsurf、trae 等 AI 智能编辑器 Agent 运行时交互使用
66 lines (65 loc) • 2.75 kB
JavaScript
;
/**
* 系统信息处理器
* 处理客户端请求系统信息的消息
*/
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);