workspace run

workspace run 调用 Workflow Server 的 run API,在远程 draft、latest 或指定在线版本上执行 workflow。 从 issue #95 起,CLI 运行使用 API key owner 作为 actor 写入 server run record。项目本身必须已绑定顶层 package.json.id UUID,并且当前账号同时满足“项目可见 + 有运行权限 + 未被 run block 禁止”。

命令格式

pnpm -C workspace workspace run <workflow> [...args] [--target draft|latest|version]

参数

参数说明
<workflow>本地 workflow 目录名、workflow 名称或直接传远程项目 UUID。
args发送到 server run API 的 args 数组。
--target <target>运行目标。默认 latest

Target

说明
latest默认值。运行当前 latest 版本。
draft运行远程 draft。适合发布前验证。
具体版本号运行指定在线版本。preparingoffline 版本会被 server 拒绝。

参数解析规则

workspace CLI 会从命令后的所有参数中识别自己的全局选项。未识别的参数会保留到 args 数组。当前不会剥离 -- 分隔符,所以业务参数直接写在命令里。
场景写法
普通业务参数run hello --message "hello"
指定 targetrun hello --target draft --message "hello"
业务参数与全局选项同名建议调整 workflow 参数名,避免被 CLI 解析。

API

步骤Endpoint
远程运行POST /api/workflows/{workflow}/run
请求体包含 targetargs。直接调用 HTTP API 时,也可以用 version 作为具体版本号别名;未提供 target 时 server 会把 version 作为运行目标。

输出

情况输出
运行成功server run API JSON。
workflow payload errCode0server 返回错误语义,CLI 退出码为 1
未登录输出错误信息,退出码为 1
403当前阶段会优先区分“没有项目权限”和“当前账号已被该项目禁止运行”,而不是统一提示重新登录。

示例

pnpm -C workspace workspace run hello --message "hello"
pnpm -C workspace workspace run hello --target latest --message "hello"
pnpm -C workspace workspace run hello --target draft --message "draft test"
pnpm -C workspace workspace run conversation-knowledge --target draft --message "记录今天的结论" --title "Demo conversation"
如果需要为 conversation workflow 指定稳定 conversation_id,直接调用 server run API;workspace run 当前只发送 targetargs
curl -X POST "$WORKFLOW_SERVER_URL/api/workflows/conversation-knowledge/run" \
  -H "Authorization: Bearer $WORKFLOW_SERVER_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "draft",
    "conversation_id": "demo-thread",
    "args": ["--message", "记录今天的结论", "--title", "Demo conversation"]
  }'

相关命令

目标命令
单节点调试debug-node
查看可运行版本versions