{"version":3,"sources":["../src/cli/commands/suites/update.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n  SuitesApiService,\n  type SuiteTarget,\n} from \"@/client-sdk/services/suites\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { failSpinner } from \"../../utils/spinnerError\";\n\nfunction parseTargets(targetStrings: string[]): SuiteTarget[] {\n  return targetStrings.map((t) => {\n    const colonIndex = t.indexOf(\":\");\n    if (colonIndex === -1) {\n      console.error(chalk.red(`Error: Invalid target format \"${t}\". Use <type>:<referenceId>`));\n      process.exit(1);\n    }\n    const type = t.slice(0, colonIndex);\n    const referenceId = t.slice(colonIndex + 1);\n    if (![\"prompt\", \"http\", \"code\", \"workflow\"].includes(type)) {\n      console.error(chalk.red(`Error: Invalid target type \"${type}\". Must be one of: prompt, http, code, workflow`));\n      process.exit(1);\n    }\n    return { type: type as SuiteTarget[\"type\"], referenceId };\n  });\n}\n\nexport const updateSuiteCommand = async (\n  id: string,\n  options: {\n    name?: string;\n    scenarios?: string;\n    targets?: string[];\n    repeatCount?: string;\n    labels?: string;\n    description?: string;\n    format?: string;\n  },\n): Promise<void> => {\n  checkApiKey();\n\n  const service = new SuitesApiService();\n  const spinner = ora(`Updating suite \"${id}\"...`).start();\n\n  try {\n    const updateData: Record<string, unknown> = {};\n    if (options.name) updateData.name = options.name;\n    if (options.description !== undefined) updateData.description = options.description;\n    if (options.scenarios) updateData.scenarioIds = options.scenarios.split(\",\").map((s) => s.trim());\n    if (options.targets && options.targets.length > 0) updateData.targets = parseTargets(options.targets);\n    if (options.repeatCount) updateData.repeatCount = parseInt(options.repeatCount, 10);\n    if (options.labels) updateData.labels = options.labels.split(\",\").map((l) => l.trim());\n\n    const suite = await service.update(id, updateData);\n\n    spinner.succeed(`Suite \"${suite.name}\" updated`);\n\n    if (options.format === \"json\") {\n      console.log(JSON.stringify(suite, null, 2));\n      return;\n    }\n\n    console.log();\n    console.log(`  ${chalk.gray(\"ID:\")}        ${chalk.green(suite.id)}`);\n    console.log(`  ${chalk.gray(\"Name:\")}      ${chalk.cyan(suite.name)}`);\n    console.log(`  ${chalk.gray(\"Slug:\")}      ${chalk.yellow(suite.slug)}`);\n    console.log(`  ${chalk.gray(\"Scenarios:\")} ${suite.scenarioIds.length}`);\n    console.log(`  ${chalk.gray(\"Targets:\")}   ${suite.targets.length}`);\n    console.log(`  ${chalk.gray(\"Repeat:\")}    ${suite.repeatCount}`);\n    console.log();\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"update suite\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAQhB,SAAS,aAAa,eAAwC;AAC5D,SAAO,cAAc,IAAI,CAAC,MAAM;AAC9B,UAAM,aAAa,EAAE,QAAQ,GAAG;AAChC,QAAI,eAAe,IAAI;AACrB,cAAQ,MAAM,MAAM,IAAI,iCAAiC,CAAC,6BAA6B,CAAC;AACxF,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,OAAO,EAAE,MAAM,GAAG,UAAU;AAClC,UAAM,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1C,QAAI,CAAC,CAAC,UAAU,QAAQ,QAAQ,UAAU,EAAE,SAAS,IAAI,GAAG;AAC1D,cAAQ,MAAM,MAAM,IAAI,+BAA+B,IAAI,iDAAiD,CAAC;AAC7G,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,WAAO,EAAE,MAAmC,YAAY;AAAA,EAC1D,CAAC;AACH;AAEO,IAAM,qBAAqB,OAChC,IACA,YASkB;AAClB,cAAY;AAEZ,QAAM,UAAU,IAAI,iBAAiB;AACrC,QAAM,UAAU,IAAI,mBAAmB,EAAE,MAAM,EAAE,MAAM;AAEvD,MAAI;AACF,UAAM,aAAsC,CAAC;AAC7C,QAAI,QAAQ,KAAM,YAAW,OAAO,QAAQ;AAC5C,QAAI,QAAQ,gBAAgB,OAAW,YAAW,cAAc,QAAQ;AACxE,QAAI,QAAQ,UAAW,YAAW,cAAc,QAAQ,UAAU,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChG,QAAI,QAAQ,WAAW,QAAQ,QAAQ,SAAS,EAAG,YAAW,UAAU,aAAa,QAAQ,OAAO;AACpG,QAAI,QAAQ,YAAa,YAAW,cAAc,SAAS,QAAQ,aAAa,EAAE;AAClF,QAAI,QAAQ,OAAQ,YAAW,SAAS,QAAQ,OAAO,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAErF,UAAM,QAAQ,MAAM,QAAQ,OAAO,IAAI,UAAU;AAEjD,YAAQ,QAAQ,UAAU,MAAM,IAAI,WAAW;AAE/C,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAC1C;AAAA,IACF;AAEA,YAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC,WAAW,MAAM,MAAM,MAAM,EAAE,CAAC,EAAE;AACpE,YAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,KAAK,MAAM,IAAI,CAAC,EAAE;AACrE,YAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,OAAO,MAAM,IAAI,CAAC,EAAE;AACvE,YAAQ,IAAI,KAAK,MAAM,KAAK,YAAY,CAAC,IAAI,MAAM,YAAY,MAAM,EAAE;AACvE,YAAQ,IAAI,KAAK,MAAM,KAAK,UAAU,CAAC,MAAM,MAAM,QAAQ,MAAM,EAAE;AACnE,YAAQ,IAAI,KAAK,MAAM,KAAK,SAAS,CAAC,OAAO,MAAM,WAAW,EAAE;AAChE,YAAQ,IAAI;AAAA,EACd,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,eAAe,CAAC;AACtD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}