{"version":3,"sources":["../src/cli/commands/workflows/run.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatFetchError } from \"../../utils/formatFetchError\";\nimport { failSpinner } from \"../../utils/spinnerError\";\nimport { buildAuthHeaders } from \"@/internal/api/auth\";\n\nimport { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\nexport const runWorkflowCommand = async (\n  id: string,\n  options: { input?: string; format?: string },\n): Promise<void> => {\n  checkApiKey();\n\n  const spinner = ora(`Running workflow \"${id}\"...`).start();\n\n  try {\n    let input: Record<string, unknown> = {};\n    if (options.input) {\n      input = JSON.parse(options.input) as Record<string, unknown>;\n    }\n\n    // Workflow run API is on the pages API, not the Hono app API\n    const apiKey = process.env.LANGWATCH_API_KEY ?? \"\";\n    const endpoint = resolveControlPlaneUrl();\n\n    const response = await fetch(`${endpoint}/api/workflows/${encodeURIComponent(id)}/run`, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        ...buildAuthHeaders({ apiKey }),\n      },\n      body: JSON.stringify(input),\n    });\n\n    if (!response.ok) {\n      const message = await formatFetchError(response);\n      spinner.fail(`Workflow execution failed: ${message}`);\n      process.exit(1);\n    }\n\n    const result = await response.json() as Record<string, unknown>;\n\n    spinner.succeed(`Workflow \"${id}\" executed successfully`);\n\n    if (options.format === \"json\") {\n      console.log(JSON.stringify(result, null, 2));\n    } else {\n      console.log();\n      if (result.output !== undefined) {\n        console.log(chalk.bold(\"  Output:\"));\n        const output = typeof result.output === \"string\"\n          ? result.output\n          : JSON.stringify(result.output, null, 2);\n        console.log(`    ${output.split(\"\\n\").join(\"\\n    \")}`);\n      } else {\n        console.log(chalk.bold(\"  Result:\"));\n        console.log(`    ${JSON.stringify(result, null, 2).split(\"\\n\").join(\"\\n    \")}`);\n      }\n      console.log();\n    }\n  } catch (error) {\n    if (error instanceof SyntaxError) {\n      spinner.fail(chalk.red(\"--input must be valid JSON\"));\n    } else {\n      failSpinner({ spinner, error, action: \"run workflow\" });\n    }\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAOT,IAAM,qBAAqB,OAChC,IACA,YACkB;AAXpB;AAYE,cAAY;AAEZ,QAAM,UAAU,IAAI,qBAAqB,EAAE,MAAM,EAAE,MAAM;AAEzD,MAAI;AACF,QAAI,QAAiC,CAAC;AACtC,QAAI,QAAQ,OAAO;AACjB,cAAQ,KAAK,MAAM,QAAQ,KAAK;AAAA,IAClC;AAGA,UAAM,UAAS,aAAQ,IAAI,sBAAZ,YAAiC;AAChD,UAAM,WAAW,uBAAuB;AAExC,UAAM,WAAW,MAAM,MAAM,GAAG,QAAQ,kBAAkB,mBAAmB,EAAE,CAAC,QAAQ;AAAA,MACtF,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,SACb,iBAAiB,EAAE,OAAO,CAAC;AAAA,MAEhC,MAAM,KAAK,UAAU,KAAK;AAAA,IAC5B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,iBAAiB,QAAQ;AAC/C,cAAQ,KAAK,8BAA8B,OAAO,EAAE;AACpD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,SAAS,MAAM,SAAS,KAAK;AAEnC,YAAQ,QAAQ,aAAa,EAAE,yBAAyB;AAExD,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC7C,OAAO;AACL,cAAQ,IAAI;AACZ,UAAI,OAAO,WAAW,QAAW;AAC/B,gBAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;AACnC,cAAM,SAAS,OAAO,OAAO,WAAW,WACpC,OAAO,SACP,KAAK,UAAU,OAAO,QAAQ,MAAM,CAAC;AACzC,gBAAQ,IAAI,OAAO,OAAO,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE;AAAA,MACxD,OAAO;AACL,gBAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;AACnC,gBAAQ,IAAI,OAAO,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE;AAAA,MACjF;AACA,cAAQ,IAAI;AAAA,IACd;AAAA,EACF,SAAS,OAAO;AACd,QAAI,iBAAiB,aAAa;AAChC,cAAQ,KAAK,MAAM,IAAI,4BAA4B,CAAC;AAAA,IACtD,OAAO;AACL,kBAAY,EAAE,SAAS,OAAO,QAAQ,eAAe,CAAC;AAAA,IACxD;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}