Commit graph

51 commits

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