hex2077
2d317e0333
refactor(项目结构): 重构项目目录结构并优化代码组织
...
将常用工具函数移动到utils目录
重构提供商策略模式实现
新增docker-compose构建配置文件
优化UI配置选择器的样式和交互
重构代理工具和API管理模块
更新脚本路径和依赖引用
2026-01-10 18:19:06 +08:00
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
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
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
8f39295655
feat: 改进错误处理、Ollama兼容性和文档结构
...
refactor(converters): 优化Claude到Gemini的转换逻辑
fix(kiro): 修复社交认证刷新问题
perf(ollama): 提升模型列表获取效率
docs: 为README添加可折叠区块
style: 清理控制台日志
2026-01-06 18:14:02 +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
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
何夕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
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
ca8a68261f
fix(claude-kiro): 确保历史消息以assistantResponseMessage结尾
...
当历史消息最后一条是用户消息时,添加空的assistantResponseMessage以满足Kiro API要求
默认存在configs目录,用于docker挂载
2025-12-23 15:21:37 +08:00
hex2077
abe6a15b93
fix(claude-kiro): 修复社交认证方法下未检查profileArn的问题
...
当使用社交认证方法时,添加对profileArn的检查以避免潜在的错误
refactor(ui-manager): 改进console日志的错误处理
增强日志系统对复杂对象和错误的处理能力,避免字符串化时出现异常
2025-12-21 17:25:18 +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
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
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
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
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
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
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
fec0b19bd4
feat(provider): 实现基于模型选择的提供商池管理功能
...
添加 provider-models.js 集中管理各提供商支持的模型列表
修改 provider-pool-manager.js 支持根据请求模型过滤提供商
更新服务管理器和请求处理逻辑以支持模型感知的提供商选择
添加前端UI支持配置不支持的模型列表
更新示例配置文件展示新功能
2025-11-29 16:56:59 +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
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