Runtime platform
workflow.getRuntimePlatform() 和 workflow.isCli() / workflow.isWeb() / workflow.isDesktop() 用来判断当前 workflow 的执行宿主。它们描述的是代码实际运行在哪里,而不是用户从哪个入口点击运行。
签名
workflow.getRuntimePlatform(): "cli" | "web" | "desktop"
workflow.isCli(): boolean
workflow.isWeb(): boolean
workflow.isDesktop(): boolean
平台语义
| 返回值 | 说明 |
|---|---|
"cli" | 直接通过 workflow-code run/json/structure 或本地进程执行;没有宿主标记时默认使用该值。 |
"desktop" | Electron Desktop 本地项目运行,runtime 由 Desktop 主进程启动。 |
"web" | Workflow Server runner 执行,包括 server web、external API、Webhook 等远程入口触发的运行。 |
示例
const outputNode = workflow.createOutputNode<Input, OutputPayload>({
name: "output",
format() {
const platform = workflow.getRuntimePlatform();
return workflow.createOutputPayload({
items: [{
title: "Runtime Platform",
content: {
platform,
isCli: workflow.isCli(),
isWeb: workflow.isWeb(),
isDesktop: workflow.isDesktop(),
},
contentType: "json",
}],
});
},
});
注意事项
| 规则 | 说明 |
|---|---|
| 函数每次读取当前 runtime 标记 | 宿主或测试可以在进程启动时注入平台标记。 |
Server runner 固定为 web | 即使请求来自 Desktop 或 Webhook,远程执行宿主仍是 server/web。 |
未识别标记回落 cli | 保持本地终端和旧宿主的兼容行为。 |