Commit graph

252 commits

Author SHA1 Message Date
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
Yoahoug
01f0d5cb59 fix: 修复 Codex OAuth 回调监听,添加自动完成流程 2026-01-16 17:56:30 +08:00
何夕2077
8684437227 Merge pull request #253 from Yoahoug/feature/codex-support
添加对codex的支持,符合原项目的逻辑
2026-01-16 17:39:45 +08:00
Yoahoug
aa4b8692af fix: 修复 Codex OAuth 配置文件关联逻辑 2026-01-16 17:37:04 +08:00
hex2077
0974a5e83d refactor(auth): 使用 axios 替代 fetch 以支持代理配置
重构 OAuth 处理中的网络请求模块,将原生 fetch 替换为 axios,以正确处理代理配置。axios 提供了更完善的代理支持和错误处理机制,同时保持与原有 fetch API 的兼容性。

refactor(providers): 优化健康检查逻辑

- 提前返回未启用健康检查的情况
- 仅在开启自动刷新 token 时执行快速预检
- 使用 AbortController 替代 Promise.race 实现超时控制
- 优化错误消息和日志信息
2026-01-16 17:35:15 +08:00
何夕2077
3ee5e29180 Merge pull request #255 from leonaii/main
feat(credentials): 增强凭证解析容错能力并添加预验证机制
2026-01-16 17:23:44 +08:00
leonai
228898bbf7 feat(credentials): 增强凭证解析容错能力并添加预验证机制
新增从损坏 JSON 中提取关键凭证字段的恢复方法

凭证缓存管理器增加 token 有效性预检查,跳过无效凭证

配置 API 补充 POOL_SIZE_LIMIT 字段同步

优化日志输出,区分加载失败和跳过的凭证统计
2026-01-16 17:16:38 +08:00
Yoahoug
47ad305b4e feat: add Codex provider support 2026-01-16 16:53:06 +08:00
hex2077
8faf913c28 feat(credential): 移除当前进程的锁文件特殊处理逻辑
docs: 添加PROVIDER_ADAPTER_GUIDE.md文档说明接入流程

