# Agent Registry Web UI — TODO ## Phase 1: 基础设施 + API 层 ✅ - [x] **1.1** 前端 API 层补齐 - [x] `api/index.js`: 新增 `getAgentConfig()` — `GET /agents/config` - [x] `api/index.js`: 新增 `getAgentHealth(name)` — `GET /agents/:name/health` - [x] `api/index.js`: 新增 `getSessionStats()` — `GET /agents/sessions` - [x] **1.2** 路由注册 - [x] `router/index.js`: 新增 `/agents` 路由 → `AgentRegistry.vue` (lazy load) - [x] **1.3** 导航入口 - [x] `TaskList.vue` Hero 区域: 新增 "Agent 管理" 按钮 → `/agents` ## Phase 2: AgentRegistry 页面 — 核心视图 ✅ - [x] **2.1** `views/AgentRegistry.vue` — 页面骨架 - [x] 统计概览栏:Agent 总数 / Backend 数 / Launcher 数 / Group 数 - [x] Tab 切换:按组查看 / 按类型查看 / 执行后端 - [x] 使用 `getAgentConfig()` 一次性加载全量配置 - [x] Loading 状态 + 空状态处理 - [x] **2.2** `components/agent/AgentRow.vue` — Agent 行 - [x] 按组查看模式:以 Group 为卡片,内嵌 Agent 行 - [x] 按类型查看模式:以 Type 为分组,展示所有同类型 Agent - [x] 每个 Agent 行:名称 + 类型 Tag + 描述 + 四维标签 - [x] 展开行:查看四维详情 + Prompt 路径 - [x] **2.3** `components/agent/BackendPanel.vue` — 执行后端 - [x] CLI Backends 卡片网格:id, command, sessionMode, 引用计数 - [x] Launchers 卡片网格:name, type, command, 引用计数 ## Phase 3: NewTask 精简 ✅ - [x] **3.1** 移除 `AgentConfigModal.vue` 及相关逻辑 - [x] `NewTask.vue`: 移除 `detailModalVisible`、`detailGroupId`、`AgentConfigModal` import - [x] `NewTask.vue`: "配置"按钮改为 `router.push('/agents')` - [x] **3.2** `AgentGroupSelector.vue` 增强 - [x] 对于已设置 override 的 Agent,在组卡片上显示 cyan 标签 `coder → claude-cli` - [x] 详情按钮改为 "管理" + SettingOutlined icon - [x] 新增 `overrides` prop,NewTask 传入 `form.agentOverrides` - [x] **3.3** 清理 - [x] 删除 `components/task/AgentConfigModal.vue` - [x] 删除 `components/task/AgentCard.vue` ## Phase 4: 打磨 ✅ - [x] **4.1** 样式对齐 - [x] AgentRegistry 页面使用 PageLayout + 全局样式体系 - [x] 与 TaskList 页面视觉风格统一(深色背景 + 毛玻璃统计) - [x] **4.2** 交互细节 - [x] Agent 行 hover 高亮 - [x] 四维标签配色:cliBackend=cyan, protocol=geekblue, transport=volcano, launcher=orange - [x] 空状态处理(无 Agent 组时显示提示) - [x] Loading spinner - [x] **4.3** 响应式适配 - [x] 移动端布局(stat-pill wrap、卡片全宽、tab overflow-x) - [x] **4.4** 构建验证 - [x] `vite build` 无错误 ✅ - [x] 后端单测全绿 110/110 ✅ - [x] AgentRegistry lazy load chunk: 5.64KB CSS + 13.5KB JS ✅