Files
JARVIS/development-doc/plan/code-update/checklist.md

5.8 KiB
Raw Blame History

代码指挥官实施清单(可勾选执行版)

日期2026-04-04 状态:执行清单 适用范围:基于 phase-1 ~ phase-5 整理


使用说明

  • 完成前使用 - [ ]
  • 完成后改成 - [x]
  • Day 1-3 为后端基础设施
  • Day 4-5 为后端执行引擎
  • Day 6 为 Agent 集成
  • Day 7-8 为流式交互
  • Day 9-10 为前端集成

Day 1State + Prompt + 注册

Day 1 目标:完成代码指挥官 Agent 的基础架子

  • 新增 CODE_COMMANDER = "code_commander"AgentRole 枚举
  • 新增 CodeCommanderState TypedDict包含 task_type, ai_provider, sandbox_mode 等)
  • 新增 CODE_COMMANDER_SYSTEM_PROMPT 系统提示
  • 新增 SANDBOX_EXECUTION_PROMPT 沙盒执行说明
  • 新增 DIRECT_EXECUTION_PROMPT 直接执行说明
  • SUB_COMMANDER_TOOLSETS 中注册 CODE_COMMANDER_TOOLSET
  • 新增 CodeCommanderManifestAGENT_MANIFESTS
  • 补 Phase 1 单元测试

验收:确认 AgentRole.CODE_COMMANDER 存在且值正确


Day 2AI CLI Adapter统一接口

Day 2 目标:实现适配不同 AI CLI 的统一接口

  • 新增 AICLIAdapter 抽象基类
    • cli_name 属性
    • requires_workspace 属性
    • build_command() 方法
    • parse_output() 方法
    • is_installed() 方法
  • 新增 ClaudeAdapter 实现
  • 新增 GeminiAdapter 实现
  • 新增 CodexAdapter 实现
  • 新增 OpenCodeAdapter 实现
  • 新增 CodeExecutionResult 数据类
  • 补 Day 2 单元测试

验收:AICLIAdapter 可以正确识别 4 种 CLI


Day 3Security Classifier + Direct Executor

Day 3 目标:实现安全分级和直接执行器

  • 新增 RiskLevel 枚举LOW/HIGH
  • 新增 SecurityClassifier
    • HIGH_RISK_KEYWORDS 列表
    • LOW_RISK_KEYWORDS 列表
    • classify() 方法实现
    • _is_project_path() 方法实现
  • 新增 DirectExecutor
    • execute() 方法(异步)
    • 超时控制
    • is_installed() 检查
  • 补 Day 3 单元测试

验收:SecurityClassifier 能正确分类高低风险


Day 4Sandbox Environment + Sandbox Executor

Day 4 目标:实现沙盒执行器

  • 新增 SandboxEnvironment
    • create() 静态方法(创建临时目录)
    • cleanup() 方法
    • workspace_path 属性
    • session_id 属性
  • 新增 SandboxExecutor
    • execute() 方法异步yield 流式输出)
    • cleanup_session() 方法
    • _list_created_files() 方法
  • 实现超时控制
  • 补 Day 4 单元测试

验收:SandboxExecutor 能创建、执行、清理沙盒


Day 5执行引擎集成测试

Day 5 目标:确保执行引擎各组件协同工作

  • 集成测试:SecurityClassifier + DirectExecutor
  • 集成测试:SecurityClassifier + SandboxExecutor
  • 集成测试4 种 AICLIAdapterbuild_command()
  • 端到端测试:低风险任务直接执行
  • 端到端测试:高风险任务沙盒执行
  • 确认沙盒目录创建和清理正常

验收:所有执行器支持流式输出,且正确路由


Day 6Graph 节点 + 边路由

Day 6 目标:将代码指挥官接入 LangGraph

  • 新增 code_commander_node 函数
    • 获取用户需求和 AI 提供商
    • 调用 SecurityClassifier
    • 根据风险等级选择执行器
    • 返回执行结果
  • NODES 字典中注册 code_commander
  • 新增 _should_route_to_code_commander() 路由函数
  • graph.py 中添加条件边
  • 新增 CodeTask, CodeExecutionResult 模型到 schemas/task.py
  • 补 Day 6 单元测试

验收:高风险任务路由到沙盒,低风险路由到直接执行


Day 7PTY Terminal Engine

Day 7 目标:实现 PTY 终端管理

  • 新增 PTYSession 数据类
  • 新增 PTYManager
    • spawn() 方法
    • write() 方法
    • read() 方法(异步生成器)
    • resize() 方法
    • kill() 方法
  • 实现 asyncio.subprocess 进程管理
  • 实现输出队列
  • 补 Day 7 单元测试

验收PTY 会话可以启动、读写、终止


Day 8WebSocket + 流式输出

Day 8 目标:实现 WebSocket 端点和流式输出

  • 新增 ConnectionManager
  • 新增 /ws/terminal/{session_id} WebSocket 端点
  • 实现连接管理connect/disconnect
  • 新增 StreamOutput
  • 实现 stream_execution() 方法
  • 新增 InteractiveInputHandler
  • 实现用户输入传递到 PTY
  • 补 Day 8 集成测试

验收WebSocket 连接正常,输出实时推送


Day 9Vue 页面组件

Day 9 目标:前端代码指挥官主页面

  • 新增 CodeCommander.vue 页面组件
    • AI 提供商选择器
    • 任务输入框
    • 执行按钮
    • 终端显示区域
    • 交互输入框
    • 下载/清理按钮
  • 补 Day 9 组件测试

验收:用户可以选择 AI 提供商并输入任务


Day 10TerminalDisplay + WebSocket 服务 + 路由

Day 10 目标:完成前端集成

  • 新增 TerminalDisplay.vue 组件xterm.js
    • 终端渲染
    • ANSI 颜色支持
    • 用户输入处理
  • 新增 terminalWs.ts WebSocket 服务
    • 连接管理
    • 自动重连
    • 消息处理
  • router/index.ts 新增 /code-commander 路由
  • 端到端测试:完整执行流程
  • 确认前端与后端 WebSocket 通信正常

验收:用户可以在前端看到实时终端输出并交互


最终验收

  • 用户可以选择 AI 提供商Claude/Gemini/Codex/OpenCode
  • 低风险任务(如贪食蛇 demo直接执行
  • 高风险任务在临时目录沙盒执行
  • 终端输出实时流式显示
  • 用户可以中途输入交互(如 "y" 确认)
  • 临时目录执行后正确清理
  • 前端页面正常展示
  • 回归测试通过(现有功能不受影响)