修改凭证缓存管理器,不再允许当前进程复用锁文件,确保同一时间只有一个实例运行。
同时新增提供商接入指南文档,详细说明后端到前端的全流程调整步骤。
2026-01-16 16:13:53 +08:00
何夕2077
2b09653d12 Merge pull request #252 from leonaii/main
feat(pool): 添加账号池轮询上限配置默认全部,并优化服务端重载问题
2026-01-16 15:53:59 +08:00
leonai
025828868e feat(pool): 添加账号池轮询上限配置默认全部,并优化服务端重载问题
1. 新增 POOL_SIZE_LIMIT 配置项,限制每个提供商类型参与轮询的最大健康凭证数量
2. 优化 provider-pool-manager 选择逻辑,按使用次数升序取 Top N 候选池
3. 修复 credential-cache-manager 配置重载时的实例锁检测问题
4. 完善前端配置界面和中英文国际化支持
2026-01-16 12:34:41 +08:00
hex2077
b33ff03e1f fix(credential-cache): 允许当前进程继续运行当检测到自身锁文件时
当检测到锁文件属于当前进程时不再抛出错误,而是允许继续运行。这解决了当进程意外重启时可能出现的锁文件冲突问题。
2026-01-16 12:24:04 +08:00
何夕2077
0b5bfbf5e0 Merge pull request #246 from leonaii/main
feat: 引入凭证缓存管理器,优化 OAuth Token 并发处理
2026-01-15 21:54:24 +08:00
leonai
9f58db2c1f feat: 引入凭证缓存管理器,优化 OAuth Token 并发处理
- 新增 CredentialCacheManager 替代文件锁机制
- 所有 OAuth Provider 迁移到内存缓存
- Token 刷新策略优化:过期阻塞,即将过期后台刷新
- 健康检查增加 Token 预检和超时保护
- 进程退出时自动同步凭证到文件
2026-01-15 21:49:54 +08:00
jimmylau
aaf49ef2d9 fix retrieveUserQuota for gemini-cli 2026-01-15 19:18:59 +08:00
hex2077
535a93fd31 Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-01-14 20:46:53 +08:00
hex2077
da72c2152d refactor(antigravity): 优化系统提示词处理逻辑并改进模型提供者检测
重构 antigravity-core.js 中的系统提示词处理方式,改为分段处理以提高可读性
修改 ollama-handler.js 中的模型提供者检测逻辑,使用模型列表匹配替代硬编码规则
2026-01-14 20:44:13 +08:00
leonai
ec82841c26 Merge branch 'main' of https://github.com/leonaii/AIClient-2-API 2026-01-14 20:14:55 +08:00
leonai
92c2f44a73 feat(kiro): 添加凭证错误处理和配额恢复机制
1. 新增 CredentialError 自定义错误类,支持凭证切换标记
2. 添加 402 配额耗尽错误处理,支持验证用量并设置下月恢复时间
3. 重构 429/5xx 错误处理策略,改为等待后切换凭证而非指数退避重试
4. 新增 markProviderUnhealthyWithRecoveryTime 方法支持计划恢复
5. 添加 _checkAndRecoverScheduledProviders 自动恢复已到期凭证
6. 调整凭证切换最大重试次数从 2 次增加到 5 次
7. 支持 skipErrorCount 标记避免临时错误影响凭证健康度统计
2026-01-14 20:14:40 +08:00
hex2077
5c90100997 feat(并发控制): 实现去重锁机制并优化提供者选择并发安全
为关键操作添加去重锁机制,确保并发请求只执行一次共享结果
重构 provider-pool-manager 使用链式锁保证选择操作的原子性
更新各服务提供者使用 withDeduplication 替代自定义单例锁
2026-01-14 16:01:04 +08:00
leonai
3b0fc590d5 fix(kiro): 添加token刷新单例锁并增强JSON解析容错
1. 引入tokenRefreshPromises Map实现按凭证文件路径的单例锁机制
2. 防止多个并发请求同时刷新同一个token导致的文件锁串行化问题
3. 添加repairJson函数处理损坏的JSON文件,增强解析容错能力
4. 重构token刷新逻辑,提取_doTokenRefresh和_reloadCredentialsAfterRefresh方法
2026-01-14 13:44:47 +08:00
leonai
3a04777439 Merge branch 'main' of https://github.com/leonaii/AIClient-2-API 2026-01-14 11:37:02 +08:00
leonai
b14ae21917 fix(kiro): 增强401错误处理并支持Gemini格式请求体转换,修复健康KIRO健康检查错误。
1. 在callApi和callApiStream方法中添加contents到messages格式的自动转换
2. 401错误时先刷新UUID再刷新token,提高认证恢复成功率
3. 新增_refreshUuid方法用于生成新的UUID标识
4. ProviderPoolManager新增refreshProviderUuid方法支持UUID刷新
5. 移除Kiro OAuth的contents格式备用请求,统一使用messages格式
2026-01-14 11:31:28 +08:00
hex2077
58c66fcd4b feat(文件锁): 添加文件锁机制防止凭证文件并发写入冲突
实现文件锁工具类,用于防止多个异步操作同时写入同一文件导致的竞争条件。修改各认证模块的凭证保存逻辑,在写入文件前获取锁,确保写入操作的原子性。

- 新增 file-lock.js 工具模块,提供 acquireFileLock 和 withFileLock 方法
- 修改所有认证模块的凭证保存逻辑,使用文件锁保护写入操作
- 添加适当的错误处理和锁释放机制,确保资源不会泄漏
2026-01-13 22:10:49 +08:00
hex2077
d70352b26e Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-01-13 19:09:52 +08:00
hex2077
281d242466 feat(auth): 支持自定义 Builder ID Start URL 并添加相关国际化
为 Kiro OAuth 添加 Builder ID Start URL 的可配置选项,优先使用前端传入的值
添加相关国际化文本和 UI 控件,允许用户自定义或重新生成 Start URL
同时支持通过 options.authMethod 参数指定认证方法
2026-01-13 19:09:17 +08:00