Commit graph

195 commits

Author SHA1 Message Date
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
lethanhson9901
9701d98c55 feat: Add structured output support for OpenAI to Gemini conversion
- Add support for response_format parameter in OpenAI requests
- Map json_object type to Gemini's responseMimeType: application/json
- Map json_schema type to Gemini's responseSchema with schema definition
- Update buildGeminiGenerationConfig to handle response_format parameter

This enables users to request structured JSON outputs using OpenAI's
response_format API when calling Gemini models through the converter.
2025-12-09 11:08:35 +07:00
lethanhson9901
abf32f6cb5 fix(antigravity): implement automatic project ID discovery and prevent overwrite
This commit introduces automatic Cloud Code project discovery for the Antigravity provider. It ports the onboarding logic from gemini-core.js, handles missing credentials by triggering the auth flow, and ensures the discovered Project ID is correctly passed to the request payload builder, fixing the 403 Permission Denied error caused by random ID generation.
2025-12-09 10:21:37 +07:00
hex2077
3ec219bcc7 feat: 增加模型token限制并添加AWS登录提示信息
增加Gemini和Antigravity模型的输入输出token限制,同时在AWS登录表单中添加必要的提示信息,确保用户正确配置授权文件
2025-12-06 16:36:22 +08:00
hex2077
029d97236b fix: 使用 ?? 替代 || 运算符确保默认值正确设置
将逻辑或(||)运算符替换为空值合并(??)运算符,确保当配置值为0时不会被错误地替换为默认值。同时更新了相关日志信息以显示当前设置的maxErrorCount值。
2025-12-04 18:05:38 +08:00
hex2077
211d677d00 fix(provider): 避免重复增加provider使用计数
当从provider池重新选择服务时跳过usageCount增加,因为初次选择时已经增加过。同时优化token刷新逻辑,合并强制刷新和即将过期的检查条件。
2025-12-04 12:53:17 +08:00
hex2077
bc3725e901 feat: 添加统一错误响应生成功能
refactor(service-manager): 移除NoAvailableProviderError和严格池检查
feat(converters): 增强token统计功能,支持缓存和推理token详情
refactor(claude-kiro): 改进JSON解析和工具调用处理
feat(common): 添加统一错误响应生成功能
2025-12-03 20:21:20 +08:00
Sanyela
7d9f505a15 fix: only throw NoAvailableProviderError for Kiro providers 2025-12-03 15:47:53 +08:00
Sanyela
369aa59286 feat: return 400 error when no available provider in pool 2025-12-03 15:42:11 +08:00
Sanyela
402278240c perf: move token counting to end of stream to avoid blocking event loop 2025-12-03 15:16:40 +08:00
Sanyela
9bb8be858e fix: prevent resource leak - close streams properly and limit connection pool 2025-12-03 15:07:25 +08:00
Sanyela
399435e39d fix: merge toolUse events with same toolUseId instead of creating separate blocks 2025-12-03 15:02:41 +08:00
Sanyela
43d491fb5b fix: deduplicate toolResults to avoid Kiro API validation error 2025-12-03 14:46:09 +08:00
Sanyela
55ae7664ec fix: handle multi-part toolUse events (input/stop sent separately) 2025-12-03 14:42:22 +08:00
Sanyela
9a2f0b0c52 fix: filter duplicate consecutive content events from Kiro stream 2025-12-03 14:37:20 +08:00
Sanyela
fc3e7ccba4 fix: skip AWS Event Stream binary headers when parsing JSON 2025-12-03 14:33:10 +08:00
Sanyela
14b4882e10 fix: tools calling failed due to nested JSON parsing 2025-12-03 14:30:26 +08:00
Sanyela
55059fc6c7 fix: only include history when non-empty 2025-12-03 14:25:45 +08:00
Sanyela
28ba5cfef6 fix: ensure content is never empty when sending toolResults 2025-12-03 14:22:14 +08:00
Sanyela
c56ab5780c fix: correct tool calls parsing for streaming - support structured and bracket formats 2025-12-03 14:16:59 +08:00
Sanyela
82314ce018 fix: remove content deduplication to fix token counting and display 2025-12-03 14:07:51 +08:00
Sanyela
d7a2332e24 perf: optimize stream parsing to avoid duplicates and improve efficiency 2025-12-03 13:50:38 +08:00
Sanyela
28de81203f feat: implement real streaming for Kiro API using AWS Event Stream 2025-12-03 13:37:16 +08:00
Sanyela
5e6ff1435b fix: remove null/empty values from Kiro API request 2025-12-03 13:14:11 +08:00
Sanyela
47df249142 fix: Kiro API currentMessage must be userInputMessage type 2025-12-03 12:55:16 +08:00
Sanyela
b22de358fa feat(claude-kiro): integrate official tokenizer for input token estimation
- Added @anthropic-ai/tokenizer dependency to package.json.
- Implemented countTextTokens and estimateInputTokens methods to accurately count tokens in request bodies.
- Updated buildClaudeResponse to include input token count in the response object.
2025-12-03 12:39:24 +08:00
hex2077
15df870834 feat(授权): 添加授权文件路径显示功能并更新模型映射
添加getAuthFilePath函数获取各提供商授权文件路径,并在授权模态框中显示
更新FULL_MODEL_MAPPING添加claude-opus-4-5-20251101模型映射
2025-12-02 15:26:42 +08:00
hex2077
78a4674410 refactor(claude-kiro): 兼容Claude Code的npm客户端bug代码
将消息合并逻辑从历史记录处理阶段提前到消息预处理阶段,
同时移除末尾包含单个"{"字符的assistant消息。修复工具上下文
仅在存在工具结果时才传递的条件判断。
2025-12-01 23:23:17 +08:00
hex2077
41e1b8f25a fix(provider-pool): 修正 Gemini 和 OpenAI 提供者的请求格式判断
将 Gemini 提供者的判断条件从精确匹配改为前缀匹配,以支持更多 Gemini 变体
使用常量 MODEL_PROVIDER.OPENAI_CUSTOM_RESPONSES 替代硬编码字符串
2025-12-01 17:04:37 +08:00
hex2077
8252d45f89 fix(converter): 清理OpenAI消息转换中的空白字符
final assistant content cannot end with trailing whitespace

