leonai
876b92cc0e
refactor(kiro): 优化流式响应立即发送message_start,移除contextUsagePercentage等待逻辑
...
1. 立即发送message_start和content_block_start事件,不再等待contextUsagePercentage
2. 使用estimateInputTokens预估输入token作为保底值
3. 移除bufferedEvents缓冲机制和messageStartSent状态标记
4. 简化content事件处理逻辑,直接yield而非条件判断
5. 移除contextUsagePercentage未收到时的错误抛出逻辑
6. 更新estimateInputTokens方法注释,标记为备用方案而非废弃
2026-01-09 14:41:54 +08:00
hex2077
6f06998352
fix(antigravity-core): 修改忽略提示词的内容以提高清晰度
...
将忽略提示词从复杂格式改为更简洁直接的表述,使AI更容易理解并忽略前面的系统提示
2026-01-09 13:17:37 +08:00
leonai
f6d456cdb4
feat(kiro): 添加 AWS SSO 凭据导入和批量导入流式进度功能
...
1. 新增 checkKiroCredentialsDuplicate 函数用于检测重复凭据
2. 批量导入支持 SSE 流式响应实时显示进度
3. 新增 importAwsCredentials 函数支持 AWS Builder ID 模式导入
4. 前端新增 AWS 凭据导入模态框,支持文件上传和 JSON 粘贴两种模式
5. 添加中英文国际化翻译支持
2026-01-09 12:38:40 +08:00
accx
54bdbc804c
添加 [ignore] 标签让 AI 忽略 Antigravity 系统提示词
2026-01-08 23:20:58 +08:00
Zhafron Kautsar
60161fd2bc
feat(converters): add display_name field to model list responses
...
Add display_name field to model list conversions across all converter strategies to improve model identification in API responses. ClaudeConverter and GeminiConverter now include display_name in their toOpenAIModelList methods, while OpenAIConverter adds ensureDisplayName method to guarantee the field exists for native OpenAI models.
2026-01-08 08:20:19 -05: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
leonai
9411d7d315
feat(kiro): 添加批量导入refreshToken功能
...
1. 新增refreshKiroToken函数用于刷新单个token
2. 新增batchImportKiroRefreshTokens函数支持批量导入
3. 添加/api/kiro/batch-import-tokens接口端点
4. 实现批量导入UI模态框及实时统计功能
5. 添加中英文国际化翻译支持
2026-01-08 18:16:26 +08:00
hex2077
26e1da1470
fix: 修复system_instruction到systemInstruction的转换并修正回调URL变量名
...
确保在请求体中正确处理system_instruction到systemInstruction的转换,同时修正回调URL变量名从localUrl到url以匹配实际使用场景
2026-01-08 16:48:30 +08:00
hex2077
c84ac7df3f
refactor(antigravity-core): 简化系统提示并改进系统指令处理逻辑
...
重构 ANTIGRAVITY_SYSTEM_PROMPT 使其更简洁
优化 ensureRolesInContents 函数以更好地处理不同模型的系统指令
2026-01-08 13:35:57 +08:00
Zhafron Adani Kautsar
114ef64d05
Merge branch 'main' into fix-kiro-token-count
2026-01-07 23:51:02 -05:00
hex2077
2828166b18
fix(api): 修复401/400错误时的认证刷新逻辑并优化模型处理
...
为API调用和流式请求添加401/400错误时的认证刷新重试机制
修改antigravity-core中ensureRolesInContents方法,仅对非图像模型设置systemInstruction
2026-01-08 12:46:25 +08:00
Zhafron Kautsar
89bc0ee6f8
refactor(claude-kiro): improve token counting accuracy using API contextUsagePercentage
...
Replace client-side token estimation with server-provided contextUsagePercentage
for accurate input token calculation. This eliminates discrepancies between
estimated and actual token counts by using the API's native context window
measurement.
Key changes:
- Add contextUsage event parsing in AWS Event Stream buffer
- Calculate input tokens from contextUsagePercentage in both streaming and
non-streaming responses
- Deprecate estimateInputTokens() method in favor of API-provided metrics
- Import CLAUDE_DEFAULT_MAX_TOKENS for context window calculations
- Add fallback error handling when contextUsagePercentage is not received
- Fix code formatting and whitespace consistency throughout the file
2026-01-07 23:39:07 -05:00
ZqinKing
30d2215d09
修复 Antigravity 渠道对系统提示词的校验
...
详细修改内容:
1. 添加 ANTIGRAVITY_SYSTEM_PROMPT 常量,包含完整的身份描述和指南。
2. 在 geminiToAntigravity 函数中添加 requestType: 'agent' 字段。
3. 在 ensureRolesInContents 函数中强制设置系统提示词,覆盖用户配置。
4. 调整 Base URL 降级顺序,优先使用 Sandbox 环境。
2026-01-08 12:12:07 +08:00
hex2077
44d09d0713
feat(更新检查): 添加GitHub API和tarball更新支持
...
实现非Git环境下的更新检查功能,通过GitHub API获取最新版本信息。添加tarball下载更新方式,适用于Docker等非Git环境。优化更新流程,支持多种更新方式自动切换,并完善错误处理和日志记录。
2026-01-07 23:49:23 +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
hex2077
717acbb2f4
refactor(antigravity-core): 优化工具配置逻辑并清理代码
...
- 重构工具配置检查逻辑,避免创建空对象
- 移除已注释的maxOutputTokens处理代码
- 统一代码缩进格式
- 清理JSON Schema属性处理逻辑
2026-01-06 22:37:23 +08:00
何夕2077
a8a1301da7
Merge pull request #172 from ZqinKing/main
...
feat: 在日志中添加凭证自定义名称(customName)以增强可读性
2026-01-06 21:27:00 +08:00
hex2077
01496aab8a
fix: 修复Claude模型禁用tools和跳过禁用节点健康检查
...
当模型是Claude时,禁止使用tools配置
在UI API请求处理中跳过已禁用节点的健康检查
2026-01-06 21:24:53 +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
Xi Qi
cdb0c85051
[feat] increase antigravity usage precision to two decimal places
2026-01-04 22:34:01 +08:00
何夕2077
982babb5aa
Merge pull request #158 from ZqinKing/main
...
feat(fallback): 新增跨协议模型 Fallback 映射功能
2026-01-04 15:25:42 +08:00
何夕2077
16074c1030
Merge pull request #155 from macdao/fix-antigravitiy-usage-display
...
add project payload in fetchAvailableModels request to get correct remainingFraction
2026-01-04 15:25:26 +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
Xi Qi
b5614a1f43
add project payload in fetchAvailableModels request to get correct remainingFraction
2026-01-03 22:59:21 +08:00
Yoahoug
8cbbf57174
再次修复kiro 400问题,用占位符替换历史信息中的image,缩小包体大小
2026-01-03 22:03:49 +08:00
hex2077
0f335db090
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
2026-01-03 18:16:49 +08:00
hex2077
f691380482
feat: 新增主题切换功能并优化提供商池初始化
...
refactor: 重构配置管理移除冗余提供商配置
fix: 修复手动OAuth回调处理逻辑
style: 优化用量卡片UI增加折叠功能
perf: 提升服务启动时提供商池节点初始化效率
docs: 更新i18n翻译文本和配置说明
chore: 清理无用代码和配置文件
2026-01-03 18:02:16 +08:00
Yoahoug
10146e3cf0
fix: Kiro长上下文400错误修复 & 添加自定义代理支持
...
## Kiro 长上下文修复
- 添加请求体大小限制(默认240KB),避免超过Kiro API限制导致400错误
- 添加 cleanIncompleteToolCalls 方法,清理不完整的工具调用
- 确保截断后第一条消息是user类型
- 新增配置项 KIRO_MAX_REQUEST_SIZE_KB
## 自定义代理支持
- 为各Provider添加独立的代理配置选项
- 支持 USE_SYSTEM_PROXY_* 配置
- UI界面添加代理配置入口
- 新增 proxy-utils.js 代理工具模块
2026-01-02 23:32:10 +08:00
hex2077
bb6195ee2d
feat: 添加主进程管理和自动更新功能
...
- 引入主进程(master.js)管理子进程生命周期
- 实现子进程崩溃自动重启机制
- 添加服务管理API端点
- 支持通过Web界面检查更新和重启服务
- 更新文档添加FAQ章节
- 优化系统信息显示和UI交互
- autoLinkProviderConfigs增加更新providerPoolManager逻辑
2025-12-31 23:23:56 +08:00
何夕2077
ecdf7f31e7
Merge pull request #142 from clansty/feature/count-tokens-api
...
feat: 实现 Anthropic 兼容的 count_tokens API
2025-12-28 16:42:27 +08:00
Clansty
0fcc29c9af
fix
2025-12-27 21:16:59 +08:00
何夕2077
cdb936cfd6
Merge pull request #141 from yicone/main
...
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:17:08 +08:00
hex2077
fc3eef0b3d
feat(oauth): 重构OAuth授权流程并支持自定义端口
...
- 重构OAuth回调服务器管理,改为按提供商而非端口存储
- 在授权模态框中添加端口自定义功能
- 支持在生成授权URL时指定自定义端口
- 更新Dockerfile和文档以反映新增的OAuth端口需求
- 将授权逻辑从event-handlers.js移至provider-manager.js
- 优化服务器关闭逻辑,避免端口冲突
2025-12-27 17:11:19 +08:00
yicone
d541c36b47
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:01:02 +08:00
Clansty
13b34411fc
feat: 实现 Anthropic 兼容的 count_tokens API
...
- 在 KiroApiService 中添加 countTokens 方法,支持计算 messages、system、tools 的 token 数
- 使用 @anthropic-ai/tokenizer 进行准确的 token 计算
- 支持 text、tool_use、tool_result、image、document 等内容类型
- 修改 request-handler.js 处理 POST /v1/messages/count_tokens 请求
- 返回格式与 Anthropic 官方 API 一致:{ input_tokens: number }
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 23:01:10 +08:00
Clansty
839731fd48
fix(kiro): 修复 tool_use 的 input 字段序列化问题
...
将 tool_use 块的 input 字段从 JSON 字符串解析为对象,
修复 Claude SDK 校验不通过的问题。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:28:29 +08:00
hex2077
3e0699a2fe
refactor(auth): 改进密码文件读取和验证逻辑
...
- 使用异步方式检查文件存在性避免竞态条件
- 增加详细的日志输出帮助调试
- 统一处理文件不存在和读取失败的情况
- 在验证函数中添加密码长度日志
2025-12-25 18:10:06 +08:00
hex2077
acb666d089
fix(auth): 处理空密码文件时使用默认密码
...
当密码文件存在但内容为空时,现在会正确使用默认密码。同时优化了错误日志信息,使其更清晰。
2025-12-25 17:58:47 +08:00
hex2077
8bfa7e1dbf
feat(认证): 添加默认密码作为备用方案
...
当密码文件不存在或读取失败时,使用默认密码作为备用方案,提高系统的容错能力
2025-12-25 17:43:12 +08:00
hex2077
8a1ccb9877
refactor(config): 重构配置文件路径至configs目录并更新相关引用
...
- 将配置文件统一迁移至configs目录
- 更新所有相关代码中对配置文件的引用路径
- 删除不再使用的run-docker脚本文件
- 更新文档中关于配置文件路径的说明
- 调整默认配置参数和路径引用方式
2025-12-25 16:48:42 +08:00
hex2077
7e16afd806
fix: 更新模型名称并修复节点选择逻辑
...
更新 PROVIDER_MODELS 中的 gemini-3-flash 模型名称
在 ProviderPoolManager 中更新错误节点的 lastUsed 时间,防止 LRU 策略导致重复选择失败节点
2025-12-24 21:44:15 +08:00
hex2077
8f843f50f6
feat: 添加版本号显示功能并更新CI流程
...
- 创建VERSION文件存储版本号
- 在系统信息面板添加版本号显示
- 更新Docker发布流程以自动读取VERSION文件并创建Git标签
- 在OAuth授权模态框中添加端口号提示
- 添加相关i18n翻译字段
2025-12-24 18:26:25 +08:00
unihon
e663e85ef9
fix(usage): 修复provider_health接口过滤参数不生效问题
2025-12-23 18:21:43 +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
ca8a68261f
fix(claude-kiro): 确保历史消息以assistantResponseMessage结尾
...
当历史消息最后一条是用户消息时,添加空的assistantResponseMessage以满足Kiro API要求
默认存在configs目录,用于docker挂载
2025-12-23 15:21:37 +08:00
lemon07r
902bee1aa5
fix: map finish_reason to 'tool_calls' in Gemini stream when tool calls are present
2025-12-22 19:46:26 -05:00
lemon07r
ac47e04cf9
fix: add missing 'index' to Gemini streaming tool calls and improve tests
2025-12-22 19:36:01 -05:00
unihon
b25b2461c5
Merge branch 'justlovemaki:main' into feature/provider-health-api
2025-12-22 18:32:55 +08:00
hex2077
231505afd9
feat: 更新OAuth回调服务器主机和图片资源
...
fix: 修复curl命令中baseURL拼接问题
refactor: 将授权成功后的刷新逻辑移至provider-manager
docs: 更新README中的赞助者列表和图片引用
2025-12-22 13:44:35 +08:00
unihon
7a5ce6dbd5
feat(usage): 添加provider健康检查接口
2025-12-22 01:24:23 +08:00
hex2077
0816de2ba2
feat(ui): 添加图片放大功能并优化仪表盘布局
...
实现二维码图片点击放大功能,重构仪表盘顶部布局将联系信息与统计卡片并排显示
添加多语言图片切换功能,根据语言显示不同的赞助和联系方式图片
优化Kiro OAuth流程,增加自动关联凭据到Pools的功能
2025-12-21 21:09:16 +08:00
Ravens2121
2dc7514d37
feat: add claude-kiro-oauth provider OAuth authorization support
...
Amp-Thread-ID: https://ampcode.com/threads/T-019b4067-8a07-72db-b29f-20e581b9ea58
Co-authored-by: Amp <amp@ampcode.com>
2025-12-21 18:45:26 +08:00
hex2077
abe6a15b93
fix(claude-kiro): 修复社交认证方法下未检查profileArn的问题
...
当使用社交认证方法时,添加对profileArn的检查以避免潜在的错误
refactor(ui-manager): 改进console日志的错误处理
增强日志系统对复杂对象和错误的处理能力,避免字符串化时出现异常
2025-12-21 17:25:18 +08:00
hex2077
96587f1ad0
refactor(provider-pool-manager): 用LRU策略替换轮询算法以均衡分配
...
改进提供商选择逻辑,从简单的取模轮询改为基于最后使用时间和使用次数的LRU策略,确保在动态变化的可用列表情况下也能平均分配到各个账号
2025-12-20 17:43:50 +08:00
hex2077
fa8150701f
feat(i18n): 添加多语言支持并实现国际化功能
...
实现中英文双语支持,包括:
1. 添加i18n.js核心模块处理语言切换和翻译
2. 创建语言切换器组件
3. 更新所有UI文本使用翻译键
4. 添加I18N_GUIDE.md文档说明使用方法
5. 修改样式适配语言切换器
6. 添加adm-zip依赖支持配置文件打包下载
7. 更新登录页面支持多语言
8. 重构toast消息显示支持多语言标题
2025-12-20 17:27:30 +08:00
hex2077
f3761a4254
docs: 更新README文档并优化安装脚本和UI交互
...
- 更新三语言README,简化快速启动流程,强调Web UI可视化配置
- 移除详细的启动参数文档和模型协议关系图,简化文档结构
- 优化install-and-run脚本,添加--pull参数支持代码更新,统一依赖安装流程
- 改进Kiro服务的机器码生成机制,基于配置生成唯一ID而非MAC地址
- 优化OAuth授权UI,移除冗余的文件路径提示和回调地址警告
- 修复modal.js中OAuth凭据文件路径字段的兼容性检查
- 添加Qwen OAuth端点的初始化配置
- 优化service-manager降级逻辑注释说明
2025-12-20 15:23:56 +08:00
hex2077
e87d74f517
feat: 添加OAuth授权凭据自动生成功能并优化UI
...
- 实现OAuth授权成功后自动生成凭据文件并填充路径
- 添加"生成凭据"按钮到各提供商配置表单
- 优化文件上传组件的样式和布局
- 将autoLinkProviderConfigs函数导出供服务初始化使用
- 新增oauth_success事件处理逻辑
- 调整授权模态框位置避免遮挡
2025-12-19 18:05:32 +08:00
hex2077
e943819539
feat(配置管理): 添加提供商URL配置支持并优化UI
...
扩展配置系统以支持自定义提供商API端点URL,包括Gemini、Kiro、Qwen和Antigravity服务的可配置基础URL。同时优化了配置表单的UI,添加了可选标记和占位符提示。
- 在config.json.example中添加各提供商URL配置项
- 修改各提供商核心服务以支持自定义URL
- 更新配置管理器和UI管理器以处理新增URL字段
- 优化前端配置表单,添加可选标记和占位符
- 扩展字段映射和顺序定义以包含URL配置项
- 改进授权模态框,添加手动URL输入支持
2025-12-19 16:31:48 +08:00
hex2077
5af83e4473
feat(gemini): 添加新的 gemini-3-flash 模型并修复令牌过期检查
...
添加 gemini-3-flash-preview 和 gemini-2.5-flash 模型到 PROVIDER_MODELS 和映射表
修复 isTokenExpiringSoon() 方法在没有 expiry_date 时的默认返回值
添加调试日志打印可用模型列表
2025-12-18 16:57:42 +08:00
hex2077
d5417d9890
feat(provider): 添加自定义名称字段并优化OAuth处理流程
...
添加自定义名称字段以允许用户为节点设置个性化名称
重构OAuth处理逻辑,统一各提供商的授权流程
增加超时处理并优化错误提示
调整UI显示顺序和字段布局
2025-12-17 13:45:02 +08:00
hex2077
3887243528
feat(usage): 添加用量查询功能及界面
...
实现完整的用量查询功能,包括:
1. 新增用量查询页面和导航入口
2. 为各API服务适配器添加用量查询接口
3. 实现用量数据缓存机制
4. 添加响应式用量数据展示界面
5. 支持自动刷新和手动刷新用量数据
6. 显示模型配额、剩余用量和重置时间等信息
2025-12-16 15:29:15 +08:00
hex2077
7c976bdf0a
feat(安全): 添加后台登录密码配置功能
...
实现后台管理密码的设置和更新功能,包括:
- 在前端添加密码输入框和显示/隐藏切换按钮
- 在后端添加密码验证和存储逻辑
- 密码修改后需要重新登录生效
2025-12-14 20:20:31 +08:00
hex2077
c2bc2f1c07
fix(converters): 更新AI模型相关常量以匹配最新API限制
...
调整OpenAI、Claude、Gemini等模型的token限制常量,使其与各平台最新API规格保持一致
2025-12-13 17:38:42 +08:00
hex2077
839fc2d9de
refactor(converters): 使用常量替换模型默认参数硬编码
...
将各模型转换器中的硬编码默认参数替换为统一的常量定义,提高代码可维护性
2025-12-13 17:30:04 +08:00
hex2077
f851ac8bb2
fix(provider-pool): 修复提供者使用计数和健康状态更新逻辑
...
更新提供者使用计数时增加最后使用时间记录
修复流式请求和一元请求成功后的使用计数更新
移除不必要的模型映射和配置
调整服务选择时跳过使用计数的逻辑
2025-12-13 00:45:49 +08:00
hex2077
1c46bb547b
perf(api): 为所有API服务添加HTTP连接池配置防止资源泄漏
...
为Claude、OpenAI、Gemini、Qwen等API服务添加HTTP/HTTPS agent配置,设置keepAlive、maxSockets等参数以限制连接池大小,避免资源泄漏问题。同时统一了各服务的axios配置方式,提高网络请求的稳定性和性能。
2025-12-10 15:45:08 +08:00
hex2077
b364341f67
feat(provider): 增强健康检测和自动配置关联功能
...
- 新增 provider-utils.js 公共模块,提取共用工具函数
- 添加提供商健康检测 API 端点和 UI 按钮
- 实现配置文件自动关联功能(启动时和手动触发)
- 支持 gemini-antigravity 新提供商类型
- 增强健康检测结果记录(时间、模型、错误信息)
- 添加提供商列表分页功能
- 修复 OpenAIResponsesConverter 中 systemMessages 未定义问题
- 更新默认健康检测模型配置
2025-12-10 15:18:42 +08:00
hex2077
c5cd1ab2c7
Revert "Merge pull request #103 from leonaii/main"
...
This reverts commit 4f336889fd46193f5d6b32d95738070e4aecb7b0, reversing
changes made to 4a645cdf3ffaeb922d97141dbf699807ccc2d240.
2025-12-10 12:13:11 +08:00
何夕2077
f4b30ed596
Merge pull request #103 from leonaii/main
...
先合并,后处理
2025-12-10 12:12:42 +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
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
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
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