Commit graph

582 commits

Author SHA1 Message Date
hex2077
32c46f8bfa fix(i18n): 将健康状态翻译从“健康”改为“可用”
更新中英文翻译文件中 providers.status.healthy 的显示文本,使其更准确地反映“可用”状态而非单纯的“健康”状态。
2026-03-04 14:59:06 +08:00
何夕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
何夕2077
76eaf58b32
Update VERSION 2026-03-04 13:28:10 +08:00
hex2077
9ca8b86a4f refactor: 优化提供商加载逻辑并修复流式重试问题
- 将静态提供商配置更新逻辑移至加载函数,避免重复执行
- 修复流式请求重试时已发送数据导致响应损坏的问题
- 增强模型列表和内容生成的服务适配器选择逻辑
- 改进错误处理和日志记录
2026-03-04 13:26:08 +08:00
何夕2077
694f0c9099
Update VERSION 2026-03-03 23:10:38 +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
何夕2077
65cdcaa3b5
Update VERSION 2026-03-03 00:29:40 +08:00
何夕2077
8d5c3339b4
Update VERSION 2026-03-02 22:12:04 +08:00
hex2077
698c6e11d3 fix(codex): 修复凭据刷新和过期时间处理逻辑
- 记录加载凭据的路径,确保刷新后写回同一文件
- 修复 token 刷新时过期时间字段名错误(expired vs expire)
- 增加 expiresAt 有效性检查,防止 NaN 导致刷新永不触发
- 优化凭据保存路径逻辑,避免读写不一致问题
2026-03-02 22:11:45 +08:00
hex2077
1fda373742 Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-03-02 21:19:20 +08:00
hex2077
eeff72141c docs: 更新 README 文档以添加 Grok 协议支持说明
- 在中文、日文和英文 README 中更新版本日志,新增 Grok 协议支持条目
- 在核心优势部分将 Grok 添加到支持模型列表中
- 在最新模型支持部分添加 Grok 3/4 的详细描述
- 新增 Grok Cookie/SSO 配置步骤章节
- 在提供商列表和代理配置示例中添加 Grok 支持
2026-03-02 21:19:13 +08:00
何夕2077
89ce298703
Update VERSION 2026-03-02 19:50:14 +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
何夕2077
1cf6f9092b
Update VERSION 2026-03-01 22:02:10 +08:00
hex2077
f22cc4499a fix(tls-sidecar): 修复代理请求标头处理和配置显示空值问题
修复 Cloudflare 403 错误:彻底清理代理和网络特征标头,保持小写形式
修复前端配置显示:正确处理 null/undefined 值,避免显示 "null" 字符串
2026-03-01 22:01:09 +08:00
何夕2077
829fafc651
Update VERSION 2026-02-28 17:53:36 +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
afedccf934 chore: 更新版本号至2.9.9.32并优化Docker构建
- 更新VERSION文件中的版本号
- 在go mod download失败时继续执行构建
- 在构建tls-sidecar前执行go mod tidy以确保依赖整洁
2026-02-28 00:06:01 +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
何夕2077
4f9189e96e
Update VERSION 2026-02-27 22:32:44 +08:00
hex2077
04904dc38b Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-02-27 22:32:17 +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
何夕2077
33981db33b
Update VERSION 2026-02-27 22:24:20 +08:00
hex2077
73079dc4ee Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-02-27 22:23:55 +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
66a9dcd1a5
Update VERSION 2026-02-27 13:43:44 +08:00
hex2077
3b345887d4 docs: 添加关于脚本编码和换行符的注释
确保脚本使用 Windows CRLF 换行符和 UTF-8 编码,以提高可读性和跨平台一致性。
2026-02-27 13:43:06 +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
何夕2077
328bdcee43
Merge pull request #342 from lly835/fix/logger-context-memory-leak
fix: 为 Logger.requestContext 添加 TTL 清理机制防止内存泄漏
2026-02-27 11:12:36 +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
何夕2077
1f913a13b8
Update VERSION 2026-02-26 18:24:35 +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
何夕2077
4ee0fb4b96
Merge pull request #337 from lly835/fix/plugin-list-duplicate-rendering
fix: 修复插件管理页面卡片重复渲染问题
2026-02-26 11:50:32 +08:00
何夕2077
85b9efb110
Merge pull request #338 from lly835/fix/codex-cache-key-cross-model
fix: 修复同会话跨模型缓存键不命中问题
2026-02-26 11:50:11 +08:00
lly835
022e345d68 fix: 修复同会话跨模型缓存键不命中问题
移除 prepareRequestBody 中非 default sessionId 时的 model 前缀拼接,
使同一会话内切换模型时能复用缓存,与注释中'弱化 model 依赖'的设计意图一致。

Closes #328
2026-02-26 01:18:32 +08:00
lly835
f44222bf61 fix: clear plugin list container before rendering to prevent duplicate cards 2026-02-26 00:48:20 +08:00
hex2077
f6c9881926 Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-02-22 21:59:18 +08:00
hex2077
4ba514b353 docs: 从README文件中移除赞助者列表和赞助二维码
移除英文、中文、日文README文件中的赞助者列表和赞助二维码部分,以保持文档内容的简洁和一致性。
2026-02-22 21:59:03 +08:00
何夕2077
be45ac7666
Update VERSION 2026-02-20 19:53:26 +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
42d1bd276f Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-02-20 19:18:24 +08:00