Commit graph

148 commits

Author SHA1 Message Date
何夕2077
982babb5aa Merge pull request #158 from ZqinKing/main
feat(fallback): 新增跨协议模型 Fallback 映射功能
2026-01-04 15:25:42 +08:00
何夕2077
16074c1030 Merge pull request #155 from macdao/fix-antigravitiy-usage-display
add project payload in fetchAvailableModels request to get correct remainingFraction
2026-01-04 15:25:26 +08:00
ZqinKing
4ec39f4df6 feat(fallback): 新增跨协议模型 Fallback 映射功能
## 功能概述
实现跨协议模型级别的 Fallback 映射机制,允许在主 Provider 不可用时,
根据模型名称自动映射到其他协议的 Provider 和模型。

## 设计原理
- 原有 providerFallbackChain 只支持同协议内回退
- 新增 modelFallbackMapping 支持跨协议映射(如 Gemini → Claude)
- 优先级:同协议回退 > 跨协议模型映射

## 代码修改
- configs/config.json.example: 新增 modelFallbackMapping 配置示例
- src/provider-pool-manager.js: 实现跨协议映射选择逻辑
- src/service-manager.js: 传递 actualModel 参数
- src/common.js: 处理模型 fallback 后的模型名更新
- src/ui-manager.js: UI配置读写支持
- static/app/config-manager.js: 前端配置管理
- static/app/i18n.js: 中英文国际化文案
- static/index.html: 高级配置区新增配置项

## 配置示例
modelFallbackMapping: {
  "gemini-claude-opus-4-5-thinking": {
    "targetProviderType": "claude-kiro-oauth",
    "targetModel": "claude-opus-4-5"
  }
}
2026-01-04 08:40:40 +08:00
Xi Qi
b5614a1f43 add project payload in fetchAvailableModels request to get correct remainingFraction 2026-01-03 22:59:21 +08:00
Yoahoug
8cbbf57174 再次修复kiro 400问题,用占位符替换历史信息中的image,缩小包体大小 2026-01-03 22:03:49 +08:00
hex2077
0f335db090 Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API 2026-01-03 18:16:49 +08:00
hex2077
f691380482 feat: 新增主题切换功能并优化提供商池初始化
refactor: 重构配置管理移除冗余提供商配置
fix: 修复手动OAuth回调处理逻辑
style: 优化用量卡片UI增加折叠功能
perf: 提升服务启动时提供商池节点初始化效率
docs: 更新i18n翻译文本和配置说明
chore: 清理无用代码和配置文件
2026-01-03 18:02:16 +08:00
Yoahoug
10146e3cf0 fix: Kiro长上下文400错误修复 & 添加自定义代理支持
## Kiro 长上下文修复
- 添加请求体大小限制(默认240KB),避免超过Kiro API限制导致400错误
- 添加 cleanIncompleteToolCalls 方法,清理不完整的工具调用
- 确保截断后第一条消息是user类型
- 新增配置项 KIRO_MAX_REQUEST_SIZE_KB

