{"version":3,"sources":["../src/cli/commands/open.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport open from \"open\";\n\nimport { isLoggedIn, loadConfig } from \"@/cli/utils/governance/config\";\n\n/**\n * `langwatch open [path]` — open the LangWatch app in the user's\n * default browser.\n *\n * No path:\n *   - Project mode (LANGWATCH_API_KEY set in the shell or .env): open\n *     the control-plane root and let the app route to the matching\n *     project home based on the session.\n *   - Personal mode: open `/me`, the personal AI tools portal.\n *\n * With path: open `${control_plane_url}/${path}` verbatim. Lets\n * `langwatch open traces`, `langwatch open governance`, etc. work\n * without a dedicated subcommand per surface.\n */\nexport const openCommand = async (\n  options: { path?: string; browser?: string } = {},\n): Promise<void> => {\n  const cfg = loadConfig();\n  if (!isLoggedIn(cfg)) {\n    console.error(\n      chalk.yellow(\"Not logged in. Run `langwatch login` first.\"),\n    );\n    process.exit(1);\n  }\n\n  const base = cfg.control_plane_url.replace(/\\/+$/, \"\");\n  let target: string;\n  if (options.path) {\n    const trimmed = options.path.replace(/^\\/+/, \"\");\n    target = `${base}/${trimmed}`;\n  } else if (process.env.LANGWATCH_API_KEY) {\n    target = base;\n  } else {\n    target = `${base}/me`;\n  }\n\n  console.log(`Opening ${target}`);\n  await openInBrowser(target, options.browser);\n};\n\nasync function openInBrowser(url: string, override?: string): Promise<void> {\n  const choice =\n    override ?? process.env.LANGWATCH_BROWSER ?? process.env.BROWSER ?? \"\";\n  if (choice === \"none\") return;\n  try {\n    if (!choice || choice === \"default\") {\n      await open(url);\n      return;\n    }\n    await open(url, { app: { name: choice } });\n  } catch {\n    // URL already on stdout; don't fail because the browser couldn't open.\n  }\n}\n"],"mappings":";;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,UAAU;AAkBV,IAAM,cAAc,OACzB,UAA+C,CAAC,MAC9B;AAClB,QAAM,MAAM,WAAW;AACvB,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,YAAQ;AAAA,MACN,MAAM,OAAO,6CAA6C;AAAA,IAC5D;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,OAAO,IAAI,kBAAkB,QAAQ,QAAQ,EAAE;AACrD,MAAI;AACJ,MAAI,QAAQ,MAAM;AAChB,UAAM,UAAU,QAAQ,KAAK,QAAQ,QAAQ,EAAE;AAC/C,aAAS,GAAG,IAAI,IAAI,OAAO;AAAA,EAC7B,WAAW,QAAQ,IAAI,mBAAmB;AACxC,aAAS;AAAA,EACX,OAAO;AACL,aAAS,GAAG,IAAI;AAAA,EAClB;AAEA,UAAQ,IAAI,WAAW,MAAM,EAAE;AAC/B,QAAM,cAAc,QAAQ,QAAQ,OAAO;AAC7C;AAEA,eAAe,cAAc,KAAa,UAAkC;AA7C5E;AA8CE,QAAM,UACJ,yCAAY,QAAQ,IAAI,sBAAxB,YAA6C,QAAQ,IAAI,YAAzD,YAAoE;AACtE,MAAI,WAAW,OAAQ;AACvB,MAAI;AACF,QAAI,CAAC,UAAU,WAAW,WAAW;AACnC,YAAM,KAAK,GAAG;AACd;AAAA,IACF;AACA,UAAM,KAAK,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,CAAC;AAAA,EAC3C,SAAQ;AAAA,EAER;AACF;","names":[]}