工作平面
工作平面是 MCP(模型上下文协议)stdio服务器 这提供了一个 基于Git工作树的工作区管理器 安全、可重复 多代理 软件交付。
关键词:MCP服务器、模型上下文协议、Git工作树、工作空间隔离、补丁应用程序、命令执行、证据捕获、工件存储、锁定、多代理开发。
第一阶段目标:
- 使用隔离工作区 Git工作树
- 集中式 状态+工件存储 在单个根目录下
- 锁 防止并发工作区突变
- 默认情况下,编排器和工作代理的工具界面是安全的
功能(第一阶段)
- 创建、列出、检查和关闭由Git工作树支持的工作区
- 使用以下命令在工作区内应用补丁
git apply(--check支持) - 使用以下公式计算工作空间内的差异
git diff(可选工件存储) - 在工作区中使用以下命令运行命令:
- denylist策略(可配置) - 超时强制 - 有界stdout/stderr捕获(截断标志) - stdout/stderr作为单独的日志工件存储
- 工件存储:按工作区放置/获取/列出
- JSON持久性(
state.json)使用原子写入(v0.1)
用例
- 为每个代理/任务安排一个隔离的工作区,以协调多代理编码
- 提供一个安全的控制平面,用于应用补丁和使用捕获的日志运行测试
- 收集差异/日志/注释作为工件,以供审查、审计或CI移交
安全模型(第一阶段)
- 所有状态都位于一个根目录下:
WORKPLANE_ROOT(默认值~/.workplane) - 突变工具(
workspace.apply_patch,workspace.run,workspace.close)强制锁 - 命令执行使用
spawn随着shell:false、denylist策略、超时和有界输出捕获
工具状态
已实施的工具:
- 工作区:
workspace.create,workspace.get,workspace.list,workspace.close - 并发:
workspace.lock,workspace.release - 代码操作:
workspace.apply_patch,workspace.diff,workspace.run - 人工产品:
artifact.put,artifact.get,artifact.list
可选(未实现):
workspace.note.add,workspace.note.list
快速链接
- 文档索引: docs/README.md
- 工具模式+示例: docs/tools.md
- 建筑+护栏: docs/architecture.md
- 编排器初始系统提示: docs/promises/workplane-orchestrator-initial-system-promplet.md
- 示例项目提示: docs/promises/sample-project-promplets.md
- 两个工作区演示: 示例/两个工作区演示/
快速入门
前提条件:
- Node.js(推荐LTS)
- Git可在
PATH
安装和构建:
npm install
npm run build运行服务器(dev):
npm run dev运行服务器(prod):
npm start运行烟雾检查:
npm run smoke配置
环境变量:
WORKPLANE_ROOT:工作平面数据根目录(默认:~/.workplane)WORKPLANE_COMMAND_DENYLIST:逗号分隔的可执行文件denylistworkspace.run
文档
- docs/README.md (从这里开始)
- docs/tools.md (模式+示例)
- docs/architecture.md (设计+安全护栏)
- 文件/要求.md (第一阶段要求)
- docs/roadmap.md (里程碑)
例子
- 示例/第一阶段烟雾/ (端到端烟雾测试)
- 示例/两个工作区演示/ (创建两个工作区,patch/run/diff,列出工件)
发展
脚本:
npm run dev(tsx)从以下位置启动MCP stdio服务器src/npm run build构建到dist/npm start运行内置服务器npm run smoke对以下对象进行端到端烟雾测试dist/server.js
贡献: 贡献.md
