Commit graph

173 commits

Author SHA1 Message Date
Zhafron Adani Kautsar
49382bf96b Merge branch 'justlovemaki:main' into fix-400-kiro 2026-01-09 05:32:07 -05:00
Zhafron Kautsar
5342214c5a fix(kiro): preserve tool definitions when history contains tool calls
When conversation history includes tool usage but current request doesn't
provide tool definitions, reconstruct minimal tool specifications from
history to prevent API errors. This ensures continuity in multi-turn
conversations with tool calling.

- Extract tool names from historical tool uses
- Generate placeholder tool specs with empty schemas
- Only apply when history has tool calls but toolsContext is empty
- Remove obsolete Chinese comment
2026-01-09 05:13:15 -05:00
hex2077
d639077bde feat(plugin): 实现可插拔插件系统架构
重构API大锅饭功能为插件,新增插件管理器核心模块
支持插件生命周期管理、认证中间件、路由和钩子扩展
添加默认认证插件和API大锅饭插件
2026-01-09 18:02:56 +08:00
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