双 workspace 拓扑
ZCode 是一个大型 pnpm monorepo,内有两个嵌套 workspace:
# 根 pnpm-workspace.yaml
packages:
- apps/dev-docs
- packages/* # 19 个包
- apps/zcode-cli # 嵌套 CLI workspace 宿主
- apps/zcode-cli/packages/*
- apps/zcode-cli/tools/*- 根 workspace:仓库根,负责 Desktop / Web / Server / 共享 UI。
- CLI 子 workspace:
apps/zcode-cli自带pnpm-workspace.yaml(packages/*+tools/*)、独立pnpm-lock.yaml与turbo.json。根通过通配把它纳入根图,但 CLI 内部有自己的依赖解析与 Turbo 图。
版本锚点:Node >=24.0.0(精确 24.14.0,见 mise.toml)、pnpm 10.33.2、TypeScript 根 ^6.0.2(CLI 子库 ^5.9.0)。.npmrc 使用 node-linker=hoisted(SEA 打包脚本依赖向上逐级查找 node_modules/.bin)。
allowBuilds 显式放行 12 个需编译的原生包:cpu-features、edgedriver、electron、electron-winstaller、esbuild、geckodriver、koffi、msw、node-pty、protobufjs、ssh2、unsafe-pointer。
根 packages/(19 个)
| 目录 | npm name | 作用 |
|---|---|---|
shared | @zcode/shared | 跨进程共享协议/类型:ZCode Protocol、V4 wire、平台契约、gen-ui、MCP Apps |
rpc | @zcode/rpc | VS Code 风格 IPC 框架:序列化、传输协议、Channel RPC、连接管理、远程连接 |
provider | @zcode/provider | Provider/Model 抽象与 Registry:配置模型、解析、选择校验、Settings/Selection facade |
provider-node | @zcode/provider-node | Provider 的 Node 实现:内置/个人配置持久化、下载、materialize、运行时装配 |
model-option-map | @zcode/model-option-map | 模型选项 DSL:受限 CEL 编译/求值 + JSON merge-patch(reasoningLevel/maxOutputTokens) |
services | @zcode/services | 业务服务与持久化集合(session/storage/gen-ui/plugin-ui-bridge/zcode-agent 等)+ Node 实现 |
client | @zcode/client | Agent/远端客户端 SDK:WebSocket/MessagePort 连接、RemoteServiceAccess 服务代理 |
server | @zcode/server | HTTP/WebSocket 服务端:本地服务托管、静态资源、SSH/WSL/Docker/Server 远程连接与部署 |
zcode-server-cli | @zcode/server-cli(bin zcode) | 独立 Server CLI/进程管理:serve/status/stop/restart/update/uninstall + Supervisor 守护 |
ui | @zcode/ui | 平台无关 React 组件、hooks、Zustand store、i18n、V4 会话投影(体量最大) |
web | @zcode/web | Web 客户端:手机远控 SPA、OAuth 登录、分享落地页、Vite 远端页 |
web-share | @zcode/web-share | 独立会话分享入口(不经完整 Web bootstrap),复用 web/src/share 与 share-ui |
share-ui | @zcode/share-ui | 会话分享只读 UI 外壳,复用 @zcode/ui 的 ConversationShareReadonlyTimeline |
desktop | @zcode/desktop | Electron 桌面应用:main/host/preload/renderer/scheduler + 插件沙箱 + 打包 |
zcode-cua | @zcode/zcode-cua v0.6.3 | Computer Use fail-closed 占位包(本 build 不提供 CUA) |
stream-animate | @zcode/stream-animate | 流式输出帧率分析工具(60/120 FPS 每帧字符数预测) |
formal-proof | @zcode/formal-proof | 产品行为状态空间枚举器(compact/fork/goal/queue 组合),D3 渲染 |
e2e-report | @zcode/e2e-report | E2E 结果采集(node side)+ Chart.js 可视化 viewer |
android | (无 package.json) | Android 远控壳:Compose + WebView 打开 zcode.z.ai/remote,扫码/保活 Service |
apps/zcode-cli/packages/(30 个)
CLI 子 workspace 是 Agent 的真正实现,按功能分四大类。
核心链路
| 包 | 作用 |
|---|---|
shared-types | 仅 CLI 边界类型(RunContext、GlobalOptions、输出格式) |
contracts | 跨边界端口、事件、错误、tool schema、model 类型 |
core | agent、turn、session、tool、permission、memory、workflow 业务运行时 |
adapters | 全部 Node/I/O/provider/MCP/storage/config 适配器 |
bootstrap | composition root:创建 App、Runtime、provider registry、session store、MCP、plugin、V4 server |
cli | zcode 二进制入口、命令解析、headless/protocol/TUI 分派 |
tui | OpenTUI + React 终端界面 |
基础设施
| 包 | 作用 |
|---|---|
i18n | en-US / zh-CN CLI/TUI 文案 |
telemetry | OTLP trace/metrics 与 Agent telemetry(OTel) |
debug | 本地日志/SQLite/trace 浏览 + MITM 网络抓包开发工具 |
dynamic-workflow | 纯 TS 工作流 facade、编译、静态分析与纯执行引擎 |
dynamic-workflow-runtime | child-process + vm 沙箱 harness |
bundled-skills | 不可卸载的内置技能包(当前仅 dynamic-workflows) |
node-repl-host | Browser Use / Computer Use 共用的 node_repl MCP 宿主 |
swift-bridge | 当前仅为 placeholder(src/index.ts) |
扩展插件(*-plugin)
| 包 | 作用 |
|---|---|
visualize-plugin | Gen UI / 交互视图(唯一提供 HTML 交互页的默认启用 UI Plugin) |
browser-use-plugin | 浏览器自动化 skills + client runtime |
zcode-cua-plugin | Computer Use SDK/skill(默认关闭,受 feature flag 门控) |
documents-plugin | DOCX 文档技能 |
pdf-plugin | PDF/LaTeX/HTML 排版技能 |
presentations-plugin | PPTX 演示文稿技能 |
spreadsheets-plugin | XLSX 表格技能 |
image-search-plugin | 官方 HTTP 搜图 MCP |
android-emulator-plugin | Android 开发/模拟器自动化(默认关闭) |
ios-simulator-plugin | iOS 开发/模拟器自动化(默认关闭) |
restore-legacy-sessions-plugin | 旧 ACP 会话迁移(已退出市场展示) |
superpowers-plugin | 开发方法论 skill/hook 集合(已从内置 SEA 资源下线,改按需安装) |
创建器 / 指南
| 包 | 作用 |
|---|---|
plugin-creator-plugin | 插件创作与本地市场脚手架 |
skill-creator-plugin | Skill 创建/编辑/迭代 |
zcode-guide-plugin | ZCode 配置与自诊断技能 |
包级依赖图
# 根 packages
shared -> model-option-map
provider -> model-option-map, shared
provider-node -> provider, model-option-map, shared
rpc -> (leaf)
services -> rpc, shared, provider, provider-node, zcode-cua
client -> rpc, services, shared
server -> client, rpc, services, shared
ui -> rpc, services, shared, provider
web -> client, shared, ui
web-share -> shared, share-ui
share-ui -> shared
zcode-server-cli -> rpc, services, shared
desktop -> client, rpc, server, services, shared, ui, provider, provider-node, zcode-cua, e2e-report
# apps/zcode-cli(独立分层)
shared-types -> (leaf)
contracts -> shared
core -> contracts, shared, shared-types, dynamic-workflow, zcode-cua
adapters -> contracts, shared, provider, model-option-map, dynamic-workflow, zcode-cua
bootstrap -> core, adapters, contracts, shared, provider, provider-node,
dynamic-workflow, dynamic-workflow-runtime, formal-proof, i18n, telemetry
cli -> core, bootstrap, adapters, contracts, shared-types, provider-node,
dynamic-workflow-runtime, i18n, tui
tui -> contracts, i18n, shared依赖严格分层:shared-types → contracts → core/adapters → bootstrap → cli。zcode-cua 被 services/core/adapters/node-repl-host 广泛消费(但当前是占位实现,见 office-computer-use)。
其他顶层目录
| 目录 | 职责 |
|---|---|
apps/dev-docs | 交互式能力图 / 协议文档(pnpm dev:docs) |
scripts/ | 80+ 构建维护脚本(见 engineering) |
config/ | 内置配置 |
third-party/ | 第三方声明材料(见 distribution) |
docs/ | 全量约 1866 篇 Markdown 设计资产 |
specs/ | zcode-unified-distribution.md(见 distribution) |
harness/remote/ | 远程 harness Dockerfile |
.agents/skills/ | 仓库自身开发用技能(同时被运行时发现) |
相关页面
- architecture — 三层运行架构与进程模型
- engineering — 构建编排、测试、CI、架构治理
- glossary — 术语表