dynamic-interaction
Version:
Dynamic interaction 动态交互mcp,用于cursor、windsurf、trae 等 AI 智能编辑器 Agent 运行时交互使用
49 lines (48 loc) • 1.82 kB
JavaScript
;
/**
* 反馈处理器
* 处理用户提交的反馈消息
*/
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);