{"version":3,"sources":["../src/cli/commands/scenarios/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { ScenariosApiService } from \"@/client-sdk/services/scenarios\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\n\nexport const listScenariosCommand = async (options?: { format?: string }): Promise<void> => {\n  checkApiKey();\n\n  const service = new ScenariosApiService();\n  const spinner = ora(\"Fetching scenarios...\").start();\n\n  try {\n    const scenarios = await service.getAll();\n\n    spinner.succeed(\n      `Found ${scenarios.length} scenario${scenarios.length !== 1 ? \"s\" : \"\"}`,\n    );\n\n    if (options?.format === \"json\") {\n      console.log(JSON.stringify(scenarios, null, 2));\n      return;\n    }\n\n    if (scenarios.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No scenarios found in this project.\"));\n      console.log(chalk.gray(\"Create your first scenario with:\"));\n      console.log(\n        chalk.cyan(\n          '  langwatch scenario create \"Login Flow\" --situation \"User attempts to log in\"',\n        ),\n      );\n      return;\n    }\n\n    console.log();\n\n    const tableData = scenarios.map((scenario) => ({\n      Name: scenario.name,\n      ID: scenario.id,\n      Labels: scenario.labels.length > 0 ? scenario.labels.join(\", \") : chalk.gray(\"—\"),\n      Criteria: `${scenario.criteria.length}`,\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"Name\", \"ID\", \"Labels\", \"Criteria\"],\n      colorMap: {\n        Name: chalk.cyan,\n        ID: chalk.green,\n        Labels: chalk.yellow,\n      },\n    });\n\n    console.log();\n    console.log(\n      chalk.gray(\n        `Use ${chalk.cyan(\"langwatch scenario get <id>\")} to view scenario details`,\n      ),\n    );\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch scenarios\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAMT,IAAM,uBAAuB,OAAO,YAAiD;AAC1F,cAAY;AAEZ,QAAM,UAAU,IAAI,oBAAoB;AACxC,QAAM,UAAU,IAAI,uBAAuB,EAAE,MAAM;AAEnD,MAAI;AACF,UAAM,YAAY,MAAM,QAAQ,OAAO;AAEvC,YAAQ;AAAA,MACN,SAAS,UAAU,MAAM,YAAY,UAAU,WAAW,IAAI,MAAM,EAAE;AAAA,IACxE;AAEA,SAAI,mCAAS,YAAW,QAAQ;AAC9B,cAAQ,IAAI,KAAK,UAAU,WAAW,MAAM,CAAC,CAAC;AAC9C;AAAA,IACF;AAEA,QAAI,UAAU,WAAW,GAAG;AAC1B,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,qCAAqC,CAAC;AAC7D,cAAQ,IAAI,MAAM,KAAK,kCAAkC,CAAC;AAC1D,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,UAAU,IAAI,CAAC,cAAc;AAAA,MAC7C,MAAM,SAAS;AAAA,MACf,IAAI,SAAS;AAAA,MACb,QAAQ,SAAS,OAAO,SAAS,IAAI,SAAS,OAAO,KAAK,IAAI,IAAI,MAAM,KAAK,QAAG;AAAA,MAChF,UAAU,GAAG,SAAS,SAAS,MAAM;AAAA,IACvC,EAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,QAAQ,MAAM,UAAU,UAAU;AAAA,MAC5C,UAAU;AAAA,QACR,MAAM,MAAM;AAAA,QACZ,IAAI,MAAM;AAAA,QACV,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AAED,YAAQ,IAAI;AACZ,YAAQ;AAAA,MACN,MAAM;AAAA,QACJ,OAAO,MAAM,KAAK,6BAA6B,CAAC;AAAA,MAClD;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,kBAAkB,CAAC;AACzD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}