## 自定义代理支持
- 为各Provider添加独立的代理配置选项
- 支持 USE_SYSTEM_PROXY_* 配置
- UI界面添加代理配置入口
- 新增 proxy-utils.js 代理工具模块
2026-01-02 23:32:10 +08:00
hex2077
bb6195ee2d feat: 添加主进程管理和自动更新功能
- 引入主进程(master.js)管理子进程生命周期
- 实现子进程崩溃自动重启机制
- 添加服务管理API端点
- 支持通过Web界面检查更新和重启服务
- 更新文档添加FAQ章节
- 优化系统信息显示和UI交互
- autoLinkProviderConfigs增加更新providerPoolManager逻辑
2025-12-31 23:23:56 +08:00
何夕2077
ecdf7f31e7 Merge pull request #142 from clansty/feature/count-tokens-api
feat: 实现 Anthropic 兼容的 count_tokens API
2025-12-28 16:42:27 +08:00
Clansty
0fcc29c9af fix 2025-12-27 21:16:59 +08:00
何夕2077
cdb936cfd6 Merge pull request #141 from yicone/main
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:17:08 +08:00
hex2077
fc3eef0b3d feat(oauth): 重构OAuth授权流程并支持自定义端口
- 重构OAuth回调服务器管理,改为按提供商而非端口存储
- 在授权模态框中添加端口自定义功能
- 支持在生成授权URL时指定自定义端口
- 更新Dockerfile和文档以反映新增的OAuth端口需求
- 将授权逻辑从event-handlers.js移至provider-manager.js
- 优化服务器关闭逻辑,避免端口冲突
2025-12-27 17:11:19 +08:00
yicone
d541c36b47 fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility 2025-12-27 17:01:02 +08:00
Clansty
13b34411fc feat: 实现 Anthropic 兼容的 count_tokens API
- 在 KiroApiService 中添加 countTokens 方法,支持计算 messages、system、tools 的 token 数
- 使用 @anthropic-ai/tokenizer 进行准确的 token 计算
- 支持 text、tool_use、tool_result、image、document 等内容类型
- 修改 request-handler.js 处理 POST /v1/messages/count_tokens 请求
- 返回格式与 Anthropic 官方 API 一致:{ input_tokens: number }

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 23:01:10 +08:00
Clansty
839731fd48 fix(kiro): 修复 tool_use 的 input 字段序列化问题
将 tool_use 块的 input 字段从 JSON 字符串解析为对象,
修复 Claude SDK 校验不通过的问题。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:28:29 +08:00
hex2077
3e0699a2fe refactor(auth): 改进密码文件读取和验证逻辑
- 使用异步方式检查文件存在性避免竞态条件
- 增加详细的日志输出帮助调试
- 统一处理文件不存在和读取失败的情况
- 在验证函数中添加密码长度日志
2025-12-25 18:10:06 +08:00
hex2077
acb666d089 fix(auth): 处理空密码文件时使用默认密码
当密码文件存在但内容为空时,现在会正确使用默认密码。同时优化了错误日志信息,使其更清晰。
2025-12-25 17:58:47 +08:00
hex2077
8bfa7e1dbf feat(认证): 添加默认密码作为备用方案
当密码文件不存在或读取失败时,使用默认密码作为备用方案,提高系统的容错能力
2025-12-25 17:43:12 +08:00
hex2077
8a1ccb9877 refactor(config): 重构配置文件路径至configs目录并更新相关引用
- 将配置文件统一迁移至configs目录
- 更新所有相关代码中对配置文件的引用路径
- 删除不再使用的run-docker脚本文件
- 更新文档中关于配置文件路径的说明
- 调整默认配置参数和路径引用方式
2025-12-25 16:48:42 +08:00
hex2077
7e16afd806 fix: 更新模型名称并修复节点选择逻辑
更新 PROVIDER_MODELS 中的 gemini-3-flash 模型名称
在 ProviderPoolManager 中更新错误节点的 lastUsed 时间,防止 LRU 策略导致重复选择失败节点
2025-12-24 21:44:15 +08:00
hex2077
8f843f50f6 feat: 添加版本号显示功能并更新CI流程
- 创建VERSION文件存储版本号
- 在系统信息面板添加版本号显示
- 更新Docker发布流程以自动读取VERSION文件并创建Git标签
- 在OAuth授权模态框中添加端口号提示
- 添加相关i18n翻译字段
2025-12-24 18:26:25 +08:00
unihon
e663e85ef9 fix(usage): 修复provider_health接口过滤参数不生效问题 2025-12-23 18:21:43 +08:00
hex2077
dfce4a6aac feat(provider): 添加跨类型 Fallback 链支持
实现当主 Provider Type 无可用账号时自动切换到配置的 Fallback 类型功能,包括:
1. 在 config.json 中添加 providerFallbackChain 配置项
2. 扩展 ProviderPoolManager 支持 Fallback 逻辑
3. 新增 getApiServiceWithFallback 方法处理带 Fallback 的服务获取
4. 更新 UI 界面和文档说明
2025-12-23 17:22:42 +08:00
hex2077
ca8a68261f fix(claude-kiro): 确保历史消息以assistantResponseMessage结尾
当历史消息最后一条是用户消息时,添加空的assistantResponseMessage以满足Kiro API要求
默认存在configs目录,用于docker挂载
2025-12-23 15:21:37 +08:00
lemon07r
902bee1aa5 fix: map finish_reason to 'tool_calls' in Gemini stream when tool calls are present 2025-12-22 19:46:26 -05:00
lemon07r
ac47e04cf9 fix: add missing 'index' to Gemini streaming tool calls and improve tests 2025-12-22 19:36:01 -05:00
unihon
b25b2461c5 Merge branch 'justlovemaki:main' into feature/provider-health-api 2025-12-22 18:32:55 +08:00
hex2077
231505afd9 feat: 更新OAuth回调服务器主机和图片资源
fix: 修复curl命令中baseURL拼接问题
refactor: 将授权成功后的刷新逻辑移至provider-manager
docs: 更新README中的赞助者列表和图片引用
2025-12-22 13:44:35 +08:00
unihon
7a5ce6dbd5 feat(usage): 添加provider健康检查接口 2025-12-22 01:24:23 +08:00
hex2077
0816de2ba2 feat(ui): 添加图片放大功能并优化仪表盘布局
实现二维码图片点击放大功能,重构仪表盘顶部布局将联系信息与统计卡片并排显示
添加多语言图片切换功能,根据语言显示不同的赞助和联系方式图片
优化Kiro OAuth流程,增加自动关联凭据到Pools的功能
2025-12-21 21:09:16 +08:00
Ravens2121
2dc7514d37 feat: add claude-kiro-oauth provider OAuth authorization support
Amp-Thread-ID: https://ampcode.com/threads/T-019b4067-8a07-72db-b29f-20e581b9ea58
Co-authored-by: Amp <amp@ampcode.com>
2025-12-21 18:45:26 +08:00
hex2077
abe6a15b93 fix(claude-kiro): 修复社交认证方法下未检查profileArn的问题
当使用社交认证方法时,添加对profileArn的检查以避免潜在的错误

