3.0 KiB
3.0 KiB
HeiCode Swarm 桌面客户端
基于 Electron + React + TypeScript 的桌面客户端,是蜂群系统面向用户的入口。它负责提交任务、连接并展示 Orchestrator 的运行状态,分析任务复杂度以推荐 Agent 数量,并对生成结果进行聚合与查看。
环境要求
- Node.js 18+ 与 npm
- 可访问的 Kubernetes 集群与有效的 kubeconfig(如使用 K8s 调度)
- 已正确配置的 kubectl
安装与开发
npm install # 安装依赖
npm run build # 编译 TypeScript
npm run dev # 开发模式启动
npm run type-check
npm run lint
配置
应用按以下顺序加载 kubeconfig:
- 环境变量
KUBECONFIG(若设置) - 默认位置
~/.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 数量。
工作方式
- 用户在客户端提交需求并(可选)查看复杂度分析与推荐规模。
- 客户端调用 Orchestrator 创建部署,Orchestrator 分解任务并调度 Agent 执行。
- 客户端轮询/订阅运行状态,展示阶段进度与各 Agent 产出。
- 运行完成后,聚合各结果分支并在结果视图中呈现最终交付物。