Runtime platform

workflow.getRuntimePlatform()workflow.isCli() / workflow.isWeb() / workflow.isApp() 用来判断当前 workflow 的执行宿主。它们描述的是代码实际运行在哪里,而不是用户从哪个入口点击运行。

签名

workflow.getRuntimePlatform(): "cli" | "web" | "app"
workflow.isCli(): boolean
workflow.isWeb(): boolean
workflow.isApp(): boolean

平台语义

返回值说明
"cli"直接通过 workflow-code run/json/structure 或本地进程执行;没有宿主标记时默认使用该值。
"app"Electron App 本地项目运行,runtime 由 App 主进程启动。
"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(),
          isApp: workflow.isApp(),
        },
        contentType: "json",
      }],
    });
  },
});

注意事项

规则说明
函数每次读取当前 runtime 标记宿主或测试可以在进程启动时注入平台标记。
Server runner 固定为 web即使请求来自 App 或 Webhook,远程执行宿主仍是 server/web。
未识别标记回落 cli保持本地终端和旧宿主的兼容行为。

追踪

本文档由 issue #84 记录。实现对齐 core/runtime-platform.tscore/runtime-api.ts