image-vision-mcp 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +209 -231
- package/dist/index.js +2 -7
- package/dist/index.js.map +1 -1
- package/dist/proxy/imageProxy.js +313 -54
- package/dist/proxy/imageProxy.js.map +1 -1
- package/dist/schemas.d.ts +0 -11
- package/dist/schemas.js +0 -13
- package/dist/schemas.js.map +1 -1
- package/dist/services/moonshot.d.ts +1 -0
- package/dist/services/moonshot.js +86 -3
- package/dist/services/moonshot.js.map +1 -1
- package/package.json +1 -2
- package/dist/services/clipboard.d.ts +0 -16
- package/dist/services/clipboard.js +0 -196
- package/dist/services/clipboard.js.map +0 -1
- package/dist/tools/describeClipboard.d.ts +0 -2
- package/dist/tools/describeClipboard.js +0 -121
- package/dist/tools/describeClipboard.js.map +0 -1
package/dist/proxy/imageProxy.js
CHANGED
|
@@ -6,12 +6,24 @@ import fs from "fs";
|
|
|
6
6
|
import path from "path";
|
|
7
7
|
import os from "os";
|
|
8
8
|
import { spawn } from "child_process";
|
|
9
|
+
import crypto from "crypto";
|
|
9
10
|
import { callMoonshot } from "../services/moonshot.js";
|
|
10
11
|
// ────────────────────── 日志 ──────────────────────
|
|
11
|
-
//
|
|
12
|
+
// 日志文件路径:优先用环境变量,否则放项目内 logs/ 目录。
|
|
13
|
+
// 用 import.meta.url 定位 dist/proxy/ → 反推项目根:独立代理进程是 detached
|
|
14
|
+
// spawn 的,cwd 不可靠(可能继承自任意 Claude Code 会话),只能用脚本自身位置定位。
|
|
15
|
+
const PROJECT_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
12
16
|
const LOG_FILE = process.env.VISION_MCP_LOG_FILE ||
|
|
13
|
-
path.join(
|
|
17
|
+
path.join(PROJECT_ROOT, "logs", "vision-mcp-proxy.log");
|
|
14
18
|
const LOG_MAX_SIZE = 10 * 1024 * 1024; // 10MB,超过后清空旧日志
|
|
19
|
+
// 确保日志目录存在(环境变量覆盖到自定义路径时同样需要)。同步创建一次即可,
|
|
20
|
+
// 失败也不影响代理功能——后续 appendFile 会静默失败,请求转发不受影响。
|
|
21
|
+
try {
|
|
22
|
+
fs.mkdirSync(path.dirname(LOG_FILE), { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// 目录已存在或无权限,忽略
|
|
26
|
+
}
|
|
15
27
|
function log(msg) {
|
|
16
28
|
const line = `[${new Date().toISOString()}] ${msg}\n`;
|
|
17
29
|
console.error(line.trim());
|
|
@@ -50,40 +62,222 @@ const UPSTREAM_AUTH_TOKEN = process.env.UPSTREAM_AUTH_TOKEN ||
|
|
|
50
62
|
"";
|
|
51
63
|
const IMAGE_DESC_PROMPT = process.env.IMAGE_DESC_PROMPT ||
|
|
52
64
|
"请详细描述这张图片的内容。如果是图表/截图,请提取关键信息;如果包含文字,请提取文字内容;如果是 UI 界面,请描述界面元素和布局。描述要简洁准确。";
|
|
65
|
+
// 复用到上游模型的连接,减少慢流式响应场景下频繁建连的额外开销。
|
|
66
|
+
const upstreamHttpAgent = new http.Agent({ keepAlive: true, maxSockets: 50 });
|
|
67
|
+
const upstreamHttpsAgent = new https.Agent({ keepAlive: true, maxSockets: 50 });
|
|
53
68
|
// ────────────────────── 图片识别 ──────────────────────
|
|
54
|
-
|
|
69
|
+
// ────────────────────── 图片识别缓存 ──────────────────────
|
|
70
|
+
// Claude Code 每次请求都带完整对话历史,历史里的图片会被反复识别(每张 30-60s)。
|
|
71
|
+
// 用 base64 的 sha256 做 key 缓存识别结果,同一张图只识别一次。
|
|
72
|
+
// LRU 淘汰:Map 按插入顺序,命中时删除重插移到末尾,超限时删最早的。
|
|
73
|
+
const IMAGE_CACHE_MAX = 100;
|
|
74
|
+
const imageCache = new Map();
|
|
75
|
+
// 同一张图片可能同时出现在多个并发请求或历史消息里。复用进行中的识别,
|
|
76
|
+
// 只有所有等待者都取消时才中止底层 Moonshot 请求,避免误伤其他请求。
|
|
77
|
+
const pendingImageDescriptions = new Map();
|
|
78
|
+
function hashImage(base64Data) {
|
|
79
|
+
return crypto.createHash("sha256").update(base64Data).digest("hex").slice(0, 32);
|
|
80
|
+
}
|
|
81
|
+
function getCachedDescription(base64Data) {
|
|
82
|
+
const key = hashImage(base64Data);
|
|
83
|
+
const desc = imageCache.get(key);
|
|
84
|
+
if (desc) {
|
|
85
|
+
imageCache.delete(key);
|
|
86
|
+
imageCache.set(key, desc); // 移到末尾,标记为最近使用
|
|
87
|
+
return desc;
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
function setCachedDescription(base64Data, description) {
|
|
92
|
+
const key = hashImage(base64Data);
|
|
93
|
+
imageCache.set(key, description);
|
|
94
|
+
if (imageCache.size > IMAGE_CACHE_MAX) {
|
|
95
|
+
const oldestKey = imageCache.keys().next().value;
|
|
96
|
+
if (oldestKey)
|
|
97
|
+
imageCache.delete(oldestKey);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// 失败短期缓存:识别失败(超时/空响应)的图 5 分钟内不重试,
|
|
101
|
+
// 避免对话历史里某张图每次请求都卡 60s 超时。过期后允许重试(Moonshot 恢复后能成功)。
|
|
102
|
+
const FAILURE_CACHE_TTL_MS = 5 * 60 * 1000;
|
|
103
|
+
const failureCache = new Map(); // hash -> 失败时间戳
|
|
104
|
+
function getFailureTimestamp(base64Data) {
|
|
105
|
+
const key = hashImage(base64Data);
|
|
106
|
+
const ts = failureCache.get(key);
|
|
107
|
+
if (ts === undefined)
|
|
108
|
+
return null;
|
|
109
|
+
failureCache.delete(key); // LRU 移到末尾
|
|
110
|
+
if (Date.now() - ts > FAILURE_CACHE_TTL_MS) {
|
|
111
|
+
return null; // 过期,不再缓存
|
|
112
|
+
}
|
|
113
|
+
failureCache.set(key, ts);
|
|
114
|
+
return ts;
|
|
115
|
+
}
|
|
116
|
+
function setFailureTimestamp(base64Data) {
|
|
117
|
+
const key = hashImage(base64Data);
|
|
118
|
+
failureCache.set(key, Date.now());
|
|
119
|
+
if (failureCache.size > IMAGE_CACHE_MAX) {
|
|
120
|
+
const oldestKey = failureCache.keys().next().value;
|
|
121
|
+
if (oldestKey)
|
|
122
|
+
failureCache.delete(oldestKey);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function isCanceledError(err) {
|
|
126
|
+
if (!(err instanceof Error))
|
|
127
|
+
return false;
|
|
128
|
+
return (err.name === "CanceledError" ||
|
|
129
|
+
err.message === "canceled" ||
|
|
130
|
+
err.message.includes("请求已取消"));
|
|
131
|
+
}
|
|
132
|
+
async function waitForPendingImage(task, signal) {
|
|
133
|
+
task.waiters++;
|
|
134
|
+
let removeAbortListener = () => { };
|
|
135
|
+
try {
|
|
136
|
+
if (!signal) {
|
|
137
|
+
return await task.promise;
|
|
138
|
+
}
|
|
139
|
+
if (signal.aborted) {
|
|
140
|
+
throw new Error("请求已取消");
|
|
141
|
+
}
|
|
142
|
+
return await new Promise((resolve, reject) => {
|
|
143
|
+
const onAbort = () => reject(new Error("请求已取消"));
|
|
144
|
+
removeAbortListener = () => signal.removeEventListener("abort", onAbort);
|
|
145
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
146
|
+
task.promise.then(resolve, reject);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
removeAbortListener();
|
|
151
|
+
task.waiters--;
|
|
152
|
+
if (task.waiters === 0 && !task.settled) {
|
|
153
|
+
task.controller.abort();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function describeImage(base64Data, mimeType, signal) {
|
|
158
|
+
if (signal?.aborted) {
|
|
159
|
+
throw new Error("请求已取消");
|
|
160
|
+
}
|
|
161
|
+
// 成功缓存命中:历史消息里反复出现的同一张图不重复调 Moonshot
|
|
162
|
+
const cached = getCachedDescription(base64Data);
|
|
163
|
+
if (cached) {
|
|
164
|
+
log(`[image-proxy] 图片命中缓存,跳过识别`);
|
|
165
|
+
return cached;
|
|
166
|
+
}
|
|
167
|
+
// 失败缓存命中:近期识别失败过的图短期不重试,避免每次请求都卡超时
|
|
168
|
+
if (getFailureTimestamp(base64Data) !== null) {
|
|
169
|
+
log(`[image-proxy] 图片命中失败缓存,跳过重试`);
|
|
170
|
+
throw new Error("图片近期识别失败,跳过重试");
|
|
171
|
+
}
|
|
55
172
|
const dataUrl = `data:${mimeType};base64,${base64Data}`;
|
|
56
173
|
const apiKey = process.env.MOONSHOT_API_KEY || "";
|
|
57
174
|
if (!apiKey) {
|
|
58
175
|
throw new Error("MOONSHOT_API_KEY 未设置");
|
|
59
176
|
}
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
177
|
+
const key = hashImage(base64Data);
|
|
178
|
+
const pending = pendingImageDescriptions.get(key);
|
|
179
|
+
if (pending) {
|
|
180
|
+
log(`[image-proxy] 图片识别进行中,复用同一个请求`);
|
|
181
|
+
return waitForPendingImage(pending, signal);
|
|
182
|
+
}
|
|
183
|
+
const task = {
|
|
184
|
+
controller: new AbortController(),
|
|
185
|
+
waiters: 0,
|
|
186
|
+
settled: false,
|
|
187
|
+
};
|
|
188
|
+
task.promise = (async () => {
|
|
189
|
+
try {
|
|
190
|
+
const response = await callMoonshot({
|
|
191
|
+
apiKey,
|
|
192
|
+
messages: [
|
|
193
|
+
{
|
|
194
|
+
role: "user",
|
|
195
|
+
content: [
|
|
196
|
+
{ type: "image_url", image_url: { url: dataUrl } },
|
|
197
|
+
{ type: "text", text: IMAGE_DESC_PROMPT },
|
|
198
|
+
],
|
|
199
|
+
},
|
|
68
200
|
],
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
201
|
+
maxTokens: 2048,
|
|
202
|
+
signal: task.controller.signal,
|
|
203
|
+
});
|
|
204
|
+
const description = response.choices?.[0]?.message?.content || "";
|
|
205
|
+
if (!description) {
|
|
206
|
+
throw new Error("Moonshot API 返回空内容");
|
|
207
|
+
}
|
|
208
|
+
setCachedDescription(base64Data, description);
|
|
209
|
+
return description;
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
// 失败:记入失败缓存,短期不再重试(让对话继续,不阻塞 60s)
|
|
213
|
+
if (!isCanceledError(err)) {
|
|
214
|
+
setFailureTimestamp(base64Data);
|
|
215
|
+
}
|
|
216
|
+
throw err;
|
|
217
|
+
}
|
|
218
|
+
finally {
|
|
219
|
+
task.settled = true;
|
|
220
|
+
pendingImageDescriptions.delete(key);
|
|
221
|
+
}
|
|
222
|
+
})();
|
|
223
|
+
pendingImageDescriptions.set(key, task);
|
|
224
|
+
return waitForPendingImage(task, signal);
|
|
225
|
+
}
|
|
226
|
+
const IMAGE_MARKER_RE = /"type"\s*:\s*"(image|image_url|tool_result)"|"source"\s*:\s*\{\s*"type"\s*:\s*"base64"|data:image\/[a-z+.-]+;base64,/i;
|
|
227
|
+
function mayContainImagePayload(rawBody) {
|
|
228
|
+
// 大多数消息无图,先用轻量文本探测跳过 JSON.parse 和深度扫描。
|
|
229
|
+
return IMAGE_MARKER_RE.test(rawBody);
|
|
230
|
+
}
|
|
231
|
+
function contentHasImage(content) {
|
|
232
|
+
if (!Array.isArray(content))
|
|
233
|
+
return false;
|
|
234
|
+
for (const block of content) {
|
|
235
|
+
if (block?.type === "image" || block?.type === "image_url") {
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
if (block?.type === "tool_result" && contentHasImage(block.content)) {
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
76
241
|
}
|
|
77
|
-
return
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
function collectForwardedImageTexts(content, result) {
|
|
245
|
+
if (!Array.isArray(content))
|
|
246
|
+
return;
|
|
247
|
+
for (const block of content) {
|
|
248
|
+
if (block?.type === "text" &&
|
|
249
|
+
typeof block.text === "string" &&
|
|
250
|
+
(block.text.includes("[以下是用户粘贴的图片内容描述]") ||
|
|
251
|
+
block.text.includes("[以下是截图内容描述]") ||
|
|
252
|
+
block.text.includes("[图片识别失败:"))) {
|
|
253
|
+
result.push(block.text);
|
|
254
|
+
}
|
|
255
|
+
if (block?.type === "tool_result") {
|
|
256
|
+
collectForwardedImageTexts(block.content, result);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function logForwardedImageTexts(messages) {
|
|
261
|
+
if (!Array.isArray(messages))
|
|
262
|
+
return;
|
|
263
|
+
const forwardedTexts = [];
|
|
264
|
+
for (const message of messages) {
|
|
265
|
+
if (message && typeof message === "object" && "content" in message) {
|
|
266
|
+
collectForwardedImageTexts(message.content, forwardedTexts);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
forwardedTexts.forEach((text, index) => {
|
|
270
|
+
log(`[image-proxy] 转发到上游 /v1/messages 的图片内容 #${index + 1} (${text.length} chars):\n${text}`);
|
|
271
|
+
});
|
|
78
272
|
}
|
|
79
273
|
// 处理单个 content block:图片类型识别后替换为文字,其余原样返回。
|
|
80
274
|
// 同层数组的多个图片块由调用方 Promise.all 并行触发,这里只负责单块转换。
|
|
81
|
-
async function describeBlock(block) {
|
|
275
|
+
async function describeBlock(block, signal) {
|
|
82
276
|
// 格式1: Anthropic 标准 {"type":"image","source":{"type":"base64",...}}
|
|
83
277
|
if (block?.type === "image" && block.source?.type === "base64") {
|
|
84
278
|
const { media_type, data } = block.source;
|
|
85
279
|
try {
|
|
86
|
-
const description = await describeImage(data, media_type);
|
|
280
|
+
const description = await describeImage(data, media_type, signal);
|
|
87
281
|
log(`[image-proxy] 图片已识别 (${media_type}, ${Math.round((data.length * 0.75) / 1024)} KB)`);
|
|
88
282
|
return {
|
|
89
283
|
type: "text",
|
|
@@ -106,7 +300,7 @@ async function describeBlock(block) {
|
|
|
106
300
|
if (match) {
|
|
107
301
|
const [, media_type, data] = match;
|
|
108
302
|
try {
|
|
109
|
-
const description = await describeImage(data, media_type);
|
|
303
|
+
const description = await describeImage(data, media_type, signal);
|
|
110
304
|
log(`[image-proxy] image_url 图片已识别 (${media_type})`);
|
|
111
305
|
return {
|
|
112
306
|
type: "text",
|
|
@@ -126,7 +320,7 @@ async function describeBlock(block) {
|
|
|
126
320
|
// 格式3: tool_result 里嵌套图片(MCP 工具返回的截图)
|
|
127
321
|
if (block?.type === "tool_result" && Array.isArray(block.content)) {
|
|
128
322
|
const toolContent = block.content;
|
|
129
|
-
const processed = await processContent(toolContent);
|
|
323
|
+
const processed = await processContent(toolContent, signal);
|
|
130
324
|
return { ...block, content: processed };
|
|
131
325
|
}
|
|
132
326
|
// 其他未识别的 image source type
|
|
@@ -135,7 +329,7 @@ async function describeBlock(block) {
|
|
|
135
329
|
}
|
|
136
330
|
return block;
|
|
137
331
|
}
|
|
138
|
-
async function processContent(content) {
|
|
332
|
+
async function processContent(content, signal) {
|
|
139
333
|
if (typeof content === "string")
|
|
140
334
|
return content;
|
|
141
335
|
if (!Array.isArray(content))
|
|
@@ -144,37 +338,44 @@ async function processContent(content) {
|
|
|
144
338
|
const blockTypes = content.map((b) => b?.type || "unknown");
|
|
145
339
|
log(`[image-proxy] content blocks: ${JSON.stringify(blockTypes)}`);
|
|
146
340
|
// 并行识别同一层级的所有图片块,map 保持原顺序
|
|
147
|
-
return Promise.all(content.map((block) => describeBlock(block)));
|
|
341
|
+
return Promise.all(content.map((block) => describeBlock(block, signal)));
|
|
148
342
|
}
|
|
149
|
-
async function processMessages(messages) {
|
|
343
|
+
async function processMessages(messages, signal) {
|
|
150
344
|
if (!Array.isArray(messages))
|
|
151
345
|
return messages;
|
|
152
346
|
for (const message of messages) {
|
|
347
|
+
if (signal?.aborted)
|
|
348
|
+
throw new Error("请求已取消");
|
|
153
349
|
if (message && typeof message === "object" && message.content !== undefined) {
|
|
154
|
-
message.content = await processContent(message.content);
|
|
350
|
+
message.content = await processContent(message.content, signal);
|
|
155
351
|
}
|
|
156
352
|
}
|
|
157
353
|
return messages;
|
|
158
354
|
}
|
|
159
|
-
|
|
160
|
-
function forwardRequest(req, res, body) {
|
|
355
|
+
function forwardRequest(req, res, body, meta, signal) {
|
|
161
356
|
const baseUrl = new URL(UPSTREAM_BASE_URL);
|
|
162
357
|
const basePath = baseUrl.pathname.replace(/\/+$/, "");
|
|
163
358
|
const fullPath = basePath + (req.url || "");
|
|
164
359
|
const isHttps = baseUrl.protocol === "https:";
|
|
165
360
|
const lib = isHttps ? https : http;
|
|
361
|
+
const upstreamUrl = new URL(fullPath, baseUrl.origin).toString();
|
|
362
|
+
const pathOnly = (req.url || "").split("?")[0];
|
|
363
|
+
if (meta) {
|
|
364
|
+
const elapsed = Date.now() - meta.reqStart;
|
|
365
|
+
log(`[阶段] 转发开始 ${req.method} ${pathOnly} -> ${upstreamUrl} body=${meta.origSizeKB}KB ${meta.hasImage ? "有图" : "无图"} elapsed=${elapsed}ms`);
|
|
366
|
+
}
|
|
166
367
|
const headers = { ...req.headers };
|
|
167
368
|
delete headers["host"];
|
|
168
|
-
delete headers["content-length"];
|
|
169
|
-
// body 已被解压/修改,必须删除原压缩标记和逐跳头,否则上游会尝试解压明文导致失败
|
|
170
|
-
delete headers["content-encoding"];
|
|
171
|
-
delete headers["transfer-encoding"];
|
|
172
369
|
headers["host"] = baseUrl.host;
|
|
173
370
|
if (UPSTREAM_AUTH_TOKEN) {
|
|
174
371
|
headers["authorization"] = `Bearer ${UPSTREAM_AUTH_TOKEN}`;
|
|
175
372
|
headers["x-api-key"] = UPSTREAM_AUTH_TOKEN;
|
|
176
373
|
}
|
|
177
|
-
if (body) {
|
|
374
|
+
if (body !== null) {
|
|
375
|
+
delete headers["content-length"];
|
|
376
|
+
// body 已被解压/修改,必须删除原压缩标记和逐跳头,否则上游会尝试解压明文导致失败
|
|
377
|
+
delete headers["content-encoding"];
|
|
378
|
+
delete headers["transfer-encoding"];
|
|
178
379
|
headers["content-length"] = String(Buffer.byteLength(body));
|
|
179
380
|
}
|
|
180
381
|
const options = {
|
|
@@ -183,25 +384,46 @@ function forwardRequest(req, res, body) {
|
|
|
183
384
|
port: baseUrl.port || (isHttps ? 443 : 80),
|
|
184
385
|
path: fullPath,
|
|
185
386
|
headers,
|
|
387
|
+
agent: isHttps ? upstreamHttpsAgent : upstreamHttpAgent,
|
|
388
|
+
signal,
|
|
186
389
|
};
|
|
187
390
|
const proxyReq = lib.request(options, (proxyRes) => {
|
|
188
|
-
|
|
391
|
+
const status = proxyRes.statusCode || 502;
|
|
392
|
+
if (meta) {
|
|
393
|
+
const elapsed = Date.now() - meta.reqStart;
|
|
394
|
+
log(`[阶段] 上游响应 ${req.method} ${pathOnly} -> ${upstreamUrl} status=${status} body=${meta.origSizeKB}KB ${meta.hasImage ? "有图" : "无图"} 首包耗时=${elapsed}ms`);
|
|
395
|
+
}
|
|
396
|
+
if (res.destroyed) {
|
|
397
|
+
proxyRes.destroy();
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
res.writeHead(status, proxyRes.headers);
|
|
189
401
|
proxyRes.pipe(res);
|
|
190
402
|
});
|
|
191
403
|
proxyReq.on("error", (err) => {
|
|
192
|
-
|
|
404
|
+
if (signal?.aborted || isCanceledError(err) || err.name === "AbortError") {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
if (meta) {
|
|
408
|
+
const elapsed = Date.now() - meta.reqStart;
|
|
409
|
+
log(`[image-proxy] 转发失败 ${req.method} ${pathOnly} -> ${upstreamUrl} (耗时=${elapsed}ms): ${err.message}`);
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
log(`[image-proxy] 转发失败 ${req.method} ${pathOnly} -> ${upstreamUrl}: ${err.message}`);
|
|
413
|
+
}
|
|
193
414
|
if (!res.headersSent) {
|
|
194
415
|
res.writeHead(502, { "Content-Type": "application/json" });
|
|
195
416
|
res.end(JSON.stringify({ error: { type: "proxy_error", message: err.message } }));
|
|
196
417
|
}
|
|
197
418
|
});
|
|
198
|
-
if (body) {
|
|
199
|
-
proxyReq.
|
|
419
|
+
if (body !== null) {
|
|
420
|
+
proxyReq.end(body);
|
|
200
421
|
}
|
|
201
422
|
else {
|
|
202
423
|
req.pipe(proxyReq);
|
|
424
|
+
req.on("aborted", () => proxyReq.destroy(new Error("客户端请求已取消")));
|
|
425
|
+
req.on("error", (err) => proxyReq.destroy(err));
|
|
203
426
|
}
|
|
204
|
-
proxyReq.end();
|
|
205
427
|
}
|
|
206
428
|
// ────────────────────── 单例锁 ──────────────────────
|
|
207
429
|
// 锁文件路径:系统临时目录,跨平台无需权限处理
|
|
@@ -282,9 +504,30 @@ export function startImageProxy() {
|
|
|
282
504
|
process.on("beforeExit", releaseOnExit);
|
|
283
505
|
process.on("exit", releaseOnExit);
|
|
284
506
|
const server = http.createServer(async (req, res) => {
|
|
507
|
+
const reqStart = Date.now();
|
|
508
|
+
// Claude Code 中断/重试时立即取消本轮代理工作,避免旧请求继续占用
|
|
509
|
+
// Moonshot 调用或上游流式连接。
|
|
510
|
+
const requestController = new AbortController();
|
|
511
|
+
const abortRequest = () => {
|
|
512
|
+
if (!res.writableEnded) {
|
|
513
|
+
requestController.abort();
|
|
514
|
+
}
|
|
515
|
+
};
|
|
516
|
+
req.on("aborted", abortRequest);
|
|
517
|
+
res.on("close", abortRequest);
|
|
518
|
+
// /v1/messages 是 Anthropic Claude Messages API 端点,只有这类请求的 body
|
|
519
|
+
// 里才可能带图片,需要读全 body 拦截处理;其它请求(/v1/models、健康检查等)
|
|
520
|
+
// 直接透传,不解析 body 以省开销。用 includes 而非 === 是因为 url 可能带
|
|
521
|
+
// query string 或 UPSTREAM_BASE_URL 的 basePath 前缀。
|
|
285
522
|
const isMessagesEndpoint = req.method === "POST" && (req.url || "").includes("/v1/messages");
|
|
523
|
+
const pathOnly = (req.url || "").split("?")[0];
|
|
524
|
+
log(`[阶段] 接收 ${req.method} ${pathOnly}`);
|
|
286
525
|
if (!isMessagesEndpoint) {
|
|
287
|
-
forwardRequest(req, res, null
|
|
526
|
+
forwardRequest(req, res, null, {
|
|
527
|
+
reqStart,
|
|
528
|
+
hasImage: false,
|
|
529
|
+
origSizeKB: "?",
|
|
530
|
+
}, requestController.signal);
|
|
288
531
|
return;
|
|
289
532
|
}
|
|
290
533
|
const chunks = [];
|
|
@@ -292,6 +535,7 @@ export function startImageProxy() {
|
|
|
292
535
|
req.on("end", async () => {
|
|
293
536
|
const buffer = Buffer.concat(chunks);
|
|
294
537
|
const contentEncoding = (req.headers["content-encoding"] || "").toLowerCase();
|
|
538
|
+
log(`[阶段] body读取完成 ${req.method} ${pathOnly} size=${(buffer.length / 1024).toFixed(1)}KB encoding=${contentEncoding || "none"} elapsed=${Date.now() - reqStart}ms`);
|
|
295
539
|
// 解压请求体(支持 gzip / deflate / br),否则 JSON.parse 会失败
|
|
296
540
|
let rawBody;
|
|
297
541
|
try {
|
|
@@ -307,6 +551,7 @@ export function startImageProxy() {
|
|
|
307
551
|
else {
|
|
308
552
|
rawBody = buffer.toString("utf8");
|
|
309
553
|
}
|
|
554
|
+
log(`[阶段] body解码完成 ${req.method} ${pathOnly} rawSize=${(Buffer.byteLength(rawBody) / 1024).toFixed(1)}KB elapsed=${Date.now() - reqStart}ms`);
|
|
310
555
|
}
|
|
311
556
|
catch (err) {
|
|
312
557
|
log(`[image-proxy] 请求体解压失败: ${err.message}`);
|
|
@@ -319,36 +564,50 @@ export function startImageProxy() {
|
|
|
319
564
|
return;
|
|
320
565
|
}
|
|
321
566
|
try {
|
|
567
|
+
const origSizeKB = (Buffer.byteLength(rawBody) / 1024).toFixed(1);
|
|
568
|
+
if (!mayContainImagePayload(rawBody)) {
|
|
569
|
+
log(`[阶段] 无图快速转发 ${req.method} ${pathOnly} elapsed=${Date.now() - reqStart}ms`);
|
|
570
|
+
forwardRequest(req, res, rawBody, {
|
|
571
|
+
reqStart,
|
|
572
|
+
hasImage: false,
|
|
573
|
+
origSizeKB,
|
|
574
|
+
}, requestController.signal);
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
322
577
|
const requestData = JSON.parse(rawBody);
|
|
578
|
+
log(`[阶段] JSON解析完成 ${req.method} ${pathOnly} elapsed=${Date.now() - reqStart}ms`);
|
|
323
579
|
let hasImage = false;
|
|
324
580
|
if (Array.isArray(requestData.messages)) {
|
|
325
581
|
for (const msg of requestData.messages) {
|
|
326
|
-
|
|
327
|
-
for (const block of msg.content) {
|
|
328
|
-
// 检测所有可能的图片格式
|
|
329
|
-
if (block?.type === "image" ||
|
|
330
|
-
block?.type === "image_url" ||
|
|
331
|
-
(block?.type === "tool_result" && Array.isArray(block.content))) {
|
|
332
|
-
hasImage = true;
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
582
|
+
hasImage = contentHasImage(msg.content);
|
|
337
583
|
if (hasImage)
|
|
338
584
|
break;
|
|
339
585
|
}
|
|
340
586
|
}
|
|
341
587
|
if (hasImage) {
|
|
342
588
|
log(`[image-proxy] 检测到图片,开始识别...`);
|
|
343
|
-
requestData.messages = await processMessages(requestData.messages);
|
|
589
|
+
requestData.messages = await processMessages(requestData.messages, requestController.signal);
|
|
590
|
+
log(`[阶段] 图片处理完成 ${req.method} ${pathOnly} elapsed=${Date.now() - reqStart}ms`);
|
|
591
|
+
logForwardedImageTexts(requestData.messages);
|
|
344
592
|
const newBody = JSON.stringify(requestData);
|
|
345
|
-
forwardRequest(req, res, newBody
|
|
593
|
+
forwardRequest(req, res, newBody, {
|
|
594
|
+
reqStart,
|
|
595
|
+
hasImage: true,
|
|
596
|
+
origSizeKB,
|
|
597
|
+
}, requestController.signal);
|
|
346
598
|
}
|
|
347
599
|
else {
|
|
348
|
-
forwardRequest(req, res, rawBody
|
|
600
|
+
forwardRequest(req, res, rawBody, {
|
|
601
|
+
reqStart,
|
|
602
|
+
hasImage: false,
|
|
603
|
+
origSizeKB,
|
|
604
|
+
}, requestController.signal);
|
|
349
605
|
}
|
|
350
606
|
}
|
|
351
607
|
catch (err) {
|
|
608
|
+
if (requestController.signal.aborted || isCanceledError(err)) {
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
352
611
|
log(`[image-proxy] 处理失败: ${err.message}`);
|
|
353
612
|
if (!res.headersSent) {
|
|
354
613
|
res.writeHead(500, { "Content-Type": "application/json" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageProxy.js","sourceRoot":"","sources":["../../src/proxy/imageProxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imageProxy.js","sourceRoot":"","sources":["../../src/proxy/imageProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -13,14 +13,3 @@ export declare const DescribeImageInputSchema: z.ZodObject<{
|
|
|
13
13
|
max_tokens?: number | undefined;
|
|
14
14
|
}>;
|
|
15
15
|
export type DescribeImageInput = z.infer<typeof DescribeImageInputSchema>;
|
|
16
|
-
export declare const DescribeClipboardInputSchema: z.ZodObject<{
|
|
17
|
-
prompt: z.ZodDefault<z.ZodString>;
|
|
18
|
-
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
19
|
-
}, "strict", z.ZodTypeAny, {
|
|
20
|
-
prompt: string;
|
|
21
|
-
max_tokens: number;
|
|
22
|
-
}, {
|
|
23
|
-
prompt?: string | undefined;
|
|
24
|
-
max_tokens?: number | undefined;
|
|
25
|
-
}>;
|
|
26
|
-
export type DescribeClipboardInput = z.infer<typeof DescribeClipboardInputSchema>;
|
package/dist/schemas.js
CHANGED
|
@@ -16,17 +16,4 @@ export const DescribeImageInputSchema = z.object({
|
|
|
16
16
|
.default(2048)
|
|
17
17
|
.describe("返回描述的最大 token 数,1-8192 之间,默认 2048"),
|
|
18
18
|
}).strict();
|
|
19
|
-
export const DescribeClipboardInputSchema = z.object({
|
|
20
|
-
prompt: z.string()
|
|
21
|
-
.min(1)
|
|
22
|
-
.max(4000)
|
|
23
|
-
.default(DEFAULT_PROMPT)
|
|
24
|
-
.describe("询问图片的问题或识图指令,例如 '描述图片内容'、'图片中有哪些文字'、'这是什么图表'、'提取图片中的所有文字'"),
|
|
25
|
-
max_tokens: z.number()
|
|
26
|
-
.int()
|
|
27
|
-
.min(1)
|
|
28
|
-
.max(8192)
|
|
29
|
-
.default(2048)
|
|
30
|
-
.describe("返回描述的最大 token 数,1-8192 之间,默认 2048"),
|
|
31
|
-
}).strict();
|
|
32
19
|
//# sourceMappingURL=schemas.js.map
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACd,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;SAC3B,QAAQ,CAAC,yFAAyF,CAAC;IACtG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,OAAO,CAAC,cAAc,CAAC;SACvB,QAAQ,CAAC,2DAA2D,CAAC;IACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mCAAmC,CAAC;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACd,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;SAC3B,QAAQ,CAAC,yFAAyF,CAAC;IACtG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,OAAO,CAAC,cAAc,CAAC;SACvB,QAAQ,CAAC,2DAA2D,CAAC;IACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mCAAmC,CAAC;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC"}
|
|
@@ -4,6 +4,7 @@ export interface CallMoonshotParams {
|
|
|
4
4
|
model?: string;
|
|
5
5
|
messages: MoonshotMessage[];
|
|
6
6
|
maxTokens?: number;
|
|
7
|
+
signal?: AbortSignal;
|
|
7
8
|
}
|
|
8
9
|
export declare function handleMoonshotError(error: unknown): string;
|
|
9
10
|
export declare function callMoonshot(params: CallMoonshotParams): Promise<MoonshotChatResponse>;
|