移除消息内容中的前后空白字符,包括普通消息和最后一条assistant消息的尾部空白,确保转换后的数据更整洁
2025-12-01 15:06:50 +08:00
hex2077
ee1f89552b feat(claude-kiro): 添加新模型支持并优化消息合并逻辑
- 在PROVIDER_MODELS中添加gemini-2.5-flash和claude-haiku-4-5模型
- 在FULL_MODEL_MAPPING中添加claude-haiku-4-5模型映射
- 实现相邻相同role消息的合并功能,优化历史消息处理
2025-12-01 14:55:05 +08:00
hex2077
203f0a4e65 feat(antigravity-core): 添加PROJECT_ID配置支持
refactor(provider-pool-manager): 修改markProviderHealthy调用方式
2025-12-01 13:20:00 +08:00
hex2077
7420c88a6f feat(认证流程): 添加浏览器自动打开功能并改进授权流程
添加自动打开浏览器功能到Gemini和Antigravity认证流程,当自动打开失败时显示备用提示信息
在提供商管理界面添加重置健康状态功能
调整CSS布局增加元素间距
2025-12-01 12:44:11 +08:00
hex2077
bf9ebacd79 feat(assets): 添加新logo文件并更新现有logo
添加logo-mid.webp文件并更新logo-min.webp文件
2025-11-30 22:06:33 +08:00
hex2077
1ce6f6da86 feat(antigravity): 新增Antigravity支持
添加对Google编程Antigravity客户端API的支持,包括:
- 新增Antigravity OAuth认证配置
- 添加Antigravity API服务适配器
- 更新UI管理界面支持Antigravity授权
- 新增Antigravity模型列表
- 更新多语言文档
- 添加OAuth处理模块
2025-11-30 21:51:17 +08:00
hex2077
fec0b19bd4 feat(provider): 实现基于模型选择的提供商池管理功能
添加 provider-models.js 集中管理各提供商支持的模型列表
修改 provider-pool-manager.js 支持根据请求模型过滤提供商
更新服务管理器和请求处理逻辑以支持模型感知的提供商选择
添加前端UI支持配置不支持的模型列表
更新示例配置文件展示新功能
2025-11-29 16:56:59 +08:00
hex2077
9c114e2a7d refactor(provider-pool): 优化提供商池配置管理和健康检查逻辑
- 移除未使用的提供商池配置输入监听器
- 默认启用提供商池配置文件路径配置
- 修改健康检查方法参数名以更清晰表达意图
- 仅在明确要求时重置提供商使用计数
- 调整文件扫描深度以支持嵌套凭证目录结构
- 重载配置时更新提供商池管理器状态
2025-11-26 13:44:55 +08:00
hex2077
1c22b8c5c9 refactor(provider-pool): 重构提供者池管理器的日志和健康检查逻辑
- 添加日志级别控制和统一的日志输出方法
- 重构健康检查逻辑,使用默认模型配置和标准化的请求构建
- 优化批量保存机制,减少文件I/O操作
- 添加参数校验和错误处理
- 重命名方法以更准确表达其功能
2025-11-25 16:02:30 +08:00
hex2077
08881ae144 feat: 更新Kiro默认模型名称至claude-opus-4-5
将DEFAULT_MODEL_NAME从claude-sonnet-4-5更改为claude-opus-4-5,并添加对应的模型映射
2025-11-25 15:23:10 +08:00
hex2077
f07d1361c8 feat(ProviderPoolManager): 添加健康检查跳过逻辑和重置健康状态方法
添加markProviderZero方法用于重置提供商的错误计数和使用计数
当健康检查未实现时跳过检查并自动标记为零状态
优化健康检查返回null时的处理逻辑
2025-11-24 18:08:25 +08:00
hex2077
0d9e01d137 refactor(配置管理): 重构提供商池配置文件路径处理逻辑
移除默认的provider_pools.json路径,改为可选配置
更新相关UI提示和配置加载逻辑
简化API管理初始化参数
2025-11-24 15:31:20 +08:00
hex2077
8a782c49f0 feat(auth): 将token存储从内存改为本地文件存储
修改了认证系统的token存储机制,从内存Map改为本地JSON文件存储,提高了token的持久化能力。同时更新了启动脚本,简化了错误处理逻辑,并在UI中添加了高亮说明样式和提供商池配置的描述信息。

