Commit graph

277 commits

Author SHA1 Message Date
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
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
hex2077
a5236b6709 Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-01-25 23:25:04 +08:00
hex2077
d3c853de94 fix: 更新Codex策略以适配新的Responses API格式
将Codex的provider策略从OpenAIStrategy切换为ResponsesAPIStrategy,以适配新的API接口。
更新请求头信息,包括版本号、beta特性标志和连接设置。
调整消息转换逻辑,将assistant角色映射为developer角色。
优化token刷新逻辑,确保在刷新成功后重置provider状态。
2026-01-25 23:23:15 +08:00
Yoahoug
cd15a3a637 修复codex 2026-01-25 23:09:45 +08:00
hex2077
e41eb3491a fix: 为日志配置提供默认值并改进插件配置合并逻辑
- 为日志配置项添加默认值,避免未配置时出现 undefined
- 修改插件配置加载逻辑,始终生成默认配置并与本地配置合并
- 保留本地配置中的 enabled 字段,不因默认配置而覆盖
2026-01-25 20:31:56 +08:00
hex2077
ce7d78f7d0 feat(plugins): 新增 AI 监控插件并优化日志管理
- 新增 AI 监控插件 (ai-monitor),支持全链路协议转换监控
  - 捕获 AI 接口请求参数(转换前后)
  - 监控流式和非流式响应(转换前后)
  - 支持内部请求转换监控
