UNPKG

dynamic-interaction

Version:

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

49 lines (48 loc) 1.82 kB
"use strict"; /** * 反馈处理器 * 处理用户提交的反馈消息 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.handleFeedback = handleFeedback; const logger_1 = require("../../../logger"); const router_1 = require("../router"); const manager_1 = require("../../session/manager"); const queue_1 = require("../../session/queue"); const transport_1 = require("../../websocket/transport"); function handleFeedback(session, data, ws) { if (!session) { logger_1.logger.warn('收到来自无会话连接的反馈消息'); transport_1.transport.sendError(ws, '未建立会话连接', 'SESSION_NOT_FOUND'); return; } const feedback = { text: data?.text || '', imageData: data?.imageData || [] }; logger_1.logger.info(`收到用户反馈,会话ID: ${session.id}`); try { // 解析会话Promise session.request.resolve(feedback); // 从队列中确认并移除请求 queue_1.sessionQueue.acknowledge(session.request.id); // 通知客户端已收到反馈 transport_1.transport.send(ws, { type: 'feedback_status', data: { status: 'received' } }); transport_1.transport.send(ws, { type: 'stop_timer' }); // 结束会话 manager_1.sessionManager.endSession(ws); logger_1.logger.info(`反馈处理完成,会话ID: ${session.id}`); } catch (error) { logger_1.logger.error(`处理反馈时出错,会话ID: ${session.id}:`, error); transport_1.transport.sendError(ws, '处理反馈时发生错误', 'FEEDBACK_ERROR'); } } // 注册处理器 router_1.messageRouter.register('submit_feedback', handleFeedback); router_1.messageRouter.register('user_feedback', handleFeedback);