UNPKG

dynamic-interaction

Version:

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

37 lines (36 loc) 1.26 kB
"use strict"; 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 }; }