- 新增日志清空功能,支持前端和服务器端同时清空当日日志
- 默认禁用 api-potluck 和 ai-monitor 插件
- 更新多语言文档和配置示例
- 优化提供商适配器开发指南
2026-01-25 19:40:04 +08:00
hex2077
245583b96a feat(logging): 添加日志系统配置和下载功能
- 新增日志系统配置选项,支持日志级别、输出模式、文件大小等设置
- 添加当日日志文件下载功能,可通过Web界面直接下载
- 将console.log/error替换为结构化logger,提升日志可管理性
- 在日志页面添加自动滚动到底部功能
- 更新配置示例文件,包含完整的日志配置参数
2026-01-25 17:24:39 +08:00
hex2077
13ed2087d2 fix(provider-pool): 修复并发选点时的竞争条件并改进评分算法
- 将链式 Promise 锁改为标志位锁,解决同一微任务循环内的并发问题
- 引入自增序列号确保毫秒级并发下的原子排序,避免节点重复选择
- 优化节点评分算法,平衡 lastUsedTime、usageCount 和 selectionSeq
- 增加并发测试脚本,支持压力测试和性能统计
2026-01-24 16:30:57 +08:00
hex2077
da8ad6cddb feat(forward): 新增通用转发API提供商支持
- 添加 forward-api 提供商类型,支持将请求透明转发到任意API端点
- 实现 ForwardStrategy、ForwardApiService 和适配器,支持流式和非流式响应
- 在转换逻辑中跳过 forward 协议的数据转换以保持透明性
- 更新UI支持:添加提供商配置字段、多语言标签和显示名称
- 扩展提供商状态检查和健康监测配置
- 为转发请求保留原始路径作为端点参数
2026-01-23 18:33:56 +08:00
hex2077
8afe41870d refactor: 优化Claude-》Gemini的转换逻辑,增加tools适配 2026-01-22 22:39:19 +08:00
hex2077
ad2432a37c feat(converter): 完善Claude和Gemini转换器对thinking块和工具调用的支持
- 在ClaudeConverter中添加thinking块和redacted_thinking块的处理逻辑
- 改进tool_use和tool_result块的转换,支持ID映射和参数规范化
- 在GeminiConverter中实现thinking块与Claude格式的互转
- 添加工具参数重映射逻辑,解决Gemini与Claude参数命名差异问题
- 支持流式场景下的thinking_delta和signature_delta事件处理
2026-01-22 21:36:05 +08:00
hex2077
d8ec86918f feat(provider): 添加请求时凭证临近过期自动刷新功能
在多个provider的核心代码中添加凭证过期检查逻辑,当检测到凭证即将过期时自动标记为需要刷新
新增formatLog和formatExpiryLog工具函数统一日志格式
修改provider-pool-manager以支持带优先级的刷新队列
2026-01-22 17:30:31 +08:00
hex2077
ba4ec31f9a fix(provider): 增加provider.needsRefresh重置并调整最大错误次数为10
- 在重置provider健康状态时增加needsRefresh标志重置
- 将MAX_ERROR_COUNT默认值从3调整为10,提高容错性
- 忽略400状态码的错误计数,避免客户端参数问题影响provider健康状态
2026-01-22 12:24:33 +08:00
hex2077
785ac7890d feat(claude-kiro): 支持AWS企业用户idcRegion字段并优化模型配置
- 在AWS凭据导入说明中增加idcRegion字段要求
- 移除不再使用的Amazon Q相关URL和旧模型映射
- 为Builder ID认证流程添加region选择和idcRegion支持
- 优化凭据加载逻辑,支持独立配置idcRegion
- 在UI中添加region输入框和刷新按钮
2026-01-21 15:56:01 +08:00
hex2077
ccd97c1066 feat(provider): 添加refreshCount重置逻辑并优化模型显示
refactor(ui): 将模型列表从指南页移动到仪表盘页
fix(api): 移除健康检查中的abortController信号
style(css): 迁移模型列表样式到仪表盘样式文件
2026-01-21 00:43:35 +08:00
hex2077
fe131b33d2 fix(provider): 优化节点刷新逻辑
- 修改节点刷新逻辑,当健康节点少于5个时立即刷新
- 移除刷新时的随机延迟以避免并发问题
- 更新Claude Kiro版本号至0.8.140
- 在初始化API服务时添加isReady参数控制预热逻辑
- 在modal.js中排除更多字段
2026-01-20 00:10:04 +08:00
hex2077
f8faee93fc Revert "add letta"
This reverts commit 3faa599b95523160232df3d5483840b56d5a4702.
2026-01-19 21:55:44 +08:00
hex2077
b7f2142411 add letta 2026-01-19 21:55:35 +08:00
hex2077
bcaa61869a refactor(auth): 添加os模块导入以支持跨平台功能 2026-01-18 17:33:41 +08:00
hex2077
464c156fd2 fix(provider-pool-manager): 修复节点权重计算逻辑问题
改进权重计算算法,解决未使用节点(lastUsed为null)排序异常问题。将未使用节点视为1小时前使用过,并调整使用次数惩罚为每分钟偏移量,确保公平排序。
2026-01-18 16:45:38 +08:00
hex2077
610b934f70 fix(claude): 区分403错误类型并采取不同处理措施
当遇到403错误时,新增对"temporarily suspended"错误的特殊处理:
1. 如果是账户暂停错误,直接标记凭证为不健康状态
2. 其他403错误则保持原有刷新UUID逻辑
3. 在普通请求、流式请求和用量查询中统一处理逻辑
2026-01-18 15:02:17 +08:00
hex2077
dc4e6fe0b2 feat(oauth): 修复Kiro提供商403错误处理逻辑
优化令牌刷新队列机制,增加缓冲队列减少重复刷新
更新提供商健康检查模型配置,添加iFlow和Codex相关模型
统一OAuth模块导出结构,整理各提供商OAuth实现
修复Kiro提供商403错误处理逻辑,改为标记需刷新而非直接标记不健康
2026-01-18 14:53:14 +08:00
hex2077
be814c5a56 fix: 优化凭证刷新和重试机制以避免并发冲突
- 移除 Gemini 服务中不必要的过期检查逻辑
- 在凭证刷新时添加随机延迟和最大重试次数限制
- 在流式和非流式请求重试时添加随机延迟
2026-01-18 00:04:22 +08:00
hex2077
0c710ea43f refactor(provider): 重构认证逻辑以支持读写分离架构
将认证初始化逻辑拆分为 loadCredentials 和 initializeAuth,实现异步凭证加载
修改错误处理逻辑,通过 PoolManager 标记凭证状态并触发后台刷新
移除同步刷新逻辑,优化 API 调用时的认证流程
2026-01-17 18:26:19 +08:00
hex2077
35f3f81d3e feat(provider): 实现提供商节点自动刷新与预热机制
- 新增提供商节点自动刷新队列和并发控制
- 添加系统启动预热功能,按配置预热指定数量节点
- 重构CPU使用率统计,支持子进程独立统计
- 扩展适配器接口,增加强制刷新和过期检查方法
- 更新配置管理,新增预热目标和刷新并发数配置
- 优化提供商选择策略,基于评分系统选择最佳节点
- 改进错误处理,401错误自动触发后台刷新
2026-01-17 17:08:17 +08:00
hex2077
56ef11a168 refactor: 移除 CredentialCacheManager 及相关缓存逻辑
重构多个 provider 模块,移除了 CredentialCacheManager 的依赖及相关内存缓存逻辑,改为直接读写文件系统。简化了凭证管理流程,减少了代码复杂度。

- 移除 provider-pool-manager 中的快速预检逻辑
- 移除 service-manager 中的凭证缓存初始化及同步逻辑
- 修改各 provider 核心模块的凭证加载和保存逻辑,直接操作文件系统
- 移除并发刷新时的去重锁和缓存同步机制
2026-01-17 13:16:19 +08:00
何夕2077
1ebdbdf878 Merge pull request #259 from leonaii/main
refactor(claude-orchids): 重构提示词模板并添加模型映射机制
2026-01-17 01:08:24 +08:00
leonai
7d5d35b23e refactor(claude-orchids): 重构提示词模板并添加模型映射机制
1. 重写系统提示词模板,采用更清晰的XML结构
2. 移除冗余的规则声明,简化提示词内容
3. 添加模型名称映射逻辑,将不支持的模型转换为支持的模型
2026-01-17 01:05:28 +08:00
Yoahoug
f8463ba043 refactor: 合并 codex-oauth.js 到 oauth-handlers.js,统一管理 OAuth 逻辑 2026-01-16 23:20:55 +08:00
Yoahoug
a25e22d269 fix: Codex OAuth 添加代理支持和60秒轮询超时 2026-01-16 23:04:09 +08:00