Commit graph

105 commits

Author SHA1 Message Date
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