{"version":3,"sources":["../src/cli/commands/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { formatTable, formatRelativeTime } from \"../utils/formatting\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { failSpinner } from \"../utils/spinnerError\";\n\nexport const listCommand = async (options?: { format?: string }): Promise<void> => {\n  try {\n    // Check API key before doing anything else\n    checkApiKey();\n\n    // Get prompts API service\n    const promptsApiService = new PromptsApiService();\n\n    const spinner = ora(\"Fetching prompts from server...\").start();\n\n    try {\n      // Fetch all prompts\n      const allPrompts = await promptsApiService.getAll();\n      const prompts = allPrompts.filter((prompt) => prompt.version);\n      const draftPrompts = allPrompts.filter((prompt) => !prompt.version);\n\n      spinner.succeed(\n        `Found ${prompts.length} published prompt${\n          prompts.length !== 1 ? \"s\" : \"\"\n        } ` +\n          chalk.gray(\n            `(+${draftPrompts.length} draft${\n              draftPrompts.length !== 1 ? \"s\" : \"\"\n            })`,\n          ),\n      );\n\n      if (options?.format === \"json\") {\n        console.log(JSON.stringify(allPrompts, null, 2));\n        return;\n      }\n\n      if (prompts.length === 0) {\n        console.log();\n        console.log(chalk.gray(\"No prompts found on the server.\"));\n        console.log(chalk.gray(\"Create your first prompt with:\"));\n        console.log(chalk.cyan(\"  langwatch prompt init\"));\n        return;\n      }\n\n      console.log();\n\n      // Format prompts for table display\n      const tableData = prompts.map((prompt) => ({\n        Name: prompt.handle ?? `${prompt.name} ` + chalk.gray(`(${prompt.id})`),\n        Version: prompt.version ? `${prompt.version}` : \"N/A\",\n        Model: prompt.model ?? \"N/A\",\n        Tags:\n          prompt.tags && prompt.tags.length > 0\n            ? prompt.tags.map((t) => t.name).join(\", \")\n            : chalk.gray(\"—\"),\n        Updated: formatRelativeTime(prompt.updatedAt),\n      }));\n\n      // Display table\n      formatTable({\n        data: tableData,\n        headers: [\"Name\", \"Version\", \"Model\", \"Tags\", \"Updated\"],\n        colorMap: {\n          Name: chalk.cyan,\n          Version: chalk.green,\n          Model: chalk.yellow,\n          Tags: chalk.magenta,\n        },\n        emptyMessage: \"No prompts found\",\n      });\n\n      console.log();\n      console.log(\n        chalk.gray(\n          `Use ${chalk.cyan(\n            \"langwatch prompt add <name>\",\n          )} to add a prompt to your project`,\n        ),\n      );\n    } catch (error) {\n      failSpinner({ spinner, error, action: \"fetch prompts\" });\n      process.exit(1);\n    }\n  } catch (error) {\n    if (error instanceof PromptsError) {\n      console.error(chalk.red(`Error: ${error.message}`));\n    } else {\n      console.error(\n        chalk.red(\n          `Unexpected error: ${\n            formatApiErrorMessage({ error })\n          }`,\n        ),\n      );\n    }\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAOT,IAAM,cAAc,OAAO,YAAiD;AACjF,MAAI;AAEF,gBAAY;AAGZ,UAAM,oBAAoB,IAAI,kBAAkB;AAEhD,UAAM,UAAU,IAAI,iCAAiC,EAAE,MAAM;AAE7D,QAAI;AAEF,YAAM,aAAa,MAAM,kBAAkB,OAAO;AAClD,YAAM,UAAU,WAAW,OAAO,CAAC,WAAW,OAAO,OAAO;AAC5D,YAAM,eAAe,WAAW,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO;AAElE,cAAQ;AAAA,QACN,SAAS,QAAQ,MAAM,oBACrB,QAAQ,WAAW,IAAI,MAAM,EAC/B,MACE,MAAM;AAAA,UACJ,KAAK,aAAa,MAAM,SACtB,aAAa,WAAW,IAAI,MAAM,EACpC;AAAA,QACF;AAAA,MACJ;AAEA,WAAI,mCAAS,YAAW,QAAQ;AAC9B,gBAAQ,IAAI,KAAK,UAAU,YAAY,MAAM,CAAC,CAAC;AAC/C;AAAA,MACF;AAEA,UAAI,QAAQ,WAAW,GAAG;AACxB,gBAAQ,IAAI;AACZ,gBAAQ,IAAI,MAAM,KAAK,iCAAiC,CAAC;AACzD,gBAAQ,IAAI,MAAM,KAAK,gCAAgC,CAAC;AACxD,gBAAQ,IAAI,MAAM,KAAK,yBAAyB,CAAC;AACjD;AAAA,MACF;AAEA,cAAQ,IAAI;AAGZ,YAAM,YAAY,QAAQ,IAAI,CAAC,WAAQ;AAnD7C;AAmDiD;AAAA,UACzC,OAAM,YAAO,WAAP,YAAiB,GAAG,OAAO,IAAI,MAAM,MAAM,KAAK,IAAI,OAAO,EAAE,GAAG;AAAA,UACtE,SAAS,OAAO,UAAU,GAAG,OAAO,OAAO,KAAK;AAAA,UAChD,QAAO,YAAO,UAAP,YAAgB;AAAA,UACvB,MACE,OAAO,QAAQ,OAAO,KAAK,SAAS,IAChC,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,IACxC,MAAM,KAAK,QAAG;AAAA,UACpB,SAAS,mBAAmB,OAAO,SAAS;AAAA,QAC9C;AAAA,OAAE;AAGF,kBAAY;AAAA,QACV,MAAM;AAAA,QACN,SAAS,CAAC,QAAQ,WAAW,SAAS,QAAQ,SAAS;AAAA,QACvD,UAAU;AAAA,UACR,MAAM,MAAM;AAAA,UACZ,SAAS,MAAM;AAAA,UACf,OAAO,MAAM;AAAA,UACb,MAAM,MAAM;AAAA,QACd;AAAA,QACA,cAAc;AAAA,MAChB,CAAC;AAED,cAAQ,IAAI;AACZ,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ,OAAO,MAAM;AAAA,YACX;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,kBAAY,EAAE,SAAS,OAAO,QAAQ,gBAAgB,CAAC;AACvD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF,SAAS,OAAO;AACd,QAAI,iBAAiB,cAAc;AACjC,cAAQ,MAAM,MAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,IACpD,OAAO;AACL,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ,qBACE,sBAAsB,EAAE,MAAM,CAAC,CACjC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}