跳到主要内容

workflow-code CLI

workflow-code@workflow-code/cli 暴露的统一命令。本地命令加载 workflow 项目、安装全局 runtime API 并在当前设备执行;连接服务器的命令位于 workspace 分组。

调用方式

项目应同时安装 Core SDK 和 CLI。两个包独立版本化,建议固定到经过验证的精确版本:

pnpm add -D workflow-code@0.2.0 @workflow-code/cli@0.2.0

项目必须在 devDependencies.workflow-code 写精确 SemVer,不能使用 ^~0.2.xworkspace:* 或本地路径。精确声明用于记录开发基线;运行时只比较 Core 的 major.minor 兼容线,因此同线任意 patch 或日期 Alpha 可直接运行,major 或 minor 变化才要求升级 CLI 或其它宿主。@workflow-code/cli 也保持精确版本,但与 Core 独立发版。

CLI 自身精确绑定 Core,并把 peerDependencies.workflow-code 限制在同一 minor,例如绑定 0.2.7 时为 >=0.2.0 <0.3.0runjsonstructureresolve-paramsmcp 会在加载项目模块前校验实际安装的 Core、CLI 自身绑定和项目 Core 声明;structure 还会校验完整 workflowCode.projectInfo 合同。help 不加载项目,因此不执行这些检查。

场景命令
项目脚本pnpm run dev
已安装 binpnpm exec workflow-code <command>
CLI 源码仓库开发pnpm build && node dist/index.js <command>

命令格式

workflow-code <command> [workflow-dir] [options] [--] [...args]
部分说明
<command>runjsonstructureresolve-paramsmcphelp。不传命令时显示帮助。
[workflow-dir]workflow 项目目录。不传时使用当前目录。
[--] [...args]executor createInput 可读取的 CLI 风格参数。-- 用于停止解析 CLI 自身选项,后续参数会原样传给 workflow。

全局选项

选项说明
--help / -h显示帮助。必须作为第一个参数使用。
--jsonrun 命令中切换为 JSON 报告输出;json 命令默认开启。
--run-id <id>指定本次执行 ID。主要用于恢复 waiting_for_input run。
--entrypoint <id>为 Workflow 选择入口;省略时使用默认入口。适用于 runjsonresolve-params,Conversation 不接受非空值。
--conversation-id <id>指定会话 ID。runjson 都可使用。
--file-store-dir <dir>指定本地文件 store 目录。runjson 都可使用。
--related-project <alias>=<绝对项目目录>runjson 绑定一个双方已确认的关联项目;可重复指定。目录必须是绝对路径,且 alias、UUID、双方 package 声明都必须匹配。
--resolved-user-inputs-json <json>注入已提交的用户输入或工具审批答案数组。
--tool-permissions-json <json>宿主传入工具权限覆盖策略;普通手动 CLI 调试通常不需要传。

命令列表

命令说明
workflow-code run本地执行 workflow,普通模式输出 output node 内容。
workflow-code json本地执行 workflow,并输出完整 JSON 执行报告。
workflow-code structure分析 workflow 结构并输出 JSON。
workflow-code resolve-params从 stdin 读取 composer 状态并执行 executor 参数联动回调。
workflow-code mcp将 Workflow entrypoint 作为标准 stdio MCP tools 提供给 AI 客户端。
workflow-code help输出帮助信息。

本地运行环境

环境变量说明
WORKFLOW_KV_STORE_DIR本地 KV store 目录。
WORKFLOW_PERSISTENT_VALUE_STORE_DIR本地 PersistentValue store 目录,项目知识库也保存在这里。
WORKFLOW_FILE_STORE_DIR本地文件 store 目录。
WORKFLOW_DESKTOP_RUNTIME_EVENTS=1json 模式下额外输出 Desktop 可消费的 runtime event 前缀行。

WORKFLOW_KV_STORE_DIRWORKFLOW_PERSISTENT_VALUE_STORE_DIR 互不复用:前者控制 context.storage.local.kv,后者控制 context.storage.local.persistentValue 和本地知识库。两者都按顶层 package.json.id 的 UUID 隔离当前项目。context.storage.server 始终使用同一项目 UUID 与已登录服务器连接,不受这两个本地目录影响。项目必须声明 dataStorage.mode;禁止或不可用的位置直接报错,本地数据不会自动同步到服务器。--related-project 只解析明确传入的目录,不扫描父目录或兄弟目录,也不会让关联访问递归穿过第二层关系。

退出码

情况退出码
运行成功,且 payload errCode00
运行失败1
payload errCode01
structure 分析失败1

输出

命令stdout/stderr
run成功时将 output node 内容写到 stdout;失败时 JSON 报告写到 stderr。
json完整执行报告写到 stdout。
structureworkflow 结构 JSON 写到 stdout。
resolve-params参数状态补丁 JSON 写到 stdout。
mcpstdout 只输出 stdio JSON-RPC;项目日志与 worker 诊断写到 stderr。

参数分隔

如果 workflow 参数本身以 -- 开头,建议显式写分隔符:

workflow-code run . -- --message "hello"

分隔符之后的参数会进入所选 entrypoint(Conversation 则为 executor)的 args 数组,即使参数名与 CLI 自身选项相同也不会再被 workflow-code 消费。例如 workflow-code run . --entrypoint validate -- --entrypoint workflow-owned 会选择 validate,并把第二个 --entrypoint workflow-owned 原样交给业务 workflow。