Files
JARVIS/development-doc/plan/war-room-update/phase-wr-0-current-state.md

112 lines
4.1 KiB
Markdown
Raw Normal View History

# WR-0 当前状态与目标边界
## 1. 现状盘点
### 1.1 已有能力
1. 前端已有路由 `frontend/src/app/router/routes.ts -> /war-room`
2. 页面主体已存在于 `frontend/src/pages/war-room/index.vue`
3. 页面已有较完整的科幻视觉语言:
- 顶部指挥栏
- 左侧资源面板
- 中央主舞台
- 右侧 Inspector
- 底部 Runtime Strip
4. 页面已经有四组静态展示数据:
- `fixedOps`
- `studioNodes`
- `teams`
- `runFeed`
### 1.2 当前缺口
1. 页面仍是单文件实现,结构、状态、样式全部耦合在一个 SFC 内。
2. 当前数据全部 hardcoded没有 Pinia store、没有 composable、没有 API 层。
3. Inspector 并不真正跟随画布选中项变化。
4. STUDIO 只是示意图,没有拖拽、连线、缩放、平移、删除等 spec 级交互。
5. TEAMS 模式只有静态卡片,没有成员拓扑、协作协议详情、操作入口。
6. Runtime feed 只有静态列表,不反映真实运行记录。
7. 顶部按钮没有闭环:
- `NEW AGENT`
- `LAUNCH FLOW`
8. 文案中存在乱码,说明页面内容还未进入可交付质量线。
9. 现有页面多出 `RUNS` 模式,与批准 spec 不一致。
## 2. 设计与实现的差距
| 维度 | Spec 要求 | 当前状态 | 结论 |
|------|-----------|----------|------|
| 模式数量 | FIXED / STUDIO / TEAMS | fixed / studio / teams / runs | 需要收敛模式定义 |
| 数据来源 | API + 可持续维护的数据结构 | 本地 mock | 必须抽离 |
| 组件结构 | WarRoomPage + 子组件 | 单文件 | 必须拆分 |
| FIXED | 模板浏览与实例化 | 静态卡片 | 可复用现有视觉,但要接真实数据 |
| STUDIO | 可编排画布 | 仅示意图 | 需要实做交互层 |
| TEAMS | 群组协作视图 | 静态卡片 | 需要补数据与拓扑 |
| Runtime | 实时事件滚动 | 静态假数据 | 需要接执行记录 |
| /chat handoff | 可运行当前编排 | 未落地 | 必须定义接口 |
## 3. 目标边界
本轮计划的目标是把 `/war-room` 做成“可维护、可接真实数据、可触发执行”的页面,而不是一步做完所有高级编排能力。
本轮完成标准:
1. 页面结构完成组件化和状态分层。
2. FIXED / STUDIO / TEAMS 三模式与 spec 对齐。
3. 至少一条最小编排链路可以保存并交给 `/chat` 执行。
4. Inspector、Runtime、资源面板不再是纯静态展示。
5. 现有乱码文案清理完成。
本轮不强求:
1. 完整 BPMN 级流程设计器。
2. 真正的多人实时协同编辑。
3. 复杂权限系统。
4. 高级运行回放或可视化 tracing。
## 4. 建议目标架构
### 4.1 前端
建议拆分为:
- `frontend/src/pages/war-room/index.vue`
- `frontend/src/pages/war-room/composables/useWarRoomPage.ts`
- `frontend/src/pages/war-room/components/ModeStrip.vue`
- `frontend/src/pages/war-room/components/ResourceBay.vue`
- `frontend/src/pages/war-room/components/InspectorBay.vue`
- `frontend/src/pages/war-room/components/RuntimeStrip.vue`
- `frontend/src/pages/war-room/components/stage-fixed/*`
- `frontend/src/pages/war-room/components/stage-studio/*`
- `frontend/src/pages/war-room/components/stage-teams/*`
- `frontend/src/api/warRoom.ts`
### 4.2 后端
建议按职责拆分:
- `backend/app/routers/agent.py`
- 扩展模板读取接口,或显式挂载模板子路由
- `backend/app/routers/orchestration.py`
- `backend/app/routers/team.py`
- `backend/app/schemas/war_room.py`
- `backend/app/services/war_room/`
### 4.3 状态
建议建立统一页面状态:
- 当前模式
- 资源列表
- 当前选中项
- 当前编排图
- 团队列表
- 运行态 feed
- 加载与错误状态
## 5. 前置决策
1. 以批准 spec 为准,移除或降级当前 `RUNS` 模式。
2. 先不引入新依赖STUDIO 默认使用原生事件 + SVG 方案。
3. Agent templates 与 orchestrations 的 API 职责分离,不把所有 war-room 数据都塞进一个接口。
4. `/chat` 执行链先走最小方案:
- 选择当前 orchestration
- 生成执行 payload
- 跳转 `/chat` 并带上 orchestration id 或 execution context