Commit graph

128 commits

Author SHA1 Message Date
何夕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
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
ed9d7e2106 feat(页面): 添加联系与赞助版块
新增微信二维码和赞助二维码展示区域,包含响应式设计和交互效果
添加相关样式定义和图片资源
2025-11-18 13:21:59 +08:00
hex2077
c66c5a88da feat(请求处理): 添加健康检查端点并优化授权逻辑
- 将健康检查端点和count_tokens处理逻辑提前以提高可读性
- 移除对空Bearer令牌的特殊处理,简化授权逻辑
2025-11-17 11:35:44 +08:00
hex2077
f1fc418aab docs: 使用contrib.rocks替换手动维护的贡献者列表
将README、README-ZH.md和README-JA.md中的手动维护的贡献者头像列表替换为contrib.rocks自动生成的贡献者图片,以简化维护并自动更新贡献者信息
2025-11-16 21:42:42 +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
何夕2077
1917837065 Update README.md 2025-11-05 22:42:49 +08:00
hex2077
6ffa327044 docs: 重构README文件结构并添加多语言支持
- 移除README-EN.md文件,将其内容合并到README.md作为英文版本
- 新增README-ZH.md文件作为简体中文版本
- 更新README-JA.md中的链接引用
- 调整.dockerignore文件,移除不再需要的README文件
- 统一多语言文档的格式和内容结构
2025-11-05 22:40:26 +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
hex2077
f0201a484e refactor(system): 优化内部协议判断与配置路径管理
调整模型列表转换的协议匹配条件,以提升不同提供者间数据适配的精确性。
同步更新提供者池配置的持久化逻辑,允许通过全局配置自定义存储文件路径,增强系统部署的灵活性。
2025-10-22 22:09:35 +08:00
hex2077
6b0c323dfe feat(core): 增强网络代理控制与 OAuth 凭证管理能力
核心改进:
- 实现 HTTP 客户端代理可配置化,新增 USE_SYSTEM_PROXY_* 系列开关
- 引入 CredentialsClearRequiredError 异常,优化 Qwen 令牌过期处理流程
- 重构 provider-pool-manager 配置传递,支持全局代理设置继承
- 封装 commonFetch 统一方法,规范 fetch 和 axios 的代理行为

文档更新:
- 三语言 README 全面改版,突出协议转换和免费模型使用价值
- 新增授权配置分步指南,覆盖 Gemini/Qwen/Kiro 完整流程
- 补充 Path 路由切换表格,明确各提供商适用场景
- 修正 OpenAI Responses API 标识符拼写错误
2025-10-22 21:04:14 +08:00
hex2077
06eacb0419 feat(api): 添加 token 过期自动刷新和 count_tokens 端点支持
在 API 服务器中添加对 count_tokens 请求的处理,返回不支持的提示。
在 Kiro 客户端的内容生成方法中增加 token 过期检查,在即将过期时
自动刷新认证凭证,避免请求失败。
2025-10-20 23:54:26 +08:00
hex2077
db3c63ffe4 refactor(stream): 重构流式响应处理器与资源池调度算法
针对 claude-kiro 模块的事件流解析器进行架构升级,引入双模式
正则匹配策略实现向后兼容。provider-pool-manager 模块通过引入
延迟写入队列机制重构持久化层,消除冗余的迭代逻辑。

核心变更:
- 实现 SSE 标准格式与遗留格式的自适应解析器
- 重构 JSON 边界检测算法,增强空白字符处理
- 引入基于 Set 的批量写入队列替代即时持久化
- 移除供应商选择中的多余循环,采用直接索引计算
- 调整异常传播策略,将错误向上层抛出而非内部消化

技术细节:通过定时器合并多次保存请求,将 I/O 操作从 O(n)
降低到 O(1);时间戳标准化逻辑由多分支条件简化为三元表达式;
转义字符处理采用负向后查找断言避免误替换。
2025-10-20 21:16:06 +08:00
hex2077
5d4283edc6 feat(kiro): 增强账号池健康检查配置并优化凭证加载逻辑
为 provider_pools.json 配置文件新增 checkHealth 字段,允许灵活控制各账号的健康检查行为。同时重构 Kiro OAuth 凭证加载机制,统一处理指定文件和目录扫描的逻辑,提升凭证管理的可靠性。

此外,在多语言 README 文档中补充 10.18 版本更新说明,告知用户 Kiro 服务的最新动态。
2025-10-18 16:12:13 +08:00
hex2077
52417dd805 chore(kiro): 更新默认模型名称并添加调试日志
- 将默认模型名称从 claude-sonnet-4-20250514 更新为 claude-sonnet-4-5
- 在 generateContent 和 generateContentStream 方法中添加模型调用日志
- 便于调试和追踪实际使用的模型版本
2025-10-18 15:04:54 +08:00
hex2077
dfe7ce914e feat(api): 添加 OpenAI Responses API 支持
新增对 OpenAI Responses API 端点的部分支持,包括请求转换、流式响应处理和供应商适配。主要变更:

- 新增 OpenAIResponsesApiService 核心服务实现
- 实现 Claude/Gemini 到 Responses API 的双向协议转换(能聊天,不能调用工具)
- 添加流式响应状态管理和事件生成机制
- 扩展路由支持 /v1/responses 端点
- 更新文档说明配置方法和使用示例
2025-10-16 23:26:36 +08:00
hex2077
d36a9466a8 无法测试可用性,暂时回滚droid供应商 2025-10-15 22:05:41 +08:00
何夕2077
c8855912f6 Merge pull request #65 from bee4come/feature/add-droid-provider
feat: Add Droid (Factory.ai) provider support
2025-10-15 21:05:01 +08:00
bee4come
e91aaa02e5 fix: improve droid provider with context isolation and message parsing
Changes:
- Add context isolation using --cwd flag to prevent project context leakage
- Fix message content parsing to support both string and array formats
- Add debug logging for troubleshooting
- Create isolated temporary working directory for each service instance

This prevents Droid from seeing the current project directory and mentioning
it in responses, providing a cleaner API experience.

Tested:
 Context isolation verified - Droid reports empty temp directory
 Message parsing works with OpenAI format
 API responses no longer mention project context
2025-10-15 14:02:21 +08:00