dynamic-interaction
Version:
Dynamic interaction 动态交互mcp,用于cursor、windsurf、trae 等 AI 智能编辑器 Agent 运行时交互使用
91 lines (90 loc) • 2.37 kB
JavaScript
;
/**
* WebSocket消息类型定义
* 支持通知模式和交互模式的消息协议
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidMessage = isValidMessage;
exports.isNotificationMessage = isNotificationMessage;
exports.isSessionRequestMessage = isSessionRequestMessage;
exports.isUserFeedbackMessage = isUserFeedbackMessage;
exports.createNotificationMessage = createNotificationMessage;
exports.createSessionRequestMessage = createSessionRequestMessage;
exports.createErrorMessage = createErrorMessage;
const session_1 = require("./session");
/**
* 消息验证函数
*/
function isValidMessage(message) {
return (typeof message === 'object' &&
message !== null &&
typeof message.type === 'string' &&
message.type.length > 0);
}
/**
* 检查是否为通知消息
*/
function isNotificationMessage(message) {
return message.type === 'notification';
}
/**
* 检查是否为会话请求消息
*/
function isSessionRequestMessage(message) {
return message.type === 'session_request';
}
/**
* 检查是否为用户反馈消息
*/
function isUserFeedbackMessage(message) {
return message.type === 'user_feedback';
}
/**
* 创建通知消息的工厂函数
*/
function createNotificationMessage(notificationId, summary, projectDirectory) {
return {
type: 'notification',
data: {
notificationId,
summary,
projectDirectory,
mode: session_1.SessionMode.NOTIFICATION,
createdAt: Date.now(),
},
timestamp: Date.now(),
};
}
/**
* 创建会话请求消息的工厂函数
*/
function createSessionRequestMessage(sessionId, summary, projectDirectory, startTime, timeoutSeconds) {
return {
type: 'session_request',
data: {
sessionId,
summary,
projectDirectory,
mode: session_1.SessionMode.INTERACTIVE,
startTime,
timeoutSeconds,
},
sessionId,
timestamp: Date.now(),
};
}
/**
* 创建错误消息的工厂函数
*/
function createErrorMessage(message, code, sessionId) {
return {
type: 'error',
data: {
message,
code,
sessionId,
},
sessionId,
timestamp: Date.now(),
};
}