{"version":3,"sources":["../src/cli/commands/monitors/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatFetchError } from \"../../utils/formatFetchError\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\nimport { buildAuthHeaders } from \"@/internal/api/auth\";\n\nimport { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\nexport const listMonitorsCommand = async (options?: {\n  format?: string;\n}): Promise<void> => {\n  checkApiKey();\n\n  const apiKey = process.env.LANGWATCH_API_KEY ?? \"\";\n  const endpoint =\n    resolveControlPlaneUrl();\n\n  const spinner = ora(\"Fetching monitors...\").start();\n\n  try {\n    const response = await fetch(`${endpoint}/api/monitors`, {\n      headers: buildAuthHeaders({ apiKey }),\n    });\n\n    if (!response.ok) {\n      const message = await formatFetchError(response);\n      spinner.fail(`Failed to fetch monitors: ${message}`);\n      process.exit(1);\n    }\n\n    const monitors = (await response.json()) as Array<{\n      id: string;\n      name: string;\n      checkType: string;\n      enabled: boolean;\n      executionMode: string;\n      sample: number;\n    }>;\n\n    spinner.succeed(\n      `Found ${monitors.length} monitor${monitors.length !== 1 ? \"s\" : \"\"}`\n    );\n\n    if (options?.format === \"json\") {\n      console.log(JSON.stringify(monitors, null, 2));\n      return;\n    }\n\n    if (monitors.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No monitors found.\"));\n      console.log(chalk.gray(\"Create one with:\"));\n      console.log(\n        chalk.cyan(\n          '  langwatch monitor create \"Toxicity Check\" --check-type ragas/toxicity'\n        )\n      );\n      return;\n    }\n\n    console.log();\n\n    const tableData = monitors.map((m) => ({\n      Name: m.name,\n      ID: m.id,\n      Type: m.checkType,\n      Mode: m.executionMode,\n      Status: m.enabled ? chalk.green(\"enabled\") : chalk.gray(\"disabled\"),\n      Sample: `${Math.round(m.sample * 100)}%`,\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"Name\", \"ID\", \"Type\", \"Mode\", \"Status\", \"Sample\"],\n      colorMap: {\n        Name: chalk.cyan,\n        ID: chalk.green,\n      },\n    });\n\n    console.log();\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch monitors\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAQT,IAAM,sBAAsB,OAAO,YAErB;AAXrB;AAYE,cAAY;AAEZ,QAAM,UAAS,aAAQ,IAAI,sBAAZ,YAAiC;AAChD,QAAM,WACJ,uBAAuB;AAEzB,QAAM,UAAU,IAAI,sBAAsB,EAAE,MAAM;AAElD,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,GAAG,QAAQ,iBAAiB;AAAA,MACvD,SAAS,iBAAiB,EAAE,OAAO,CAAC;AAAA,IACtC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,UAAU,MAAM,iBAAiB,QAAQ;AAC/C,cAAQ,KAAK,6BAA6B,OAAO,EAAE;AACnD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,WAAY,MAAM,SAAS,KAAK;AAStC,YAAQ;AAAA,MACN,SAAS,SAAS,MAAM,WAAW,SAAS,WAAW,IAAI,MAAM,EAAE;AAAA,IACrE;AAEA,SAAI,mCAAS,YAAW,QAAQ;AAC9B,cAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAC7C;AAAA,IACF;AAEA,QAAI,SAAS,WAAW,GAAG;AACzB,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,oBAAoB,CAAC;AAC5C,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,SAAS,IAAI,CAAC,OAAO;AAAA,MACrC,MAAM,EAAE;AAAA,MACR,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,MAAM,EAAE;AAAA,MACR,QAAQ,EAAE,UAAU,MAAM,MAAM,SAAS,IAAI,MAAM,KAAK,UAAU;AAAA,MAClE,QAAQ,GAAG,KAAK,MAAM,EAAE,SAAS,GAAG,CAAC;AAAA,IACvC,EAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,QAAQ,MAAM,QAAQ,QAAQ,UAAU,QAAQ;AAAA,MAC1D,UAAU;AAAA,QACR,MAAM,MAAM;AAAA,QACZ,IAAI,MAAM;AAAA,MACZ;AAAA,IACF,CAAC;AAED,YAAQ,IAAI;AAAA,EACd,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,iBAAiB,CAAC;AACxD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}