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
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
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
bee4come
66b6363ad4
feat: improve Droid provider implementation and configuration
...
- Add --skip-permissions-unsafe flag to droid exec commands for non-interactive execution
- Improve error handling to accept output from both stdout and stderr
- Map droid protocol to claude in getProtocolPrefix for proper request conversion
- Add DROID_AUTH_FILE and DROID_COMMAND to config.json.example
- Add droid-factory-oauth provider pool example to provider_pools.json.example
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-10-15 13:26:58 +08:00
bee4come
3111119f93
Add Droid (Factory.ai) provider support
...
This commit adds support for Factory.ai's Droid CLI as a provider,
enabling users to use Droid through an OpenAI-compatible API interface.
Implementation details:
- Created DroidApiService that wraps the droid CLI
- Added DroidStrategy for protocol conversion (Claude-compatible)
- Supports both streaming and non-streaming responses
- No API keys or token management required - uses droid CLI directly
Files added:
- src/droid/droid-core.js: Core service using CLI wrapper
- src/droid/droid-strategy.js: Strategy pattern implementation
- src/droid/README.md: Comprehensive documentation
- test-droid.js: Test script for validation
Files modified:
- src/adapter.js: Added DroidApiServiceAdapter
- src/common.js: Added DROID constants
- src/provider-strategies.js: Registered DroidStrategy
- README.md: Updated with Droid provider information
2025-10-15 11:29:17 +08:00
hex2077
262f119213
feat: 添加新的 Gemini 模型到支持列表
2025-10-11 00:14:28 +08:00
hex2077
7a483e49b5
feat: 添加防截断模型支持和错误处理优化
...
1. 在gemini-core.js中实现anti-truncation模型支持,通过流式续写解决长文本截断问题
2. 增强common.js中的错误处理,统一返回错误响应格式
3. 更新README文档,优化描述并添加Claude Sonnet 4.5支持
4. 调整.gitignore,添加新的提示词文件
5. 优化convert.js中的默认参数和模型映射逻辑
6. 在claude-kiro.js中添加Claude Sonnet 4.5模型支持
2025-10-08 19:10:54 +08:00
hex2077
10c6f34b21
feat: 更新模型列表并添加模型未找到警告
...
在gemini-core.js中添加gemini-2.5-pro-preview-06-05模型
在qwen-core.js中移除未使用的QWEN_LOCK_FILENAME常量并添加模型未找到时的警告日志
2025-10-05 15:10:52 +08:00
hex2077
b9d77090c9
feat(gemini-core): 添加客户端元数据并支持默认项目ID
...
在调用API时添加完整的客户端元数据信息,包括IDE类型、平台和插件类型等,并使用默认项目ID进行初始化。这有助于服务端更好地识别客户端环境并提供更准确的响应。
2025-10-05 14:44:27 +08:00
hex2077
bf573bb8f5
refactor(convert): 使用固定阈值替换环境变量配置
...
移除对环境变量的依赖,改为使用代码中定义的固定阈值来判断推理努力程度。这简化了配置并提高了代码的可维护性。
2025-10-05 14:37:26 +08:00
AIClient Bot
006b96f422
feat(server): 多提供商数组配置与启动初始化; fix(qwen-auth): 复用缓存凭据与账号级刷新清理 (src-only)
...
- Qwen OAuth/认证修复
- 复用本地缓存凭据,避免误入设备授权流
- 修正缓存凭据有效性判断(access_token + expiry_date)
- 刷新 400 仅清理当前上下文凭据文件,避免误删其他账号
- 保留 Qwen 模型名容错回退逻辑
- 多提供商同时生效(配置与启动增强)
- 新增 normalizeConfiguredProviders,支持 MODEL_PROVIDER 数组/逗号分隔
- 启动期依据 DEFAULT_MODEL_PROVIDERS 与号池集合进行适配器初始化
- 启动日志展示 Primary + Additional Model Providers
- 提交范围
- 本提交仅包含 src/* 目录下的改动
2025-09-18 14:58:29 +08:00
hex2077
2930437616
fix(convert): 修复Claude到Gemini工具转换的结构问题
...
重构工具转换逻辑以匹配Gemini API要求的格式,确保工具名称和描述为字符串类型,并移除input_schema中的$schema字段。当没有有效工具时正确删除tools数组。
2025-09-16 20:21:52 +08:00
hex2077
7f7fc78072
refactor(convert): 简化工具转换逻辑并统一处理方式
...
重构了从OpenAI和Claude请求转换Gemini工具的逻辑,移除了functionDeclarations包装层,直接映射工具名称和参数。同时优化了无效工具的过滤处理,保持代码一致性。
2025-09-14 21:37:39 +08:00
hex2077
cec97ff3ae
refactor(provider-pool): 将日期对象统一转换为ISO字符串格式
...
修改ProviderPoolManager中日期处理逻辑,将所有Date对象统一转换为ISO字符串格式存储,确保数据一致性并简化序列化过程。
2025-09-08 00:59:09 +08:00
hex2077
7b0aee7959
feat: 添加账号池管理功能并更新文档
...
- 在convert.js中为工具调用添加index字段支持
- 在common.js中添加fullOldResponseJson变量用于调试
- 更新README文档,添加账号池管理功能说明和快速导航
- 同步更新英文版README文档
2025-09-07 22:16:14 +08:00
hex2077
8033c16533
feat(qwen): 更新Qwen模型支持及文档
...
- 调整Qwen模型列表顺序并更新默认API地址
- 在SharedTokenManager中添加凭证设置
- 更新README文档,添加Qwen支持说明及启动参数
2025-09-06 13:29:41 +08:00
hex2077
66f758d741
feat(convert): 增强协议转换功能,支持更多模型和工具调用
...
- 新增OpenAI到Claude的协议转换支持
- 添加工具调用状态管理器和JSON Schema清理功能
- 实现智能的reasoning_effort等级判断
- 优化错误处理和日志记录
- 重构代码结构,增加注释和辅助函数
2025-09-05 18:03:34 +08:00
hex2077
1b7c143971
docs: 更新README以突出开发者特性和免费额度
...
更新了中英文README文件,强调项目为开发者打造的特性以及提供大量免费API请求额度的优势。同时修改了Qwen API服务中的工具合并逻辑,使其能够正确处理请求中已定义的工具。
2025-09-02 16:07:04 +08:00
hex2077
bc6e317638
fix(provider-pool): 将默认错误阈值从1调整为3
...
docs: 更新Qwen Code授权方式和README-EN协议图
feat(qwen-core): 添加工具支持并优化请求头
2025-09-02 01:10:20 +08:00
hex2077
c1f203c40e
feat(qwen): 新增Qwen Code支持及相关功能实现
...
1. 在common.js中添加QWEN_API常量
2. 实现QwenApiService核心服务类
3. 添加QwenOAuth2Client认证客户端
4. 实现SharedTokenManager共享令牌管理
5. 更新适配器、API服务端和README文档
6. 添加相关依赖包
2025-09-01 17:28:37 +08:00
hex2077
372e5a7e59
feat: 添加 gemini-2.5-flash-lite 到 GEMINI_MODELS 列表
2025-08-30 23:33:14 +08:00
hex2077
bd30a5f8d3
fix(provider): 修复健康检查逻辑并添加checkModelName字段
...
实现实际的健康检查逻辑,通过临时服务适配器进行API调用验证
为所有provider配置添加checkModelName字段用于健康检查
修正初始化日志中的服务名称错误
2025-08-30 17:29:55 +08:00
hex2077
b60593085e
feat(provider): 添加健康状态跟踪并持久化到JSON文件
...
添加provider健康状态跟踪功能,包括使用次数、错误计数和最后使用时间
将provider状态持久化到JSON文件,确保重启后状态不丢失
重构provider选择逻辑,将状态管理移至config对象
2025-08-30 14:02:13 +08:00
hex2077
bdcb4320f4
feat: 新增提供商账号池模式支持
...
实现账号池功能,支持为所有提供商配置多个账号,提供轮询、故障转移和配置降级能力
修改适配器和服务处理逻辑以支持账号池管理
添加 ProviderPoolManager 类管理账号池健康状态和选择策略
更新文档说明账号池配置和使用方法
2025-08-29 17:00:18 +08:00
hex2077
6fe527f436
build: 更新依赖项并修改模型提供商名称
...
- 添加 deepmerge 依赖项用于深度合并对象
- 更新 package-lock.json 中的项目名称和依赖项配置
2025-08-15 23:12:44 +08:00
LaelLuo
76411cad0d
🐛 fix(kiro): 优化KIRO_OAUTH_CREDS_FILE_PATH配置的凭据加载逻辑
...
- 当配置KIRO_OAUTH_CREDS_FILE_PATH时跳过~/.aws/sso/cache/目录扫描
- 修复token刷新时保存路径问题,使用用户指定路径而不是默认路径
- 改进错误处理和调试日志
2025-08-12 14:33:43 +08:00
hex2077
a68ff027b9
feat(oauth): 添加OAuth令牌自动刷新功能
...
为Gemini和Kiro服务添加令牌过期检测和自动刷新功能
在API服务器中添加定时任务检查并刷新临近过期的令牌
更新README文档说明新增的CRON配置参数
2025-08-07 20:24:40 +08:00
hex2077
f33cf38b42
fix(api-server): 修复OPTIONS请求的CORS头部设置
...
feat(convert): 添加OpenAI流式响应停止块生成函数
refactor(common): 优化流式请求处理逻辑,支持更多协议转换
2025-08-06 23:01:49 +08:00
hex2077
015a17a3a9
feat: 更新项目名称为AIClient2API并添加logo
...
添加项目logo图片文件
将所有文档中的GeminiCli2API更名为AIClient2API
更新Dockerfile和README中的项目描述
在README中添加DeepWiki徽章和代理设置说明
2025-08-04 13:19:21 +08:00
hex2077
7157be4a2d
refactor(convert): 优化默认参数处理逻辑并更新测试路径
...
- 添加辅助函数 checkAndAssignOrDefault 统一处理默认值逻辑
- 更新 DEFAULT_MAX_TOKENS 和 DEFAULT_TEMPERATURE 默认值
- 为 Gemini 添加单独的 DEFAULT_GEMINI_MAX_TOKENS 常量
- 修正测试文件中的路径引用格式
- 更新 OpenAI 测试模型为 deepseek-ai/DeepSeek-V3
2025-08-04 12:51:46 +08:00
hex2077
328530138f
feat(convert): 添加默认参数常量并统一处理缺失值
...
为转换函数添加默认参数常量,包括最大token数、温度和top_p值
在多个转换函数中统一处理缺失参数的情况,使用默认值替代
2025-08-02 19:59:59 +08:00
hex2077
17cfce1f03
fix(claude): 修复模块区域初始化并标准化内容处理
...
当凭据中未找到区域时,将 Claude 模块的区域明确设置为 'us-east-1',并移除 URL 构建中的冗余区域回退。
将工具结果内容提取标准化为使用 'getContentText' 方法。
更新 .gitignore 文件以忽略 Claude 和 Serena 相关的临时目录及文件。
2025-08-02 18:28:25 +08:00
hex2077
b031ca4286
feat(protocol): 支持 Claude 与 Gemini 协议间的双向转换
...
实现了 Claude API 请求到 Gemini API 请求的转换,以及 Gemini API 响应到 Claude API 响应的转换。
同时支持了两种协议间流式响应的转换,增强了项目的兼容性和灵活性。
更新了 README 文件,新增模型协议关系图和 Star History。
优化了 Gemini 核心服务中的模型选择逻辑,当请求的模型不存在时,会使用默认模型。
2025-07-31 22:54:21 +08:00
hex2077
5f0cd6ad83
feat(docker): 添加Docker支持和部署指南
...
新增Dockerfile、.dockerignore和健康检查脚本,支持通过Docker部署服务。添加了详细的部署文档和自动化脚本,便于在不同环境下快速启动和配置服务。同时优化了系统提示词应用逻辑,移除了调试日志输出。
2025-07-30 19:46:12 +08:00
hex2077
fcf6389856
feat(api): 支持通过路径段指定MODEL_PROVIDER并优化系统提示词提取逻辑
...
本次提交主要包含以下变更:
1. 在API服务器中新增通过URL路径段自动识别和切换MODEL_PROVIDER的功能,提升接口灵活性
2. 重构各提供商策略中的系统提示词提取逻辑,统一使用common.js中新增的extractSystemPromptFromRequestBody工具函数,提高代码复用性和维护性
3. 更新README文档,完善架构设计模式说明、数据流处理流程以及多模态内容和不同提供商的使用示例
2025-07-30 16:37:07 +08:00
hex2077
35ced87e99
feat: 添加lodash依赖并优化Claude策略处理逻辑
...
重构Kiro服务从openai迁移至claude模块,更新相关文档和测试
修复Claude策略中内容提取逻辑,支持input_json_delta类型
优化系统提示词处理,当无系统消息时使用首个用户消息
更新README文档,添加健康检查端点和最新模型支持说明
2025-07-29 22:01:09 +08:00
hex2077
31d8dcf23d
refactor(openai-kiro): 移除未使用的配置项并优化凭证加载逻辑
...
移除已注释掉的未使用配置项,简化代码结构
优化凭证加载逻辑,跳过特定token文件并添加注释说明
2025-07-27 23:47:53 +08:00
hex2077
e24e077b24
refactor(系统提示): 重构系统提示获取逻辑,直接从配置读取内容
...
feat(Kiro): 添加Kiro API支持及相关配置
docs: 更新README文档,添加Kiro API说明和测试覆盖信息
refactor(Gemini): 优化Gemini服务初始化日志信息
2025-07-27 23:10:45 +08:00
hex2077
903b6bbcaf
feat: 实现多模型API代理核心功能与策略模式架构
...
新增完整的API代理服务架构,支持Gemini、OpenAI和Claude等多种大模型API的统一接入。主要变更包括:
1. 实现策略模式架构,新增provider-strategies.js处理不同API协议
2. 添加适配器层(adapter.js)统一服务接口
3. 实现三种核心模型(Gemini/OpenAI/Claude)的完整支持
4. 添加测试配置和依赖
5. 更新README文档说明新架构和使用方式
6. 新增.gitignore配置和项目元文件
2025-07-25 18:14:16 +08:00