{"version":3,"sources":["../src/cli/commands/model-providers/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { ModelProvidersApiService } from \"@/client-sdk/services/model-providers/model-providers-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable } from \"../../utils/formatting\";\nimport { failSpinner } from \"../../utils/spinnerError\";\n\nexport const listModelProvidersCommand = async (options?: { format?: string }): Promise<void> => {\n  checkApiKey();\n\n  const service = new ModelProvidersApiService();\n  const spinner = ora(\"Fetching model providers...\").start();\n\n  try {\n    const providers = await service.list();\n\n    // Response is an object keyed by provider name\n    const providerEntries = Object.entries(providers);\n\n    spinner.succeed(`Found ${providerEntries.length} model provider${providerEntries.length !== 1 ? \"s\" : \"\"}`);\n\n    if (options?.format === \"json\") {\n      console.log(JSON.stringify(providers, null, 2));\n      return;\n    }\n\n    if (providerEntries.length === 0) {\n      console.log();\n      console.log(chalk.gray(\"No model providers configured.\"));\n      console.log(chalk.gray(\"Set one up with:\"));\n      console.log(\n        chalk.cyan('  langwatch model-provider set openai --enabled true'),\n      );\n      return;\n    }\n\n    console.log();\n\n    const tableData = providerEntries.map(([key, p]) => ({\n      Provider: p.provider ?? key,\n      Enabled: p.enabled ? chalk.green(\"✓\") : chalk.red(\"✗\"),\n      \"Default Model\": \"—\",\n      \"Has Keys\": p.customKeys && Object.keys(p.customKeys).length > 0 ? chalk.green(\"✓\") : chalk.gray(\"—\"),\n    }));\n\n    formatTable({\n      data: tableData,\n      headers: [\"Provider\", \"Enabled\", \"Default Model\", \"Has Keys\"],\n      colorMap: {\n        Provider: chalk.cyan,\n      },\n    });\n\n    console.log();\n    console.log(\n      chalk.gray(\n        `Use ${chalk.cyan(\"langwatch model-provider set <provider> --enabled true\")} to configure a provider`,\n      ),\n    );\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"fetch model providers\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAMT,IAAM,4BAA4B,OAAO,YAAiD;AAC/F,cAAY;AAEZ,QAAM,UAAU,IAAI,yBAAyB;AAC7C,QAAM,UAAU,IAAI,6BAA6B,EAAE,MAAM;AAEzD,MAAI;AACF,UAAM,YAAY,MAAM,QAAQ,KAAK;AAGrC,UAAM,kBAAkB,OAAO,QAAQ,SAAS;AAEhD,YAAQ,QAAQ,SAAS,gBAAgB,MAAM,kBAAkB,gBAAgB,WAAW,IAAI,MAAM,EAAE,EAAE;AAE1G,SAAI,mCAAS,YAAW,QAAQ;AAC9B,cAAQ,IAAI,KAAK,UAAU,WAAW,MAAM,CAAC,CAAC;AAC9C;AAAA,IACF;AAEA,QAAI,gBAAgB,WAAW,GAAG;AAChC,cAAQ,IAAI;AACZ,cAAQ,IAAI,MAAM,KAAK,gCAAgC,CAAC;AACxD,cAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C,cAAQ;AAAA,QACN,MAAM,KAAK,sDAAsD;AAAA,MACnE;AACA;AAAA,IACF;AAEA,YAAQ,IAAI;AAEZ,UAAM,YAAY,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC,MAAG;AAtCrD;AAsCyD;AAAA,QACnD,WAAU,OAAE,aAAF,YAAc;AAAA,QACxB,SAAS,EAAE,UAAU,MAAM,MAAM,QAAG,IAAI,MAAM,IAAI,QAAG;AAAA,QACrD,iBAAiB;AAAA,QACjB,YAAY,EAAE,cAAc,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,IAAI,MAAM,MAAM,QAAG,IAAI,MAAM,KAAK,QAAG;AAAA,MACtG;AAAA,KAAE;AAEF,gBAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,CAAC,YAAY,WAAW,iBAAiB,UAAU;AAAA,MAC5D,UAAU;AAAA,QACR,UAAU,MAAM;AAAA,MAClB;AAAA,IACF,CAAC;AAED,YAAQ,IAAI;AACZ,YAAQ;AAAA,MACN,MAAM;AAAA,QACJ,OAAO,MAAM,KAAK,wDAAwD,CAAC;AAAA,MAC7E;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,wBAAwB,CAAC;AAC/D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}