72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# HeiCode Swarm 桌面客户端
|
||
|
||
基于 **Electron + React + TypeScript** 的桌面客户端,是蜂群系统面向用户的入口。它负责提交任务、连接并展示 Orchestrator 的运行状态,分析任务复杂度以推荐 Agent 数量,并对生成结果进行聚合与查看。
|
||
|
||
## 环境要求
|
||
|
||
- Node.js 18+ 与 npm
|
||
- 可访问的 Kubernetes 集群与有效的 kubeconfig(如使用 K8s 调度)
|
||
- 已正确配置的 kubectl
|
||
|
||
## 安装与开发
|
||
|
||
```bash
|
||
npm install # 安装依赖
|
||
npm run build # 编译 TypeScript
|
||
npm run dev # 开发模式启动
|
||
npm run type-check
|
||
npm run lint
|
||
```
|
||
|
||
## 配置
|
||
|
||
应用按以下顺序加载 kubeconfig:
|
||
1. 环境变量 `KUBECONFIG`(若设置)
|
||
2. 默认位置 `~/.kube/config`
|
||
|
||
请确保 kubeconfig 指向正确的集群且凭据有效。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
desktop-client/
|
||
├── src/
|
||
│ ├── main.ts # Electron 主进程
|
||
│ ├── App.tsx # React 根组件
|
||
│ ├── index.html # 入口页面
|
||
│ ├── api/
|
||
│ │ └── orchestrator-client.ts # 调用 Orchestrator REST 接口
|
||
│ ├── ai/ # 任务复杂度分析(见该目录 README)
|
||
│ ├── components/ # 界面组件
|
||
│ │ ├── TaskSubmissionForm.tsx # 任务提交
|
||
│ │ ├── AgentDashboard.tsx # Agent 与运行状态看板
|
||
│ │ ├── ResultViewer.tsx # 结果查看
|
||
│ │ └── CostControlDialog.tsx # 成本/规模确认
|
||
│ ├── analytics/usage-tracker.ts # 用量统计
|
||
│ ├── git/ # Git 工作区与分支合并
|
||
│ │ ├── workspace-manager.ts
|
||
│ │ └── merge-manager.ts
|
||
│ └── k8s/ # K8s 接入
|
||
│ ├── kubeconfig-loader.ts # 鉴权/集群配置加载
|
||
│ └── auto-scaler.ts # 按复杂度自动伸缩 Agent 规模
|
||
├── package.json
|
||
├── tsconfig.json
|
||
└── tailwind.config.js
|
||
```
|
||
|
||
## 主要能力
|
||
|
||
- **任务提交**:用户输入需求后,通过 `orchestrator-client` 创建蜂群部署。
|
||
- **复杂度分析**:`ai/` 模块评估任务规模并推荐 Agent 数量(详见 `src/ai/README.md`)。
|
||
- **成本控制**:超过阈值时通过 `CostControlDialog` 提示并要求确认,避免规模失控。
|
||
- **状态展示**:`AgentDashboard` 实时展示 Agent、任务与工作流阶段。
|
||
- **结果聚合**:`git/merge-manager` 合并各 Agent 的结果分支,`ResultViewer` 统一查看。
|
||
- **弹性伸缩**:`k8s/auto-scaler` 依据复杂度分析结果调整 Agent 数量。
|
||
|
||
## 工作方式
|
||
|
||
1. 用户在客户端提交需求并(可选)查看复杂度分析与推荐规模。
|
||
2. 客户端调用 Orchestrator 创建部署,Orchestrator 分解任务并调度 Agent 执行。
|
||
3. 客户端轮询/订阅运行状态,展示阶段进度与各 Agent 产出。
|
||
4. 运行完成后,聚合各结果分支并在结果视图中呈现最终交付物。
|