Cli-Proxy-API-Management-Center

CLI Proxy API Management Center — 项目概览

本文档供 AI Agent 快速了解项目上下文,最后更新:2026-05-27

1. 项目定位

CLI Proxy API Management Center 是一个 纯前端单页应用(SPA),为 CLI Proxy API 提供可视化管理后台。它通过 CLI Proxy API 的 Management API(/v0/management)完成配置管理、凭据上传、日志查看、OAuth 授权等运维操作。

2. 技术栈

层面 技术选型 版本
UI 框架 React 19.x
语言 TypeScript 6.0
构建工具 Vite(vite-plugin-singlefile) 8.x
包管理器 Bun 1.3.14
状态管理 Zustand 5.x
HTTP 客户端 Axios 1.15.2
路由 react-router-dom (HashRouter) 7.x
动画 Motion (原 Framer Motion) 12.x
YAML 编辑器 CodeMirror 6 (@uiw/react-codemirror) 4.x
样式方案 SCSS Modules -
国际化 i18next + react-i18next 26.x / 17.x
YAML 解析 yaml 2.x
Lint ESLint + typescript-eslint 9.x
格式化 Prettier 3.x

3. 目录结构

Cli-Proxy-API-Management-Center/
├── .github/                  # CI/CD workflows (release.yml)
├── doc.local/                # 本地文档(本文档所在目录)
├── src/
│   ├── assets/               # 静态资源(logo、SVG 图标)
│   ├── components/
│   │   ├── common/           # 通用组件(通知、确认弹窗、启动屏、页面过渡)
│   │   ├── config/           # 配置编辑器组件(可视化编辑、源码编辑、Diff 预览)
│   │   ├── layout/           # 布局组件(MainLayout)
│   │   ├── modelAlias/       # 模型别名映射图组件
│   │   ├── providers/        # AI Provider 状态栏、工具函数
│   │   ├── quota/            # 配额管理组件
│   │   └── ui/               # 基础 UI 组件(Button, Card, Modal, Input, Select, Table 等)
│   ├── features/
│   │   ├── authFiles/        # Auth Files 功能模块(组件、hooks、状态)
│   │   └── providers/        # AI Providers 功能模块(Workbench 页面、适配器、表单)
│   ├── hooks/                # 全局自定义 hooks(useInterval, useLocalStorage, useMediaQuery 等)
│   ├── i18n/                 # 国际化配置与语言文件(en, zh-CN, zh-TW, ru)
│   ├── pages/                # 页面组件
│   ├── router/               # 路由定义(MainRoutes, ProtectedRoute)
│   ├── services/
│   │   ├── api/              # API 服务层(基于 Axios 的各模块 API 封装)
│   │   └── storage/          # 安全存储(secureStorage,密钥混淆)
│   ├── stores/               # Zustand 状态管理 stores
│   ├── styles/               # 全局样式(变量、主题、mixins、reset)
│   ├── types/                # TypeScript 类型定义
│   └── utils/                # 工具函数
├── index.html                # Vite 入口 HTML
├── package.json
├── tsconfig.json / tsconfig.app.json
├── vite.config.ts            # Vite 配置(未列出但隐含)
├── eslint.config.js
└── .prettierrc

4. 核心功能模块

4.1 Dashboard(仪表盘)

4.2 Config(配置管理)

4.3 AI Providers(AI 提供商管理)

4.4 Auth Files(认证文件管理)

4.5 OAuth(OAuth 授权管理)

4.6 Quota(配额管理)

4.7 Logs(日志查看)

4.8 System(系统管理)

5. 状态管理(Zustand Stores)

Store 文件 职责
useAuthStore frontend/src/stores/useAuthStore.ts 认证状态(登录/登出、会话恢复、连接状态、API Base/Key 管理)
useConfigStore frontend/src/stores/useConfigStore.ts 配置数据(获取/更新/缓存配置,支持分段获取)
useModelsStore frontend/src/stores/useModelsStore.ts 模型列表数据
useQuotaStore frontend/src/stores/useQuotaStore.ts 配额数据
useThemeStore frontend/src/stores/useThemeStore.ts 主题(亮/暗模式)
useLanguageStore frontend/src/stores/useLanguageStore.ts 语言偏好
useNotificationStore frontend/src/stores/useNotificationStore.ts 全局通知消息

6. API 服务层

基于 Axios 封装的 ApiClient(frontend/src/services/api/client.ts) 类,统一管理 API Base URL、Management Key 注入、错误处理、版本信息提取。

模块 文件 主要 API
配置 frontend/src/services/api/config.ts 获取/更新配置、Debug/代理/重试/日志等开关
Providers frontend/src/services/api/providers.ts Gemini/Codex/Claude/Vertex/OpenAI/Ampcode 提供商 CRUD
Auth Files frontend/src/services/api/authFiles.ts 认证文件上传/下载/删除、OAuth 排除模型、OAuth 模型别名
OAuth frontend/src/services/api/oauth.ts OAuth 授权 URL 获取、状态轮询、回调提交
Logs frontend/src/services/api/logs.ts 日志获取/清除、错误日志下载
Models frontend/src/services/api/models.ts 模型列表获取
Version frontend/src/services/api/version.ts 版本检查
API Keys frontend/src/services/api/apiKeys.ts API Key 管理
API Key Usage frontend/src/services/api/apiKeyUsage.ts API Key 使用统计
Config File frontend/src/services/api/configFile.ts 配置文件操作
Transformers frontend/src/services/api/transformers.ts 响应数据标准化/规范化
Vertex frontend/src/services/api/vertex.ts Vertex 凭据导入
Ampcode frontend/src/services/api/ampcode.ts Ampcode 相关 API

7. 路由结构

使用 react-router-dom v7 的 HashRouter:

路径 页面 说明
/login LoginPage 登录页(无需认证)
/ /dashboard DashboardPage 仪表盘
/config ConfigPage 配置管理
/ai-providers ProvidersWorkbenchPage AI 提供商管理
/auth-files AuthFilesPage 认证文件管理
/auth-files/oauth-excluded AuthFilesOAuthExcludedEditPage OAuth 排除模型编辑
/auth-files/oauth-model-alias AuthFilesOAuthModelAliasEditPage OAuth 模型别名编辑
/oauth OAuthPage OAuth 授权管理
/quota QuotaPage 配额管理
/logs LogsPage 日志查看
/system SystemPage 系统管理

所有非 /login 路由均受 frontend/src/router/ProtectedRoute.tsx 保护,需要先完成认证。

8. 国际化

支持 4 种语言,通过 frontend/src/i18n/index.ts 配置:

语言文件位于 frontend/src/i18n/locales/ 目录。

9. 样式方案

10. 安全设计

11. 构建与发布

bun install --frozen-lockfile   # 安装依赖
bun run dev                     # 开发服务器 (localhost:5173)
bun run build                   # tsc + Vite 构建 → dist/index.html(单文件)
bun run preview                 # 本地预览构建产物
bun run lint                    # ESLint 检查
bun run format                  # Prettier 格式化
bun run type-check              # TypeScript 类型检查

12. 关键约定