From 2a7c23416f6c5a4abf2f7662ef747a460e92bdcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= <7836246@qq.com> Date: Fri, 6 Mar 2026 11:00:42 +0800 Subject: [PATCH] feat(vision): add zero-config local OCR and external vision api fallback for image payloads --- .claude/settings.local.json | 3 +- .gitignore | 30 ++++++++ README.md | 11 +++ config.yaml | 14 ++++ cursor2api_update.zip | Bin 106302 -> 73570 bytes package-lock.json | 115 +++++++++++++++++++++++++++++++ package.json | 9 +-- src/config.ts | 9 +++ src/handler.ts | 3 + src/openai-handler.ts | 54 ++++++++++++--- src/types.ts | 9 +++ src/vision.ts | 133 ++++++++++++++++++++++++++++++++++++ 12 files changed, 375 insertions(+), 15 deletions(-) create mode 100644 src/vision.ts diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 2a94274..03b9783 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -4,7 +4,8 @@ "Bash(dir e:\\\\CodeAI\\\\github\\\\cursor2api:*)", "Bash(cmd:*)", "WebFetch(domain:wttr.in)", - "mcp__fetch__fetch" + "mcp__fetch__fetch", + "mcp__filesystem__directory_tree" ] } } diff --git a/.gitignore b/.gitignore index 9c301f7..dc7349e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,35 @@ Thumbs.db logs/ *.log +# Environment +# Binaries +*.exe +*.dll +*.so +*.dylib +cursor2api + +# Go +vendor/ +*.test + +# Node +node_modules/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Logs +logs/ +*.log + # Environment .env .env.local @@ -33,3 +62,4 @@ logs/ # Build dist/ build/ +*.traineddata \ No newline at end of file diff --git a/README.md b/README.md index 774006c..bee5926 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ - **Anthropic Messages API 完整兼容** - `/v1/messages` 流式/非流式 - **OpenAI Chat Completions API 兼容** - `/v1/chat/completions` 流式/非流式 + 工具调用 +- **多模态视觉降级处理** - 内置纯本地 CPU OCR 图片文字提取(零配置免 Key),或支持外接第三方免费视觉大模型 API 解释图片。 - **Cursor IDE 场景融合提示词注入** - 不覆盖模型身份,顺应 Cursor 内部角色设定 - **全工具支持** - 无工具白名单限制,支持所有 MCP 工具和自定义扩展 - **多层拒绝拦截** - 自动检测和抑制 Cursor 文档助手的拒绝行为 @@ -48,6 +49,8 @@ npm install 编辑 `config.yaml`: - `cursor_model` - 使用的模型(默认 `anthropic/claude-sonnet-4.6`) - `fingerprint.user_agent` - 浏览器 User-Agent(模拟 Chrome 请求) +- `vision.enabled` - 开启视觉拦截 (`true` 发送图片前进行降级处理)。 +- `vision.mode` - 视觉模式。推荐 `ocr` (全自动零配置文字提取)。如需真视觉理解改为 `api` 并配置 `baseUrl` 和 `apiKey` 后接入 Gemini/OpenRouter 等。 ### 3. 启动 @@ -138,6 +141,14 @@ AI 按此格式输出 → 我们解析并转换为标准的 Anthropic `tool_use` ## 更新日志 +### v2.3.0 (2026-03-06) — 多模态视觉拦截与降级支持 + +**👁️ 视觉降级护航** +- ✨ 完美解决免费版 Cursor 接口原生不支持图片(抛出 `I cannot view images` 拒绝错误)的痛点。 +- ✨ **开箱即用的纯本地 OCR (`mode: 'ocr'`)**:零配置、免 API Key,利用本机 CPU 毫秒级提取图片/截图中的报错堆栈或代码文本,并无缝重组成上下文发送给大模型处理。 +- ✨ **兼容第三方的外部视觉 API (`mode: 'api'`)**:支持无缝转接 Google Gemini、OpenRouter 等全网免费开源的高级视觉大模型格式,提供超越 OCR 的页面 UI 理解和色彩分析。 +- ✨ 在 Anthropic 和 OpenAI 两种主流请求协议下,自动精准拦截 Base64 和 URL 格式的图片流组合逻辑。 + ### v2.2.0 (2026-03-05) — 身份保护 + 代码精简 **🛡️ 三层身份保护** diff --git a/config.yaml b/config.yaml index 5ba4c06..0365240 100644 --- a/config.yaml +++ b/config.yaml @@ -15,3 +15,17 @@ cursor_model: "anthropic/claude-sonnet-4.6" # 浏览器指纹配置 fingerprint: user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" + +# 视觉处理降级配置(可选) +# 如果开启,可以拦截您发给大模型的图片进行降级处理(因为目前免费 Cursor 不支持视觉)。 +vision: + enabled: true + # mode 选项: 'ocr' 或 'api' + # 'ocr': [默认模式] 彻底免 Key,零配置,完全依赖本机的 CPU 识图,提取文本、报错日志、代码段后发给大模型。 + # 'api': 需要配置下方的 baseUrl 和 apiKey,把图发给外部视觉模型(如 Gemini、OpenRouter),能“看到”画面内容和色彩。 + mode: 'ocr' + + # ---------- 以下选项仅在 mode: 'api' 时才生效 ---------- + # base_url: "https://openrouter.ai/api/v1/chat/completions" + # api_key: "sk-or-v1-..." + # model: "meta-llama/llama-3.2-11b-vision-instruct:free" diff --git a/cursor2api_update.zip b/cursor2api_update.zip index fecb9f0618cf5258a5465190cd4e26841263c0bf..e3a406a841b755c32f8977363fe613c90411106f 100644 GIT binary patch delta 45564 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 ae_yJUw^F& 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 z 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 diff --git a/package-lock.json b/package-lock.json index ed45694..23921dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dotenv": "^16.5.0", "eventsource-parser": "^3.0.1", "express": "^5.1.0", + "tesseract.js": "^7.0.0", "uuid": "^11.1.0", "yaml": "^2.7.1" }, @@ -582,6 +583,12 @@ "node": ">= 0.6" } }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "license": "MIT" + }, "node_modules/body-parser": { "version": "2.2.2", "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.2.2.tgz", @@ -1075,6 +1082,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/idb-keyval": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/idb-keyval/-/idb-keyval-6.2.2.tgz", + "integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==", + "license": "Apache-2.0" + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", @@ -1096,6 +1109,12 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "license": "MIT" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -1166,6 +1185,26 @@ "node": ">= 0.6" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz", @@ -1199,6 +1238,15 @@ "wrappy": "1" } }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", @@ -1270,6 +1318,12 @@ "node": ">= 0.10" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", @@ -1434,6 +1488,30 @@ "node": ">= 0.8" } }, + "node_modules/tesseract.js": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/tesseract.js/-/tesseract.js-7.0.0.tgz", + "integrity": "sha512-exPBkd+z+wM1BuMkx/Bjv43OeLBxhL5kKWsz/9JY+DXcXdiBjiAch0V49QR3oAJqCaL5qURE0vx9Eo+G5YE7mA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "bmp-js": "^0.1.0", + "idb-keyval": "^6.2.0", + "is-url": "^1.2.4", + "node-fetch": "^2.6.9", + "opencollective-postinstall": "^2.0.3", + "regenerator-runtime": "^0.13.3", + "tesseract.js-core": "^7.0.0", + "wasm-feature-detect": "^1.8.0", + "zlibjs": "^0.3.1" + } + }, + "node_modules/tesseract.js-core": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/tesseract.js-core/-/tesseract.js-core-7.0.0.tgz", + "integrity": "sha512-WnNH518NzmbSq9zgTPeoF8c+xmilS8rFIl1YKbk/ptuuc7p6cLNELNuPAzcmsYw450ca6bLa8j3t0VAtq435Vw==", + "license": "Apache-2.0" + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1443,6 +1521,12 @@ "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, "node_modules/tsx": { "version": "4.21.0", "resolved": "https://registry.npmmirror.com/tsx/-/tsx-4.21.0.tgz", @@ -1529,6 +1613,28 @@ "node": ">= 0.8" } }, + "node_modules/wasm-feature-detect": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz", + "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==", + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -1549,6 +1655,15 @@ "funding": { "url": "https://github.com/sponsors/eemeli" } + }, + "node_modules/zlibjs": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/zlibjs/-/zlibjs-0.3.1.tgz", + "integrity": "sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==", + "license": "MIT", + "engines": { + "node": "*" + } } } } diff --git a/package.json b/package.json index fc6dc99..713f5d6 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,12 @@ "start": "node dist/index.js" }, "dependencies": { - "express": "^5.1.0", - "uuid": "^11.1.0", "dotenv": "^16.5.0", - "yaml": "^2.7.1", - "eventsource-parser": "^3.0.1" + "eventsource-parser": "^3.0.1", + "express": "^5.1.0", + "tesseract.js": "^7.0.0", + "uuid": "^11.1.0", + "yaml": "^2.7.1" }, "devDependencies": { "@types/express": "^5.0.2", diff --git a/src/config.ts b/src/config.ts index e6d3a08..9388f6a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -29,6 +29,15 @@ export function getConfig(): AppConfig { if (yaml.fingerprint) { if (yaml.fingerprint.user_agent) config.fingerprint.userAgent = yaml.fingerprint.user_agent; } + if (yaml.vision) { + config.vision = { + enabled: yaml.vision.enabled !== false, // default to true if vision section exists in some way + mode: yaml.vision.mode || 'ocr', + baseUrl: yaml.vision.base_url || 'https://api.openai.com/v1/chat/completions', + apiKey: yaml.vision.api_key || '', + model: yaml.vision.model || 'gpt-4o-mini', + }; + } } catch (e) { console.warn('[Config] 读取 config.yaml 失败:', e); } diff --git a/src/handler.ts b/src/handler.ts index c87857e..2441c07 100644 --- a/src/handler.ts +++ b/src/handler.ts @@ -16,6 +16,7 @@ import type { import { convertToCursorRequest, parseToolCalls, hasToolCalls } from './converter.js'; import { sendCursorRequest, sendCursorRequestFull } from './cursor-client.js'; import { getConfig } from './config.js'; +import { applyVisionInterceptor } from './vision.js'; function msgId(): string { return 'msg_' + uuidv4().replace(/-/g, '').substring(0, 24); @@ -264,6 +265,8 @@ export async function handleMessages(req: Request, res: Response): Promise console.log(`[Handler] 收到请求: model=${body.model}, messages=${body.messages?.length}, stream=${body.stream}, tools=${body.tools?.length ?? 0}`); try { + await applyVisionInterceptor(body.messages); + if (isIdentityProbe(body)) { console.log(`[Handler] 拦截到身份探针,返回模拟响应以规避风控`); if (body.stream) { diff --git a/src/openai-handler.ts b/src/openai-handler.ts index aa50593..8330f3d 100644 --- a/src/openai-handler.ts +++ b/src/openai-handler.ts @@ -24,6 +24,7 @@ import type { import { convertToCursorRequest, parseToolCalls, hasToolCalls } from './converter.js'; import { sendCursorRequest, sendCursorRequestFull } from './cursor-client.js'; import { getConfig } from './config.js'; +import { applyVisionInterceptor } from './vision.js'; function chatId(): string { return 'chatcmpl-' + uuidv4().replace(/-/g, '').substring(0, 24); @@ -60,9 +61,11 @@ function convertToAnthropicRequest(body: OpenAIChatRequest): AnthropicRequest { case 'assistant': { // 助手消息可能包含 tool_calls const blocks: AnthropicContentBlock[] = []; - const textContent = extractOpenAIContent(msg); - if (textContent) { - blocks.push({ type: 'text', text: textContent }); + const contentBlocks = extractOpenAIContentBlocks(msg); + if (typeof contentBlocks === 'string' && contentBlocks) { + blocks.push({ type: 'text', text: contentBlocks }); + } else if (Array.isArray(contentBlocks)) { + blocks.push(...contentBlocks); } if (msg.tool_calls && msg.tool_calls.length > 0) { @@ -84,7 +87,7 @@ function convertToAnthropicRequest(body: OpenAIChatRequest): AnthropicRequest { messages.push({ role: 'assistant', - content: blocks.length > 0 ? blocks : (textContent || ''), + content: blocks.length > 0 ? blocks : (typeof extractOpenAIContentBlocks(msg) === 'string' ? extractOpenAIContentBlocks(msg) as string : ''), }); break; } @@ -127,20 +130,48 @@ function convertToAnthropicRequest(body: OpenAIChatRequest): AnthropicRequest { } /** - * 从 OpenAI 消息中提取文本内容 + * 从 OpenAI 消息中提取文本或多模态内容块 */ -function extractOpenAIContent(msg: OpenAIMessage): string { +function extractOpenAIContentBlocks(msg: OpenAIMessage): string | AnthropicContentBlock[] { if (msg.content === null || msg.content === undefined) return ''; if (typeof msg.content === 'string') return msg.content; if (Array.isArray(msg.content)) { - return msg.content - .filter(p => p.type === 'text' && p.text) - .map(p => p.text!) - .join('\n'); + const blocks: AnthropicContentBlock[] = []; + for (const p of msg.content) { + if (p.type === 'text' && p.text) { + blocks.push({ type: 'text', text: p.text }); + } else if (p.type === 'image_url' && p.image_url?.url) { + const url = p.image_url.url; + if (url.startsWith('data:')) { + const match = url.match(/^data:([^;]+);base64,(.+)$/); + if (match) { + blocks.push({ + type: 'image', + source: { type: 'base64', media_type: match[1], data: match[2] } + }); + } + } else { + blocks.push({ + type: 'image', + source: { type: 'url', media_type: 'image/jpeg', data: url } + }); + } + } + } + return blocks.length > 0 ? blocks : ''; } return String(msg.content); } +/** + * 仅提取纯文本(用于系统提示词和旧行为) + */ +function extractOpenAIContent(msg: OpenAIMessage): string { + const blocks = extractOpenAIContentBlocks(msg); + if (typeof blocks === 'string') return blocks; + return blocks.filter(b => b.type === 'text').map(b => b.text).join('\n'); +} + // ==================== 主处理入口 ==================== export async function handleOpenAIChatCompletions(req: Request, res: Response): Promise { @@ -152,6 +183,9 @@ export async function handleOpenAIChatCompletions(req: Request, res: Response): // Step 1: OpenAI → Anthropic 格式 const anthropicReq = convertToAnthropicRequest(body); + // Step 1.5: 应用视觉拦截器(如果启用,会将 anthropicReq 中的 image 转换为 text) + await applyVisionInterceptor(anthropicReq.messages); + // Step 2: Anthropic → Cursor 格式(复用现有管道) const cursorReq = convertToCursorRequest(anthropicReq); diff --git a/src/types.ts b/src/types.ts index a01fb2e..314a087 100644 --- a/src/types.ts +++ b/src/types.ts @@ -20,6 +20,8 @@ export interface AnthropicMessage { export interface AnthropicContentBlock { type: 'text' | 'tool_use' | 'tool_result' | 'image'; text?: string; + // image fields + source?: { type: string; media_type?: string; data: string }; // tool_use fields id?: string; name?: string; @@ -91,6 +93,13 @@ export interface AppConfig { timeout: number; proxy?: string; cursorModel: string; + vision?: { + enabled: boolean; + mode: 'ocr' | 'api'; + baseUrl: string; + apiKey: string; + model: string; + }; fingerprint: { userAgent: string; }; diff --git a/src/vision.ts b/src/vision.ts new file mode 100644 index 0000000..dd5cf52 --- /dev/null +++ b/src/vision.ts @@ -0,0 +1,133 @@ +import { getConfig } from './config.js'; +import type { AnthropicMessage, AnthropicContentBlock } from './types.js'; +import { createWorker } from 'tesseract.js'; + +export async function applyVisionInterceptor(messages: AnthropicMessage[]): Promise { + const config = getConfig(); + if (!config.vision?.enabled) return; + + for (const msg of messages) { + if (!Array.isArray(msg.content)) continue; + + let hasImages = false; + const newContent: AnthropicContentBlock[] = []; + const imagesToAnalyze: AnthropicContentBlock[] = []; + + for (const block of msg.content) { + if (block.type === 'image') { + hasImages = true; + imagesToAnalyze.push(block); + } else { + newContent.push(block); + } + } + + if (hasImages && imagesToAnalyze.length > 0) { + try { + let descriptions = ''; + if (config.vision.mode === 'ocr') { + console.log(`[Vision] 启用纯本地 OCR 模式,正在提取 ${imagesToAnalyze.length} 张图片上的文字... (无需 API Key)`); + descriptions = await processWithLocalOCR(imagesToAnalyze); + } else { + console.log(`[Vision] 启用外部 API 模式,正在分析 ${imagesToAnalyze.length} 张图片...`); + descriptions = await callVisionAPI(imagesToAnalyze); + } + + // Add descriptions as a simulated system text block + newContent.push({ + type: 'text', + text: `\n\n[System: The user attached ${imagesToAnalyze.length} image(s). Visual analysis/OCR extracted the following context:\n${descriptions}]\n\n` + }); + + msg.content = newContent; + } catch (e) { + console.error("[Vision API Error]", e); + newContent.push({ + type: 'text', + text: `\n\n[System: The user attached image(s), but the Vision interceptor failed to process them. Error: ${(e as Error).message}]\n\n` + }); + msg.content = newContent; + } + } + } +} + +async function processWithLocalOCR(imageBlocks: AnthropicContentBlock[]): Promise { + const worker = await createWorker('eng+chi_sim'); + let combinedText = ''; + + for (let i = 0; i < imageBlocks.length; i++) { + const img = imageBlocks[i]; + let imageSource: string | Buffer = ''; + + if (img.type === 'image' && img.source?.data) { + if (img.source.type === 'base64') { + const mime = img.source.media_type || 'image/jpeg'; + imageSource = `data:${mime};base64,${img.source.data}`; + } else if (img.source.type === 'url') { + imageSource = img.source.data; + } + } + + if (imageSource) { + try { + const { data: { text } } = await worker.recognize(imageSource); + combinedText += `--- Image ${i + 1} OCR Text ---\n${text.trim() || '(No text detected in this image)'}\n\n`; + } catch (err) { + console.error(`[Vision OCR] Failed to parse image ${i + 1}:`, err); + combinedText += `--- Image ${i + 1} ---\n(Failed to parse image with local OCR)\n\n`; + } + } + } + + await worker.terminate(); + return combinedText; +} + +async function callVisionAPI(imageBlocks: AnthropicContentBlock[]): Promise { + const config = getConfig().vision!; + + // Construct an array of OpenAI format message parts + const parts: any[] = [ + { type: 'text', text: 'Please describe the attached images in detail. If they contain code, UI elements, or error messages, explicitly write them out.' } + ]; + + for (const img of imageBlocks) { + if (img.type === 'image' && img.source?.data) { + let url = ''; + // If it's a raw base64 string + if (img.source.type === 'base64') { + const mime = img.source.media_type || 'image/jpeg'; + url = `data:${mime};base64,${img.source.data}`; + } else if (img.source.type === 'url') { + // Handle remote URLs natively mapped from OpenAI payloads + url = img.source.data; + } + if (url) { + parts.push({ type: 'image_url', image_url: { url } }); + } + } + } + + const payload = { + model: config.model, + messages: [{ role: 'user', content: parts }], + max_tokens: 1500 + }; + + const res = await fetch(config.baseUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${config.apiKey}` + }, + body: JSON.stringify(payload) + }); + + if (!res.ok) { + throw new Error(`Vision API returned status ${res.status}: ${await res.text()}`); + } + + const data = await res.json() as any; + return data.choices?.[0]?.message?.content || 'No description returned.'; +}