- 实现了基于文件的token存储、读取、删除和清理功能
- 所有token相关操作改为异步处理
- 添加了highlight-note样式类用于重要信息提示
- 更新了提供商池配置的说明文案
2025-11-23 18:57:13 +08:00
hex2077
9b5b5810e3 add: 更新Gemini模型列表,添加 gemini3.0
fix: 修复提供商池配置路径默认值及参数传递问题

设置默认的提供商池配置文件路径为'provider_pools.json'
移除前端提供商池菜单显示控制逻辑
更新Gemini模型列表,添加 gemini3.0
2025-11-19 18:01:33 +08:00
hex2077
c66c5a88da feat(请求处理): 添加健康检查端点并优化授权逻辑
- 将健康检查端点和count_tokens处理逻辑提前以提高可读性
- 移除对空Bearer令牌的特殊处理,简化授权逻辑
2025-11-17 11:35:44 +08:00
hex2077
a435b137e7 feat(ollama): 新增Ollama协议支持,统一接口访问所有支持的模型
- 添加OllamaConverter处理Ollama协议与其他协议的转换
- 实现Ollama处理器处理Ollama特定端点
- 支持Ollama API标准接口如/api/tags、/api/chat、/api/generate
- 更新README文档添加Ollama使用说明和示例
- 优化模型前缀处理,支持通过前缀指定不同提供商
- 改进认证处理,允许空Bearer token以兼容VS Code Copilot等客户端
2025-11-16 21:35:03 +08:00
hex2077
7746e94154 feat(config): 添加提供商最大错误次数配置和动态重载功能
新增MAX_ERROR_COUNT配置项用于控制提供商连续错误次数阈值,
当达到此阈值时提供商将被标记为不健康。同时实现配置动态重载功能,
支持在不重启服务的情况下更新配置,包括提供商池管理和UI配置界面的实时同步。

