何夕2077
8a92e4d055
Merge pull request #362 from Cishoon/fix/claude-streaming-content-block-events
...
fix: 补齐 Claude 流式响应的 content_block_start/stop 事件序列
2026-03-04 14:58:25 +08:00
Cishoon
5d8ad5a925
fix: 补齐 Claude 流式响应的 content_block_start/stop 事件序列
...
修复通过 /v1/messages 对接 Claude 客户端时「长时间无输出,最后一次性出现大量内容」的问题。
问题原因:
- CodexConverter 在文本增量场景只发送了 content_block_delta,
缺少对应文本块的 content_block_start 和 content_block_stop 事件
- Claude 兼容客户端无法将 delta 识别为可渲染增量
修复内容:
- 为 text/thinking 输出分支补齐完整的 Claude SSE 事件序列:
首个 delta 前发送 content_block_start,块结束时发送 content_block_stop
- 新增 blockStarted/currentBlockType 状态跟踪,正确处理块类型切换
- 在 tool_use 和 response.completed 前关闭已打开的内容块
- message_start 事件补充 content: [] 字段
影响范围:CodexConverter、ClaudeConverter 流式转换逻辑
2026-03-04 14:40:30 +08:00
hex2077
9ca8b86a4f
refactor: 优化提供商加载逻辑并修复流式重试问题
...
- 将静态提供商配置更新逻辑移至加载函数,避免重复执行
- 修复流式请求重试时已发送数据导致响应损坏的问题
- 增强模型列表和内容生成的服务适配器选择逻辑
- 改进错误处理和日志记录
2026-03-04 13:26:08 +08:00
hex2077
8947f93471
refactor: 移除 Ollama 协议支持并重构模型路由
...
- 删除 Ollama 协议相关代码,包括处理器、转换器、文档和常量
- 重构模型列表获取逻辑,支持 auto 模式下的多提供商聚合
- 新增 token 计算工具函数,统一各提供商 token 计数逻辑
- 改进模型前缀路由解析,增强 auto 模式的健壮性
- 更新多语言文档,移除 Ollama 相关内容
2026-03-03 23:09:04 +08:00
hex2077
05df61df74
feat: 添加 TLS Sidecar 支持并重构前端提供商配置系统
...
- 新增 TLS Sidecar 功能文档,支持绕过 Grok 等服务的 Cloudflare 403 封锁
- 重构前端提供商配置管理,实现动态配置缓存和统一数据源
- 升级配置文件管理界面 UI,优化信息展示和交互体验
- 改进 Claude Kiro 工具调用流式响应,实时推送 content_block 事件
- 修复 Codex 配额重置时间格式问题
主要变更:
- README 文档新增 TLS Sidecar 配置说明和使用指南
- 新增 tutorial-manager.js 模块,动态渲染 OAuth 授权路径
- routing-examples.js 支持动态生成路径路由示例卡片
- upload-config-manager.js 重构列表项布局,支持节点关联信息展示
- config-manager、models-manager、usage-manager 统一使用提供商配置缓存
- i18n 新增多语言翻译键,更新 Gemini 模型版本信息
2026-03-03 20:05:51 +08:00
hex2077
3989add60b
chore: 更新版本至2.10.4并移除iFlow协议支持
...
- 更新VERSION文件至2.10.4
- 在tls-sidecar中强制日志输出到stdout,避免Node.js误判
- 更新程序时排除tls-sidecar目录
- 增强GrokConverter的模型列表转换逻辑,支持更多数据结构
2026-03-03 01:15:43 +08:00
hex2077
1798fc3df1
chore: 更新版本号并优化Docker构建顺序
...
- 将版本号从2.10.3.2更新至2.10.3.3
- 调整Dockerfile中复制tls-sidecar二进制文件的位置,避免被本地文件覆盖
- 在tls-sidecar启动时增加Linux/macOS平台下的执行权限设置
- 增强二进制文件存在性检查,确保目标为常规文件
2026-03-03 00:35:15 +08:00
hex2077
698c6e11d3
fix(codex): 修复凭据刷新和过期时间处理逻辑
...
- 记录加载凭据的路径,确保刷新后写回同一文件
- 修复 token 刷新时过期时间字段名错误(expired vs expire)
- 增加 expiresAt 有效性检查,防止 NaN 导致刷新永不触发
- 优化凭据保存路径逻辑,避免读写不一致问题
2026-03-02 22:11:45 +08:00
hex2077
0b071f261d
feat(converter): 为Grok协议添加完整的转换支持
...
- 在GeminiConverter、ClaudeConverter和OpenAIResponsesConverter中增加toGrokRequest方法
- 扩展GrokConverter以支持向Gemini、OpenAI Responses、Codex等协议的响应转换
- 移除IFLOW_API适配器的注册以清理未使用的代码
- 修复Grok媒体URL处理中不必要的SSO令牌追加逻辑
2026-03-02 19:47:43 +08:00
hex2077
3f8fdc0b8e
feat(grok): 使用 UUID 替换 SSO token 进行资源代理以提高安全性
...
- 在 Grok 资源代理接口中优先使用 UUID 获取 token,避免 token 泄露在 URL 中
- 为 ProviderPoolManager 添加 findProviderByUuid 方法,支持通过 UUID 查找配置
- 重构 GrokConverter,将 SSO token 依赖改为 UUID 依赖
- 更新 VERSION 文件至 2.10.2.1
2026-03-02 00:14:37 +08:00
hex2077
c91d2ce3ab
feat(grok): 添加资源代理功能并优化用量显示
...
- 新增 Grok 资源代理接口,将 assets.grok.com 的资源通过本地代理访问
- 在请求处理中注入 requestBaseUrl 配置,供转换器生成正确的代理链接
- 统一各提供商核心服务中删除 _requestBaseUrl 字段的逻辑
- 优化 Grok 用量显示逻辑,支持按 token 或 query 显示剩余额度
- 更新 UI 管理器,允许 /api/grok/assets 接口免认证访问
- 改进 Grok 转换器,在流式输出中智能处理被截断的 URL
2026-03-01 23:55:07 +08:00
hex2077
517120a000
fix: 修复Claude内容处理和iFlow模型验证问题
...
- 修复ClaudeConverter中字符串内容处理逻辑,确保字符串能正确转换为OpenAI格式
- 移除claude-kiro.js中重复的内容处理代码,避免重复计算tokens
- 修复iFlow模型验证逻辑,当模型不存在时使用默认模型
- 优化插件状态提示信息,使用通用的"已启用/已禁用"翻译
2026-02-28 17:52:45 +08:00
hex2077
f8de8aad67
feat(config-api): 添加 TLS Sidecar 配置支持
...
在配置更新处理中新增对 TLS_SIDECAR_ENABLED 和 TLS_SIDECAR_PORT 两个配置项的支持,使系统能够通过 API 动态管理 TLS Sidecar 的启用状态和端口设置。
2026-02-28 00:23:16 +08:00
hex2077
81dd6a3f86
feat(tls): 添加 Go uTLS sidecar 以绕过 Cloudflare TLS 指纹检测
...
- 新增 Go 语言编写的 TLS sidecar 服务,使用 uTLS 库模拟 Chrome 指纹
- 在 Dockerfile 中添加多阶段构建以编译 sidecar 二进制文件
- 扩展配置系统,支持启用/禁用 sidecar 及自定义端口
- 修改 Grok 提供商,使其请求可通过 sidecar 转发
- 在前端界面添加 TLS sidecar 配置选项和国际化支持
- 服务启动时自动启动 sidecar,关闭时优雅停止
2026-02-28 00:02:12 +08:00
hex2077
89e80148d0
fix(grok): 禁用 HTTP/2 协商以适配 axios
...
axios 底层仅支持 HTTP/1.1,强制协商 h2 会导致服务端返回的 H2 帧解析失败。将 ALPN 协议列表修改为仅 'http/1.1' 以确保连接兼容性。
2026-02-27 22:32:11 +08:00
hex2077
f0445d96e4
feat(grok): 模拟 Chrome TLS 指纹以绕过 Cloudflare 检测
...
- 引入 TLS 模块并配置 HTTPS agent 以精确匹配 Chrome 136 的加密套件、签名算法和 ALPN 顺序
- 更新默认 User-Agent 至 Chrome 136 并动态生成更真实的 Statsig ID
- 优化请求头,根据 UA 自动填充 sec-ch-ua 系列字段,增强指纹一致性
- 移除调试日志并调整 Cloudflare 令牌缺失的日志级别
2026-02-27 22:23:48 +08:00
何夕2077
1ada4246ec
Merge pull request #344 from lly835/refactor/config-cli-parsing
...
refactor: 用声明式定义表替换 CLI 参数解析的 if-else 链
2026-02-27 13:23:59 +08:00
aka686
1aa691e70b
refactor: 用声明式定义表替换 CLI 参数解析的 if-else 链
...
将 12 个 CLI 参数的手写 if-else 链(约 100 行)重构为数据驱动的声明式定义表,
支持 string/int/bool/enum 四种类型自动解析。
- 新增参数只需在 cliArgDefs 数组中添加一行
- 消除大量重复的模式代码
- 保持完全相同的解析行为和警告输出
2026-02-26 23:43:58 +08:00
aka686
2aff6013d7
fix: 为 Logger.requestContext 添加 TTL 清理机制防止内存泄漏
...
长时间运行的服务中,如果 clearRequestContext 未被正确调用(如请求异常中断),
requestContext Map 会持续增长导致内存泄漏。
新增:
- 每个上下文条目记录 _createdAt 时间戳
- 每 60 秒定期扫描并清除超过 5 分钟的过期条目
- Map 为空时自动停止定时器,避免不必要的开销
- close() 时清理定时器
2026-02-26 23:38:43 +08:00
hex2077
68719879c5
feat(architecture): 重构适配器注册机制并引入并发控制系统
...
建立可扩展的提供商适配器注册表,实现动态服务发现与插槽管理:
架构改进:
- 采用 Map 注册表替代 switch-case 硬编码,支持热插拔适配器
- 实现 acquireSlot/releaseSlot 机制,精确追踪活跃请求与等待队列
- 新增节点评分算法,综合考量并发数、队列长度、健康状态
核心能力:
- 支持并发限制与队列等待,避免单节点过载 (concurrencyLimit/queueLimit)
- 实现 Fallback 链式调用,429 错误自动切换备用凭证
- 添加请求级 IP 追踪,日志格式优化为 `clientIp:requestId`
配套更新:
- 管理界面新增并发/队列配置字段与 Grok 逆向提供商选项
- 用量查询服务扩展 Grok 支持,同步剩余查询次数 (固定总量 80)
- 新增并发测试脚本 (tests/concurrent-test.js),支持自定义并发数与 RPM 限制
配置项:
- GROK_COOKIE_TOKEN, GROK_CF_CLEARANCE, GROK_USER_AGENT, GROK_BASE_URL
2026-02-26 18:19:38 +08:00
lly835
022e345d68
fix: 修复同会话跨模型缓存键不命中问题
...
移除 prepareRequestBody 中非 default sessionId 时的 model 前缀拼接,
使同一会话内切换模型时能复用缓存,与注释中'弱化 model 依赖'的设计意图一致。
Closes #328
2026-02-26 01:18:32 +08:00
hex2077
ed8b889586
fix: 确保工具结果消息内容在转换时被正确序列化
...
- 修复 OpenAIConverter 中工具结果消息内容为对象时未序列化为字符串的问题
- 修复 ClaudeConverter 中工具结果消息内容为对象时未序列化为字符串的问题
- 修复 Kiro 提供程序中工具描述为空时导致请求失败的问题
- 更新 README 文档,添加 Kiro 扩展思考和提供商优先级配置说明
- 清理过时和未使用的测试文件以保持代码库整洁
2026-02-20 19:52:50 +08:00
何夕2077
f16f972d97
Merge pull request #320 from Asoubra12/pr/kiro-extended-thinking-slim
...
feat(kiro): add extended thinking passthrough and structured reasoning outputs
2026-02-20 19:27:04 +08:00
hex2077
71372495e0
feat(gemini): 添加 gemini-3.1-pro-preview 模型支持
...
在 provider-models.js 和 antigravity-core.js 中添加了新模型 gemini-3.1-pro-preview 的配置,使其可用于 gemini 和 gemini-antigravity 提供商。同时更新了模型别名映射,确保模型标识符能正确映射。
2026-02-20 19:18:15 +08:00
hex2077
fbc5357519
feat(claude): 添加 claude-sonnet-4-6 模型支持
...
更新模型列表和映射以支持新的 Claude Sonnet 4.6 模型。
2026-02-18 22:19:04 +08:00
hex2077
55879396c8
feat(converters): 为请求添加 metadata 支持并优化会话缓存
...
- 在 CodexConverter 和 ClaudeConverter 中增加 metadata 字段,透传上游元数据
- 重构 CodexApiService 的缓存键生成逻辑,优先使用 session_id 或 conversation_id
- 从上游请求体中移除 metadata 避免透传,仅用于生成缓存键
2026-02-15 11:21:26 +08:00
hex2077
105bb39c1a
fix(provider-pool-manager): 优化节点选择策略,防止序列号导致长期排挤
...
引入相对序列号机制,计算节点序列号相对于池中最小序列号的偏移量并封顶,避免全局自增序列号在长时间周期内对节点选择造成过度惩罚,确保公平性。同时修复重置节点时未清零序列号的问题。
2026-02-14 23:20:39 +08:00
hex2077
f27c9d8732
fix(providers): 统一错误日志格式并修复提供商模型引用
...
修复多个API服务中错误日志格式不一致的问题,统一使用error.message替代data字段
修正多个提供商模型引用方式,使用MODEL_PROVIDER常量替代硬编码字符串
更新Codex API请求头配置,修复流式响应处理逻辑
为iFlow API添加签名验证机制,增强请求安全性
添加GLM-5和MiniMax M2.5等新模型支持
修复400错误状态码检查逻辑,使用error.response?.status替代error.code
2026-02-14 19:54:53 +08:00
hex2077
6ee7e78c90
feat: 增强模型支持和修复流处理问题
...
- 添加新的Qwen模型(coder-model, vision-model)到提供者列表
- 修复OpenAI Responses流结束事件处理,避免下游类型校验错误
- 更新Qwen API端点地址和版本号
- 重构Codex转换器,分离OpenAI和OpenAI Responses的转换逻辑
- 优化工具调用处理,支持嵌套function结构
- 移除健康检查功能,简化API管理初始化
- 修复消息角色转换(developer→assistant)和类型标记
2026-02-13 20:47:47 +08:00
Local User
46fc601f6c
feat: add health check monitoring and alerting system
...
- Add health status change logging with detailed information
- Add optional webhook notifications for provider health changes
- Configurable via HEALTH_ALERT_WEBHOOK_URL environment variable
- Sends notifications when provider becomes unhealthy or recovers
- Broadcast health status events for real-time UI updates
- Integrate periodic health checks in heartbeat function
- Track provider stats (usage count, error count) in health logs
This improves observability by allowing operators to:
- Monitor provider health status changes in real-time
- Receive alerts via webhook when issues occur
- View detailed health statistics for troubleshooting
2026-02-13 08:37:12 +08:00
Codex
9f3040cf49
feat(kiro): add request-side extended thinking support and structured reasoning outputs
2026-02-11 12:26:03 +03:00
hex2077
82cab7a91f
fix(openai): 更新代理配置的提供者标识符
...
将 getProxyConfigForProvider 调用中的提供者标识符从 'codex' 更改为 'openai-codex-oauth',以匹配最新的代理配置命名约定,确保代理设置能正确生效。
2026-02-11 11:18:43 +08:00
hex2077
a7b29d9d48
fix(provider-pool): 修正标记不健康提供者时的错误状态判断
...
将标记不健康提供者时的状态检查从 `status === 400` 改为 `error.code === 400`,确保正确识别客户端错误。同时在标记时传递错误信息给 `markProviderUnhealthy` 方法,以提供更详细的故障原因。
2026-02-09 21:58:45 +08:00
hex2077
27acc72dfd
feat: 增加登录过期配置并优化错误处理
...
- 新增 LOGIN_EXPIRY 配置项,支持自定义管理后台登录 Token 有效期
- 优化 provider 错误计数逻辑,当 MAX_ERROR_COUNT 为 0 时禁用自动标记不健康
- 修复工具消息转换中对象内容未序列化的问题
- 增强网络错误处理,可重试的网络错误不再导致进程退出
- 过滤 Claude Kiro provider 中描述为空的工具,避免 API 调用失败
2026-02-09 19:50:35 +08:00
hex2077
4d588f6c7d
fix: 防止流式响应中重复发送结束标志并添加新模型支持
...
修复 handleStreamRequest 中可能重复发送流结束标志的问题,新增 hasMessageStop 状态跟踪。
在 provider-pool-manager 中修复临时配置缺少全局配置的问题。
为 Gemini 提供者添加新的模型支持:gemini-claude-opus-4-6-thinking。
2026-02-08 15:42:45 +08:00
hex2077
d0319047a1
feat: 添加对新模型 claude-opus-4-6 和 gpt-5.3-codex 的支持
...
- 在 Claude Kiro 提供商的模型映射表中新增 claude-opus-4-6
- 在提供商模型列表中为 claude-kiro-oauth 添加 claude-opus-4-6
- 在 OpenAI Codex 提供商中更新 API 版本至 0.98.0 并添加 gpt-5.3-codex 模型
2026-02-06 11:43:38 +08:00
何夕2077
cbab1c3b5e
Merge pull request #306 from majie776/main
...
fix(stream):修复流被客户端关闭的时候的写入错误导致服务crash的问题
2026-02-05 20:31:27 +08:00
hex2077
57e2165fb8
feat: 支持批量关联配置文件并优化模型列表管理
...
- 修改批量关联功能,从逐个请求改为批量处理,提高效率
- 扩展快速链接API,支持同时处理多个配置文件
- 优化iFlow模型获取逻辑,支持手动添加多个模型
- 更新提供商模型列表,添加新模型并调整顺序
2026-02-05 17:52:22 +08:00
hex2077
de3f6a5f21
feat: 添加监控请求ID临时存储功能到各AI服务提供商
...
在各AI服务提供商的核心API方法中添加monitorRequestId临时存储逻辑,用于跟踪请求链路。当请求体中包含_monitorRequestId字段时,将其存储到配置对象中并从请求体中删除,避免干扰API调用。
修改涉及以下提供商:
- Claude (claude-core.js, claude-kiro.js)
- OpenAI (openai-core.js, openai-responses-core.js, iflow-core.js, codex-core.js, qwen-core.js)
- Forward (forward-core.js)
- Gemini (gemini-core.js, antigravity-core.js)
统一处理模式:检查请求体中的_monitorRequestId字段,存储到this.config._monitorRequestId,然后从请求体中删除该字段。
2026-02-05 15:28:43 +08:00
majie776
2816de1451
fix(stream):修复流被客户端关闭的时候的写入错误导致服务crash的问题
2026-02-05 10:42:46 +08:00
hex2077
2c758db714
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
2026-02-04 18:36:28 +08:00
hex2077
ae10e9e365
feat(GeminiConverter): 支持从Gemini响应中提取tool_calls
...
在toOpenAIResponse方法中添加对Gemini响应中functionCall部分的解析,将其转换为OpenAI格式的tool_calls。当检测到工具调用时,自动设置finish_reason为"tool_calls",并构建包含tool_calls字段的assistant消息。
2026-02-04 18:36:15 +08:00
Jie Ma
6170666ff3
修复某些客户端没有接收到流结束信息后的错误
2026-02-04 13:42:28 +08:00
hex2077
ede63ac229
feat(gemini-oauth): 添加批量导入功能和文档更新
...
- 在 Gemini OAuth 模块中添加批量导入 Token 功能,支持流式进度反馈
- 为 Kiro OAuth 的批量导入功能优化自动关联逻辑,改为逐个凭据关联
- 在 Web UI 中添加 Gemini 批量导入的 API 端点
- 更新多语言文档,添加新的 FAQ 条目解决常见错误
- 扩展国际化翻译支持新的界面文本
2026-02-03 21:49:43 +08:00
hex2077
c632f184c6
feat(claude-kiro): 为空工具列表添加占位工具避免API错误
...
refactor(usage-api): 提取支持的提供商列表为共享常量
fix(usage-service): 移除重置时间的本地化格式化避免显示问题
style(usage-manager): 为不支持用量显示的提供商优化UI展示
chore: 更新README中的文档链接指向docs目录
2026-02-03 18:55:22 +08:00
hex2077
3a54404e0e
fix(oauth): 优化自动关联凭证逻辑以支持单个凭证关联
...
- 修改 autoLinkProviderConfigs 函数,增加 onlyCurrentCred 选项
- 当 onlyCurrentCred 为 true 时,仅关联当前生成的凭证文件
- 避免批量导入凭证时重复扫描所有配置文件
- 在 OAuth 回调中传递 credPath 参数,确保正确关联新凭证
- 统一 install-and-run 脚本中的包管理器检测逻辑
- 优化 Claude 提供商的 token 计数方法,提高准确性
2026-02-03 12:15:35 +08:00
hex2077
d6c2bd7919
feat(usage): 在用量查询页面添加服务端时间显示
...
- 在 UI 中添加服务端时间显示组件,包含样式和国际化支持
- 修改用量 API 返回数据,始终包含 serverTime 字段
- 更新前端 JavaScript 以解析并显示服务端时间
- 新增 OpenClaw 配置指南文档(中/英/日文)
2026-02-01 22:43:28 +08:00
hex2077
3b0c2180d2
feat(usage): 改进用量显示并添加按提供商刷新功能
...
- 添加 formatToLocal 工具函数统一处理日期本地化显示
- 用量卡片添加重置时间显示和双击刷新功能
- 优化 Gemini/Antigravity/Codex 的用量数据格式化逻辑
- 改进 Codex 用量显示,优先展示周限制信息
- 添加相关国际化文本支持
2026-01-28 16:51:45 +08:00
hex2077
be64166f37
fix(auth): 修复OAuth服务器端口占用和会话管理问题
...
- 添加全局活动服务器管理,防止端口重复绑定
- 增加轮询超时时间至10分钟,避免过早超时
- 统一错误事件广播格式,添加时间戳字段
- 清理会话时不再重复关闭服务器
- 排除字段列表中添加_lastSelectionSeq字段
2026-01-28 00:07:00 +08:00
hex2077
03a1a656f4
feat: 新增 OpenAI Codex OAuth 支持与用量查询功能
...
- 添加 Codex OAuth 提供商支持,包括核心服务、适配器和策略实现
- 在用量管理页面新增支持用量查询的提供商列表显示
- 为 Codex 添加专用的用量查询接口和格式化显示
- 更新 Docker 配置以暴露 Codex OAuth 回调端口 1455
- 完善多语言文档,记录 Codex 配置和使用方法
- 修复流式响应中工具调用的 finish_reason 处理逻辑
- 增强 AI 监控插件对数组类型 chunk 的处理能力
2026-01-27 16:31:23 +08:00