refactor(ui-manager): 改进console日志的错误处理
增强日志系统对复杂对象和错误的处理能力,避免字符串化时出现异常
2025-12-21 17:25:18 +08:00
hex2077
96587f1ad0 refactor(provider-pool-manager): 用LRU策略替换轮询算法以均衡分配
改进提供商选择逻辑,从简单的取模轮询改为基于最后使用时间和使用次数的LRU策略,确保在动态变化的可用列表情况下也能平均分配到各个账号
2025-12-20 17:43:50 +08:00
hex2077
fa8150701f feat(i18n): 添加多语言支持并实现国际化功能
实现中英文双语支持,包括:
1. 添加i18n.js核心模块处理语言切换和翻译
2. 创建语言切换器组件
3. 更新所有UI文本使用翻译键
4. 添加I18N_GUIDE.md文档说明使用方法
5. 修改样式适配语言切换器
6. 添加adm-zip依赖支持配置文件打包下载
7. 更新登录页面支持多语言
8. 重构toast消息显示支持多语言标题
2025-12-20 17:27:30 +08:00
hex2077
f3761a4254 docs: 更新README文档并优化安装脚本和UI交互
- 更新三语言README,简化快速启动流程,强调Web UI可视化配置
- 移除详细的启动参数文档和模型协议关系图,简化文档结构
- 优化install-and-run脚本,添加--pull参数支持代码更新,统一依赖安装流程
- 改进Kiro服务的机器码生成机制,基于配置生成唯一ID而非MAC地址
- 优化OAuth授权UI,移除冗余的文件路径提示和回调地址警告
- 修复modal.js中OAuth凭据文件路径字段的兼容性检查
- 添加Qwen OAuth端点的初始化配置
- 优化service-manager降级逻辑注释说明
2025-12-20 15:23:56 +08:00
hex2077
e87d74f517 feat: 添加OAuth授权凭据自动生成功能并优化UI
- 实现OAuth授权成功后自动生成凭据文件并填充路径
- 添加"生成凭据"按钮到各提供商配置表单
- 优化文件上传组件的样式和布局
- 将autoLinkProviderConfigs函数导出供服务初始化使用
- 新增oauth_success事件处理逻辑
- 调整授权模态框位置避免遮挡
2025-12-19 18:05:32 +08:00
hex2077
e943819539 feat(配置管理): 添加提供商URL配置支持并优化UI
扩展配置系统以支持自定义提供商API端点URL,包括Gemini、Kiro、Qwen和Antigravity服务的可配置基础URL。同时优化了配置表单的UI,添加了可选标记和占位符提示。