- 在config.json.example中添加MAX_ERROR_COUNT默认值
- 在config-manager.js中实现命令行参数--max-error-count解析
- 在service-manager.js中将maxErrorCount传递给ProviderPoolManager
- 在ui-manager.js中实现reloadConfig函数和配置重载API
- 更新前端配置管理界面,添加maxErrorCount输入控件
- 改进文件上传处理,支持模态框提供商类型识别
- 在所有提供商操作后自动触发配置重载
2025-11-16 18:18:43 +08:00
hex2077
1dde8b5a74 refactor(api): 将健康检查和令牌计数处理逻辑移至请求处理器
重构代码结构,将原本在api-manager.js中的健康检查端点和令牌计数请求处理
2025-11-14 15:10:58 +08:00
hex2077
0149bf6558 docs(terminology): 统一术语标准 - 将"供应商"规范为"提供商"
将项目中所有文档、注释和用户界面中的"供应商"术语统一修改为"提供商",提升术语一致性。同时:
- 优化提供商健康检查频率从30分钟调整为10分钟,提高监控及时性
- 新增路由URL动态更新功能,支持不同部署环境的路径适配
- 更新相关样式类名和注释,确保代码与文档术语保持一致
2025-11-14 00:10:27 +08:00
hex2077
ee050c77f2 feat: 新增Web UI管理控制台和认证系统
新增Web UI管理控制台,支持实时配置管理和健康状态监控
添加登录认证系统,包含token生成和验证机制
实现供应商池的启用/禁用功能
更新README文档,添加安装脚本和Web UI使用说明
优化配置文件管理界面,增加API客户端封装
新增登录页面和认证中间件
2025-11-12 17:37:39 +08:00
hex2077
80d4e16840 feat: 添加可视化Web UI管理控制台及相关功能模块
新增完整的Web UI管理控制台,包含以下主要功能:
1. 响应式设计的现代化界面
2. 实时监控系统状态和提供商统计
3. 配置管理功能,支持多种模型提供商
4. 文件上传和OAuth凭据管理
5. 路径路由调用示例和curl命令生成
6. 实时日志查看和事件流处理
7. 提供完整的UI文档说明

新增多个前端模块文件,包括导航、事件处理、文件上传等功能组件,并更新package.json添加multer依赖以支持文件上传功能。同时添加详细的UI_README.md文档说明所有功能特性和使用方法。
2025-11-11 18:53:39 +08:00
hex2077
a212a71385 refactor(converters): 重构协议转换器架构并迁移至策略模式
- 创建新的转换器基础架构,包括BaseConverter、ConverterFactory和策略模式实现
- 迁移OpenAI、Claude、Gemini和OpenAI Responses(仅对话,无工具)转换器到新的策略模式
- 移除旧的ensureRolesInContents函数,优化内容处理逻辑
- 添加注册转换器机制,支持动态协议转换
- 更新API服务器以使用新的转换器工厂
- 优化流式响应处理和协议映射逻辑
- 添加详细的转换器工具和实用函数
- 改进错误处理和调试日志记录
2025-11-09 22:22:22 +08:00
hex2077
abf7b15781 feat(gemini): 新增对 Gemini 3 预览版的支持
更新 README 文档和模型列表,添加 Gemini 3 预览版支持并增强兼容性
2025-11-06 11:58:57 +08:00
hex2077
13defe0622 fix: 添加凭证过期调试日志并移除冗余日志
添加Qwen凭证过期检查的调试日志以便排查问题
移除api-server中冗余的token刷新成功日志
2025-10-31 20:55:55 +08:00
hex2077
484d71fcd3 feat(provider): 添加初始化健康检查时重置使用计数功能
在初始化健康检查时重置provider的使用计数,确保初始化时状态完全重置
同时优化请求处理逻辑,提前处理OPTIONS和健康检查请求
2025-10-31 18:01:38 +08:00