dynamic-interaction
Version:
Dynamic interaction 动态交互mcp,用于cursor、windsurf、trae 等 AI 智能编辑器 Agent 运行时交互使用
37 lines (36 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractMimeType = extractMimeType;
exports.normalizeImageFeedback = normalizeImageFeedback;
/**
* 图片工具模块
* 负责解析 base64 字符串中的 MIME 类型,并统一格式化为
* { data: string; mimeType: string } 结构。
*/
const logger_1 = require("../logger");
/**
* 从 base64 字符串提取 MIME 类型。
* @param base64 含或不含 `data:*;base64,` 前缀的字符串
* @returns MIME 类型字符串,默认 `image/png`
*/
function extractMimeType(base64) {
const match = /^data:(.*?);base64,/i.exec(base64);
if (match && match[1]) {
return match[1];
}
logger_1.logger.warn('无法解析 MIME 类型,使用默认 image/png');
return 'image/png';
}
/**
* 规范化图片反馈,去除前缀并补全 MIME。
* @param raw 原始 base64 字符串
*/
function normalizeImageFeedback(raw) {
if (!raw)
throw new Error('EMPTY_IMAGE_DATA');
const mimeType = extractMimeType(raw);
// 移除 data:*;base64, 前缀
const data = raw.replace(/^data:.*?;base64,/, '');
logger_1.logger.info(`图片已解析,mimeType=${mimeType},长度=${data.length}`);
return { data, mimeType };
}