何夕2077
f4b30ed596
Merge pull request #103 from leonaii/main
...
先合并,后处理
2025-12-10 12:12:42 +08:00
何夕2077
8239f165cf
Merge pull request #102 from lethanhson9901/feature/openai-structured-output-support
...
feat: Add structured output support for OpenAI to Gemini conversion
2025-12-10 12:04:26 +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
47b7ecb49a
Merge branch 'justlovemaki:main' into feature/openai-structured-output-support
2025-12-09 11:12:42 +07: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
何夕2077
c7e30b5149
Merge pull request #101 from lethanhson9901/fix/antigravity-project-id-discovery
...
fix(antigravity): implement automatic Project ID discovery to resolve 403 errors
2025-12-09 12:03:13 +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
何夕2077
0e9d0912cd
Merge pull request #95 from Sanyela/main
...
fix: 修复 Kiro API 工具调用、流式传输优化及号池错误处理
2025-12-03 16:00:38 +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
何夕2077
55cabe8f7c
Merge pull request #94 from Sanyela/main
...
fix: 修复 Kiro API 工具调用和流式传输问题
2025-12-03 15:12:55 +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
何夕2077
377db070e2
Merge pull request #93 from Sanyela/main
...
fix: 修复 Kiro API 的兼容问题
2025-12-03 13:58:17 +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
何夕2077
e5ae63f338
Merge pull request #92 from Sanyela/main
...
使用tokenizer包来实现Kiro统计Token
2025-12-03 12:48:52 +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
cb76d85ecd
docs: 将README中的图片标记替换为HTML格式
...
统一将README文件中的Markdown图片语法替换为HTML格式,以便更好地控制图片样式
2025-11-30 22:10:41 +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