Commit graph

36 commits

Author SHA1 Message Date
hex2077
2d317e0333 refactor(项目结构): 重构项目目录结构并优化代码组织
将常用工具函数移动到utils目录
重构提供商策略模式实现
新增docker-compose构建配置文件
优化UI配置选择器的样式和交互
重构代理工具和API管理模块
更新脚本路径和依赖引用
2026-01-10 18:19:06 +08:00
hex2077
d639077bde feat(plugin): 实现可插拔插件系统架构
重构API大锅饭功能为插件,新增插件管理器核心模块
支持插件生命周期管理、认证中间件、路由和钩子扩展
添加默认认证插件和API大锅饭插件
2026-01-09 18:02:56 +08:00
leonai
dbc98dae74 feat(api-potluck): 添加 API 大锅饭插件功能(彩蛋)
1. 新增 api-potluck 模块,支持 API 密钥认证和用量记录
2. 在 request-handler.js 中集成大锅饭路由和认证中间件
3. 在 common.js 中添加用量记录调用逻辑
4. 新增 potluck.html 静态页面和配置文件 api-potluck-keys.json
2026-01-08 20:15:59 +08:00
hex2077
4edd0ce2a4 feat(错误处理): 添加网络错误重试机制并统一处理逻辑
在common.js中定义可重试网络错误列表和检查函数
修改各API服务(qwen/iflow/claude/gemini/openai/antigravity)调用逻辑
添加网络错误检测和指数退避重试机制
统一错误日志格式包含状态码和错误标识
2026-01-07 22:22:59 +08:00
hex2077
19a40c7fae feat(iflow): 新增 iFlow CLI 支持及 OAuth 认证功能
添加 iFlow API 提供商支持,包括:
1. 新增 MODEL_PROVIDER.IFLOW_API 常量
2. 实现 IFlowApiService 和适配器
3. 添加 OAuth 认证流程及令牌刷新机制
4. 更新相关配置文件、路由和前端界面
5. 扩展多语言支持
6. 修改 Docker 端口映射范围以包含 iFlow 回调端口
2026-01-07 21:30:51 +08:00
ZqinKing
6ec76b0674 feat: 在日志中添加凭证自定义名称(customName)以增强可读性 2026-01-06 20:12:37 +08:00
hex2077
8f39295655 feat: 改进错误处理、Ollama兼容性和文档结构
refactor(converters): 优化Claude到Gemini的转换逻辑
fix(kiro): 修复社交认证刷新问题
perf(ollama): 提升模型列表获取效率
docs: 为README添加可折叠区块
style: 清理控制台日志
2026-01-06 18:14:02 +08:00
ZqinKing
4ec39f4df6 feat(fallback): 新增跨协议模型 Fallback 映射功能
## 功能概述
实现跨协议模型级别的 Fallback 映射机制,允许在主 Provider 不可用时,
根据模型名称自动映射到其他协议的 Provider 和模型。

## 设计原理
- 原有 providerFallbackChain 只支持同协议内回退
- 新增 modelFallbackMapping 支持跨协议映射(如 Gemini → Claude)
- 优先级:同协议回退 > 跨协议模型映射

## 代码修改
- configs/config.json.example: 新增 modelFallbackMapping 配置示例
- src/provider-pool-manager.js: 实现跨协议映射选择逻辑
- src/service-manager.js: 传递 actualModel 参数
- src/common.js: 处理模型 fallback 后的模型名更新
- src/ui-manager.js: UI配置读写支持
- static/app/config-manager.js: 前端配置管理
- static/app/i18n.js: 中英文国际化文案
- static/index.html: 高级配置区新增配置项

## 配置示例
modelFallbackMapping: {
  "gemini-claude-opus-4-5-thinking": {
    "targetProviderType": "claude-kiro-oauth",
    "targetModel": "claude-opus-4-5"
  }
}
2026-01-04 08:40:40 +08:00
hex2077
8a1ccb9877 refactor(config): 重构配置文件路径至configs目录并更新相关引用
- 将配置文件统一迁移至configs目录
- 更新所有相关代码中对配置文件的引用路径
- 删除不再使用的run-docker脚本文件
- 更新文档中关于配置文件路径的说明
- 调整默认配置参数和路径引用方式
2025-12-25 16:48:42 +08:00
hex2077
dfce4a6aac feat(provider): 添加跨类型 Fallback 链支持
实现当主 Provider Type 无可用账号时自动切换到配置的 Fallback 类型功能,包括:
1. 在 config.json 中添加 providerFallbackChain 配置项
2. 扩展 ProviderPoolManager 支持 Fallback 逻辑
3. 新增 getApiServiceWithFallback 方法处理带 Fallback 的服务获取
4. 更新 UI 界面和文档说明
2025-12-23 17:22:42 +08:00
hex2077
d5417d9890 feat(provider): 添加自定义名称字段并优化OAuth处理流程
添加自定义名称字段以允许用户为节点设置个性化名称
重构OAuth处理逻辑,统一各提供商的授权流程
增加超时处理并优化错误提示
调整UI显示顺序和字段布局
2025-12-17 13:45:02 +08:00
hex2077
f851ac8bb2 fix(provider-pool): 修复提供者使用计数和健康状态更新逻辑
更新提供者使用计数时增加最后使用时间记录
修复流式请求和一元请求成功后的使用计数更新
移除不必要的模型映射和配置
调整服务选择时跳过使用计数的逻辑
2025-12-13 00:45:49 +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
369aa59286 feat: return 400 error when no available provider in pool 2025-12-03 15:42:11 +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
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
a212a71385 refactor(converters): 重构协议转换器架构并迁移至策略模式
- 创建新的转换器基础架构,包括BaseConverter、ConverterFactory和策略模式实现
- 迁移OpenAI、Claude、Gemini和OpenAI Responses(仅对话,无工具)转换器到新的策略模式
- 移除旧的ensureRolesInContents函数,优化内容处理逻辑
- 添加注册转换器机制,支持动态协议转换
- 更新API服务器以使用新的转换器工厂
- 优化流式响应处理和协议映射逻辑
- 添加详细的转换器工具和实用函数
- 改进错误处理和调试日志记录
2025-11-09 22:22:22 +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
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
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
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
7b0aee7959 feat: 添加账号池管理功能并更新文档
- 在convert.js中为工具调用添加index字段支持
- 在common.js中添加fullOldResponseJson变量用于调试
- 更新README文档,添加账号池管理功能说明和快速导航
- 同步更新英文版README文档
2025-09-07 22:16:14 +08:00
hex2077
66f758d741 feat(convert): 增强协议转换功能,支持更多模型和工具调用
- 新增OpenAI到Claude的协议转换支持
- 添加工具调用状态管理器和JSON Schema清理功能
- 实现智能的reasoning_effort等级判断
- 优化错误处理和日志记录
- 重构代码结构,增加注释和辅助函数
2025-09-05 18:03:34 +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
bdcb4320f4 feat: 新增提供商账号池模式支持
实现账号池功能,支持为所有提供商配置多个账号,提供轮询、故障转移和配置降级能力
修改适配器和服务处理逻辑以支持账号池管理
添加 ProviderPoolManager 类管理账号池健康状态和选择策略
更新文档说明账号池配置和使用方法
2025-08-29 17:00:18 +08:00
hex2077
f33cf38b42 fix(api-server): 修复OPTIONS请求的CORS头部设置
feat(convert): 添加OpenAI流式响应停止块生成函数
refactor(common): 优化流式请求处理逻辑,支持更多协议转换
2025-08-06 23:01:49 +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
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
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