diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6954a4cb3..909243c7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,4 +47,4 @@ jobs: - name: Run OpenClaw install regression tests shell: pwsh - run: cargo test -p proxycast-core openclaw_install --manifest-path "src-tauri/Cargo.toml" + run: cargo test -p lime-core openclaw_install --manifest-path "src-tauri/Cargo.toml" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8679078b..2e6a8ec52 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -125,7 +125,7 @@ jobs: fi { echo "RELEASE_BODY<> $GITHUB_OUTPUT # 下载 x64 DMG echo "下载 x64 DMG..." - curl -sL -o x64.dmg "https://github.com/aiclientproxy/proxycast/releases/download/v${VERSION}/proxycast_${VERSION}_x64.dmg" + curl -sL -o x64.dmg "https://github.com/aiclientproxy/lime/releases/download/v${VERSION}/lime_${VERSION}_x64.dmg" X64_SHA=$(shasum -a 256 x64.dmg | awk '{print $1}') echo "x64 SHA256: $X64_SHA" echo "x64_sha=$X64_SHA" >> $GITHUB_OUTPUT @@ -59,37 +59,37 @@ jobs: ARM64_SHA="${{ steps.sha.outputs.arm64_sha }}" X64_SHA="${{ steps.sha.outputs.x64_sha }}" - cat > homebrew-tap/Casks/proxycast.rb << EOF - cask "proxycast" do + cat > homebrew-tap/Casks/lime.rb << EOF + cask "lime" do version "$VERSION" on_arm do sha256 "$ARM64_SHA" - url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/proxycast_#{version}_aarch64.dmg" + url "https://github.com/aiclientproxy/lime/releases/download/v#{version}/lime_#{version}_aarch64.dmg" end on_intel do sha256 "$X64_SHA" - url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/proxycast_#{version}_x64.dmg" + url "https://github.com/aiclientproxy/lime/releases/download/v#{version}/lime_#{version}_x64.dmg" end - name "ProxyCast" + name "Lime" desc "AI API 代理桌面应用 - 将 AI 客户端凭证转换为 OpenAI 兼容接口" - homepage "https://github.com/aiclientproxy/proxycast" + homepage "https://github.com/aiclientproxy/lime" livecheck do url :url strategy :github_latest end - app "ProxyCast.app" + app "Lime.app" zap trash: [ - "~/.config/com.proxycast.app", - "~/Library/Application Support/com.proxycast.app", - "~/Library/Caches/com.proxycast.app", - "~/Library/Preferences/com.proxycast.app.plist", - "~/Library/Saved Application State/com.proxycast.app.savedState", + "~/.config/com.lime.app", + "~/Library/Application Support/com.lime.app", + "~/Library/Caches/com.lime.app", + "~/Library/Preferences/com.lime.app.plist", + "~/Library/Saved Application State/com.lime.app.savedState", ] end EOF @@ -99,6 +99,6 @@ jobs: cd homebrew-tap git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add Casks/proxycast.rb - git commit -m "chore: bump proxycast to ${{ steps.version.outputs.version }}" + git add Casks/lime.rb + git commit -m "chore: bump lime to ${{ steps.version.outputs.version }}" git push diff --git a/.gitignore b/.gitignore index f990e0e79..0a97c9dd1 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,7 @@ docs/prd/ # Internal roadmap&gongzonghao (private) docs/roadmap/ docs/gongzonghao/ - +docs/bussniss/ # Issues tracking (internal use only) .issues/ diff --git a/AGENTS.md b/AGENTS.md index aa9d529a8..fe8b6e97e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -153,14 +153,14 @@ Kiro 凭证采用完全独立的副本策略: ### 修改凭证管理 -- 凭证文件存储在应用数据目录下的 `proxycast/credentials/`;`~/Library/Application Support/proxycast/credentials/` 仅作为 macOS 示例,Windows 请使用对应的应用数据目录 +- 凭证文件存储在应用数据目录下的 `lime/credentials/`;`~/Library/Application Support/lime/credentials/` 仅作为 macOS 示例,Windows 请使用对应的应用数据目录 - 数据库存储凭证元数据和状态 - Token 缓存在数据库中,避免频繁读取文件 ### 调试技巧 - 日志输出使用 `tracing` 宏 -- API 请求调试文件保存在应用日志目录;`~/.proxycast/logs/` 仅作为 macOS 示例,实现与排障时不要写死该路径 +- API 请求调试文件保存在应用日志目录;`~/.lime/logs/` 仅作为 macOS 示例,实现与排障时不要写死该路径 - 使用 `debug_kiro_credentials` 命令调试凭证加载 ## 文档维护 diff --git a/README.md b/README.md index fd5788c24..20950da7a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-# ProxyCast +# Lime **以创作为中心的本地优先 AI Agent 交互工作台** @@ -12,7 +12,7 @@ ## 这是什么 -ProxyCast 是一个基于 Tauri 的桌面应用,面向创作者、内容团队与轻知识工作者。它把 Workspace、Agent、Skills、MCP、Claw 渠道和 Artifact 交付整合到同一个桌面环境里,让工作从输入需求直接走向可沉淀、可复用、可继续执行的结果。 +Lime 是一个基于 Tauri 的桌面应用,面向创作者、内容团队与轻知识工作者。它把 Workspace、Agent、Skills、MCP、Claw 渠道和 Artifact 交付整合到同一个桌面环境里,让工作从输入需求直接走向可沉淀、可复用、可继续执行的结果。 你可以在一个地方完成: @@ -34,13 +34,13 @@ ProxyCast 是一个基于 Tauri 的桌面应用,面向创作者、内容团队 - Skills 封装 prompt、references、scripts、assets 和调用规则 - Skills 既定义如何交互,也定义任务如何推进 -- 它们是 ProxyCast 中经验复用、流程复用和领域方法沉淀的核心单元 +- 它们是 Lime 中经验复用、流程复用和领域方法沉淀的核心单元 ### 3. MCP 是标准能力层 - 基于 MCP 接入 tools、resources、prompts 和工作边界 - 让浏览器、文件、终端和外部服务成为 Agent 的标准化能力网络 -- 让 ProxyCast 的能力扩展建立在开放标准之上 +- 让 Lime 的能力扩展建立在开放标准之上 ### 4. Claw 渠道是异步协作入口 @@ -101,7 +101,7 @@ ProxyCast 是一个基于 Tauri 的桌面应用,面向创作者、内容团队 ## 如何工作 -ProxyCast 的核心工作方式是: +Lime 的核心工作方式是: 1. 在 Workspace 内组织项目、素材、记忆和风格 2. 用 Skills 定义经验交互与流程推进 @@ -119,15 +119,15 @@ ProxyCast 的核心工作方式是: ```bash brew tap aiclientproxy/tap -brew install --cask proxycast +brew install --cask lime ``` #### 手动下载 -从 [Releases](https://github.com/aiclientproxy/proxycast/releases) 下载对应平台安装包。 +从 [Releases](https://github.com/aiclientproxy/lime/releases) 下载对应平台安装包。 -- Windows 用户默认优先下载 `ProxyCast_*_x64-online-setup.exe`(NSIS 在线安装器,体积更小) -- 如果处于离线、内网或受限网络环境,请改用 `ProxyCast_*_x64-offline-setup.exe` +- Windows 用户默认优先下载 `Lime_*_x64-online-setup.exe`(NSIS 在线安装器,体积更小) +- 如果处于离线、内网或受限网络环境,请改用 `Lime_*_x64-offline-setup.exe` - 如被 SmartScreen 拦截,属于未签名或签名信誉不足的 Windows 常见提示,不代表安装包必然损坏 --- diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e121f503a..813992992 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,52 +1,31 @@ -## ProxyCast v0.88.0 +## Lime v0.89.0 -### ✨ 新功能 +### ✨ 主要更新 -- **自动化任务中心**:新增 `automation` 命令、服务、DAO 与设置页,支持定时任务、计划预览、健康检查、运行历史,以及 `Agent 对话任务 / 浏览器会话任务` 两种执行形态 -- **浏览器资料与环境预设**:新增 Browser Profile / Browser Environment Preset 管理,支持托管浏览器与附着当前 Chrome 两种资料模式,并可直接复用于浏览器运行时 -- **浏览器现有会话接管**:补齐 existing session attach、页签切换、桥接状态同步与 Browser Runtime 工作区协同链路 -- **Agent Chat 决策与空状态升级**:新增 `DecisionPanel`、空状态 Hero / Quick Actions、A2UI 预览卡、线程分组与消息轮次分组,强化新任务入口与浏览器协助预热 +- **品牌正式更名为 Lime**:主程序名称、仓库链接、安装包命名、Tauri `productName` / `identifier`、深链 scheme、浏览器桥扩展目录与发布文案已统一从 `Proxycast` 切换到 `Lime` +- **版本事实源继续收口**:统一 `package.json`、Cargo workspace / package、两份 Tauri 配置与 `RELEASE_NOTES.md` 的版本入口,发布流程继续只读取这一套版本源 +- **运行时命名继续收口**:Tool Calling、Web Search、Durable Memory、workspace sandbox、真实测试与浏览器桥接等运行时环境变量统一以 `LIME_*` / `__LIME_*` 为现役事实源,旧 `PROXYCAST_*` 仅保留兼容读取 +- **生态入口同步完成**:README、插件升级入口、About 页、扩展说明与下载地址等对外入口统一使用 `Lime` -### 🔧 优化与重构 +### ⚠️ 兼容性说明 -- **执行系统收敛**:移除旧 `batch` 页面/API 与 `heartbeat` 命令/设置入口,统一收口到 `automation` 与 `execution tracker` -- **OpenClaw 工作台重做**:重排安装、配置、运行、Dashboard 与进度页,补强 Windows 环境检测、修复引导与诊断复制 -- **Settings v2 持续整理**:合并媒体服务设置,重构 Chrome Relay、Execution Tracker、About、Appearance 等页面,统一导航与信息架构 -- **资源与创作工作台更新**:重构资源页、图像生成、视频画布、项目选择器与多处内容创作界面,提升工作区一致性 - -### 🐛 修复 - -- **插件兼容与更新提示补强**:插件管理页新增 Windows 主程序升级入口和最低版本提示,降低插件与主程序版本错配的排障成本 -- **Browser Runtime / DevBridge 稳定性提升**:补齐浏览器会话启动参数、流诊断、桥接 mock 与状态同步,减少运行时偏差 -- **Provider 配置读写修复**:完善 API Key Provider 的 `api_version`、`project` 等配置项读写与表单校验 -- **Windows 启动与安装诊断改进**:补充安装说明、常见问题与构建文档,降低受限网络与依赖缺失场景下的排障摩擦 - -### ⚠️ 兼容性调整 - -- 旧 `Batch` / `Heartbeat` 相关前端入口与后端命令已下线;既有流程请迁移到新的 `Automation` 设置页与统一执行记录 +- 旧 `proxycast` 数据目录、数据库文件与历史路径仍保留启动迁移兼容,现有数据会继续被识别并迁移到 `lime` 目录 +- 后续对外暴露的现役命名统一使用 `Lime`;旧 `Proxycast` 命名仅作为兼容层保留,不再继续扩展 ### 🧪 测试 -- 新增 Automation、Browser Profile / Environment Preset、Existing Session Attach、Agent Chat 分组与插件版本提示等测试覆盖 -- 补充 Browser Runtime、OpenClaw、Execution Tracker、Chrome Relay 与多处设置页交互测试 -- 发布前已执行:`cargo fmt --all`、`cargo test`、`cargo clippy`、`npm run lint` +- 发布前执行:`cargo test`、`cargo fmt --all`、`cargo clippy`、`npm run lint` ### 📝 文档 -- 更新 README、架构概览、安装、故障排查、构建与运维文档 -- 补充 NextBrowser 相关研究资料与浏览器自动化设计记录 - -### 🛠️ 开发体验 - -- **Windows 发布流程增强**:Release Workflow 现同时产出在线 / 离线两个 Windows 安装包 -- **版本源保持一致**:统一 `package.json`、Cargo workspace、两份 Tauri 配置与 `RELEASE_NOTES.md` 的发布版本入口 +- 更新发布说明、仓库链接、安装与分发文案,统一使用 `Lime` ### 📦 Windows 下载说明 -- `ProxyCast_*_x64-online-setup.exe`:默认推荐,体积更小,安装时按需下载 WebView2 -- `ProxyCast_*_x64-offline-setup.exe`:适用于离线、内网或受限网络环境 +- `Lime_*_x64-online-setup.exe`:默认推荐,体积更小,安装时按需下载 WebView2 +- `Lime_*_x64-offline-setup.exe`:适用于离线、内网或受限网络环境 - 如果在线安装失败,请改用离线安装包 --- -**完整变更**: v0.87.0...v0.88.0 +**完整变更**: v0.88.0...v0.89.0 diff --git a/docs/README.md b/docs/README.md index fe12bf917..669bc4dee 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,7 +2,7 @@ ## 目录定位 -`docs/` 是 ProxyCast 文档中心,分为两类受众: +`docs/` 是 Lime 文档中心,分为两类受众: - 普通创作者:优先阅读 `content/` 下的入门与用户指南 - 开发者与维护者:阅读 `aiprompts/`、`develop/`、`tests/` 等工程文档 @@ -13,6 +13,7 @@ - `content/`:对外文档站正文(产品介绍、用户指南、进阶能力) - `aiprompts/`:模块级工程文档(前后端组件、服务、命令、数据层) +- `bussniss/`:商务合作与代理运营方案 - `develop/`:开发流程与协作规范 - `plugins/`:插件与扩展相关文档 - `tests/`:测试策略与用例文档 @@ -24,7 +25,7 @@ - `develop/execution-tracker-p0-acceptance-report.md`:统一执行追踪 P0 验收报告 - `develop/execution-tracker-p1-p2-roadmap.md`:统一执行追踪后续路线(P1/P2) - `develop/scheduler-task-governance-p1.md`:调度任务治理 P1(连续失败、自动停用、冷却恢复) -- `roadmap/proxycast-skills-standardization-roadmap.md`:Skills 标准化与产品化路线图 +- `roadmap/lime-skills-standardization-roadmap.md`:Skills 标准化与产品化路线图 - `ops.md`:运维与发布说明 - `app.config.ts` / `nuxt.config.ts` / `package.json`:文档站配置 diff --git a/docs/TECH_SPEC.md b/docs/TECH_SPEC.md index bf6da9e8d..431869cc2 100644 --- a/docs/TECH_SPEC.md +++ b/docs/TECH_SPEC.md @@ -1,8 +1,8 @@ -# ProxyCast 技术规格文档 +# Lime 技术规格文档 ## 项目概述 -ProxyCast 是一个桌面端 AI API 代理工具,将各种大模型客户端 API(Gemini CLI、Qwen Code、Kiro Claude 等)统一转换为本地 OpenAI 兼容接口。 +Lime 是一个桌面端 AI API 代理工具,将各种大模型客户端 API(Gemini CLI、Qwen Code、Kiro Claude 等)统一转换为本地 OpenAI 兼容接口。 ## 技术栈 diff --git a/docs/aiprompts/aster-integration.md b/docs/aiprompts/aster-integration.md index 18d0da9f4..da740a53c 100644 --- a/docs/aiprompts/aster-integration.md +++ b/docs/aiprompts/aster-integration.md @@ -2,7 +2,7 @@ ## 集成状态 ✅ -ProxyCast 已完整集成 aster-rust 框架,包括凭证池桥接。 +Lime 已完整集成 aster-rust 框架,包括凭证池桥接。 **后端模块** (`src-tauri/src/agent/`): @@ -49,7 +49,7 @@ ProxyCast 已完整集成 aster-rust 框架,包括凭证池桥接。 │ │ │ │ │ ▼ ▼ │ │ ┌─────────────────────────────────────┐ │ -│ │ ProxyCast 凭证池 │ │ +│ │ Lime 凭证池 │ │ │ │ - ProviderPoolService │ │ │ │ - ApiKeyProviderService │ │ │ └─────────────────────────────────────┘ │ @@ -69,7 +69,7 @@ ProxyCast 已完整集成 aster-rust 框架,包括凭证池桥接。 ### 支持的凭证类型映射 -| ProxyCast 凭证类型 | Aster Provider | +| Lime 凭证类型 | Aster Provider | | -------------------------- | -------------- | | OpenAIKey | openai | | ClaudeKey / AnthropicKey | anthropic | diff --git a/docs/aiprompts/converter.md b/docs/aiprompts/converter.md index 8c541aef6..0594f0c6e 100644 --- a/docs/aiprompts/converter.md +++ b/docs/aiprompts/converter.md @@ -112,7 +112,7 @@ src-tauri/src/converter/ ```rust // Antigravity 请求格式 (参考 CLIProxyAPI) { - "project": "proxycast", + "project": "lime", "request": { "contents": [...], "systemInstruction": {...}, diff --git a/docs/aiprompts/design-language.md b/docs/aiprompts/design-language.md index 9ef7e1798..89eeeb436 100644 --- a/docs/aiprompts/design-language.md +++ b/docs/aiprompts/design-language.md @@ -1,8 +1,8 @@ -# ProxyCast UI 视觉语言 +# Lime UI 视觉语言 ## 适用范围 -本规范适用于 ProxyCast 全部前端界面,包括: +本规范适用于 Lime 全部前端界面,包括: - 设置页 - 功能工作台 @@ -14,7 +14,7 @@ ## 视觉目标 -ProxyCast 的整体界面应当接近以下气质: +Lime 的整体界面应当接近以下气质: - 轻盈、清晰、专业,而不是炫技 - 信息优先,装饰只服务层级 diff --git a/docs/aiprompts/governance.md b/docs/aiprompts/governance.md index ac31748cf..a693fff0b 100644 --- a/docs/aiprompts/governance.md +++ b/docs/aiprompts/governance.md @@ -190,7 +190,7 @@ npm run governance:legacy-report 只有当新增依赖被封住、调用量清零、旁路迁完,才允许删旧路径。 -## Proxycast 中的典型判断方式 +## Lime 中的典型判断方式 以聊天系统为例,遇到新旧并存时,必须同时问这几个问题: diff --git a/docs/aiprompts/overview.md b/docs/aiprompts/overview.md index 115decca7..b6c920ad9 100644 --- a/docs/aiprompts/overview.md +++ b/docs/aiprompts/overview.md @@ -1,8 +1,8 @@ -# ProxyCast 项目架构概览 +# Lime 项目架构概览 ## 概述 -ProxyCast 是一个以创作为中心的本地优先 AI Agent 交互工作台,基于 Tauri 桌面应用构建,面向创作者、内容团队与轻知识工作者。系统由 Workspace、Skills 编排层、MCP 标准能力层、Claw 渠道层、Artifact 交付层与多模型接入能力共同组成。 +Lime 是一个以创作为中心的本地优先 AI Agent 交互工作台,基于 Tauri 桌面应用构建,面向创作者、内容团队与轻知识工作者。系统由 Workspace、Skills 编排层、MCP 标准能力层、Claw 渠道层、Artifact 交付层与多模型接入能力共同组成。 可以把它理解为三层结构: @@ -20,12 +20,12 @@ ProxyCast 是一个以创作为中心的本地优先 AI Agent 交互工作台, - **Tracing**:时间线、步骤与调用轨迹可观测 - **MCP**:tools / resources / prompts / roots 的标准能力接入 -在 ProxyCast 中,Skills 处于比 MCP 更贴近产品的一层:它不是底层原语,而是将领域经验、交互方式和执行流程打包后的编排单元。 +在 Lime 中,Skills 处于比 MCP 更贴近产品的一层:它不是底层原语,而是将领域经验、交互方式和执行流程打包后的编排单元。 ## 项目结构 ``` -proxycast/ +lime/ ├── src/ # React 前端 │ ├── components/ # UI 组件 │ ├── pages/ # 页面组件 diff --git a/docs/aiprompts/playwright-e2e.md b/docs/aiprompts/playwright-e2e.md index d0bbc29af..e82b42603 100644 --- a/docs/aiprompts/playwright-e2e.md +++ b/docs/aiprompts/playwright-e2e.md @@ -2,7 +2,7 @@ ## 目的 -本文件用于指导 AI Agent 在 ProxyCast 中继续进行浏览器端 E2E 测试,特别适用于以下场景: +本文件用于指导 AI Agent 在 Lime 中继续进行浏览器端 E2E 测试,特别适用于以下场景: - 用户说“继续测试”“继续复现”“继续用 Playwright MCP 验证” - 需要复用当前浏览器标签页和已有页面状态 @@ -79,7 +79,7 @@ npm run bridge:health -- --timeout-ms 120000 优先顺序: 1. 调用 `browser_tabs` 查看当前标签页 -2. 如果已有 `ProxyCast` 标签页,先查看当前 URL、标题、页面状态 +2. 如果已有 `Lime` 标签页,先查看当前 URL、标题、页面状态 3. 如果页面已漂移到旧状态,直接重新导航到 `http://127.0.0.1:1420/` 建议: @@ -113,7 +113,7 @@ npm run bridge:health -- --timeout-ms 120000 - 页面中明确可见的标题文本 - `browser_snapshot` 返回的 ref 作为精确交互目标 -## ProxyCast 推荐 E2E 主路径 +## Lime 推荐 E2E 主路径 ### 首页基础验证 diff --git a/docs/aiprompts/plugins.md b/docs/aiprompts/plugins.md index 80b78f537..50cff8431 100644 --- a/docs/aiprompts/plugins.md +++ b/docs/aiprompts/plugins.md @@ -2,7 +2,7 @@ ## 概述 -插件系统支持扩展 ProxyCast 功能,包含声明式 UI 系统。 +插件系统支持扩展 Lime 功能,包含声明式 UI 系统。 ## 目录结构 diff --git a/docs/aiprompts/workspace.md b/docs/aiprompts/workspace.md index 7a3ea0a63..fb997b92d 100644 --- a/docs/aiprompts/workspace.md +++ b/docs/aiprompts/workspace.md @@ -2,7 +2,7 @@ ## 概述 -Workspace 是 ProxyCast 应用层的概念,用于组织和管理 AI Agent 的工作上下文。它是对 Aster 框架 `Session.working_dir` 的命名和配置包装,不修改 Aster 框架本身。 +Workspace 是 Lime 应用层的概念,用于组织和管理 AI Agent 的工作上下文。它是对 Aster 框架 `Session.working_dir` 的命名和配置包装,不修改 Aster 框架本身。 ## 设计背景 @@ -29,7 +29,7 @@ Workspace 是 ProxyCast 应用层的概念,用于组织和管理 AI Agent 的 ``` ┌─────────────────────────────────────────────────────────────────┐ -│ ProxyCast (应用层) │ +│ Lime (应用层) │ │ ┌─────────────────────────────────────────────────────────────┐│ │ │ Workspace 管理 ││ │ │ - WorkspaceManager: CRUD 操作 ││ @@ -55,7 +55,7 @@ Workspace 是 ProxyCast 应用层的概念,用于组织和管理 AI Agent 的 - Workspace 通过 `root_path` 与 Aster `Session.working_dir` 关联 - 一个 Workspace 可以包含多个 Session(同一 working_dir) -- ProxyCast 按 Workspace 分组显示 Session 列表 +- Lime 按 Workspace 分组显示 Session 列表 @@ -64,7 +64,7 @@ Workspace 是 ProxyCast 应用层的概念,用于组织和管理 AI Agent 的 ### Workspace 类型定义 ```rust -// proxycast/src-tauri/src/workspace/types.rs +// lime/src-tauri/src/workspace/types.rs use serde::{Deserialize, Serialize}; use std::path::PathBuf; @@ -107,7 +107,7 @@ pub struct WorkspaceSettings { ### 数据库 Schema ```sql --- proxycast 应用数据库 +-- lime 应用数据库 CREATE TABLE workspaces ( id TEXT PRIMARY KEY, name TEXT NOT NULL, @@ -129,7 +129,7 @@ CREATE INDEX idx_workspaces_root_path ON workspaces(root_path); ### WorkspaceManager ```rust -// proxycast/src-tauri/src/workspace/manager.rs +// lime/src-tauri/src/workspace/manager.rs impl WorkspaceManager { /// 创建新 workspace @@ -187,7 +187,7 @@ impl WorkspaceManager { ### Tauri 命令 ```rust -// proxycast/src-tauri/src/commands/workspace_cmd.rs +// lime/src-tauri/src/commands/workspace_cmd.rs #[tauri::command] pub async fn workspace_create(name: String, root_path: String) -> Result; @@ -226,8 +226,8 @@ pub async fn workspace_create_session(workspace_id: String, name: String) -> Res │ └── sessions.db # Aster 管理的 session 数据库 └── state/ -~/Library/Application Support/proxycast/ # ProxyCast 应用目录 -├── proxycast.db # 应用数据库(包含 workspaces 表) +~/Library/Application Support/lime/ # Lime 应用目录 +├── lime.db # 应用数据库(包含 workspaces 表) ├── credentials/ # 凭证文件 └── workspaces/ # workspace 级配置 ├── default/ @@ -241,7 +241,7 @@ pub async fn workspace_create_session(workspace_id: String, name: String) -> Res ### WorkspaceSelector ```typescript -// proxycast/src/components/workspace/WorkspaceSelector.tsx +// lime/src/components/workspace/WorkspaceSelector.tsx interface Workspace { id: string; @@ -304,7 +304,7 @@ export function WorkspaceSelector() { | 决策点 | 选择 | 理由 | |--------|------|------| -| Workspace 存储位置 | ProxyCast 应用层 | 不修改 Aster 框架,保持框架通用性 | +| Workspace 存储位置 | Lime 应用层 | 不修改 Aster 框架,保持框架通用性 | | 与 Session 关系 | 通过 working_dir 关联 | 利用 Aster 现有字段,无需修改框架 | | 配置存储 | 独立目录 + 数据库 | 配置文件便于编辑,元数据存数据库 | | 默认 Workspace | 支持 | 新 Session 自动关联默认 Workspace | diff --git a/docs/app.config.ts b/docs/app.config.ts index 1f52edb61..9242d0fde 100644 --- a/docs/app.config.ts +++ b/docs/app.config.ts @@ -1,18 +1,18 @@ export default { docus: { - title: "ProxyCast", + title: "Lime", description: "把你的 AI 客户端额度用到任何地方", - url: "https://aiclientproxy.github.io/proxycast", + url: "https://aiclientproxy.github.io/lime", image: "/images/logo-banner.svg", socials: { - github: "aiclientproxy/proxycast", + github: "aiclientproxy/lime", }, header: { logo: true, - title: "ProxyCast", + title: "Lime", showLinkIcon: true, }, @@ -25,13 +25,13 @@ export default { footer: { credits: { icon: "", - text: "Made with 💜 by ProxyCast Team", + text: "Made with 💜 by Lime Team", href: "https://github.com/aiclientproxy", }, textLinks: [ { text: "GitHub", - href: "https://github.com/aiclientproxy/proxycast", + href: "https://github.com/aiclientproxy/lime", target: "_blank", }, ], diff --git a/docs/content/01.introduction/1.overview.md b/docs/content/01.introduction/1.overview.md index fbff1d01d..e26125484 100644 --- a/docs/content/01.introduction/1.overview.md +++ b/docs/content/01.introduction/1.overview.md @@ -1,13 +1,13 @@ --- title: 概述 -description: 了解 ProxyCast 如何支持从灵感到发布的完整创作流程 +description: 了解 Lime 如何支持从灵感到发布的完整创作流程 navigation: icon: i-heroicons-home --- -# ProxyCast 概述 +# Lime 概述 -ProxyCast 是一款创作类 AI Agent 桌面应用。 +Lime 是一款创作类 AI Agent 桌面应用。 它把对话、内容生成、图片创作、项目管理、资源沉淀放到同一个工作台里。 ::alert{type="warning"} @@ -51,6 +51,6 @@ ProxyCast 是一款创作类 AI Agent 桌面应用。 ## 下一步 -- [安装指南](/introduction/installation) - 下载并安装 ProxyCast +- [安装指南](/introduction/installation) - 下载并安装 Lime - [快速开始](/introduction/quickstart) - 3 步完成首次创作 - [首页与工作台](/user-guide/dashboard) - 熟悉核心入口 diff --git a/docs/content/01.introduction/2.installation.md b/docs/content/01.introduction/2.installation.md index 3397a9f96..9c1a5b8c5 100644 --- a/docs/content/01.introduction/2.installation.md +++ b/docs/content/01.introduction/2.installation.md @@ -1,6 +1,6 @@ --- title: 安装指南 -description: 下载、安装并验证 ProxyCast 可正常启动 +description: 下载、安装并验证 Lime 可正常启动 navigation: icon: i-heroicons-arrow-down-tray --- @@ -18,21 +18,21 @@ navigation: 从 GitHub Releases 下载最新版本安装包: -[下载 ProxyCast](https://github.com/aiclientproxy/proxycast/releases) +[下载 Lime](https://github.com/aiclientproxy/lime/releases) ### 安装包 | 平台 | 文件名 | 说明 | |------|--------|------| -| macOS | `ProxyCast_x.x.x_aarch64.dmg` | Apple Silicon Mac | -| Windows | `ProxyCast_x.x.x_x64-online-setup.exe` | 默认推荐,体积更小,安装时按需下载 WebView2 | -| Windows | `ProxyCast_x.x.x_x64-offline-setup.exe` | 离线、内网或受限网络环境使用 | +| macOS | `Lime_x.x.x_aarch64.dmg` | Apple Silicon Mac | +| Windows | `Lime_x.x.x_x64-online-setup.exe` | 默认推荐,体积更小,安装时按需下载 WebView2 | +| Windows | `Lime_x.x.x_x64-offline-setup.exe` | 离线、内网或受限网络环境使用 | ## macOS 安装 1. 下载 `.dmg` 文件 2. 双击打开 DMG 镜像 -3. 将 ProxyCast 拖入 Applications 文件夹 +3. 将 Lime 拖入 Applications 文件夹 4. 首次运行时,右键点击应用选择"打开"(绕过 Gatekeeper) ::alert{type="info"} @@ -41,18 +41,18 @@ navigation: ## Windows 安装 -1. 优先下载 `ProxyCast_x.x.x_x64-online-setup.exe` +1. 优先下载 `Lime_x.x.x_x64-online-setup.exe` 2. 双击运行安装程序 3. 按照安装向导完成安装 -4. 从开始菜单启动 ProxyCast +4. 从开始菜单启动 Lime ::alert{type="info"} -如果设备处于离线、内网或受限网络环境,请改用 `ProxyCast_x.x.x_x64-offline-setup.exe`。 +如果设备处于离线、内网或受限网络环境,请改用 `Lime_x.x.x_x64-offline-setup.exe`。 :: ## 验证安装 -启动 ProxyCast 后,你应该看到: +启动 Lime 后,你应该看到: 1. 主窗口正常打开 2. 左侧出现主要入口(AI Agent、项目、资源、图片生成等) @@ -64,7 +64,7 @@ navigation: ```bash # 移除隔离属性 -xattr -cr /Applications/ProxyCast.app +xattr -cr /Applications/Lime.app ``` ### Windows: SmartScreen 警告 diff --git a/docs/content/01.introduction/3.quickstart.md b/docs/content/01.introduction/3.quickstart.md index 896742278..4e4df18ad 100644 --- a/docs/content/01.introduction/3.quickstart.md +++ b/docs/content/01.introduction/3.quickstart.md @@ -13,12 +13,12 @@ navigation: 确保你已经: -- [x] 安装了 ProxyCast +- [x] 安装了 Lime - [x] 可以正常打开应用主界面 ## 步骤 1:选择创作主题与项目 -1. 启动 ProxyCast,进入 AI Agent 或项目入口 +1. 启动 Lime,进入 AI Agent 或项目入口 2. 选择你的主题方向(如社媒、短视频、小说) 3. 新建项目,作为本次创作的工作空间 diff --git a/docs/content/02.user-guide/1.dashboard.md b/docs/content/02.user-guide/1.dashboard.md index 67b5031af..2696016e5 100644 --- a/docs/content/02.user-guide/1.dashboard.md +++ b/docs/content/02.user-guide/1.dashboard.md @@ -7,7 +7,7 @@ navigation: # 首页与工作台 -首页是你进入 ProxyCast 后的主入口。 +首页是你进入 Lime 后的主入口。 建议把它理解为“创作操作台”,而不是单一功能面板。 ## 左侧核心入口 diff --git a/docs/content/02.user-guide/13.plugins.md b/docs/content/02.user-guide/13.plugins.md index 978cdaeac..795b97f17 100644 --- a/docs/content/02.user-guide/13.plugins.md +++ b/docs/content/02.user-guide/13.plugins.md @@ -11,7 +11,7 @@ navigation: 📢 插件属于进阶能力。若你只做日常创作,可先跳过本页。 :: -插件中心用于扩展 ProxyCast 的能力,例如新增工具、接入外部流程、扩展特定场景工作流。 +插件中心用于扩展 Lime 的能力,例如新增工具、接入外部流程、扩展特定场景工作流。 ## 访问插件中心 @@ -93,12 +93,12 @@ navigation: ### 插件无法加载 -1. 检查 ProxyCast 版本是否满足插件要求 +1. 检查 Lime 版本是否满足插件要求 2. 查看日志了解详细错误信息 3. 尝试重新安装插件 ### 二进制插件权限问题 部分二进制插件需要管理员权限: -- **Windows**: 以管理员身份运行 ProxyCast +- **Windows**: 以管理员身份运行 Lime - **macOS/Linux**: 插件会提示需要的权限 diff --git a/docs/content/02.user-guide/14.resources.md b/docs/content/02.user-guide/14.resources.md index df0245cf1..81ef6a204 100644 --- a/docs/content/02.user-guide/14.resources.md +++ b/docs/content/02.user-guide/14.resources.md @@ -7,7 +7,7 @@ navigation: # 资源库 -资源库是 ProxyCast 的创作资产中心。 +资源库是 Lime 的创作资产中心。 它和项目绑定,用来长期沉淀你的创作结果。 ## 资源分类 diff --git a/docs/content/02.user-guide/16.gateway-tunnel-webhook.md b/docs/content/02.user-guide/16.gateway-tunnel-webhook.md index 3169fada0..acbb4d637 100644 --- a/docs/content/02.user-guide/16.gateway-tunnel-webhook.md +++ b/docs/content/02.user-guide/16.gateway-tunnel-webhook.md @@ -11,7 +11,7 @@ navigation: ## 适用版本 -- ProxyCast 已支持“渠道管理 > Gateway 公共隧道”配置卡片 +- Lime 已支持“渠道管理 > Gateway 公共隧道”配置卡片 - 飞书渠道支持 `webhook` 模式 ## 前置条件 @@ -137,7 +137,7 @@ Cloudflare 相关字段(二选一): 处理: 1. 确认 URL 为 `https://` 且可访问 -2. 对齐飞书后台与 ProxyCast 的 Token/Encrypt Key +2. 对齐飞书后台与 Lime 的 Token/Encrypt Key ## 运维建议 @@ -150,9 +150,9 @@ Cloudflare 相关字段(二选一): 桌面端建议按环境选择: 1. `managed`(应用内托管,默认) - 由 ProxyCast 在启动后自动拉起 tunnel,并定时检查进程状态;异常退出会自动重拉。 + 由 Lime 在启动后自动拉起 tunnel,并定时检查进程状态;异常退出会自动重拉。 2. `external`(系统级常驻,生产更稳) - 由系统服务管理 `cloudflared`,ProxyCast 仅做状态诊断与 webhook 同步。 + 由系统服务管理 `cloudflared`,Lime 仅做状态诊断与 webhook 同步。 ### 何时用 external diff --git a/docs/content/02.user-guide/4.configuration-example.md b/docs/content/02.user-guide/4.configuration-example.md index 6a23fd766..da5c0f05b 100644 --- a/docs/content/02.user-guide/4.configuration-example.md +++ b/docs/content/02.user-guide/4.configuration-example.md @@ -118,13 +118,13 @@ curl -i "http://127.0.0.1:8999/v1/chat/completions" \ 适用:排查“为什么慢/为什么回退/是否命中缓存”等线上联调问题。 可观测调试头示例: -- `x-proxycast-request-id` -- `x-proxycast-cache`(`hit/store/skip-*`) -- `x-proxycast-dedup`(`replay/wait-replay/new/removed-on-error`) -- `x-proxycast-idempotency`(`replay/in-progress/new/removed-on-error`) -- `x-proxycast-requested-provider` / `x-proxycast-effective-provider` / `x-proxycast-model` +- `x-lime-request-id` +- `x-lime-cache`(`hit/store/skip-*`) +- `x-lime-dedup`(`replay/wait-replay/new/removed-on-error`) +- `x-lime-idempotency`(`replay/in-progress/new/removed-on-error`) +- `x-lime-requested-provider` / `x-lime-effective-provider` / `x-lime-model` -补充:在「团队共享网关(内网)」页面的「网关 API 测试」结果展开区域,也会直接显示这些 `x-proxycast-*` 调试头。 +补充:在「团队共享网关(内网)」页面的「网关 API 测试」结果展开区域,也会直接显示这些 `x-lime-*` 调试头。 ## 调整顺序建议 diff --git a/docs/content/02.user-guide/8.api-server.md b/docs/content/02.user-guide/8.api-server.md index b8d545f06..fcbdb419d 100644 --- a/docs/content/02.user-guide/8.api-server.md +++ b/docs/content/02.user-guide/8.api-server.md @@ -1,6 +1,6 @@ --- title: 本地 API 接入 -description: 将 ProxyCast 能力暴露给外部工具(进阶) +description: 将 Lime 能力暴露给外部工具(进阶) navigation: icon: i-heroicons-server --- @@ -11,7 +11,7 @@ navigation: 这是进阶能力。普通创作者可以不配置,直接在应用内完成创作。 :: -当你希望把 ProxyCast 接入脚本、自动化工具或第三方客户端时,可启用本地 API。 +当你希望把 Lime 接入脚本、自动化工具或第三方客户端时,可启用本地 API。 ## 核心说明 diff --git a/docs/content/03.providers/1.overview.md b/docs/content/03.providers/1.overview.md index addff463d..bfc7f8d67 100644 --- a/docs/content/03.providers/1.overview.md +++ b/docs/content/03.providers/1.overview.md @@ -11,7 +11,7 @@ navigation: 本章节属于进阶内容。普通创作者可先使用默认连接,只有在需要多账号或精细控制时再深入配置。 :: -ProxyCast 支持多种模型连接方式,你可以按自己的使用习惯选择。 +Lime 支持多种模型连接方式,你可以按自己的使用习惯选择。 ## 两类连接方式 diff --git a/docs/content/03.providers/10.vertex-ai.md b/docs/content/03.providers/10.vertex-ai.md index ee11ad817..bc742430c 100644 --- a/docs/content/03.providers/10.vertex-ai.md +++ b/docs/content/03.providers/10.vertex-ai.md @@ -75,7 +75,7 @@ credential_pool: 模型别名允许你使用自定义名称访问上游模型: 1. 客户端请求别名(如 `vertex-flash`) -2. ProxyCast 将别名解析为上游模型名(如 `gemini-2.0-flash`) +2. Lime 将别名解析为上游模型名(如 `gemini-2.0-flash`) 3. 使用上游模型名发送请求 4. 响应中保留客户端请求的别名 @@ -105,7 +105,7 @@ Vertex AI Provider 使用 `x-goog-api-key` 头进行认证: x-goog-api-key: your-api-key ``` -ProxyCast 会自动将配置的 API Key 添加到请求头中。 +Lime 会自动将配置的 API Key 添加到请求头中。 ## 负载均衡 diff --git a/docs/content/03.providers/2.kiro-claude.md b/docs/content/03.providers/2.kiro-claude.md index 374913174..a4e1ac62e 100644 --- a/docs/content/03.providers/2.kiro-claude.md +++ b/docs/content/03.providers/2.kiro-claude.md @@ -43,7 +43,7 @@ Kiro 凭证文件位于: ### 自动刷新 -ProxyCast 会自动处理 Token 刷新: +Lime 会自动处理 Token 刷新: 1. 检测 Access Token 即将过期 2. 使用 Refresh Token 获取新 Token @@ -64,7 +64,7 @@ ProxyCast 会自动处理 Token 刷新: 1. 确保已安装 Kiro IDE 2. 在 Kiro 中完成登录 -3. 启动 ProxyCast +3. 启动 Lime 4. 凭证自动出现在凭证池中 ### 手动添加 @@ -107,7 +107,7 @@ Kiro 订阅有使用额度限制,具体取决于订阅计划。 1. 打开 Kiro IDE 2. 确认登录状态 3. 如需要,重新登录 -4. 在 ProxyCast 中刷新凭证 +4. 在 Lime 中刷新凭证 ### 请求失败 diff --git a/docs/content/03.providers/3.gemini-cli.md b/docs/content/03.providers/3.gemini-cli.md index 0227bfcc5..60c0270fe 100644 --- a/docs/content/03.providers/3.gemini-cli.md +++ b/docs/content/03.providers/3.gemini-cli.md @@ -49,7 +49,7 @@ Gemini CLI 需要关联 Google Cloud 项目: ### 配置项目 ID -在 ProxyCast 中配置项目: +在 Lime 中配置项目: ```yaml gemini: @@ -61,7 +61,7 @@ gemini: ### Token 刷新 -ProxyCast 自动处理 OAuth Token 刷新: +Lime 自动处理 OAuth Token 刷新: 1. 使用 Refresh Token 获取 Access Token 2. Access Token 过期前自动刷新 @@ -95,10 +95,10 @@ gemini auth login 按提示完成 OAuth 认证流程。 -### 在 ProxyCast 中配置 +### 在 Lime 中配置 1. 完成 Gemini CLI 登录 -2. 启动 ProxyCast +2. 启动 Lime 3. 凭证自动出现在凭证池中 ## 支持的模型 diff --git a/docs/content/03.providers/4.qwen.md b/docs/content/03.providers/4.qwen.md index 3314af139..5b863de65 100644 --- a/docs/content/03.providers/4.qwen.md +++ b/docs/content/03.providers/4.qwen.md @@ -55,7 +55,7 @@ aliyun configure ### 手动配置 -在 ProxyCast 中手动添加: +在 Lime 中手动添加: 1. 进入 **凭证池** 页面 2. 点击 **添加凭证** @@ -64,7 +64,7 @@ aliyun configure ## 自动刷新 -ProxyCast 支持 Qwen Token 的自动刷新: +Lime 支持 Qwen Token 的自动刷新: 1. 检测 Token 即将过期 2. 使用 Refresh Token 获取新 Token diff --git a/docs/content/03.providers/5.openai-custom.md b/docs/content/03.providers/5.openai-custom.md index cfe9cb4bb..85e3c1a0b 100644 --- a/docs/content/03.providers/5.openai-custom.md +++ b/docs/content/03.providers/5.openai-custom.md @@ -34,7 +34,7 @@ OpenAI Custom 允许你配置任何 OpenAI 兼容的 API 服务。 2. 创建 Azure OpenAI 资源 3. 获取 API Key 和端点 -### 在 ProxyCast 中配置 +### 在 Lime 中配置 1. 进入 **凭证池** 页面 2. 点击 **添加凭证** diff --git a/docs/content/03.providers/6.claude-custom.md b/docs/content/03.providers/6.claude-custom.md index c16f04136..02972cb8d 100644 --- a/docs/content/03.providers/6.claude-custom.md +++ b/docs/content/03.providers/6.claude-custom.md @@ -33,7 +33,7 @@ Claude Custom 允许你配置 Anthropic 官方 API 或其他 Claude 兼容服务 2. 配置 Bedrock 访问权限 3. 获取 AWS 凭证 -### 在 ProxyCast 中配置 +### 在 Lime 中配置 1. 进入 **凭证池** 页面 2. 点击 **添加凭证** @@ -127,7 +127,7 @@ bedrock-claude: 1. 配置 IAM 角色 2. 授予 Bedrock 访问权限 -3. ProxyCast 自动使用角色凭证 +3. Lime 自动使用角色凭证 ## 高级配置 diff --git a/docs/content/03.providers/7.codex.md b/docs/content/03.providers/7.codex.md index 843a81649..5785803f4 100644 --- a/docs/content/03.providers/7.codex.md +++ b/docs/content/03.providers/7.codex.md @@ -16,7 +16,7 @@ navigation: ## 概述 Codex Provider 允许你使用 OpenAI Codex 的 OAuth 凭证访问 GPT 模型。 -同时,为了兼容 Codex CLI 的「API Key 登录」用户(`~/.codex/auth.json` 只有 `api_key`),ProxyCast 也支持读取 `api_key` 并作为 Bearer Token 使用(无需刷新)。 +同时,为了兼容 Codex CLI 的「API Key 登录」用户(`~/.codex/auth.json` 只有 `api_key`),Lime 也支持读取 `api_key` 并作为 Bearer Token 使用(无需刷新)。 ## 支持的模型 @@ -50,7 +50,7 @@ credential_pool: ### 通过 UI 登录 -1. 打开 ProxyCast +1. 打开 Lime 2. 进入 Provider 管理页面 3. 找到 Codex 部分 4. 点击"OAuth 登录"按钮 @@ -85,7 +85,7 @@ credential_pool: ## Token 刷新 -ProxyCast 会自动在 Token 过期前刷新: +Lime 会自动在 Token 过期前刷新: - 检测到 Token 即将过期时自动刷新 - 刷新失败时标记凭证为无效 @@ -128,7 +128,7 @@ credential_pool: token_file: "codex/account2.json" ``` -ProxyCast 会自动在多个凭证之间负载均衡。 +Lime 会自动在多个凭证之间负载均衡。 ## 故障排除 diff --git a/docs/content/03.providers/8.iflow.md b/docs/content/03.providers/8.iflow.md index 3bb359685..c870e1b77 100644 --- a/docs/content/03.providers/8.iflow.md +++ b/docs/content/03.providers/8.iflow.md @@ -15,7 +15,7 @@ iFlow Provider 支持两种认证方式:OAuth 和 Cookie。 ## 概述 -iFlow 是一个 AI 服务提供商,ProxyCast 支持通过 OAuth 或 Cookie 方式使用其服务。 +iFlow 是一个 AI 服务提供商,Lime 支持通过 OAuth 或 Cookie 方式使用其服务。 ## 认证方式 @@ -68,7 +68,7 @@ credential_pool: ### 通过 UI 登录 -1. 打开 ProxyCast +1. 打开 Lime 2. 进入 Provider 管理页面 3. 找到 iFlow 部分 4. 点击"OAuth 登录"按钮 @@ -98,7 +98,7 @@ credential_pool: ### 通过 UI 导入 -1. 打开 ProxyCast +1. 打开 Lime 2. 进入 Provider 管理页面 3. 找到 iFlow 部分 4. 选择"Cookie 导入" diff --git a/docs/content/04.api-reference/1.overview.md b/docs/content/04.api-reference/1.overview.md index 6540b25b0..e4e0afe35 100644 --- a/docs/content/04.api-reference/1.overview.md +++ b/docs/content/04.api-reference/1.overview.md @@ -11,7 +11,7 @@ navigation: 本章节面向进阶用户与开发者。普通创作者可直接在应用内使用,无需 API 接入。 :: -当你需要把 ProxyCast 接入脚本、自动化流程或第三方工具时,可使用本地 API。 +当你需要把 Lime 接入脚本、自动化流程或第三方工具时,可使用本地 API。 ## 常见端点类型 diff --git a/docs/content/04.api-reference/2.openai-api.md b/docs/content/04.api-reference/2.openai-api.md index 8f38c3f9b..b6f5a3206 100644 --- a/docs/content/04.api-reference/2.openai-api.md +++ b/docs/content/04.api-reference/2.openai-api.md @@ -11,7 +11,7 @@ navigation: 本页是开发者进阶文档。普通创作者可直接在应用内使用,无需 API 调用。 :: -ProxyCast 提供完整的 OpenAI Chat Completions API 兼容。 +Lime 提供完整的 OpenAI Chat Completions API 兼容。 ## /v1/chat/completions diff --git a/docs/content/04.api-reference/3.claude-api.md b/docs/content/04.api-reference/3.claude-api.md index 3bba8e116..94b6cfb17 100644 --- a/docs/content/04.api-reference/3.claude-api.md +++ b/docs/content/04.api-reference/3.claude-api.md @@ -11,7 +11,7 @@ navigation: 本页是开发者进阶文档。普通创作者可直接在应用内使用,无需 API 调用。 :: -ProxyCast 提供 Anthropic Claude Messages API 兼容。 +Lime 提供 Anthropic Claude Messages API 兼容。 ## /v1/messages diff --git a/docs/content/04.api-reference/4.management-api.md b/docs/content/04.api-reference/4.management-api.md index 0b969f675..8ef4be19e 100644 --- a/docs/content/04.api-reference/4.management-api.md +++ b/docs/content/04.api-reference/4.management-api.md @@ -1,6 +1,6 @@ --- title: 管理 API -description: ProxyCast 远程管理 API 端点 +description: Lime 远程管理 API 端点 navigation: icon: i-heroicons-cog-6-tooth --- @@ -11,7 +11,7 @@ navigation: 本页是开发者进阶文档,主要用于自动化管理与运维集成。 :: -ProxyCast 提供远程管理 API,用于配置和监控服务。 +Lime 提供远程管理 API,用于配置和监控服务。 ## 认证 diff --git a/docs/content/04.api-reference/5.amp-cli-api.md b/docs/content/04.api-reference/5.amp-cli-api.md index a3d00a500..1f54876f5 100644 --- a/docs/content/04.api-reference/5.amp-cli-api.md +++ b/docs/content/04.api-reference/5.amp-cli-api.md @@ -11,7 +11,7 @@ navigation: 本页是开发者进阶文档。若你不涉及 Amp CLI 集成,可跳过。 :: -ProxyCast 提供 Amp CLI 兼容的路由端点,支持将 Amp CLI 请求路由到本地 OAuth 凭证。 +Lime 提供 Amp CLI 兼容的路由端点,支持将 Amp CLI 请求路由到本地 OAuth 凭证。 ## 概述 @@ -80,7 +80,7 @@ curl http://127.0.0.1:8999/api/provider/anthropic/v1/messages \ ## 模型映射 -当 Amp CLI 请求的模型不可用时,ProxyCast 可以自动映射到可用的替代模型。 +当 Amp CLI 请求的模型不可用时,Lime 可以自动映射到可用的替代模型。 ### 配置 @@ -104,7 +104,7 @@ ampcode: ## 管理端点代理 -ProxyCast 可以代理 Amp 的认证和账户管理端点到上游服务器。 +Lime 可以代理 Amp 的认证和账户管理端点到上游服务器。 ### /api/auth/* @@ -152,9 +152,9 @@ ampcode: 你有 Kiro 的 Claude 订阅,想用 Amp CLI 但不想额外付费: -1. 配置 ProxyCast 加载 Kiro OAuth 凭证 -2. 在 Amp CLI 中配置 ProxyCast 作为 API 端点 -3. Amp CLI 请求通过 ProxyCast 路由到 Kiro 凭证 +1. 配置 Lime 加载 Kiro OAuth 凭证 +2. 在 Amp CLI 中配置 Lime 作为 API 端点 +3. Amp CLI 请求通过 Lime 路由到 Kiro 凭证 ### 场景 2:模型替换 @@ -169,7 +169,7 @@ ampcode: ### 场景 3:多 Provider 负载均衡 -配置多个凭证,ProxyCast 自动在它们之间负载均衡: +配置多个凭证,Lime 自动在它们之间负载均衡: ```yaml credential_pool: @@ -182,14 +182,14 @@ credential_pool: ## Amp CLI 配置 -在 Amp CLI 中配置 ProxyCast: +在 Amp CLI 中配置 Lime: ```bash # 设置 API 端点 amp config set api.base_url http://127.0.0.1:8999/api/provider # 设置 API Key -amp config set api.key your-proxycast-api-key +amp config set api.key your-lime-api-key ``` 或在配置文件中: @@ -198,7 +198,7 @@ amp config set api.key your-proxycast-api-key # ~/.amp/config.yaml api: base_url: http://127.0.0.1:8999/api/provider - key: your-proxycast-api-key + key: your-lime-api-key ``` ## 错误处理 diff --git a/docs/content/05.troubleshooting/1.common-issues.md b/docs/content/05.troubleshooting/1.common-issues.md index 410c441a2..1e2671e28 100644 --- a/docs/content/05.troubleshooting/1.common-issues.md +++ b/docs/content/05.troubleshooting/1.common-issues.md @@ -107,10 +107,10 @@ navigation: ### 处理建议 -1. 优先重新下载安装 `ProxyCast_*_x64-online-setup.exe` -2. 确认 `%APPDATA%\proxycast\` 与 `%USERPROFILE%\.proxycast\` 可写 +1. 优先重新下载安装 `Lime_*_x64-online-setup.exe` +2. 确认 `%APPDATA%\lime\` 与 `%USERPROFILE%\.lime\` 可写 3. 如被 SmartScreen 拦截,确认来源可信后再继续 -4. 如果处于离线、内网或受限网络环境,改用 `ProxyCast_*_x64-offline-setup.exe` +4. 如果处于离线、内网或受限网络环境,改用 `Lime_*_x64-offline-setup.exe` 5. 如有条件,运行一键收集脚本后再反馈 详见 [Windows 启动与安装问题](/troubleshooting/windows-startup-issues)。 diff --git a/docs/content/05.troubleshooting/4.windows-startup-issues.md b/docs/content/05.troubleshooting/4.windows-startup-issues.md index af6cbff0a..7603af8c5 100644 --- a/docs/content/05.troubleshooting/4.windows-startup-issues.md +++ b/docs/content/05.troubleshooting/4.windows-startup-issues.md @@ -20,7 +20,7 @@ navigation: 推荐优先使用: -- `ProxyCast_*_x64-online-setup.exe` +- `Lime_*_x64-online-setup.exe` 不建议优先分发: @@ -30,7 +30,7 @@ navigation: 原因: - 在线安装包体积更小,适合大多数 Windows 10/11 用户 -- 如果处于离线、内网或受限网络环境,请改用 `ProxyCast_*_x64-offline-setup.exe` +- 如果处于离线、内网或受限网络环境,请改用 `Lime_*_x64-offline-setup.exe` ## 常见症状与处理 @@ -63,8 +63,8 @@ navigation: 以下目录至少要保证当前用户可读写: -- `%APPDATA%\proxycast\` -- `%USERPROFILE%\.proxycast\` +- `%APPDATA%\lime\` +- `%USERPROFILE%\.lime\` 这些目录分别用于: @@ -81,8 +81,8 @@ navigation: 反馈问题前,建议至少收集以下内容: -- `%USERPROFILE%\.proxycast\logs\` -- `%USERPROFILE%\.proxycast\request_logs\` +- `%USERPROFILE%\.lime\logs\` +- `%USERPROFILE%\.lime\request_logs\` - 问题出现时间 - 安装包文件名 - 页面或弹窗提示截图 @@ -97,11 +97,11 @@ powershell -ExecutionPolicy Bypass -File .\scripts\windows-collect-support-bundl 脚本会: -- 打包 `%USERPROFILE%\.proxycast\logs\` 与 `request_logs\` +- 打包 `%USERPROFILE%\.lime\logs\` 与 `request_logs\` - 收集 WebView2、PowerShell、目录存在性等环境信息 - 默认不打包 `config.yaml`、数据库和凭证正文,避免泄露敏感信息 -执行完成后,会在桌面生成 `ProxyCast-Support-时间戳.zip`。 +执行完成后,会在桌面生成 `Lime-Support-时间戳.zip`。 如果应用本身还能打开,也可以在“设置 / API 服务器 / 诊断接口”区域点击“导出支持包”。 @@ -122,7 +122,7 @@ powershell -ExecutionPolicy Bypass -File .\scripts\windows-collect-support-bundl 请整理以下最小信息后反馈: 1. Windows 版本 -2. ProxyCast 版本 +2. Lime 版本 3. 使用的安装包文件名 4. 首次出现时间 5. 日志目录压缩包 diff --git a/docs/content/06.development/1.architecture.md b/docs/content/06.development/1.architecture.md index 89cfb2751..80725c595 100644 --- a/docs/content/06.development/1.architecture.md +++ b/docs/content/06.development/1.architecture.md @@ -1,13 +1,13 @@ --- title: 架构说明 -description: ProxyCast 技术架构 +description: Lime 技术架构 navigation: icon: i-heroicons-cube-transparent --- # 架构说明 -ProxyCast 是基于 Tauri 2.0 构建的跨平台桌面应用。 +Lime 是基于 Tauri 2.0 构建的跨平台桌面应用。 ## 技术栈 diff --git a/docs/content/06.development/2.contributing.md b/docs/content/06.development/2.contributing.md index e7c8c178c..db4d6152a 100644 --- a/docs/content/06.development/2.contributing.md +++ b/docs/content/06.development/2.contributing.md @@ -1,13 +1,13 @@ --- title: 贡献指南 -description: 如何为 ProxyCast 做贡献 +description: 如何为 Lime 做贡献 navigation: icon: i-heroicons-heart --- # 贡献指南 -感谢你对 ProxyCast 的关注!本指南帮助你开始贡献。 +感谢你对 Lime 的关注!本指南帮助你开始贡献。 ## 开发环境设置 @@ -24,8 +24,8 @@ navigation: ```bash # 克隆仓库 -git clone https://github.com/aiclientproxy/proxycast.git -cd proxycast +git clone https://github.com/aiclientproxy/lime.git +cd lime # 安装前端依赖 pnpm install @@ -142,7 +142,7 @@ git push origin feature/your-feature ## 项目结构 ``` -proxycast/ +lime/ ├── src/ # 前端源码 │ ├── components/ # React 组件 │ ├── pages/ # 页面组件 @@ -184,7 +184,7 @@ cargo test 2. 创建新 Issue 3. 提供详细信息: - 操作系统和版本 - - ProxyCast 版本 + - Lime 版本 - 复现步骤 - 错误日志 diff --git a/docs/content/06.development/3.building.md b/docs/content/06.development/3.building.md index 4734d7e73..2642f0e62 100644 --- a/docs/content/06.development/3.building.md +++ b/docs/content/06.development/3.building.md @@ -7,7 +7,7 @@ navigation: # 构建指南 -本指南介绍如何在本地开发和构建 ProxyCast。 +本指南介绍如何在本地开发和构建 Lime。 ## 本地开发 @@ -227,9 +227,9 @@ RUST_LOG=debug pnpm tauri dev | 平台 | 路径 | | ------- | -------------------------------- | -| macOS | `~/Library/Logs/ProxyCast/` | -| Windows | `%APPDATA%\ProxyCast\logs\` | -| Linux | `~/.local/share/proxycast/logs/` | +| macOS | `~/Library/Logs/Lime/` | +| Windows | `%APPDATA%\Lime\logs\` | +| Linux | `~/.local/share/lime/logs/` | ## 常见问题 diff --git a/docs/content/06.development/4.operations.md b/docs/content/06.development/4.operations.md index 5f0e3b2df..8fd01393b 100644 --- a/docs/content/06.development/4.operations.md +++ b/docs/content/06.development/4.operations.md @@ -26,31 +26,31 @@ navigation: 当前版本需要手动备份以下路径: -- 配置文件(macOS: `~/Library/Application Support/proxycast/config.yaml`,Linux: `~/.config/proxycast/config.yaml`,Windows: `%APPDATA%\\proxycast\\config.yaml`) -- 凭证池副本目录(导入的凭证文件):macOS `~/Library/Application Support/proxycast/credentials/`,Linux `~/.local/share/proxycast/credentials/`,Windows `%APPDATA%\\proxycast\\credentials\\` -- OAuth 凭证目录:`~/.proxycast/auth/` -- 数据库文件:`~/.proxycast/proxycast.db` -- 日志目录:`~/.proxycast/logs/`、`~/.proxycast/request_logs/` +- 配置文件(macOS: `~/Library/Application Support/lime/config.yaml`,Linux: `~/.config/lime/config.yaml`,Windows: `%APPDATA%\\lime\\config.yaml`) +- 凭证池副本目录(导入的凭证文件):macOS `~/Library/Application Support/lime/credentials/`,Linux `~/.local/share/lime/credentials/`,Windows `%APPDATA%\\lime\\credentials\\` +- OAuth 凭证目录:`~/.lime/auth/` +- 数据库文件:`~/.lime/lime.db` +- 日志目录:`~/.lime/logs/`、`~/.lime/request_logs/` 恢复步骤(顺序建议): 1. 停止应用 2. 恢复 `config.yaml` -3. 恢复 `credentials` 目录、`auth` 目录与数据库 `proxycast.db` +3. 恢复 `credentials` 目录、`auth` 目录与数据库 `lime.db` 4. 如需保留历史日志,恢复 `logs/` 与 `request_logs/` 5. 启动应用并验证 `/health` 与关键功能 ## Windows 启动失败排查 -- 优先确认用户安装的是 `ProxyCast_*_x64-online-setup.exe`;离线、内网或受限网络环境再提供 `ProxyCast_*_x64-offline-setup.exe` +- 优先确认用户安装的是 `Lime_*_x64-online-setup.exe`;离线、内网或受限网络环境再提供 `Lime_*_x64-offline-setup.exe` - 首次启动若提示缺少运行时,优先重新运行 Windows setup 安装包;如果在线安装失败,再切换到 offline 安装包 -- 检查 `%APPDATA%\proxycast\` 与 `%USERPROFILE%\.proxycast\` 是否可写;数据库、日志与部分运行时状态依赖这两个目录 -- 收集 `%USERPROFILE%\.proxycast\logs\` 与 `%USERPROFILE%\.proxycast\request_logs\` 作为一线排障材料 +- 检查 `%APPDATA%\lime\` 与 `%USERPROFILE%\.lime\` 是否可写;数据库、日志与部分运行时状态依赖这两个目录 +- 收集 `%USERPROFILE%\.lime\logs\` 与 `%USERPROFILE%\.lime\request_logs\` 作为一线排障材料 - 若前端出现 Windows 启动自检提示,按提示项优先检查目录权限、数据库可访问性、WebView2 与 Shell 可用性 ## 回滚策略 -- 如果升级失败,恢复备份的 `config.yaml` 与 `proxycast.db` +- 如果升级失败,恢复备份的 `config.yaml` 与 `lime.db` - 使用上一版本安装包覆盖安装 - 完成健康检查与冒烟测试 diff --git a/docs/content/07.legal/1.disclaimer.md b/docs/content/07.legal/1.disclaimer.md index 8c375ba5f..1dcaf7ec2 100644 --- a/docs/content/07.legal/1.disclaimer.md +++ b/docs/content/07.legal/1.disclaimer.md @@ -9,7 +9,7 @@ navigation: ## 使用目的 -ProxyCast 是一款开源工具,其设计初衷是帮助用户**充分利用已订阅的 AI 服务 Token**,在更多场景中发挥其价值。 +Lime 是一款开源工具,其设计初衷是帮助用户**充分利用已订阅的 AI 服务 Token**,在更多场景中发挥其价值。 ::alert{type="warning"} **重要提示**: 本工具仅限于个人合法使用,严禁用于任何非法盈利目的。 diff --git a/docs/content/08.open-platform/1.overview.md b/docs/content/08.open-platform/1.overview.md index 0c8a7adf5..3c8c3571f 100644 --- a/docs/content/08.open-platform/1.overview.md +++ b/docs/content/08.open-platform/1.overview.md @@ -7,7 +7,7 @@ navigation: # 开放平台概览 -开放平台面向开发者与生态合作方,用于扩展 ProxyCast 的能力边界。 +开放平台面向开发者与生态合作方,用于扩展 Lime 的能力边界。 ::alert{type="info"} 如果你是普通创作者,可先跳过本章节。 @@ -23,7 +23,7 @@ navigation: ### Connect 能力 -用于外部平台与 ProxyCast 的配置联动与生态集成。 +用于外部平台与 Lime 的配置联动与生态集成。 [了解更多 →](/open-platform/connect) diff --git a/docs/content/08.open-platform/2.plugins.md b/docs/content/08.open-platform/2.plugins.md index 04fc68bd3..7e0b43834 100644 --- a/docs/content/08.open-platform/2.plugins.md +++ b/docs/content/08.open-platform/2.plugins.md @@ -11,7 +11,7 @@ navigation: 本页面向开发者与高级用户。普通创作者可使用用户指南中的插件页。 :: -ProxyCast 支持通过插件扩展能力,适用于自定义工具、自动化流程和生态集成。 +Lime 支持通过插件扩展能力,适用于自定义工具、自动化流程和生态集成。 ## 你可以做什么 diff --git a/docs/content/08.open-platform/3.plugin-development.md b/docs/content/08.open-platform/3.plugin-development.md index eb1a20415..f27b38975 100644 --- a/docs/content/08.open-platform/3.plugin-development.md +++ b/docs/content/08.open-platform/3.plugin-development.md @@ -1,6 +1,6 @@ --- title: 开放平台 - 插件开发指南 -description: 开发 ProxyCast 插件的规范与最佳实践 +description: 开发 Lime 插件的规范与最佳实践 navigation: icon: i-heroicons-code-bracket-square --- @@ -11,7 +11,7 @@ navigation: 本页面向开发者。若你不开发插件,可跳过。 :: -本文档说明插件类型、打包方式和开发建议,帮助你把能力稳定接入 ProxyCast。 +本文档说明插件类型、打包方式和开发建议,帮助你把能力稳定接入 Lime。 ## 插件类型 diff --git a/docs/content/08.open-platform/4.connect.md b/docs/content/08.open-platform/4.connect.md index ea37b0c35..d80cf0cf1 100644 --- a/docs/content/08.open-platform/4.connect.md +++ b/docs/content/08.open-platform/4.connect.md @@ -11,7 +11,7 @@ navigation: 本页面向生态合作方与平台接入方。普通创作者可跳过。 :: -Connect 通过 Deep Link 提供“一键配置”能力,帮助外部平台将配置快速带入 ProxyCast。 +Connect 通过 Deep Link 提供“一键配置”能力,帮助外部平台将配置快速带入 Lime。 ## 核心价值 @@ -22,14 +22,14 @@ Connect 通过 Deep Link 提供“一键配置”能力,帮助外部平台将 ## 一键配置流程 1. 用户在外部平台点击一键配置 -2. 浏览器打开 `proxycast://` 链接 -3. ProxyCast 弹出确认 +2. 浏览器打开 `lime://` 链接 +3. Lime 弹出确认 4. 用户确认后完成导入 ## 基础协议 ```text -proxycast://connect?relay={relay_id}&key={api_key}&name={key_name}&ref={ref_code} +lime://connect?relay={relay_id}&key={api_key}&name={key_name}&ref={ref_code} ``` | 参数 | 必填 | 说明 | diff --git a/docs/content/08.open-platform/6.connect-webhook.md b/docs/content/08.open-platform/6.connect-webhook.md index d7279236a..12467ba76 100644 --- a/docs/content/08.open-platform/6.connect-webhook.md +++ b/docs/content/08.open-platform/6.connect-webhook.md @@ -24,7 +24,7 @@ Webhook 用于回传配置行为结果,帮助你统计接入效果。 ## 请求示例 ```http -POST https://your-domain.com/proxycast/callback +POST https://your-domain.com/lime/callback Content-Type: application/json { diff --git a/docs/content/index.md b/docs/content/index.md index 56cb460ac..d2d588b51 100644 --- a/docs/content/index.md +++ b/docs/content/index.md @@ -1,12 +1,12 @@ --- -title: ProxyCast 文档中心 +title: Lime 文档中心 description: 创作类 AI Agent 平台文档,从灵感到发布的一站式指南 navigation: false --- -# ProxyCast 文档中心 +# Lime 文档中心 -ProxyCast 是创作类 AI Agent 平台。 +Lime 是创作类 AI Agent 平台。 你可以在同一个工作台里完成对话、创作、图片生成、项目沉淀与资源复用。 ## 从这里开始 diff --git a/docs/design/settings-redesign.md b/docs/design/settings-redesign.md index f8f280c9a..dca077394 100644 --- a/docs/design/settings-redesign.md +++ b/docs/design/settings-redesign.md @@ -1,6 +1,6 @@ -# ProxyCast 设置页面重构设计 +# Lime 设置页面重构设计 -> 参考 LobeHub 的设置架构,为 ProxyCast 设计现代化的设置界面 +> 参考 LobeHub 的设置架构,为 Lime 设计现代化的设置界面 ## 一、设计目标 @@ -548,7 +548,7 @@ export function SettingHeader({ title, extra }: SettingHeaderProps) { ## 八、与 LobeHub 的对应关系 -| LobeHub 设置项 | ProxyCast 对应 | 备注 | +| LobeHub 设置项 | Lime 对应 | 备注 | |---------------|---------------|------| | Profile | account/profile | 用户资料 | | Stats | account/stats | 使用统计 | @@ -568,7 +568,7 @@ export function SettingHeader({ title, extra }: SettingHeaderProps) { ## 九、UI 设计参考 ### 颜色方案 -- 使用 ProxyCast 现有的 CSS 变量(`hsl(var(--xxx))`) +- 使用 Lime 现有的 CSS 变量(`hsl(var(--xxx))`) - 侧边栏背景:`--card` - 激活项背景:`--accent` - 分组标题:`--muted-foreground` diff --git a/docs/develop/ai-agent-development-guide.md b/docs/develop/ai-agent-development-guide.md index b99a729dc..0fff90101 100644 --- a/docs/develop/ai-agent-development-guide.md +++ b/docs/develop/ai-agent-development-guide.md @@ -1,10 +1,10 @@ -# ProxyCast AI Agent 开发指南 +# Lime AI Agent 开发指南 > 面向未来 AI Agent 功能开发的架构设计与最佳实践 ## 一、愿景与定位 -ProxyCast 的未来方向是从 **API 代理工具** 演进为 **AI Agent 创作平台**。 +Lime 的未来方向是从 **API 代理工具** 演进为 **AI Agent 创作平台**。 核心目标是让用户能够: 1. **创建自定义 Agent** - 定义 Agent 的能力、工具、行为 @@ -13,7 +13,7 @@ ProxyCast 的未来方向是从 **API 代理工具** 演进为 **AI Agent 创作 ``` ┌─────────────────────────────────────────────────────────────────┐ -│ ProxyCast AI Agent 平台 │ +│ Lime AI Agent 平台 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ @@ -512,4 +512,4 @@ agent/ --- -_本文档定义了 ProxyCast AI Agent 功能的架构设计,随着开发进展会持续更新。_ +_本文档定义了 Lime AI Agent 功能的架构设计,随着开发进展会持续更新。_ diff --git a/docs/develop/execution-tracker-p0-acceptance-report.md b/docs/develop/execution-tracker-p0-acceptance-report.md index b292407d6..0d85ab9dd 100644 --- a/docs/develop/execution-tracker-p0-acceptance-report.md +++ b/docs/develop/execution-tracker-p0-acceptance-report.md @@ -83,8 +83,8 @@ P0 目标整体达成,统一执行追踪已进入可用状态并通过构建 已通过: - `cd src-tauri && cargo check` -- `cd src-tauri && cargo test -p proxycast-core agent_run::tests -- --nocapture` -- `cd src-tauri && cargo test -p proxycast execution_tracker_service::tests -- --nocapture` +- `cd src-tauri && cargo test -p lime-core agent_run::tests -- --nocapture` +- `cd src-tauri && cargo test -p lime execution_tracker_service::tests -- --nocapture` - `npm run build` ## 5. 与 P0 验收标准对照 diff --git a/docs/develop/execution-tracker-technical-plan.md b/docs/develop/execution-tracker-technical-plan.md index 49c982108..d21504de8 100644 --- a/docs/develop/execution-tracker-technical-plan.md +++ b/docs/develop/execution-tracker-technical-plan.md @@ -1,8 +1,8 @@ -# ProxyCast 统一执行追踪(Execution Tracker)技术规划 +# Lime 统一执行追踪(Execution Tracker)技术规划 ## 1. 背景与问题定义 -当前 ProxyCast 的执行入口分散在多个模块: +当前 Lime 的执行入口分散在多个模块: - `aster_agent_cmd.rs`(通用 Agent 对话) - `skill_exec_cmd.rs`(Skill 执行) diff --git a/docs/develop/lobsterai-business-benchmark.md b/docs/develop/lobsterai-business-benchmark.md index 8e9447892..5ab7b4f0d 100644 --- a/docs/develop/lobsterai-business-benchmark.md +++ b/docs/develop/lobsterai-business-benchmark.md @@ -1,8 +1,8 @@ -# LobsterAI 业务闭环对标与 ProxyCast AI Agent 规划 +# LobsterAI 业务闭环对标与 Lime AI Agent 规划 ## 1. 文档目标 -本文从**资深架构师**与**产品经理**双视角,对 `LobsterAI` 与 `ProxyCast` 做业务闭环级对标,明确: +本文从**资深架构师**与**产品经理**双视角,对 `LobsterAI` 与 `Lime` 做业务闭环级对标,明确: 1. 我们应该借鉴什么(高价值能力) 2. 我们不应该照搬什么(避免技术债和垃圾代码) @@ -23,7 +23,7 @@ - `src/main/libs/coworkMemoryExtractor.ts` - `src/main/im/imGatewayManager.ts` -### 2.2 ProxyCast 侧(已核对) +### 2.2 Lime 侧(已核对) - `src-tauri/src/services/execution_tracker_service.rs` - `src-tauri/src/services/heartbeat_service/mod.rs` @@ -44,7 +44,7 @@ - 已形成多入口入站闭环:本地 + IM(钉钉/飞书/Telegram/Discord) - IM 不只是通知,而是可直接触发任务/会话执行 -### ProxyCast +### Lime - 已具备本地执行与 Heartbeat 任务执行 - WebSocket RPC 的 `agent.run` / `cron.run` 仍是占位实现(TODO) @@ -66,7 +66,7 @@ - 达到阈值后自动停用任务(避免无限失败) - 应用异常退出后会修复 stuck running 状态 -### ProxyCast +### Lime - Heartbeat 已有:超时、重试、执行记录、通知 - Execution Tracker 已有统一 run 摘要(`agent_runs`) @@ -86,7 +86,7 @@ - 任务与 run 记录绑定,便于按任务看健康度 - 调度执行结果可做通知回执 -### ProxyCast +### Lime - `agent_runs` 已统一 chat/skill/heartbeat,这是明显优势 - 但尚未形成“任务健康面板 + 告警阈值 + 运营指标”产品层 @@ -105,7 +105,7 @@ - 有对话记忆提取链路(规则 + 守门) - 更接近“会话后自动沉淀” -### ProxyCast +### Lime - 已有统一记忆体系和 `unified_memory_analyze` - 更偏分析/批处理入口,实时自动沉淀闭环不够强 @@ -122,7 +122,7 @@ - 有工具审批机制 -### ProxyCast +### Lime - `aster_agent_cmd` 已有较完整的权限与沙箱策略 - 安全基础不弱,具备差异化潜力 @@ -163,7 +163,7 @@ --- -## 6. ProxyCast 可执行路线图(业务优先) +## 6. Lime 可执行路线图(业务优先) ## P0(必须,2~3 周):先打通“远程可控最小闭环” @@ -241,7 +241,7 @@ ### 架构师视角 -ProxyCast 的底座(追踪、权限、沙箱、Provider 能力)已经具备,当前应避免重构冲动,重点补齐远程触发和任务治理层。 +Lime 的底座(追踪、权限、沙箱、Provider 能力)已经具备,当前应避免重构冲动,重点补齐远程触发和任务治理层。 ### 产品经理视角 diff --git a/docs/develop/scheduler-task-governance-p1.md b/docs/develop/scheduler-task-governance-p1.md index 05c2abdb5..519889ae9 100644 --- a/docs/develop/scheduler-task-governance-p1.md +++ b/docs/develop/scheduler-task-governance-p1.md @@ -73,8 +73,8 @@ 关键测试: -- `proxycast-scheduler`: +- `lime-scheduler`: - `scheduler::tests::test_mark_task_failed_should_trigger_cooldown` - `dao::tests::test_create_tables_should_add_missing_columns_for_existing_table` -- `proxycast-websocket`: +- `lime-websocket`: - `handlers::rpc_handler::tests::test_cron_run_should_block_when_task_in_cooldown` diff --git a/docs/i18n-translation-fixes.md b/docs/i18n-translation-fixes.md index e481e9d96..a9329b4df 100644 --- a/docs/i18n-translation-fixes.md +++ b/docs/i18n-translation-fixes.md @@ -1,7 +1,7 @@ # Translation Fixes Applied ## Summary -Fixed 20 translation issues in `proxycast/src/i18n/patches/en.json` where English translations had concatenated words or incorrect formatting, plus fixed a critical bug in the DOM replacement algorithm that caused partial translations. +Fixed 20 translation issues in `lime/src/i18n/patches/en.json` where English translations had concatenated words or incorrect formatting, plus fixed a critical bug in the DOM replacement algorithm that caused partial translations. ## Critical Bug Fix: DOM Replacement Order @@ -15,7 +15,7 @@ The DOM replacer was applying translations in an arbitrary order (based on `Obje - Result: Broken translation like "初timesSettings向导" ### Solution -Modified `proxycast/src/i18n/dom-replacer.ts` to sort translation entries by length (longest first) before applying replacements. This ensures that longer, more specific phrases are translated before their component parts. +Modified `lime/src/i18n/dom-replacer.ts` to sort translation entries by length (longest first) before applying replacements. This ensures that longer, more specific phrases are translated before their component parts. ```typescript // Sort patches by length (longest first) to avoid partial replacements @@ -65,7 +65,7 @@ These translations had technical terms incorrectly formatted: | 安装完成后点击 | Click after InstallComplete | Click after installation completes | ## Impact -These fixes improve the quality and readability of English translations throughout the ProxyCast application, ensuring: +These fixes improve the quality and readability of English translations throughout the Lime application, ensuring: - Proper spacing between words - Natural English phrasing - Consistent terminology @@ -73,8 +73,8 @@ These fixes improve the quality and readability of English translations througho - **No more partial or broken translations** ## Files Modified -- `proxycast/src/i18n/patches/en.json` - 20 translation entries corrected -- `proxycast/src/i18n/dom-replacer.ts` - Fixed replacement order algorithm +- `lime/src/i18n/patches/en.json` - 20 translation entries corrected +- `lime/src/i18n/dom-replacer.ts` - Fixed replacement order algorithm ## Testing Recommendations 1. Restart the application to ensure patches apply with the new algorithm diff --git a/docs/iteration-notes/context-management-upgrade-plan.md b/docs/iteration-notes/context-management-upgrade-plan.md index 617f9ffc5..bd95167db 100644 --- a/docs/iteration-notes/context-management-upgrade-plan.md +++ b/docs/iteration-notes/context-management-upgrade-plan.md @@ -16,7 +16,7 @@ 3. **aster 框架能力未接入** - aster 有渐进式工具响应移除能力 - aster 支持 AI 摘要 - - ProxyCast 未正确配置和使用这些能力 + - Lime 未正确配置和使用这些能力 ## 改进方案 diff --git a/docs/iteration-notes/implementation-progress-report.md b/docs/iteration-notes/implementation-progress-report.md index 7f417fd4d..677a3586b 100644 --- a/docs/iteration-notes/implementation-progress-report.md +++ b/docs/iteration-notes/implementation-progress-report.md @@ -1,10 +1,10 @@ -# ProxyCast AI Agent 改进 - 实施进度报告 +# Lime AI Agent 改进 - 实施进度报告 ## 已完成工作 ### 1. 研究与分析(任务 #1-#4)✅ -通过对比研究 OpenAI Codex 和 aster-rust 框架,完成了 ProxyCast AI Agent 的全面分析,输出了改进研究报告,识别了四大痛点: +通过对比研究 OpenAI Codex 和 aster-rust 框架,完成了 Lime AI Agent 的全面分析,输出了改进研究报告,识别了四大痛点: - 工具调用能力弱 - 上下文管理差 - 流式体验不好 @@ -96,7 +96,7 @@ **背景**: aster 框架的上下文管理能力不明确 **决策**: -- 阶段 1: 在 ProxyCast 层实现 AI 摘要(当前) +- 阶段 1: 在 Lime 层实现 AI 摘要(当前) - 阶段 2: P1 完成后统一到 aster 框架 **理由**: @@ -152,6 +152,6 @@ ## 参考资料 -- 研究报告: ProxyCast AI Agent 改进研究报告 +- 研究报告: Lime AI Agent 改进研究报告 - Codex 架构: SQ/EQ 异步队列对、AI 摘要 - aster-rust: 渐进式工具响应移除、SubAgentScheduler diff --git a/docs/iteration-notes/p0-context-management-implementation.md b/docs/iteration-notes/p0-context-management-implementation.md index b52df9395..c95eedd08 100644 --- a/docs/iteration-notes/p0-context-management-implementation.md +++ b/docs/iteration-notes/p0-context-management-implementation.md @@ -54,7 +54,7 @@ - 依赖 aster 框架的能力 - 需要等待 P1 任务完成(general 模式迁移) -### 策略 B:在 ProxyCast 层实现(备选) +### 策略 B:在 Lime 层实现(备选) **前提**:aster 框架不支持或支持不足 @@ -66,7 +66,7 @@ **优点**: - 完全可控,不依赖外部框架 -- 可以针对 ProxyCast 的场景优化 +- 可以针对 Lime 的场景优化 **缺点**: - 需要自己实现和维护 @@ -135,7 +135,7 @@ ## 参考资料 -- 研究报告:ProxyCast AI Agent 改进研究报告 +- 研究报告:Lime AI Agent 改进研究报告 - aster-rust GitHub: https://github.com/astercloud/aster-rust - 相关文件: - src-tauri/crates/services/src/session_context_service.rs diff --git a/docs/iteration-notes/p0-phase1-implementation-plan.md b/docs/iteration-notes/p0-phase1-implementation-plan.md index 6877ef674..bdd844f96 100644 --- a/docs/iteration-notes/p0-phase1-implementation-plan.md +++ b/docs/iteration-notes/p0-phase1-implementation-plan.md @@ -19,7 +19,7 @@ ```rust //! AI 驱动的会话摘要服务 -use proxycast_core::general_chat::ChatMessage; +use lime_core::general_chat::ChatMessage; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] @@ -36,7 +36,7 @@ pub struct AISummaryResponse { } pub struct AISummaryService { - // 使用 ProxyCast 的 provider pool + // 使用 Lime 的 provider pool provider_pool: Arc, } @@ -223,6 +223,6 @@ impl SessionContextService { ## 参考资料 -- 研究报告:ProxyCast AI Agent 改进研究报告 +- 研究报告:Lime AI Agent 改进研究报告 - Codex 上下文压缩:AI 摘要 + 保留最近消息 - aster 上下文管理:渐进式工具响应移除 + 摘要 diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index 185fcde2a..d33f66a73 100644 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -1,7 +1,7 @@ export default { extends: ["docus"], app: { - baseURL: "/proxycast/", + baseURL: "/lime/", }, image: { provider: "none", @@ -10,6 +10,6 @@ export default { robotsTxt: false, }, llms: { - domain: "https://proxycast.local", + domain: "https://lime.local", }, }; diff --git a/docs/ops.md b/docs/ops.md index 4713e78a2..06963ed98 100644 --- a/docs/ops.md +++ b/docs/ops.md @@ -9,27 +9,27 @@ - 本机使用 `127.0.0.1`/`localhost`。 - 当前版本仅支持本地监听,不支持对外服务。 - 若需要 HTTPS,请使用反向代理终止 TLS;当前服务端未启用内置 TLS。 -- 确认磁盘权限可写:`~/.proxycast/`、`~/.proxycast/request_logs/`、应用数据目录(macOS: `~/Library/Application Support/proxycast/`,Linux: `~/.local/share/proxycast/`,Windows: `%APPDATA%\\proxycast\\`)。 +- 确认磁盘权限可写:`~/.lime/`、`~/.lime/request_logs/`、应用数据目录(macOS: `~/Library/Application Support/lime/`,Linux: `~/.local/share/lime/`,Windows: `%APPDATA%\\lime\\`)。 ## 配置路径与加载顺序 - YAML 配置(优先): - - macOS: `~/Library/Application Support/proxycast/config.yaml` - - Linux: `~/.config/proxycast/config.yaml` - - Windows: `%APPDATA%\\proxycast\\config.yaml` -- JSON 配置(兼容):macOS `~/Library/Application Support/proxycast/config.json`,Linux `~/.config/proxycast/config.json`,Windows `%APPDATA%\\proxycast\\config.json` -- 旧版遗留路径:`~/.proxycast/config.json`(检测到会提示手动迁移) + - macOS: `~/Library/Application Support/lime/config.yaml` + - Linux: `~/.config/lime/config.yaml` + - Windows: `%APPDATA%\\lime\\config.yaml` +- JSON 配置(兼容):macOS `~/Library/Application Support/lime/config.json`,Linux `~/.config/lime/config.json`,Windows `%APPDATA%\\lime\\config.json` +- 旧版遗留路径:`~/.lime/config.json`(检测到会提示手动迁移) - 两者都不存在时使用默认配置。 - 首次启动会自动生成强随机 API Key 并写入配置。 ## 数据与日志位置 -- SQLite 数据库:`~/.proxycast/proxycast.db` -- 凭证池副本目录:macOS `~/Library/Application Support/proxycast/credentials/`,Linux `~/.local/share/proxycast/credentials/`,Windows `%APPDATA%\\proxycast\\credentials\\` -- OAuth/Token 目录(默认):`~/.proxycast/auth/` -- 日志目录:`~/.proxycast/logs/` -- 请求日志目录:`~/.proxycast/request_logs/` -- 数据库备份目录:`~/.proxycast/backups/` +- SQLite 数据库:`~/.lime/lime.db` +- 凭证池副本目录:macOS `~/Library/Application Support/lime/credentials/`,Linux `~/.local/share/lime/credentials/`,Windows `%APPDATA%\\lime\\credentials\\` +- OAuth/Token 目录(默认):`~/.lime/auth/` +- 日志目录:`~/.lime/logs/` +- 请求日志目录:`~/.lime/request_logs/` +- 数据库备份目录:`~/.lime/backups/` ## 备份与恢复 @@ -39,24 +39,24 @@ - `POST /v0/management/backup` 2. 或手动备份(建议停服后执行): - 复制以下路径: - - 配置文件(macOS: `~/Library/Application Support/proxycast/config.yaml`,Linux: `~/.config/proxycast/config.yaml`,Windows: `%APPDATA%\\proxycast\\config.yaml`) + - 配置文件(macOS: `~/Library/Application Support/lime/config.yaml`,Linux: `~/.config/lime/config.yaml`,Windows: `%APPDATA%\\lime\\config.yaml`) - 配置备份文件:`config.yaml.backup` - - 凭证池副本目录(macOS: `~/Library/Application Support/proxycast/credentials/`,Linux: `~/.local/share/proxycast/credentials/`,Windows: `%APPDATA%\\proxycast\\credentials\\`) - - `~/.proxycast/proxycast.db` - - `~/.proxycast/auth/`(如需要保留 OAuth/Token) - - `~/.proxycast/logs/`、`~/.proxycast/request_logs/`(如需保留日志) + - 凭证池副本目录(macOS: `~/Library/Application Support/lime/credentials/`,Linux: `~/.local/share/lime/credentials/`,Windows: `%APPDATA%\\lime\\credentials\\`) + - `~/.lime/lime.db` + - `~/.lime/auth/`(如需要保留 OAuth/Token) + - `~/.lime/logs/`、`~/.lime/request_logs/`(如需保留日志) 3. 将备份文件存入受控存储(加密磁盘或安全存储)。 ### 自动备份 -- 服务运行期间每 24 小时自动创建数据库备份到 `~/.proxycast/backups/`。 +- 服务运行期间每 24 小时自动创建数据库备份到 `~/.lime/backups/`。 - 备份默认保留 7 天,过期文件会被清理。 ### 恢复 -1. 停止 ProxyCast 服务。 +1. 停止 Lime 服务。 2. 使用管理端点恢复(建议停服后执行,执行时会锁定数据库并短暂阻塞请求): - - `POST /v0/management/restore`,请求体:`{"backup_path": "/path/to/proxycast_YYYYMMDD_HHMMSS.db"}` + - `POST /v0/management/restore`,请求体:`{"backup_path": "/path/to/lime_YYYYMMDD_HHMMSS.db"}` 3. 或手动恢复上述文件到原路径。 4. 启动服务并检查 `/health` 与 `/ready`。 @@ -74,7 +74,7 @@ - 常见问题排查: - 端口占用:修改配置端口或释放占用端口。 - 配置解析失败:检查 YAML/JSON 语法,确认缩进正确。 - - 数据库初始化失败:检查 `~/.proxycast/` 权限与磁盘空间。 + - 数据库初始化失败:检查 `~/.lime/` 权限与磁盘空间。 ## 安全基线 diff --git a/docs/package.json b/docs/package.json index 8440ea7a2..da0346e56 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,5 @@ { - "name": "proxycast-docs", + "name": "lime-docs", "engines": { "node": ">=22.0.0" }, diff --git a/docs/plugin-ui-design.md b/docs/plugin-ui-design.md index 902a95649..6c462d225 100644 --- a/docs/plugin-ui-design.md +++ b/docs/plugin-ui-design.md @@ -1,8 +1,8 @@ -# ProxyCast Plugin UI 系统设计 +# Lime Plugin UI 系统设计 ## 概述 -借鉴 A2UI 的设计理念,为 ProxyCast 设计一套声明式的插件 UI 系统。核心思想是: +借鉴 A2UI 的设计理念,为 Lime 设计一套声明式的插件 UI 系统。核心思想是: - **安全如数据,表达如代码**:插件只能声明 UI 结构,不能执行任意代码 - **声明式 JSON 格式**:插件通过 JSON 描述 UI 意图,宿主应用负责渲染 @@ -13,7 +13,7 @@ ``` ┌─────────────────────────────────────────────────────────────────┐ -│ ProxyCast Host │ +│ Lime Host │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Plugin UI Renderer │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ @@ -365,7 +365,7 @@ interface SurfaceStyles { ## 与 A2UI 的差异 -| 特性 | A2UI | ProxyCast Plugin UI | +| 特性 | A2UI | Lime Plugin UI | |------|------|---------------------| | 传输方式 | SSE/JSONL 流 | Tauri IPC | | 渲染框架 | Lit/Angular/Flutter | React | diff --git a/docs/plugins/antigravity-provider.md b/docs/plugins/antigravity-provider.md index d338d64f6..00acf094f 100644 --- a/docs/plugins/antigravity-provider.md +++ b/docs/plugins/antigravity-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Antigravity Provider 是 ProxyCast 的 OAuth Provider 插件,用于对接 **Google 内部 Gemini CLI** 服务(Antigravity)。它支持 **动态协议选择**:根据模型类型自动选择输出协议(Claude 模型 → Anthropic,Gemini 模型 → Gemini)。 +Antigravity Provider 是 Lime 的 OAuth Provider 插件,用于对接 **Google 内部 Gemini CLI** 服务(Antigravity)。它支持 **动态协议选择**:根据模型类型自动选择输出协议(Claude 模型 → Anthropic,Gemini 模型 → Gemini)。 ### 1.2 核心能力 @@ -87,13 +87,13 @@ antigravity-provider/ "name": "antigravity-provider", "version": "1.0.0", "description": "Antigravity (Google Gemini CLI) OAuth Provider - 支持 Gemini 和 Claude 模型", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/antigravity-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "antigravity-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "antigravity", @@ -599,13 +599,13 @@ impl AntigravityProvider { ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { AntigravityForm } from './components/AntigravityForm'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -684,7 +684,7 @@ export default function AntigravityProviderUI({ sdk, pluginId }: PluginProps) { type AddMode = 'oauth' | 'file'; interface AntigravityFormProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; onCancel: () => void; } @@ -917,7 +917,7 @@ export function CredentialCard({ credential, onRefresh, onDelete }: CredentialCa // src/components/SettingsPanel.tsx interface SettingsPanelProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; onClose: () => void; } @@ -1240,4 +1240,4 @@ pnpm test - [Google Cloud AI Platform](https://cloud.google.com/ai-platform) - [Gemini API 文档](https://ai.google.dev/docs) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) diff --git a/docs/plugins/claude-provider.md b/docs/plugins/claude-provider.md index f2b9d9710..7a7500325 100644 --- a/docs/plugins/claude-provider.md +++ b/docs/plugins/claude-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Claude Provider 是 ProxyCast 的综合性 Anthropic/Claude 插件,支持 **多种认证方式** 访问 Claude 模型。无论是官方 OAuth、Claude Code、Console、AWS Bedrock 还是第三方中转服务,都可以通过此插件统一管理。 +Claude Provider 是 Lime 的综合性 Anthropic/Claude 插件,支持 **多种认证方式** 访问 Claude 模型。无论是官方 OAuth、Claude Code、Console、AWS Bedrock 还是第三方中转服务,都可以通过此插件统一管理。 ### 1.2 支持的认证方式 @@ -102,13 +102,13 @@ claude-provider/ "name": "claude-provider", "version": "1.0.0", "description": "Claude Provider - 支持 OAuth、Claude Code、Console、Bedrock、CCR 多种认证方式", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/claude-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "claude-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "claude", @@ -649,13 +649,13 @@ impl ClaudeProvider { ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { AuthMethodTabs } from './components/AuthMethodTabs'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -725,7 +725,7 @@ export default function ClaudeProviderUI({ sdk, pluginId }: PluginProps) { type AuthMethod = 'oauth' | 'claude_code' | 'console' | 'setup_token' | 'bedrock' | 'ccr'; interface AuthMethodTabsProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; onCancel: () => void; } @@ -1251,5 +1251,5 @@ pnpm test - [Anthropic API 文档](https://docs.anthropic.com/) - [AWS Bedrock Claude](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) - [claude-relay-service](https://github.com/aiclientproxy/claude-relay-service) diff --git a/docs/plugins/codex-provider.md b/docs/plugins/codex-provider.md index 460fe093a..1cf6c859c 100644 --- a/docs/plugins/codex-provider.md +++ b/docs/plugins/codex-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Codex Provider 是 ProxyCast 的 OpenAI Codex 凭证提供者插件,支持 **OAuth 2.0 + PKCE** 和 **API Key** 两种认证方式访问 OpenAI GPT 系列模型。插件兼容 Codex CLI 的凭证格式,可以直接导入 `~/.codex/auth.json` 使用。 +Codex Provider 是 Lime 的 OpenAI Codex 凭证提供者插件,支持 **OAuth 2.0 + PKCE** 和 **API Key** 两种认证方式访问 OpenAI GPT 系列模型。插件兼容 Codex CLI 的凭证格式,可以直接导入 `~/.codex/auth.json` 使用。 ### 1.2 支持的认证方式 @@ -91,13 +91,13 @@ codex-provider/ "name": "codex-provider", "version": "1.0.0", "description": "Codex Provider - 支持 OAuth 和 API Key 两种认证方式访问 OpenAI GPT 模型", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/codex-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "codex-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "codex", @@ -730,13 +730,13 @@ fn transform_to_codex_format(request: &Value) -> Result { ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { AuthMethodTabs } from './components/AuthMethodTabs'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -806,7 +806,7 @@ export default function CodexProviderUI({ sdk, pluginId }: PluginProps) { type AuthMethod = 'oauth' | 'api_key' | 'import'; interface AuthMethodTabsProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; onCancel: () => void; } @@ -1803,4 +1803,4 @@ pub fn calculate_cost(usage: &UsageData, model: &str) -> CostInfo { - [OpenAI API 文档](https://platform.openai.com/docs/api-reference) - [Codex CLI 项目](https://github.com/openai/codex) - [OAuth 2.0 PKCE 规范](https://datatracker.ietf.org/doc/html/rfc7636) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) diff --git a/docs/plugins/droid-provider.md b/docs/plugins/droid-provider.md index 750c87999..b72313237 100644 --- a/docs/plugins/droid-provider.md +++ b/docs/plugins/droid-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Droid Provider 是 ProxyCast 的 Factory.ai (Droid) 插件,通过 **WorkOS OAuth** 集成 Factory.ai 平台,支持 Claude、OpenAI、Gemini 等多种模型的统一访问。 +Droid Provider 是 Lime 的 Factory.ai (Droid) 插件,通过 **WorkOS OAuth** 集成 Factory.ai 平台,支持 Claude、OpenAI、Gemini 等多种模型的统一访问。 ### 1.2 支持的认证方式 @@ -105,13 +105,13 @@ droid-provider/ "name": "droid-provider", "version": "1.0.0", "description": "Droid Provider - Factory.ai 集成,支持 WorkOS OAuth 和 API Key 模式", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/droid-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "droid-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "droid", @@ -1538,13 +1538,13 @@ impl DroidRelayService { ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { AuthMethodTabs } from './components/AuthMethodTabs'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -1614,7 +1614,7 @@ export default function DroidProviderUI({ sdk, pluginId }: PluginProps) { type AuthMethod = 'workos_oauth' | 'api_key' | 'manual'; interface AuthMethodTabsProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; onCancel: () => void; } @@ -2025,5 +2025,5 @@ pnpm test - [Factory.ai 官网](https://factory.ai/) - [WorkOS 文档](https://workos.com/docs/) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) - [claude-relay-service](https://github.com/aiclientproxy/claude-relay-service) diff --git a/docs/plugins/gemini-provider.md b/docs/plugins/gemini-provider.md index 0276802ce..e647cd92b 100644 --- a/docs/plugins/gemini-provider.md +++ b/docs/plugins/gemini-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Gemini Provider 是 ProxyCast 的 Google Gemini 凭证提供者插件,支持 **OAuth 2.0 + PKCE**(Gemini CLI 兼容)和 **API Key**(Google AI Studio)两种认证方式。插件通过 Google Code Assist API 访问 Gemini 模型,支持个人 Google 账户和 Google Cloud/Workspace 企业账户。 +Gemini Provider 是 Lime 的 Google Gemini 凭证提供者插件,支持 **OAuth 2.0 + PKCE**(Gemini CLI 兼容)和 **API Key**(Google AI Studio)两种认证方式。插件通过 Google Code Assist API 访问 Gemini 模型,支持个人 Google 账户和 Google Cloud/Workspace 企业账户。 ### 1.2 支持的认证方式 @@ -93,13 +93,13 @@ gemini-provider/ "name": "gemini-provider", "version": "1.0.0", "description": "Gemini Provider - 支持 OAuth 和 API Key 两种认证方式访问 Google Gemini 模型", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/gemini-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "gemini-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "gemini", @@ -881,13 +881,13 @@ pub fn convert_gemini_response( ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { AuthMethodTabs } from './components/AuthMethodTabs'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -1532,4 +1532,4 @@ pnpm test - [Gemini API 文档](https://ai.google.dev/docs) - [Google Cloud OAuth 2.0](https://developers.google.com/identity/protocols/oauth2) - [Gemini CLI 项目](https://github.com/google/gemini-cli) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) diff --git a/docs/plugins/kiro-provider.md b/docs/plugins/kiro-provider.md index 80d82fe93..efd855c0f 100644 --- a/docs/plugins/kiro-provider.md +++ b/docs/plugins/kiro-provider.md @@ -10,7 +10,7 @@ ### 1.1 插件简介 -Kiro Provider 是 ProxyCast 的 OAuth Provider 插件,用于对接 **AWS CodeWhisperer** (Kiro IDE) 服务。它将 Anthropic/OpenAI 协议请求转换为 CodeWhisperer 协议,并处理复杂的风控逻辑。 +Kiro Provider 是 Lime 的 OAuth Provider 插件,用于对接 **AWS CodeWhisperer** (Kiro IDE) 服务。它将 Anthropic/OpenAI 协议请求转换为 CodeWhisperer 协议,并处理复杂的风控逻辑。 ### 1.2 核心能力 @@ -85,13 +85,13 @@ kiro-provider/ "name": "kiro-provider", "version": "1.0.0", "description": "Kiro (AWS CodeWhisperer) OAuth Provider - 支持 Claude 模型", - "author": "ProxyCast Team", + "author": "Lime Team", "homepage": "https://github.com/aiclientproxy/kiro-provider", "license": "MIT", "plugin_type": "oauth_provider", "entry": "kiro-provider-cli", - "min_proxycast_version": "1.0.0", + "min_lime_version": "1.0.0", "provider": { "id": "kiro", @@ -596,13 +596,13 @@ impl CwToAnthropicTranslator { ```tsx // src/index.tsx -import { ProxyCastPluginSDK } from '@proxycast/plugin-sdk'; +import { LimePluginSDK } from '@lime/plugin-sdk'; import { CredentialList } from './components/CredentialList'; import { KiroForm } from './components/KiroForm'; import { SettingsPanel } from './components/SettingsPanel'; interface PluginProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; pluginId: string; } @@ -676,7 +676,7 @@ type BrowserMode = 'system' | 'playwright'; type OAuthProvider = 'google' | 'github' | 'builder_id'; interface KiroFormProps { - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; onCancel: () => void; } @@ -737,7 +737,7 @@ interface LoginModeProps { oauthProvider: OAuthProvider; setOAuthProvider: (provider: OAuthProvider) => void; playwrightStatus?: PlaywrightStatus; - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; onSuccess: () => void; } @@ -910,7 +910,7 @@ export function BrowserModeSelector({ value, onChange, playwrightStatus }: Brows interface CredentialListProps { credentials: Credential[]; onRefresh: () => void; - sdk: ProxyCastPluginSDK; + sdk: LimePluginSDK; } export function CredentialList({ credentials, onRefresh, sdk }: CredentialListProps) { @@ -1252,4 +1252,4 @@ pnpm test - [AWS CodeWhisperer 文档](https://docs.aws.amazon.com/codewhisperer/) - [Kiro IDE](https://kiro.dev/) -- [ProxyCast 插件开发指南](../prd/credential-provider-plugin-architecture.md) +- [Lime 插件开发指南](../prd/credential-provider-plugin-architecture.md) diff --git a/docs/prd/proxycast-connect.md b/docs/prd/proxycast-connect.md deleted file mode 100644 index 6bf6a9bc3..000000000 --- a/docs/prd/proxycast-connect.md +++ /dev/null @@ -1,1118 +0,0 @@ -# ProxyCast Connect - 中转商生态合作方案 - -> 版本: 1.0.0 -> 日期: 2026-01-05 -> 状态: Draft - ---- - -## 一、背景与目标 - -### 1.1 背景 - -AI API 中转市场蓬勃发展,涌现出大量中转服务商: -- 基于 new-api、one-api 搭建的中转站 -- ccr、claude-relay-service 等专用中转 -- 各类 Token 分销平台 - -这些中转商面临的痛点: -1. **用户配置复杂** - 用户需要手动配置 base_url、协议等 -2. **接入门槛高** - 不同客户端(Cursor、Claude Code)配置方式不同 -3. **缺乏差异化** - 各家中转体验雷同 - -### 1.2 目标 - -**ProxyCast Connect** 是一套中转商生态合作方案: - -1. **一键配置** - 用户点击链接即可完成 ProxyCast + Key 配置 -2. **品牌展示** - 中转商在 ProxyCast 内有专属展示位 -3. **双向引流** - 中转商推广 ProxyCast,ProxyCast 为中转商导流 -4. **生态共赢** - 降低用户门槛,提升转化率 - -### 1.3 核心价值 - -| 角色 | 价值 | -|------|------| -| **中转商** | 用户转化率提升、品牌曝光、差异化竞争 | -| **用户** | 一键配置、开箱即用、统一管理多个中转 | -| **ProxyCast** | 用户增长、生态繁荣、市场占有率 | - ---- - -## 二、产品方案 - -### 2.1 一键配置流程 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ ProxyCast Connect 流程 │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ 中转商用户后台 │ │ -│ │ │ │ -│ │ 我的 API Key: sk-xxxxxxxxxxxxxxxx [复制] │ │ -│ │ │ │ -│ │ ┌─────────────────────────────────────────────────────────┐ │ │ -│ │ │ 🚀 快速接入 │ │ │ -│ │ │ │ │ │ -│ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ -│ │ │ │ ProxyCast │ │ Cursor │ │Claude Code │ │ │ │ -│ │ │ │ [一键配置] │ │ [查看教程] │ │ [查看教程] │ │ │ │ -│ │ │ └────────────┘ └────────────┘ └────────────┘ │ │ │ -│ │ └─────────────────────────────────────────────────────────┘ │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ │ -│ │ 用户点击 [一键配置] │ -│ ▼ │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ 浏览器打开 proxycast:// 协议 │ │ -│ │ │ │ -│ │ proxycast://connect? │ │ -│ │ relay=xxx-relay& │ │ -│ │ key=sk-xxxxxxxx& │ │ -│ │ name=我的Key │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ │ -│ ├─── 已安装 ProxyCast ───────────────────────────────────────┐ │ -│ │ │ │ -│ │ ProxyCast 打开,显示确认弹窗 │ │ -│ │ ┌─────────────────────────────────────────────────┐ │ │ -│ │ │ │ │ │ -│ │ │ 🔗 添加 API Key │ │ │ -│ │ │ │ │ │ -│ │ │ 来源: XXX中转站 │ │ │ -│ │ │ Key: sk-xxxx...xxxx │ │ │ -│ │ │ 名称: 我的Key │ │ │ -│ │ │ │ │ │ -│ │ │ [取消] [确认添加] │ │ │ -│ │ │ │ │ │ -│ │ └─────────────────────────────────────────────────┘ │ │ -│ │ │ │ │ -│ │ ▼ │ │ -│ │ 配置完成,可以使用 ✓ │ │ -│ │ │ │ -│ └─── 未安装 ProxyCast ───────────────────────────────────────┐ │ -│ │ │ -│ 跳转 proxycast.dev/download?connect=... │ │ -│ │ │ │ -│ ▼ │ │ -│ 下载并安装 ProxyCast │ │ -│ │ │ │ -│ ▼ │ │ -│ 首次启动,自动读取参数并配置 │ │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -### 2.2 Deep Link 协议设计 - -#### 2.2.1 协议格式 - -``` -proxycast://connect?relay={relay_id}&key={api_key}&name={key_name} -``` - -| 参数 | 必填 | 说明 | -|------|------|------| -| `relay` | ✅ | 中转商 ID(需在 ProxyCast 注册) | -| `key` | ✅ | API Key | -| `name` | ❌ | Key 名称(默认使用中转商名称) | -| `ref` | ❌ | 推广码(用于统计) | - -#### 2.2.2 示例 - -``` -# 基础用法 -proxycast://connect?relay=openrouter&key=sk-or-v1-xxxx - -# 带名称 -proxycast://connect?relay=siliconflow&key=sk-xxxx&name=硅基流动-主账号 - -# 带推广码 -proxycast://connect?relay=myrelay&key=sk-xxxx&ref=promo2024 -``` - -#### 2.2.3 Web 中转页面 - -对于不支持自定义协议的场景,提供 Web 中转: - -``` -https://proxycast.dev/connect?relay=xxx&key=sk-xxxx -``` - -页面逻辑: -1. 尝试唤起 `proxycast://` 协议 -2. 如果 3 秒内未成功,显示下载引导 -3. 下载链接带上 connect 参数,安装后首次启动自动配置 - -### 2.3 中转商注册(开源方式) - -ProxyCast 是开源软件,中转商通过 **GitHub PR** 方式注册,无需网站注册。 - -#### 2.3.1 注册仓库 - -中转商注册信息统一管理在独立仓库: - -``` -https://github.com/aiclientproxy/connect -``` - -#### 2.3.2 注册流程 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ 中转商注册流程(GitHub PR) │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ Step 1: Fork 仓库 │ -│ ───────────────── │ -│ Fork https://github.com/aiclientproxy/connect │ -│ │ │ -│ ▼ │ -│ Step 2: 创建配置文件 │ -│ ───────────────── │ -│ 在 providers/ 目录下创建 {your-id}.json │ -│ 参考 providers/_example.json 模板 │ -│ │ │ -│ ▼ │ -│ Step 3: 提交 PR │ -│ ───────────────── │ -│ 提交 Pull Request 到主仓库 │ -│ │ │ -│ ▼ │ -│ Step 4: 自动化检查 │ -│ ───────────────── │ -│ GitHub Actions 自动验证: │ -│ ├── JSON Schema 验证 │ -│ ├── Logo 图片可访问性 │ -│ └── API 地址可访问性 │ -│ │ │ -│ ▼ │ -│ Step 5: 社区审核 │ -│ ───────────────── │ -│ 维护者审核并合并 PR │ -│ │ │ -│ ▼ │ -│ Step 6: 自动发布 │ -│ ───────────────── │ -│ 合并后自动构建 registry.json │ -│ ProxyCast 客户端定期同步更新 │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -#### 2.3.3 配置文件格式 - -在 `providers/` 目录下创建 `{your-id}.json`: - -```json -{ - "id": "myrelay", - "name": "我的中转站", - "description": "稳定、便宜、快速的 AI API 中转服务", - - "branding": { - "logo": "https://myrelay.com/logo.png", - "color": "#6366f1" - }, - - "links": { - "homepage": "https://myrelay.com", - "register": "https://myrelay.com/register", - "recharge": "https://myrelay.com/recharge", - "docs": "https://docs.myrelay.com", - "status": "https://status.myrelay.com" - }, - - "api": { - "base_url": "https://api.myrelay.com/v1", - "protocol": "openai", - "auth_header": "Authorization", - "auth_prefix": "Bearer " - }, - - "contact": { - "email": "support@myrelay.com", - "telegram": "@myrelay" - }, - - "features": { - "streaming": true, - "models_endpoint": true - } -} -``` - -#### 2.3.4 字段说明 - -| 字段 | 必填 | 说明 | -|------|------|------| -| `id` | ✅ | 唯一标识,小写字母、数字、连字符 | -| `name` | ✅ | 显示名称 | -| `description` | ✅ | 简短描述,≤100 字 | -| `branding.logo` | ✅ | Logo URL,256x256 PNG | -| `branding.color` | ❌ | 主题色,默认 `#6366f1` | -| `links.homepage` | ✅ | 官网地址 | -| `links.register` | ❌ | 注册页面 | -| `links.recharge` | ❌ | 充值页面 | -| `links.docs` | ❌ | 文档地址 | -| `links.status` | ❌ | 状态页面 | -| `api.base_url` | ✅ | API 地址(必须 HTTPS) | -| `api.protocol` | ✅ | 协议:`openai` 或 `anthropic` | -| `contact.email` | ✅ | 联系邮箱 | - -#### 2.3.5 审核标准 - -PR 合并前需满足: - -- [ ] JSON Schema 验证通过 -- [ ] 文件名与 `id` 字段一致 -- [ ] Logo 图片可访问(256x256 PNG) -- [ ] API 地址使用 HTTPS -- [ ] 官网可访问 -- [ ] 联系方式有效 - -#### 2.3.6 仓库结构 - -``` -transit-service-provider/ -├── README.md # 注册指南 -├── providers/ # 中转商配置目录 -│ ├── _example.json # 示例配置(不会被加载) -│ ├── openrouter.json # OpenRouter -│ ├── siliconflow.json # 硅基流动 -│ └── ... # 其他中转商 -├── schema/ -│ └── provider.schema.json # JSON Schema -├── scripts/ -│ ├── validate.js # 验证脚本 -│ ├── check-api.js # API 检查脚本 -│ └── build-registry.js # 构建注册表 -├── dist/ -│ └── registry.json # 构建产物(自动生成) -└── .github/ - ├── workflows/ - │ └── validate.yml # PR 自动验证 - └── PULL_REQUEST_TEMPLATE.md -``` - -#### 2.3.7 注册表同步 - -ProxyCast 客户端通过以下方式获取中转商列表: - -``` -https://raw.githubusercontent.com/aiclientproxy/connect/main/dist/registry.json -``` - -客户端定期(每 24 小时)同步更新,也可手动刷新 - -### 2.4 中转商品牌展示 - -#### 2.4.1 扩展市场展示 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ 扩展市场 > 中转服务 │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ -│ │ [Logo] │ │ [Logo] │ │ [Logo] │ │ [Logo] │ │ -│ │ OpenRouter │ │ 硅基流动 │ │ XXX中转 │ │ YYY中转 │ │ -│ │ ✓ 官方认证 │ │ ✓ 官方认证 │ │ │ │ │ │ -│ │ ⭐ 4.9 │ │ ⭐ 4.8 │ │ ⭐ 4.5 │ │ ⭐ 4.3 │ │ -│ │ [安装] │ │ [安装] │ │ [安装] │ │ [安装] │ │ -│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -#### 2.4.2 已安装中转商页面 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ XXX中转站 [设置] [×]│ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ [Logo] XXX中转站 │ │ -│ │ 稳定、便宜、快速的 AI API 中转服务 │ │ -│ │ │ │ -│ │ [官网] [充值] [文档] [状态] │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ 我的 API Keys │ │ -│ ├─────────────────────────────────────────────────────────────────┤ │ -│ │ │ │ -│ │ ┌─────────────────────────────────────────────────────────┐ │ │ -│ │ │ 主账号 sk-xxxx...xxxx │ │ │ -│ │ │ ● 正常 [设为默认] [删除] │ │ │ -│ │ └─────────────────────────────────────────────────────────┘ │ │ -│ │ │ │ -│ │ ┌─────────────────────────────────────────────────────────┐ │ │ -│ │ │ 备用账号 sk-yyyy...yyyy │ │ │ -│ │ │ ● 正常 [设为默认] [删除] │ │ │ -│ │ └─────────────────────────────────────────────────────────┘ │ │ -│ │ │ │ -│ │ [+ 添加 Key] │ │ -│ │ │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ 📢 公告 │ │ -│ ├─────────────────────────────────────────────────────────────────┤ │ -│ │ │ │ -│ │ 🎉 新用户注册送 $5 额度! │ │ -│ │ 📅 2026-01-01 ~ 2026-01-31 │ │ -│ │ [立即注册] │ │ -│ │ │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - ---- - -## 三、技术实现 - -### 3.1 Deep Link 注册 (Tauri) - -```rust -// src-tauri/src/main.rs - -fn main() { - tauri::Builder::default() - // 注册自定义协议 - .register_uri_scheme_protocol("proxycast", |app, request| { - handle_deep_link(app, request) - }) - // ... - .run(tauri::generate_context!()) - .expect("error while running tauri application"); -} - -fn handle_deep_link(app: &AppHandle, request: &HttpRequest) -> Result { - let url = request.uri(); - - // 解析 proxycast://connect?relay=xxx&key=xxx - if url.path() == "connect" { - let params = parse_query_params(url.query()); - - // 发送事件到前端 - app.emit_all("deep-link-connect", ConnectPayload { - relay: params.get("relay"), - key: params.get("key"), - name: params.get("name"), - ref_code: params.get("ref"), - })?; - } - - Ok(Response::default()) -} -``` - -### 3.2 前端处理 - -```typescript -// src/hooks/useDeepLink.ts - -import { listen } from '@tauri-apps/api/event'; -import { useEffect } from 'react'; - -interface ConnectPayload { - relay: string; - key: string; - name?: string; - ref?: string; -} - -export function useDeepLink() { - useEffect(() => { - const unlisten = listen('deep-link-connect', (event) => { - const { relay, key, name, ref } = event.payload; - - // 显示确认弹窗 - showConnectConfirmDialog({ - relay, - key, - name, - ref, - onConfirm: () => addApiKey(relay, key, name), - onCancel: () => {}, - }); - }); - - return () => { unlisten.then(fn => fn()); }; - }, []); -} -``` - -### 3.3 确认弹窗组件 - -```tsx -// src/components/ConnectConfirmDialog.tsx - -interface Props { - relay: RelayInfo; - key: string; - name?: string; - onConfirm: () => void; - onCancel: () => void; -} - -export function ConnectConfirmDialog({ relay, key, name, onConfirm, onCancel }: Props) { - const maskedKey = maskApiKey(key); // sk-xxxx...xxxx - - return ( - - - - - - 添加 API Key - - - -
-
- -
-
{relay.name}
-
- {relay.description} -
-
-
- -
-
- Key - {maskedKey} -
- {name && ( -
- 名称 - {name} -
- )} -
- -

- 确认后,此 Key 将被添加到 ProxyCast,您可以立即开始使用。 -

-
- - - - - -
-
- ); -} -``` - -### 3.4 中转商注册表(从 GitHub 加载) - -```rust -// src-tauri/src/relay/registry.rs - -use std::collections::HashMap; -use serde::{Deserialize, Serialize}; - -/// 注册表数据结构(对应 registry.json) -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayRegistry { - pub version: String, - pub updated_at: String, - pub providers: Vec, - - #[serde(skip)] - index: HashMap, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayInfo { - pub id: String, - pub name: String, - pub description: String, - pub branding: RelayBranding, - pub links: RelayLinks, - pub api: RelayApi, - pub contact: RelayContact, - #[serde(default)] - pub features: RelayFeatures, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayBranding { - pub logo: String, - #[serde(default = "default_color")] - pub color: String, -} - -fn default_color() -> String { "#6366f1".to_string() } - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayLinks { - pub homepage: String, - pub register: Option, - pub recharge: Option, - pub docs: Option, - pub status: Option, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayApi { - pub base_url: String, - pub protocol: String, - #[serde(default = "default_auth_header")] - pub auth_header: String, - #[serde(default = "default_auth_prefix")] - pub auth_prefix: String, -} - -fn default_auth_header() -> String { "Authorization".to_string() } -fn default_auth_prefix() -> String { "Bearer ".to_string() } - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RelayContact { - pub email: String, - pub telegram: Option, - pub discord: Option, -} - -#[derive(Clone, Debug, Default, Serialize, Deserialize)] -pub struct RelayFeatures { - #[serde(default = "default_true")] - pub streaming: bool, - #[serde(default)] - pub models_endpoint: bool, -} - -fn default_true() -> bool { true } - -impl RelayRegistry { - /// 注册表 URL(从 GitHub 加载) - const REGISTRY_URL: &'static str = - "https://raw.githubusercontent.com/aiclientproxy/connect/main/dist/registry.json"; - - /// 从 GitHub 加载中转商列表 - pub async fn load_from_github(&mut self) -> Result<()> { - let response = reqwest::get(Self::REGISTRY_URL).await?; - let mut registry: RelayRegistry = response.json().await?; - - // 构建索引 - for (i, provider) in registry.providers.iter().enumerate() { - registry.index.insert(provider.id.clone(), i); - } - - *self = registry; - Ok(()) - } - - /// 获取中转商信息 - pub fn get(&self, id: &str) -> Option<&RelayInfo> { - self.index.get(id).map(|&i| &self.providers[i]) - } - - /// 验证 relay_id 是否有效 - pub fn is_valid(&self, id: &str) -> bool { - self.index.contains_key(id) - } - - /// 获取所有中转商 - pub fn list(&self) -> &[RelayInfo] { - &self.providers - } -} -``` - ---- - -## 四、中转商接入指南 - -### 4.1 接入流程 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ 中转商接入流程(GitHub PR) │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ Step 1: Fork 仓库 │ -│ ───────────────── │ -│ Fork https://github.com/aiclientproxy/connect │ -│ │ │ -│ ▼ │ -│ Step 2: 创建配置文件 │ -│ ───────────────── │ -│ 在 providers/ 目录下创建 {your-id}.json │ -│ 参考 providers/_example.json 模板 │ -│ │ │ -│ ▼ │ -│ Step 3: 提交 PR │ -│ ───────────────── │ -│ 提交 Pull Request,填写 PR 模板 │ -│ │ │ -│ ▼ │ -│ Step 4: 等待审核 │ -│ ───────────────── │ -│ GitHub Actions 自动验证 + 维护者审核 │ -│ 通常 1-3 个工作日 │ -│ │ │ -│ ▼ │ -│ Step 5: 合并上线 │ -│ ───────────────── │ -│ PR 合并后自动构建 registry.json │ -│ ProxyCast 客户端自动同步 │ -│ │ │ -│ ▼ │ -│ Step 6: 集成使用 │ -│ ───────────────── │ -│ 在用户后台添加"一键配置"按钮 │ -│ 用户可以一键配置 ProxyCast │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -### 4.2 集成方式 - -#### 方式一:直接链接 - -最简单的方式,直接在页面放置链接: - -```html - - 一键配置 ProxyCast - -``` - -#### 方式二:JavaScript SDK - -提供更好的用户体验: - -```html - - - -``` - -SDK 功能: -- 自动检测 ProxyCast 是否安装 -- 未安装时显示下载引导 -- 支持回调函数 - -```javascript -ProxyCast.connect({ - relay: 'myrelay', - key: userApiKey, - name: '我的Key', - onSuccess: () => { - showToast('配置成功!'); - }, - onNotInstalled: () => { - // 显示自定义的下载引导 - showDownloadModal(); - } -}); -``` - -#### 方式三:配置文件下载 - -生成 `.proxycast` 配置文件供用户下载: - -```javascript -function downloadConfig(apiKey) { - const config = { - relay: 'myrelay', - key: apiKey, - name: '我的Key' - }; - - const blob = new Blob([JSON.stringify(config)], { type: 'application/json' }); - const url = URL.createObjectURL(blob); - - const a = document.createElement('a'); - a.href = url; - a.download = 'myrelay.proxycast'; - a.click(); -} -``` - -用户双击 `.proxycast` 文件,ProxyCast 自动打开并导入配置。 - -### 4.3 品牌素材要求 - -| 素材 | 规格 | 说明 | -|------|------|------| -| Logo | 256x256 PNG | 透明背景,正方形 | -| 主题色 | HEX 色值 | 用于 UI 强调色 | -| 简介 | ≤50 字 | 一句话描述 | -| 详细描述 | ≤200 字 | 详细介绍 | - -### 4.4 API 要求 - -中转商的 API 需要满足: - -| 要求 | 说明 | -|------|------| -| 协议兼容 | OpenAI 或 Anthropic 协议 | -| HTTPS | 必须使用 HTTPS | -| 模型列表 | 提供 `/models` 端点(可选) | -| 稳定性 | 99% 以上可用性 | - ---- - -## 五、安全设计 - -### 5.1 Deep Link 安全 - -| 风险 | 防护措施 | -|------|---------| -| 恶意链接 | relay_id 必须在注册表中存在 | -| Key 泄露 | 确认弹窗显示脱敏 Key,用户确认后才添加 | -| 钓鱼攻击 | 显示中转商完整信息,用户可核实 | - -### 5.2 确认弹窗 - -所有通过 Deep Link 添加的 Key 必须经过用户确认: - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ │ -│ ⚠️ 安全提示 │ -│ │ -│ 您正在添加来自 [XXX中转站] 的 API Key │ -│ │ -│ 请确认: │ -│ 1. 您确实在 XXX中转站 申请了此 Key │ -│ 2. 您信任 XXX中转站 的服务 │ -│ │ -│ Key: sk-xxxx...xxxx │ -│ │ -│ [取消] [我确认,添加此 Key] │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -### 5.3 统计回调(Webhook) - -为了让中转商追踪推广效果,ProxyCast 提供统计回调机制。 - -#### 5.3.1 回调流程 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ 统计回调流程 │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ 用户点击一键配置 │ -│ │ │ -│ ▼ │ -│ ProxyCast 打开,显示确认弹窗 │ -│ │ │ -│ ├─── 用户取消 ─────────────────────────────────────────────────┐ │ -│ │ │ │ -│ │ 发送回调: status=cancelled │ │ -│ │ │ │ -│ └─── 用户确认 ─────────────────────────────────────────────────┐ │ -│ │ │ -│ Key 添加成功 │ │ -│ │ │ │ -│ ▼ │ │ -│ 发送回调: status=success │ │ -│ │ │ │ -│ ▼ │ │ -│ 中转商收到回调,更新统计 │ │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -#### 5.3.2 回调配置 - -中转商在 `providers/{id}.json` 中配置回调地址: - -```json -{ - "id": "myrelay", - "name": "我的中转站", - // ... 其他字段 ... - - "webhook": { - "callback_url": "https://api.myrelay.com/proxycast/callback", - "secret": "whsec_xxxxxxxxxxxxxxxx" - } -} -``` - -| 字段 | 必填 | 说明 | -|------|------|------| -| `webhook.callback_url` | ❌ | 回调地址(HTTPS) | -| `webhook.secret` | ❌ | 签名密钥,用于验证请求来源 | - -#### 5.3.3 回调请求格式 - -ProxyCast 向中转商发送 POST 请求: - -```http -POST https://api.myrelay.com/proxycast/callback -Content-Type: application/json -X-ProxyCast-Signature: sha256=xxxxxxxxxxxxxxxx -X-ProxyCast-Timestamp: 1704067200 - -{ - "event": "connect", - "status": "success", - "relay_id": "myrelay", - "ref": "promo2024", - "key_prefix": "sk-xxxx", - "timestamp": "2026-01-05T12:00:00Z", - "client": { - "version": "1.2.0", - "platform": "macos" - } -} -``` - -#### 5.3.4 回调字段说明 - -| 字段 | 说明 | -|------|------| -| `event` | 事件类型:`connect` | -| `status` | 状态:`success`(成功)、`cancelled`(用户取消)、`error`(失败) | -| `relay_id` | 中转商 ID | -| `ref` | 推广码(如果有) | -| `key_prefix` | Key 前缀(脱敏,仅前 7 位) | -| `timestamp` | 事件时间 | -| `client.version` | ProxyCast 版本 | -| `client.platform` | 平台:`macos`、`windows`、`linux` | -| `error_code` | 错误码(仅 status=error 时) | -| `error_message` | 错误信息(仅 status=error 时) | - -#### 5.3.5 签名验证 - -中转商应验证请求签名,防止伪造: - -```javascript -const crypto = require('crypto'); - -function verifySignature(payload, signature, secret, timestamp) { - // 检查时间戳,防止重放攻击(5分钟内有效) - const now = Math.floor(Date.now() / 1000); - if (Math.abs(now - parseInt(timestamp)) > 300) { - return false; - } - - // 计算签名 - const signedPayload = `${timestamp}.${JSON.stringify(payload)}`; - const expectedSignature = crypto - .createHmac('sha256', secret) - .update(signedPayload) - .digest('hex'); - - return `sha256=${expectedSignature}` === signature; -} - -// Express 示例 -app.post('/proxycast/callback', (req, res) => { - const signature = req.headers['x-proxycast-signature']; - const timestamp = req.headers['x-proxycast-timestamp']; - - if (!verifySignature(req.body, signature, WEBHOOK_SECRET, timestamp)) { - return res.status(401).json({ error: 'Invalid signature' }); - } - - // 处理回调 - const { event, status, ref, key_prefix } = req.body; - - if (status === 'success') { - // 记录成功安装 - await db.stats.increment({ - relay_id: req.body.relay_id, - ref: ref, - date: new Date().toISOString().split('T')[0] - }); - } - - res.json({ received: true }); -}); -``` - -#### 5.3.6 回调重试机制 - -| 重试次数 | 间隔 | 说明 | -|----------|------|------| -| 第 1 次 | 立即 | 首次发送 | -| 第 2 次 | 1 分钟 | 首次失败后 | -| 第 3 次 | 5 分钟 | 第二次失败后 | -| 第 4 次 | 30 分钟 | 第三次失败后 | -| 放弃 | - | 超过 4 次不再重试 | - -成功响应:HTTP 2xx 状态码 - -#### 5.3.7 统计数据示例 - -中转商可以基于回调数据构建统计面板: - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ ProxyCast Connect 统计 2026-01-05 │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ 今日概览 │ -│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ -│ │ 128 │ │ 115 │ │ 13 │ │ 89.8% │ │ -│ │ 点击次数 │ │ 成功配置 │ │ 用户取消 │ │ 转化率 │ │ -│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ -│ │ -│ 推广码效果 │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ 推广码 点击 成功 取消 转化率 │ │ -│ ├─────────────────────────────────────────────────────────────────┤ │ -│ │ promo2024 56 52 4 92.9% │ │ -│ │ twitter 38 33 5 86.8% │ │ -│ │ (无推广码) 34 30 4 88.2% │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ -│ 平台分布 │ -│ ┌─────────────────────────────────────────────────────────────────┐ │ -│ │ macOS ████████████████████████████████████ 72% │ │ -│ │ Windows ████████████████ 23% │ │ -│ │ Linux ████ 5% │ │ -│ └─────────────────────────────────────────────────────────────────┘ │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - -#### 5.3.8 隐私保护 - -回调数据遵循最小化原则: - -| 数据 | 是否发送 | 说明 | -|------|----------|------| -| 完整 API Key | ❌ | 仅发送前 7 位前缀 | -| 用户 ID | ❌ | 不发送任何用户标识 | -| 设备 ID | ❌ | 不发送设备标识 | -| IP 地址 | ❌ | 不发送用户 IP | -| 推广码 | ✅ | 用于统计推广效果 | -| 平台信息 | ✅ | 仅操作系统类型 | - -### 5.4 中转商审核 - -| 审核项 | 说明 | -|--------|------| -| 身份核实 | 验证中转商运营者身份 | -| API 测试 | 测试 API 可用性和兼容性 | -| 安全检查 | 检查是否有恶意行为历史 | -| 持续监控 | 定期检查服务状态 | - ---- - -## 七、商业模式 - -### 7.1 免费服务 - -基础功能对中转商免费: -- 注册和审核 -- Deep Link 功能 -- 扩展市场展示 -- 基础统计 - -### 7.2 增值服务(可选) - -| 服务 | 说明 | 定价 | -|------|------|------| -| 官方认证 | 显示认证徽章,优先展示 | 待定 | -| 推荐位 | 扩展市场首页推荐 | 待定 | -| 高级统计 | 详细用户行为分析 | 待定 | -| 定制 UI | 自定义品牌页面 | 待定 | - -### 7.3 合作模式 - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ 合作共赢 │ -├─────────────────────────────────────────────────────────────────────────┤ -│ │ -│ 中转商 ProxyCast │ -│ ────── ───────── │ -│ │ -│ 推广 ProxyCast ──────────▶ 用户增长 │ -│ │ -│ 用户转化率提升 ◀────────── 一键配置功能 │ -│ │ -│ 品牌曝光 ◀────────── 扩展市场展示 │ -│ │ -│ 用户粘性 ◀────────── 统一管理体验 │ -│ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` - ---- - -## 六、实施计划 - -### 6.1 Phase 1: MVP (2 周) - -| 任务 | 说明 | -|------|------| -| Deep Link 协议 | 实现 `proxycast://connect` | -| 确认弹窗 | 安全确认 UI | -| 注册表加载 | 从 GitHub 加载 registry.json | -| transit-service-provider 仓库 | 初始化仓库结构和 CI | - -### 6.2 Phase 2: 完善 (2 周) - -| 任务 | 说明 | -|------|------| -| Web 中转页 | proxycast.dev/connect | -| JS SDK | 前端集成 SDK | -| 扩展市场展示 | 中转商品牌页 | -| .proxycast 文件支持 | 配置文件导入 | - -### 6.3 Phase 3: 生态 (持续) - -| 任务 | 说明 | -|------|------| -| 中转商招募 | 邀请主流中转商提交 PR | -| 文档完善 | 接入指南、最佳实践 | -| 社区运营 | GitHub Discussions | - ---- - -## 七、总结 - -### 7.1 核心价值 - -**ProxyCast Connect** 通过一键配置功能,实现: - -1. **用户** - 零配置接入,开箱即用 -2. **中转商** - 用户转化率提升,品牌曝光 -3. **ProxyCast** - 用户增长,生态繁荣 - -### 7.2 开源优势 - -| 优势 | 说明 | -|------|------| -| 透明 | 所有中转商信息公开可查 | -| 去中心化 | 无需依赖 ProxyCast 官方服务器 | -| 社区驱动 | 任何人都可以贡献和审核 | -| 低成本 | 无需维护注册后台 | - -### 7.3 关键指标 - -| 指标 | 目标 | -|------|------| -| 接入中转商数量 | 20+ | -| GitHub Stars | 1,000+ | -| 一键配置转化率 | 80%+ | - -### 7.4 相关仓库 - -| 仓库 | 说明 | -|------|------| -| [proxycast](https://github.com/aiclientproxy/proxycast) | ProxyCast 主项目 | -| [transit-service-provider](https://github.com/aiclientproxy/connect) | 中转商注册仓库 | diff --git a/docs/product-overview.md b/docs/product-overview.md index 428c2d134..573d22d80 100644 --- a/docs/product-overview.md +++ b/docs/product-overview.md @@ -1,4 +1,4 @@ -# ProxyCast 创作类 AI Agent 平台 - 产品介绍 +# Lime 创作类 AI Agent 平台 - 产品介绍 > 版本: 2.0.0 > 更新: 2026-02-16 @@ -10,7 +10,7 @@ **面向创作者的一站式 AI Agent 平台** -ProxyCast 不是单点工具,而是一条完整创作链路: +Lime 不是单点工具,而是一条完整创作链路: - 从灵感讨论开始 - 到文本与图片产出 @@ -107,7 +107,7 @@ ProxyCast 不是单点工具,而是一条完整创作链路: ## 七、进阶能力(可选) -对于开发者或自动化场景,ProxyCast 还提供: +对于开发者或自动化场景,Lime 还提供: - 本地 API 接入 - MCP 工具扩展 diff --git a/docs/research/next-browser-reference.md b/docs/research/next-browser-reference.md index b4552b8e2..23b39d639 100644 --- a/docs/research/next-browser-reference.md +++ b/docs/research/next-browser-reference.md @@ -14,7 +14,7 @@ --- -## 值得 Proxycast 参考的设计 +## 值得 Lime 参考的设计 ### 1. 守护进程 + 客户端架构 ⭐⭐⭐ @@ -48,7 +48,7 @@ async function dispatch(line: string, socket: Socket) { } ``` -**Proxycast 应用:** +**Lime 应用:** - ✅ **替代 Tauri event 的高吞吐方案** - 当事件推送超过 100/s 时,切换到本地 Unix Socket - ✅ **守护进程管理浏览器实例** - 避免每次命令都启动新浏览器 - ✅ **命令-响应模式** - 清晰的请求/响应边界,便于错误处理 @@ -90,7 +90,7 @@ async function launch() { 2. **预注入 Hook** - 使用 `addInitScript` 在页面加载前注入 React DevTools hook 3. **自动打开 DevTools** - `--auto-open-devtools-for-tabs` 确保扩展激活 -**Proxycast 应用:** +**Lime 应用:** - ✅ **扩展 CDP 能力** - 不仅仅是原始 CDP,还可以加载自定义扩展 - ✅ **预注入脚本** - 在页面加载前注入监控/调试脚本 - ✅ **持久化上下文** - 使用 `launchPersistentContext` 保持会话状态 @@ -128,7 +128,7 @@ export async function inspect(page: Page, nodeId: number) { } ``` -**Proxycast 应用:** +**Lime 应用:** - ✅ **深度调试能力** - 不仅看到 DOM,还能看到 React 组件结构 - ✅ **状态检查** - 检查组件的 props/hooks/state - ✅ **源码定位** - 通过 source map 定位到原始源码位置 @@ -184,7 +184,7 @@ export async function unlock() { 3. **Unlock** - 释放锁,让动态数据加载 4. **Analyze** - 对比 locked/unlocked 状态,识别哪些组件是动态的 -**Proxycast 应用:** +**Lime 应用:** - ✅ **性能分析** - 识别哪些组件导致页面加载慢 - ✅ **SSR/CSR 边界** - 清晰看到服务端渲染和客户端渲染的边界 - ✅ **优化指导** - 帮助用户优化 PPR shell,提升首屏加载速度 @@ -246,7 +246,7 @@ export function inspect(idx: number) { } ``` -**Proxycast 应用:** +**Lime 应用:** - ✅ **完整的 Network 追踪** - 记录所有请求/响应 - ✅ **性能分析** - 识别慢请求 - ✅ **调试 API 调用** - 检查请求/响应内容 @@ -290,7 +290,7 @@ async function getConsumer(url: string) { } ``` -**Proxycast 应用:** +**Lime 应用:** - ✅ **错误定位** - 将压缩代码的错误映射到原始源码 - ✅ **组件定位** - 显示组件在源码中的位置 - ✅ **调试体验** - 让用户看到可读的源码,而不是压缩后的代码 @@ -327,7 +327,7 @@ export async function errors() { } ``` -**Proxycast 应用:** +**Lime 应用:** - ✅ **统一错误收集** - 收集构建错误、运行时错误、Console 错误 - ✅ **结构化错误** - 提供完整的堆栈信息和源码位置 - ✅ **错误分类** - 区分不同类型的错误,便于排查 @@ -352,7 +352,7 @@ export async function errors() { └─────────────────────┘ ``` -### Proxycast 当前架构 +### Lime 当前架构 ``` ┌─────────────┐ │ 前端 UI │ @@ -505,4 +505,4 @@ impl ReactDevTools { 5. **Source Map 支持** - 将压缩代码映射到原始源码 6. **完整的 Network 追踪** - 记录所有请求/响应 -这些设计可以直接应用到 Proxycast 的 Phase 2-3 实现中,特别是守护进程架构和预注入脚本能力。 +这些设计可以直接应用到 Lime 的 Phase 2-3 实现中,特别是守护进程架构和预注入脚本能力。 diff --git a/docs/research/nextbrowser-features-analysis.md b/docs/research/nextbrowser-features-analysis.md index b07a0c5c3..87607afbb 100644 --- a/docs/research/nextbrowser-features-analysis.md +++ b/docs/research/nextbrowser-features-analysis.md @@ -1,4 +1,4 @@ -# 基于 CDP 的远程浏览器实时流控与调试方案(Proxycast 落地版) +# 基于 CDP 的远程浏览器实时流控与调试方案(Lime 落地版) > 融合 NextBrowser 特征调查 + Codex 架构设计的务实实施方案 @@ -10,7 +10,7 @@ 2. **画面流通道**: 基于 `Page.startScreencast` 或受控截图轮询输出低延迟页面画面,用于任务执行中的实时观察与回放 ### 设计原则 -- ✅ **保持现有架构**: 不改动后端优先级模型(aster_compat、proxycast_extension_bridge、cdp_direct 并存) +- ✅ **保持现有架构**: 不改动后端优先级模型(aster_compat、lime_extension_bridge、cdp_direct 并存) - ✅ **渐进式增强**: 只升级 cdp_direct 从"HTTP 探测初版"到"有状态 CDP 会话后端" - ✅ **KISS/YAGNI**: 不引入第四套浏览器控制通道,避免过度设计 - ✅ **跨平台兼容**: macOS 与 Windows 都可运行,平台差异仅体现在 Chrome 启动和端口探测 @@ -31,7 +31,7 @@ - 双向交互(观看 + 控制) - WebSocket 持久连接 -**Proxycast 实现优先级:** 🔥 高优先级 +**Lime 实现优先级:** 🔥 高优先级 --- @@ -53,7 +53,7 @@ - WebSocket debugger URL: `wss://...` - 支持多标签页调试 -**Proxycast 实现优先级:** 🔥 高优先级 +**Lime 实现优先级:** 🔥 高优先级 --- @@ -69,7 +69,7 @@ - 地理定位: 国家/地区/城市/ISP - 用于绕过地理限制和反爬虫检测 -**Proxycast 实现优先级:** 🔥 高优先级 +**Lime 实现优先级:** 🔥 高优先级 --- @@ -86,7 +86,7 @@ - Geolocation API 覆盖 - User-Agent 和设备特征模拟 -**Proxycast 实现优先级:** 🟡 中优先级 +**Lime 实现优先级:** 🟡 中优先级 --- @@ -108,7 +108,7 @@ - 用户级别隔离 - 支持会话刷新 -**Proxycast 实现优先级:** 🔥 高优先级 +**Lime 实现优先级:** 🔥 高优先级 --- @@ -118,7 +118,7 @@ - 会话过期时自动重新认证 - 支持双因素认证 -**Proxycast 实现优先级:** 🟡 中优先级 +**Lime 实现优先级:** 🟡 中优先级 --- @@ -133,7 +133,7 @@ - FunCAPTCHA - 等等 -**Proxycast 实现优先级:** 🟢 低优先级 (可集成第三方服务) +**Lime 实现优先级:** 🟢 低优先级 (可集成第三方服务) --- @@ -142,7 +142,7 @@ - 一次性任务: 指定日期和时间运行 - 循环任务: 每小时/每天/每周/自定义 cron 表达式 -**Proxycast 实现优先级:** 🟡 中优先级 +**Lime 实现优先级:** 🟡 中优先级 --- @@ -152,7 +152,7 @@ - OAuth 认证 - 自动续期连接 -**Proxycast 实现优先级:** 🟢 低优先级 +**Lime 实现优先级:** 🟢 低优先级 --- @@ -166,7 +166,7 @@ - JSON - 超链接 -**Proxycast 实现优先级:** 🟡 中优先级 +**Lime 实现优先级:** 🟡 中优先级 --- @@ -1100,7 +1100,7 @@ describe('BrowserDebugPanel', () => { #### 场景 1: 基础会话建立 ```bash -# 1. 启动 Proxycast +# 1. 启动 Lime npm run tauri:dev # 2. 打开调试面板 @@ -1242,7 +1242,7 @@ npm run tauri:dev **解决方案**: 1. **独立用户数据目录** ```rust - let user_data_dir = format!("/tmp/proxycast/profile_{}", profile_key); + let user_data_dir = format!("/tmp/lime/profile_{}", profile_key); let chrome_args = vec![ format!("--user-data-dir={}", user_data_dir), "--no-first-run", @@ -1349,7 +1349,7 @@ npm run tauri:dev 3. **用户级别隔离** ```rust // 每个用户使用独立的加密密钥 - let user_salt = format!("proxycast_user_{}", user_id); + let user_salt = format!("lime_user_{}", user_id); let encryption_key = derive_encryption_key(&user_password, user_salt.as_bytes()); ``` @@ -1483,7 +1483,7 @@ npm run tauri:dev --- -## 七、与现有 Proxycast 架构的集成 +## 七、与现有 Lime 架构的集成 ### 7.1 复用现有模块 @@ -1494,7 +1494,7 @@ npm run tauri:dev - ✅ DevBridge - 前端与 Tauri 通信,复用事件推送机制 **集成策略**: -1. **不改动现有优先级**: aster_compat、proxycast_extension_bridge、cdp_direct 继续并存 +1. **不改动现有优先级**: aster_compat、lime_extension_bridge、cdp_direct 继续并存 2. **只增强 cdp_direct**: 从 HTTP 探测升级为有状态 WebSocket 会话 3. **保持接口兼容**: `browser_execute_action` 保持现有签名,补充 `session_id`/`target_id` 返回值 @@ -1587,7 +1587,7 @@ NextBrowser 的核心价值在于: 3. **远程调试** - CDP Debugger 提供专业调试能力 ### 实施策略 -Proxycast 已经具备了 CDP 基础设施,采用**渐进式增强**策略: +Lime 已经具备了 CDP 基础设施,采用**渐进式增强**策略: 1. **Phase 1 (2-3 周)**: 核心 CDP 会话 - 建立稳定的 WebSocket 连接和统一事件模型 2. **Phase 2 (1-2 周)**: 画面流通道 - 实现 screencast + screenshot fallback 3. **Phase 3 (1-2 周)**: Profiles 持久化 - 实现 Cookies 加密存储 @@ -1613,7 +1613,7 @@ Proxycast 已经具备了 CDP 基础设施,采用**渐进式增强**策略: ## 九、基于当前代码库的差距复盘(截至 2026-03-15) -> 本节用于校正文档前文的“规划态”描述,按当前仓库真实实现判断 Proxycast 已做到什么、还缺什么,以及后续应如何按基础设施优先推进。 +> 本节用于校正文档前文的“规划态”描述,按当前仓库真实实现判断 Lime 已做到什么、还缺什么,以及后续应如何按基础设施优先推进。 ### 9.1 当前已经具备的能力底座 @@ -1982,7 +1982,7 @@ Proxycast 已经具备了 CDP 基础设施,采用**渐进式增强**策略: - `webhook` 当前会输出并透传: - payload 字段 `delivery_attempt_id` - 请求头 `Idempotency-Key` - - 请求头 `X-Proxycast-Delivery-Attempt-Id` + - 请求头 `X-Lime-Delivery-Attempt-Id` - `google_sheets` 当前会在每一行前置: - `delivery_attempt_id` - `run_id` @@ -2057,7 +2057,7 @@ Proxycast 已经具备了 CDP 基础设施,采用**渐进式增强**策略: ### 9.7 结论 -从代码现状看,Proxycast 并不是“还没有浏览器底座”,而是已经跨过了最难的第一步: +从代码现状看,Lime 并不是“还没有浏览器底座”,而是已经跨过了最难的第一步: - 已有实时画面 - 已有 CDP 会话 - 已有人工接管 diff --git a/docs/test/README.md b/docs/test/README.md index 006bc0cbc..426f7d9ea 100644 --- a/docs/test/README.md +++ b/docs/test/README.md @@ -1,10 +1,10 @@ -# ProxyCast 测试体系 +# Lime 测试体系 > 基于 Anthropic AI Agent 评估指南与 Orchids Bridge 项目实践 ## 概述 -ProxyCast 作为 AI API 代理和 Agent 集成平台,需要一套完整的测试体系来确保: +Lime 作为 AI API 代理和 Agent 集成平台,需要一套完整的测试体系来确保: - API 代理的正确性和稳定性 - 凭证池管理的可靠性 - Aster Agent 集成的功能完整性 @@ -14,7 +14,7 @@ ProxyCast 作为 AI API 代理和 Agent 集成平台,需要一套完整的测 ``` ┌─────────────────────────────────────────────────────────────────┐ -│ ProxyCast 测试金字塔 │ +│ Lime 测试金字塔 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ │ diff --git a/docs/test/agent-evaluation.md b/docs/test/agent-evaluation.md index d33d97ec1..1068750ae 100644 --- a/docs/test/agent-evaluation.md +++ b/docs/test/agent-evaluation.md @@ -1,16 +1,16 @@ -# ProxyCast Agent 评估指南 +# Lime Agent 评估指南 > 基于 Anthropic AI Agent 评估指南的实践 ## 概述 -ProxyCast 集成了 Aster Agent,需要专门的评估体系来确保 Agent 行为的正确性和稳定性。本指南基于 Anthropic 官方评估指南和 Orchids Bridge 项目的实践经验。 +Lime 集成了 Aster Agent,需要专门的评估体系来确保 Agent 行为的正确性和稳定性。本指南基于 Anthropic 官方评估指南和 Orchids Bridge 项目的实践经验。 ## 核心概念 ### 评估术语 -| 术语 | 定义 | ProxyCast 示例 | +| 术语 | 定义 | Lime 示例 | |------|------|----------------| | **Task** | 单个测试任务 | "使用 Agent 读取文件并总结" | | **Trial** | 对任务的一次尝试 | 同一任务运行 5 次 | diff --git a/docs/test/e2e-tests.md b/docs/test/e2e-tests.md index 33d9c51ff..1272f594a 100644 --- a/docs/test/e2e-tests.md +++ b/docs/test/e2e-tests.md @@ -1,10 +1,10 @@ -# ProxyCast E2E 测试指南 +# Lime E2E 测试指南 > 端到端测试验证完整用户流程 ## 概述 -E2E 测试模拟真实用户操作,验证从前端到后端的完整流程。ProxyCast 使用 Tauri 框架,E2E 测试需要覆盖: +E2E 测试模拟真实用户操作,验证从前端到后端的完整流程。Lime 使用 Tauri 框架,E2E 测试需要覆盖: - 桌面应用启动和初始化 - 用户界面交互 diff --git a/docs/test/integration-tests.md b/docs/test/integration-tests.md index ea658e47f..fd9e9efbd 100644 --- a/docs/test/integration-tests.md +++ b/docs/test/integration-tests.md @@ -1,4 +1,4 @@ -# ProxyCast 集成测试指南 +# Lime 集成测试指南 > 测试模块间的协作和数据流 diff --git a/docs/test/test-cases/agent-tests.md b/docs/test/test-cases/agent-tests.md index 40b3b01d2..ba94ad556 100644 --- a/docs/test/test-cases/agent-tests.md +++ b/docs/test/test-cases/agent-tests.md @@ -4,7 +4,7 @@ ## 概述 -Agent 测试验证 Aster Agent 在 ProxyCast 中的集成,包括: +Agent 测试验证 Aster Agent 在 Lime 中的集成,包括: - 基础对话功能 - 流式响应 - 工具调用 diff --git a/docs/test/test-cases/converter-tests.md b/docs/test/test-cases/converter-tests.md index 55c3640c6..bde5f17eb 100644 --- a/docs/test/test-cases/converter-tests.md +++ b/docs/test/test-cases/converter-tests.md @@ -4,7 +4,7 @@ ## 概述 -协议转换器是 ProxyCast 的核心模块,负责在不同 API 格式之间转换。测试需要覆盖: +协议转换器是 Lime 的核心模块,负责在不同 API 格式之间转换。测试需要覆盖: - 消息格式转换 - 流式响应转换 - 工具调用转换 diff --git a/docs/test/unit-tests.md b/docs/test/unit-tests.md index f1eb22373..54ec9af06 100644 --- a/docs/test/unit-tests.md +++ b/docs/test/unit-tests.md @@ -1,10 +1,10 @@ -# ProxyCast 单元测试指南 +# Lime 单元测试指南 > 针对独立模块的确定性测试 ## 概述 -单元测试是测试金字塔的基础,覆盖最小的可测试单元。ProxyCast 的单元测试主要针对: +单元测试是测试金字塔的基础,覆盖最小的可测试单元。Lime 的单元测试主要针对: - 协议转换器 - Provider 模块 - 工具函数 diff --git a/docs/testing/skills-e2e-testing.md b/docs/testing/skills-e2e-testing.md index 5afd222e4..5ca8fa884 100644 --- a/docs/testing/skills-e2e-testing.md +++ b/docs/testing/skills-e2e-testing.md @@ -4,26 +4,26 @@ ## 架构说明 -ProxyCast 的 Skills 集成基于 aster-rust 框架的 `SkillTool`: +Lime 的 Skills 集成基于 aster-rust 框架的 `SkillTool`: ``` 用户消息 → AI Agent → SkillTool → global_registry → 执行 Skill ↑ | - load_proxycast_skills() 加载 ~/.proxycast/skills/ + load_lime_skills() 加载 ~/.lime/skills/ ``` 关键组件: -- `AsterAgentState::load_proxycast_skills()` - 启动时加载 Skills -- `AsterAgentState::reload_proxycast_skills()` - 安装/卸载后刷新 +- `AsterAgentState::load_lime_skills()` - 启动时加载 Skills +- `AsterAgentState::reload_lime_skills()` - 安装/卸载后刷新 - `aster::skills::global_registry()` - 全局 Skill 注册表 - `aster::skills::SkillTool` - AI 调用 Skills 的工具 ## 前置条件 -1. ProxyCast 应用已构建并可运行 +1. Lime 应用已构建并可运行 2. 至少配置了一个可用的 AI Provider(如 OpenAI API Key) -3. 终端可以访问 `~/.proxycast/skills/` 目录 +3. 终端可以访问 `~/.lime/skills/` 目录 ## 测试场景 @@ -35,8 +35,8 @@ ProxyCast 的 Skills 集成基于 aster-rust 框架的 `SkillTool`: 1. 创建测试 Skill: ```bash -mkdir -p ~/.proxycast/skills/test-greeting -cat > ~/.proxycast/skills/test-greeting/SKILL.md << 'EOF' +mkdir -p ~/.lime/skills/test-greeting +cat > ~/.lime/skills/test-greeting/SKILL.md << 'EOF' --- name: test-greeting description: 一个简单的问候技能,用于测试 Skills 集成 @@ -46,21 +46,21 @@ description: 一个简单的问候技能,用于测试 Skills 集成 当用户请求问候时,使用以下格式回复: -"你好!我是 ProxyCast 助手,很高兴为你服务!" +"你好!我是 Lime 助手,很高兴为你服务!" 请始终使用中文回复。 EOF ``` -2. 启动 ProxyCast 应用: +2. 启动 Lime 应用: ```bash -cd proxycast && npm run tauri dev +cd lime && npm run tauri dev ``` 3. 打开开发者工具(Cmd+Option+I),查看控制台日志 4. **预期结果**: - - 日志中应显示 `[AsterAgent] 成功加载 1 个 ProxyCast Skills 到 global_registry` + - 日志中应显示 `[AsterAgent] 成功加载 1 个 Lime Skills 到 global_registry` - 日志中应显示 `[AsterAgent] 已注册 Skill: user:test-greeting` ### 场景 2:AI 自动调用 Skill @@ -71,7 +71,7 @@ cd proxycast && npm run tauri dev 1. 确保测试 Skill 已创建(见场景 1) -2. 在 ProxyCast 聊天界面发送消息: +2. 在 Lime 聊天界面发送消息: ``` 请用问候技能跟我打个招呼 ``` @@ -79,7 +79,7 @@ cd proxycast && npm run tauri dev 3. **预期结果**: - AI 应该识别到 `test-greeting` Skill - AI 应该调用 Skill 并返回问候语 - - 响应中应包含 "你好!我是 ProxyCast 助手" + - 响应中应包含 "你好!我是 Lime 助手" ### 场景 3:通过斜杠命令调用 Skill @@ -102,10 +102,10 @@ cd proxycast && npm run tauri dev **步骤**: -1. 在 ProxyCast 运行时,创建新 Skill: +1. 在 Lime 运行时,创建新 Skill: ```bash -mkdir -p ~/.proxycast/skills/test-calculator -cat > ~/.proxycast/skills/test-calculator/SKILL.md << 'EOF' +mkdir -p ~/.lime/skills/test-calculator +cat > ~/.lime/skills/test-calculator/SKILL.md << 'EOF' --- name: test-calculator description: 一个简单的计算器技能 @@ -119,7 +119,7 @@ description: 一个简单的计算器技能 EOF ``` -2. 在 ProxyCast Skills 页面点击刷新(或重新进入页面) +2. 在 Lime Skills 页面点击刷新(或重新进入页面) 3. 发送消息: ``` @@ -138,10 +138,10 @@ EOF 1. 删除测试 Skill: ```bash -rm -rf ~/.proxycast/skills/test-greeting +rm -rf ~/.lime/skills/test-greeting ``` -2. 在 ProxyCast Skills 页面点击刷新 +2. 在 Lime Skills 页面点击刷新 3. 发送消息: ``` @@ -157,15 +157,15 @@ rm -rf ~/.proxycast/skills/test-greeting 测试完成后,清理测试 Skills: ```bash -rm -rf ~/.proxycast/skills/test-greeting -rm -rf ~/.proxycast/skills/test-calculator +rm -rf ~/.lime/skills/test-greeting +rm -rf ~/.lime/skills/test-calculator ``` ## 常见问题排查 ### Skills 没有被加载 -1. 检查目录是否存在:`ls -la ~/.proxycast/skills/` +1. 检查目录是否存在:`ls -la ~/.lime/skills/` 2. 检查 SKILL.md 文件格式是否正确 3. 查看应用日志中是否有错误信息 @@ -177,7 +177,7 @@ rm -rf ~/.proxycast/skills/test-calculator ### 动态刷新不生效 -1. 确认调用了 `reload_proxycast_skills()` +1. 确认调用了 `reload_lime_skills()` 2. 检查日志中是否有刷新相关的输出 3. 尝试重启应用 @@ -192,7 +192,7 @@ test('AI should auto-invoke skill based on intent', async ({ page }) => { await createTestSkill('test-greeting'); // 2. 启动应用 - await launchProxyCast(); + await launchLime(); // 3. 发送消息 await page.fill('[data-testid="chat-input"]', '请用问候技能跟我打招呼'); @@ -200,6 +200,6 @@ test('AI should auto-invoke skill based on intent', async ({ page }) => { // 4. 验证响应 await expect(page.locator('[data-testid="chat-message"]')) - .toContainText('你好!我是 ProxyCast 助手'); + .toContainText('你好!我是 Lime 助手'); }); ``` diff --git a/docs/tests/ai-agent-testing-guide.md b/docs/tests/ai-agent-testing-guide.md index 424c0cb21..920f77a4c 100644 --- a/docs/tests/ai-agent-testing-guide.md +++ b/docs/tests/ai-agent-testing-guide.md @@ -1,4 +1,4 @@ -# ProxyCast AI Agent 测试指南 +# Lime AI Agent 测试指南 > 基于 Anthropic 评估理论与实践经验的 AI Agent 测试策略 @@ -789,4 +789,4 @@ async fn test_with_transcript() { --- -*本文档定义了 ProxyCast AI Agent 功能的测试策略,随着开发进展会持续更新。* +*本文档定义了 Lime AI Agent 功能的测试策略,随着开发进展会持续更新。* diff --git a/extensions/proxycast-chrome/README.md b/extensions/lime-chrome/README.md similarity index 75% rename from extensions/proxycast-chrome/README.md rename to extensions/lime-chrome/README.md index 279671fd1..1c1d1f497 100644 --- a/extensions/proxycast-chrome/README.md +++ b/extensions/lime-chrome/README.md @@ -1,10 +1,10 @@ -# Proxycast Chrome Bridge 扩展 +# Lime Chrome Bridge 扩展 -用于把 Chrome 页面能力接入 Proxycast 的浏览器桥接通道,供各业务 AI Agent 通过统一 `browser_execute_action` / MCP 浏览器工具调用。 +用于把 Chrome 页面能力接入 Lime 的浏览器桥接通道,供各业务 AI Agent 通过统一 `browser_execute_action` / MCP 浏览器工具调用。 ## 功能 -- Observer 通道自动连接:`/proxycast-chrome-observer/Proxycast_Key=...` +- Observer 通道自动连接:`/lime-chrome-observer/Lime_Key=...` - 页面信息上报:标题、URL、Markdown - 远程指令执行:`open_url` / `click` / `type` / `scroll` / `switch_tab` / `list_tabs` / `go_back` 等 - 弹窗配置:`serverUrl`、`bridgeKey`、`profileKey`、监控开关、手动抓取 @@ -14,21 +14,21 @@ 1. 打开 Chrome `chrome://extensions` 2. 打开右上角「开发者模式」 3. 点击「加载已解压的扩展程序」 -4. 选择目录:`extensions/proxycast-chrome` +4. 选择目录:`extensions/lime-chrome` ## 配置 点击扩展图标打开弹窗,配置: -- `Server URL`:Proxycast 服务地址,例如 `ws://127.0.0.1:8999` -- `Bridge Key`:Proxycast 服务 API Key(与后端 `Proxycast_Key` 一致) +- `Server URL`:Lime 服务地址,例如 `ws://127.0.0.1:8999` +- `Bridge Key`:Lime 服务 API Key(与后端 `Lime_Key` 一致) - `Profile Key`:浏览器会话隔离键(建议与业务场景对应,如 `research_a`) 点击「保存并重连」后,扩展会建立 observer WebSocket 连接。 ## 验证 -1. 在 Proxycast 设置中查看 `get_chrome_bridge_status`,`observer_count` 应大于 0 +1. 在 Lime 设置中查看 `get_chrome_bridge_status`,`observer_count` 应大于 0 2. 调用 `browser_execute_action`: ```json diff --git a/extensions/proxycast-chrome/background.js b/extensions/lime-chrome/background.js similarity index 98% rename from extensions/proxycast-chrome/background.js rename to extensions/lime-chrome/background.js index cbf117cfb..ca8aa3b42 100644 --- a/extensions/proxycast-chrome/background.js +++ b/extensions/lime-chrome/background.js @@ -22,17 +22,17 @@ let lastSettings = { ...DEFAULT_SETTINGS }; function logInfo(message, payload) { if (payload === undefined) { - console.log(`[ProxycastBridge] ${message}`); + console.log(`[LimeBridge] ${message}`); } else { - console.log(`[ProxycastBridge] ${message}`, payload); + console.log(`[LimeBridge] ${message}`, payload); } } function logWarn(message, payload) { if (payload === undefined) { - console.warn(`[ProxycastBridge] ${message}`); + console.warn(`[LimeBridge] ${message}`); } else { - console.warn(`[ProxycastBridge] ${message}`, payload); + console.warn(`[LimeBridge] ${message}`, payload); } } @@ -59,7 +59,7 @@ function buildObserverUrl(settings) { const normalized = serverUrl.replace(/\/$/, ""); const profileKey = encodeURIComponent(settings.profileKey || "default"); - return `${normalized}/proxycast-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${profileKey}`; + return `${normalized}/lime-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${profileKey}`; } async function connectObserver(forceReconnect = false) { diff --git a/extensions/proxycast-chrome/content_script.js b/extensions/lime-chrome/content_script.js similarity index 97% rename from extensions/proxycast-chrome/content_script.js rename to extensions/lime-chrome/content_script.js index 70d5a82df..756ad56b6 100644 --- a/extensions/proxycast-chrome/content_script.js +++ b/extensions/lime-chrome/content_script.js @@ -1,17 +1,21 @@ // 使用 IIFE 避免重复注入时的变量冲突 (function () { // 检查是否已经注入过 - if (window.__PROXYCAST_CONTENT_SCRIPT_LOADED__) { + if ( + window.__LIME_CONTENT_SCRIPT_LOADED__ || + window.__PROXYCAST_CONTENT_SCRIPT_LOADED__ + ) { return; } + window.__LIME_CONTENT_SCRIPT_LOADED__ = true; window.__PROXYCAST_CONTENT_SCRIPT_LOADED__ = true; let refCounter = 0; -const REF_ATTR = "proxycast-id"; +const REF_ATTR = "lime-id"; function nextRefId() { refCounter += 1; - return `proxycast-${refCounter}`; + return `lime-${refCounter}`; } function resetRefs() { diff --git a/extensions/proxycast-chrome/manifest.json b/extensions/lime-chrome/manifest.json similarity index 72% rename from extensions/proxycast-chrome/manifest.json rename to extensions/lime-chrome/manifest.json index c5d6beadb..ae7b54579 100644 --- a/extensions/proxycast-chrome/manifest.json +++ b/extensions/lime-chrome/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, - "name": "Proxycast Browser Bridge", - "description": "Connect Chrome tabs with Proxycast browser runtime for AI agents.", + "name": "Lime Browser Bridge", + "description": "Connect Chrome tabs with Lime browser runtime for AI agents.", "version": "0.1.0", "permissions": ["storage", "tabs", "activeTab", "scripting", "clipboardRead"], "host_permissions": ["http://*/*", "https://*/*"], @@ -9,7 +9,7 @@ "service_worker": "background.js" }, "action": { - "default_title": "Proxycast Browser Bridge", + "default_title": "Lime Browser Bridge", "default_popup": "popup.html" }, "content_scripts": [ diff --git a/extensions/proxycast-chrome/popup.html b/extensions/lime-chrome/popup.html similarity index 96% rename from extensions/proxycast-chrome/popup.html rename to extensions/lime-chrome/popup.html index a6cb43051..ef8588a07 100644 --- a/extensions/proxycast-chrome/popup.html +++ b/extensions/lime-chrome/popup.html @@ -3,7 +3,7 @@ - Proxycast Browser Bridge + Lime Browser Bridge