- 在config.json.example中添加各提供商URL配置项
- 修改各提供商核心服务以支持自定义URL
- 更新配置管理器和UI管理器以处理新增URL字段
- 优化前端配置表单,添加可选标记和占位符
- 扩展字段映射和顺序定义以包含URL配置项
- 改进授权模态框,添加手动URL输入支持
2025-12-19 16:31:48 +08:00
hex2077
5af83e4473 feat(gemini): 添加新的 gemini-3-flash 模型并修复令牌过期检查
添加 gemini-3-flash-preview 和 gemini-2.5-flash 模型到 PROVIDER_MODELS 和映射表
修复 isTokenExpiringSoon() 方法在没有 expiry_date 时的默认返回值
添加调试日志打印可用模型列表
2025-12-18 16:57:42 +08:00
hex2077
d5417d9890 feat(provider): 添加自定义名称字段并优化OAuth处理流程
添加自定义名称字段以允许用户为节点设置个性化名称
重构OAuth处理逻辑,统一各提供商的授权流程
增加超时处理并优化错误提示
调整UI显示顺序和字段布局
2025-12-17 13:45:02 +08:00
hex2077
3887243528 feat(usage): 添加用量查询功能及界面
实现完整的用量查询功能,包括:
1. 新增用量查询页面和导航入口
2. 为各API服务适配器添加用量查询接口
3. 实现用量数据缓存机制
4. 添加响应式用量数据展示界面
5. 支持自动刷新和手动刷新用量数据
6. 显示模型配额、剩余用量和重置时间等信息
2025-12-16 15:29:15 +08:00
hex2077
7c976bdf0a feat(安全): 添加后台登录密码配置功能
实现后台管理密码的设置和更新功能,包括:
- 在前端添加密码输入框和显示/隐藏切换按钮
- 在后端添加密码验证和存储逻辑
- 密码修改后需要重新登录生效
2025-12-14 20:20:31 +08:00
hex2077
c2bc2f1c07 fix(converters): 更新AI模型相关常量以匹配最新API限制
调整OpenAI、Claude、Gemini等模型的token限制常量,使其与各平台最新API规格保持一致
2025-12-13 17:38:42 +08:00
hex2077
839fc2d9de refactor(converters): 使用常量替换模型默认参数硬编码
将各模型转换器中的硬编码默认参数替换为统一的常量定义,提高代码可维护性
2025-12-13 17:30:04 +08:00
hex2077
f851ac8bb2 fix(provider-pool): 修复提供者使用计数和健康状态更新逻辑
更新提供者使用计数时增加最后使用时间记录
修复流式请求和一元请求成功后的使用计数更新
移除不必要的模型映射和配置
调整服务选择时跳过使用计数的逻辑
2025-12-13 00:45:49 +08:00
hex2077
1c46bb547b perf(api): 为所有API服务添加HTTP连接池配置防止资源泄漏
为Claude、OpenAI、Gemini、Qwen等API服务添加HTTP/HTTPS agent配置,设置keepAlive、maxSockets等参数以限制连接池大小,避免资源泄漏问题。同时统一了各服务的axios配置方式,提高网络请求的稳定性和性能。
2025-12-10 15:45:08 +08:00
hex2077
b364341f67 feat(provider): 增强健康检测和自动配置关联功能
- 新增 provider-utils.js 公共模块,提取共用工具函数
- 添加提供商健康检测 API 端点和 UI 按钮
- 实现配置文件自动关联功能(启动时和手动触发)
- 支持 gemini-antigravity 新提供商类型
- 增强健康检测结果记录(时间、模型、错误信息)
- 添加提供商列表分页功能
- 修复 OpenAIResponsesConverter 中 systemMessages 未定义问题
- 更新默认健康检测模型配置
2025-12-10 15:18:42 +08:00
hex2077
c5cd1ab2c7 Revert "Merge pull request #103 from leonaii/main"
This reverts commit 4f336889fd46193f5d6b32d95738070e4aecb7b0, reversing
changes made to 4a645cdf3ffaeb922d97141dbf699807ccc2d240.
2025-12-10 12:13:11 +08:00
何夕2077
f4b30ed596 Merge pull request #103 from leonaii/main
先合并,后处理
2025-12-10 12:12:42 +08:00
leonai
d99f0d77a5 feat: 增强提供商池管理和UI功能
- 新增 Kiro OAuth 配置自动扫描和关联功能 (service-manager.js)

- 增强提供商池管理器,支持健康检测和状态持久化 (provider-pool-manager.js)

- 新增 UI 管理功能:登录认证、配置文件上传、提供商管理 (ui-manager.js)

- 新增上传配置管理模块,支持配置文件查看/删除/一键关联 (upload-config-manager.js)

- 增强模态框组件,支持更多交互功能 (modal.js)

- 新增 Windows PowerShell 部署脚本 (run-docker.ps1)

- 优化 run-docker.sh 脚本,增强跨平台兼容性

- 更新 .gitignore 排除敏感配置文件
2025-12-09 22:12:40 +08:00