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
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