9 Commits

Author SHA1 Message Date
小海
74f1a632a9 chore(release): v2.5.2 - Remove context compression and implement internal auto-continue 2026-03-11 09:54:10 +08:00
小海
5f0f9b7936 feat: v2.5.1 - 上下文智能压缩 + 截断检测 + tolerantParse 增强
🗜️ 智能压缩
- 长对话老消息压缩而非丢弃,保留因果链语义
- 工具结果压缩为摘要,助手消息保留工具名
- 压缩率 70-80%,解决 Cursor 上下文溢出问题

⚠️ 截断检测
- 代码块/XML 未闭合时返回 stop_reason=max_tokens
- Claude Code 自动继续,无需手动点击"继续"

🔧 tolerantParse
- 新增正则兜底层,处理未转义双引号的 JSON
- 解决 position 5384 等长参数解析崩溃

🛡️ 拒绝 fallback 优化
- 工具模式下返回极短引导文本
2026-03-10 17:29:49 +08:00
小海
f12ca30893 feat(v2.5.0): Cursor IDE 完整适配 + 工具参数自动修复 + 增量流式优化
🖥️ Cursor IDE 适配:
- 新增 /v1/responses 端点(Responses API → Chat Completions 自动转换)
- 兼容 Cursor 扁平工具格式 { name, input_schema }
- 扩展 /v1/models 模型列表(claude-sonnet-4-5/4/3.5)
- 连续同角色消息自动合并(mergeConsecutiveRoles)
- content 数组中 tool_use/tool_result 块直接透传

🔧 工具参数自动修复 (tool-fixer.ts):
- normalizeToolArguments: file_path → path 字段名映射
- replaceSmartQuotes: 中文/法文智能引号替换
- repairExactMatchToolArguments: 模糊匹配修复
- extractToolResultNatural: 自然语言 tool_result 转换

🚀 流式增量优化:
- input_json_delta / tool_calls 按 128 字节分块
- 拒绝重试扩展到工具模式
- 极短响应自动重试

🧪 新增 44 个单元测试 (tool-fixer + openai-compat)
2026-03-10 16:27:19 +08:00
小海
ef9d36e8c4 chore: 升级版本号至 v2.4.0 2026-03-10 15:13:24 +08:00
小海
c072795528 feat: 修复流式中断 + JSON 解析 + tool_choice 强制工具调用
核心修复:
- cursor-client.ts: 固定总超时 → 空闲超时,防止长输出被截断 (#12)
- converter.ts: tolerantParse 三级修复策略,处理截断 JSON (#13)
- types.ts: 新增 AnthropicToolChoice 类型,补齐 tool_choice 字段
- converter.ts: buildToolInstructions 支持 tool_choice,注入 MANDATORY 约束
- handler.ts: tool_choice=any 时检测无工具调用 → 自动追加强制消息重试

测试覆盖:
- test/unit-tolerant-parse.mjs: 18 个单元测试(tolerantParse/parseToolCalls)
- test/e2e-chat.mjs: 16 个 E2E 测试(基础问答、工具调用、流式、边界防御)
- test/e2e-agentic.mjs: 7 个 Agentic 压测(完整 Claude Code 工具链模拟)
- package.json: 新增 test:unit / test:e2e / test:agentic 快捷命令
2026-03-10 15:11:51 +08:00
小海
41db85cb6f feat(v2.3.2): 视觉预处理统一化 + OpenAI防御强化 + 认知重构
📸 视觉预处理统一化 (修复 #8)
- 新增 preprocessImages() 在 convertToCursorRequest 入口统一处理图片
- 修复 Claude CLI 图片不进 vision 预处理的 bug
- extractMessageText 新增 case 'image' 兜底处理
- Express body 限制 10MB → 50MB 支持大图

🛡️ OpenAI 端全面防御层对齐
- 拒绝检测 + 自动重试 (与 Anthropic 端一致)
- 响应清洗 sanitizeResponse
- 身份探针拦截 isIdentityProbe
- 流式统一缓冲模式

🧠 非工具场景认知重构
- 无工具请求注入认知重构前缀,防止暴露 Cursor 文档助手身份
- 助手历史消息中 read_file/read_dir 拒绝痕迹清洗
- 工具能力询问返回 Claude 能力描述而非硬拦截
- 扩展中文 sanitizeResponse 规则
2026-03-06 14:44:35 +08:00
小海
c3e9bcd659 chore: 统一所有版本号至 v2.3.0
- package.json: 2.0.0 → 2.3.0
- src/index.ts: 健康检查、根路径、启动 banner 三处版本号同步更新
2026-03-06 11:29:10 +08:00
小海
2a7c23416f feat(vision): add zero-config local OCR and external vision api fallback for image payloads 2026-03-06 11:00:50 +08:00
小海
5fdaeb934b feat: cursor2api v2 - TypeScript 重构
- Node.js/TypeScript 全新架构
- Anthropic Messages API 完整兼容(流式/非流式)
- 提示词注入实现工具调用能力(XML 格式)
- Chrome TLS 指纹模拟 + x-is-human token
- 支持 Claude Code 直接对接
2026-03-04 15:05:00 +08:00