# 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. 运行完成后,聚合各结果分支并在结果视图中呈现最终交付物。