# 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