-
Notifications
You must be signed in to change notification settings - Fork 11
feat(amp): 新增 AMP Code 透明代理支持 #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- 添加 AMP profile 选择的后端服务和 Tauri 命令 - 实现 AMP profile 选择前端组件,允许选择 claude, codex, gemini profile - 将 AMP profile 选择功能集成至 Profile 管理页面,并增加专用标签页 - 定义 AMP profile 相关类型,并新增 AMP logo 资源 - 目标是让 AMP Code 复用现有工具的 Profile 配置
- 在代理服务中集成 amp code 工具,实现动态路由到 claude/codex/gemini - 引入 `AmpHeadersProcessor`,根据请求特征(路径、头部、模型字段)自动识别上游 api 类型 - 更新后端配置模型和存储,为 amp code 提供独立的代理配置和默认端口 (8790) - 调整代理启动和请求处理逻辑,amp code 动态获取 api key 和 base url,跳过直接配置验证 - 在前端界面(工具列表、控制栏、设置)中全面支持 amp code 的显示和交互 - 优化前端代理控制栏显示,amp code 不显示 profile 配置和切换按钮
- 【feat】新增 Amp Code 用户认证功能:
- 实现后端命令,支持获取用户信息、验证并保存 Access Token。
- 引入 Amp 原生配置管理服务,用于备份、修改和还原 Amp CLI 配置文件。
- 更新代理配置模型,支持存储 Amp 原生配置备份,确保代理停止时能完整还原。
- 新增前端 UI,支持 Amp Access Token 输入、验证和用户状态显示,并调整会话级端点配置的显示逻辑。
- 将 Amp Code 添加到自动启动代理列表和 Tauri 命令处理。
- 【refactor】重构 Amp 请求处理器,实现智能路由:
- 将内部 Amp API 请求转发至 ampcode.com。
- 将 LLM 相关请求路由至用户选择的 AI 模型 Profile。
- 【refactor】优化代理实例的停止逻辑,引入取消令牌以实现更优雅的服务关闭。
- 【chore】更新代理配置迁移逻辑,以支持新的 Amp 配置字段。
|
本评论会随各平台任务完成自动更新:
This comment auto-updates as each platform finishes:
|
- 确保当输入为空时,AMP Access Token 和基础 URL 能够被正确保存为 null,从而允许清除配置 - 修复了之前无法通过清空输入框来重置 AMP Access Token 配置的问题 style(amp-code): 统一 AMP Code 品牌命名为大写 - 将原生配置文件中的“Amp Code”注释更新为“AMP Code”以保持一致性 - 将透明代理页面工具列表中的“Amp Code”显示名称更新为“AMP Code”
- 【新功能】在 AMP Code 中实现 `webSearch2` 和 `extractWebPageContent` 本地工具 - 【新功能】添加 Tavily API 密钥配置,增强网页搜索能力 - 【新功能】Tavily 密钥未配置时,提供 DuckDuckGo HTML 搜索作为网页搜索备用方案 - 【新功能】为 `extractWebPageContent` 引入健壮的 SSRF 防护,防止访问内部网络 - 【重构】统一代码库中所有“Amp”引用为“AMP Code”,提升一致性
- 调整多行表达式和函数签名的换行,提升代码可读性 - 统一代码缩进,保持项目代码风格一致性
- 将 AMP Code 配置备份从原始 JSON 字符串切换为 `serde_json::Value` - 实现配置的语义化备份,增强处理健壮性并避免误删用户文件 - 更新 `amp_native_config` 服务,直接操作 JSON 对象而非字符串 - 引入 `DataManager` 统一文件读写,提升跨平台兼容性和错误处理 - 优化 home 目录获取逻辑,确保不同系统下路径识别正确 - 修复旧版配置迁移中 `original_amp_settings` 和 `original_amp_secrets` 的解析
概述
本 PR 实现了 AMP Code 工具的完整透明代理支持,包含 4 个核心功能:Profile 选择、透明代理、用户认证、本地网页搜索与内容提取。
功能亮点
🎯 AMP Code Profile 选择
AmpProfileSelector组件,支持选择 Claude/Codex/Gemini Profile🔌 透明代理支持
AmpHeadersProcessor,根据请求特征(路径、头部、模型字段)自动识别上游 API 类型🔐 用户认证功能
AmpNativeConfigService,支持 AMP Code CLI 配置文件备份、修改和还原🔍 本地网页搜索与内容提取
webSearch2本地工具:在代理层本地执行网页搜索extractWebPageContent本地工具:本地提取网页内容http://good.com@evil.com绕过)数据流设计
技术实现
后端(Rust)
新增 Tauri 命令
get_amp_user_info/verify_and_save_amp_token- 用户认证get_amp_profile_config/save_amp_profile_config- Profile 配置管理新增服务
services/amp_native_config.rs- AMP Code 原生配置管理services/proxy/headers/amp_processor.rs- 请求处理器(智能路由 + 本地工具)本地工具实现
validate_url_security()+is_private_ip()read_response_with_limit()(5MB)数据模型扩展
ToolProxyConfig新增tavily_api_key字段前端(React + TypeScript)
新增组件
AmpProfileSelector- AMP Code Profile 选择器测试情况
代码质量检查
功能测试
风险评估
低风险 ✅
需注意⚠️
Breaking Changes: 无
依赖变更: 无