{"version":3,"sources":["../src/cli/commands/create.ts","../src/internal/generated/cli/default-prompt-model.generated.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { DEFAULT_PROMPT_MODEL } from \"../constants\";\n\ntype CreateOptions = Record<string, unknown>;\n\nexport const createCommand = async (\n  name: string,\n  _options: CreateOptions,\n): Promise<void> => {\n  try {\n    // Validate prompt name\n    if (!name || name.trim() === \"\") {\n      console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n      process.exit(1);\n    }\n\n    // Check API key before doing anything else\n    checkApiKey();\n\n    // Ensure project is initialized\n    await ensureProjectInitialized();\n\n    // Check if file already exists\n    const promptPath = path.join(\n      process.cwd(),\n      \"prompts\",\n      `${name}.prompt.yaml`,\n    );\n\n    if (fs.existsSync(promptPath)) {\n      console.error(\n        chalk.red(`Error: Prompt file already exists at ${promptPath}`),\n      );\n      process.exit(1);\n    }\n\n    // Create prompts directory if it doesn't exist\n    const promptsDir = path.dirname(promptPath);\n    if (!fs.existsSync(promptsDir)) {\n      fs.mkdirSync(promptsDir, { recursive: true });\n    }\n\n    // Default prompt content.\n    //\n    // No `modelParameters.temperature`: the latest model families (gpt-5+)\n    // reject a custom temperature, so injecting one by default breaks the\n    // very models a new prompt should be using. Add it back only for a model\n    // that supports it.\n    const defaultContent = `model: ${DEFAULT_PROMPT_MODEL}\nmessages:\n  - role: system\n    content: You are a helpful assistant.\n  - role: user\n    content: \"{{input}}\"\n`;\n\n    // Write the file\n    fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n    // Add to prompts.json as a file: dependency\n    const promptsConfig = FileManager.loadPromptsConfig();\n    const relativePath = path.relative(process.cwd(), promptPath);\n    promptsConfig.prompts[name] = `file:${relativePath}`;\n    FileManager.savePromptsConfig(promptsConfig);\n\n    // Update lock file\n    const lock = FileManager.loadPromptsLock();\n    lock.prompts[name] = {\n      version: 0, // Local files start at version 0\n      versionId: \"local\",\n      materialized: relativePath, // Store the original file path\n    };\n    FileManager.savePromptsLock(lock);\n\n    const displayPath = `./${relativePath}`;\n    console.log(\n      chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`),\n    );\n    console.log(chalk.gray(`  Edit this file and then run:`));\n    console.log(chalk.cyan(`  langwatch prompt sync`));\n  } catch (error) {\n    console.error(\n      chalk.red(\"Unexpected error:\"),\n      error instanceof Error ? error.message : error,\n    );\n    process.exit(1);\n  }\n};\n","// Generated by copy-types.sh from langwatch/src/server/modelProviders/llmModels.json\n// Do not edit by hand — re-runs on every SDK install/build.\nexport const DEFAULT_PROMPT_MODEL = \"openai/gpt-5.5\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,OAAO,WAAW;;;ACAX,IAAM,uBAAuB;;;ADQ7B,IAAM,gBAAgB,OAC3B,MACA,aACkB;AAClB,MAAI;AAEF,QAAI,CAAC,QAAQ,KAAK,KAAK,MAAM,IAAI;AAC/B,cAAQ,MAAM,MAAM,IAAI,oCAAoC,CAAC;AAC7D,cAAQ,KAAK,CAAC;AAAA,IAChB;AAGA,gBAAY;AAGZ,UAAM,yBAAyB;AAG/B,UAAM,aAAkB;AAAA,MACtB,QAAQ,IAAI;AAAA,MACZ;AAAA,MACA,GAAG,IAAI;AAAA,IACT;AAEA,QAAO,cAAW,UAAU,GAAG;AAC7B,cAAQ;AAAA,QACN,MAAM,IAAI,wCAAwC,UAAU,EAAE;AAAA,MAChE;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAGA,UAAM,aAAkB,aAAQ,UAAU;AAC1C,QAAI,CAAI,cAAW,UAAU,GAAG;AAC9B,MAAG,aAAU,YAAY,EAAE,WAAW,KAAK,CAAC;AAAA,IAC9C;AAQA,UAAM,iBAAiB,UAAU,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASrD,IAAG,iBAAc,YAAY,gBAAgB,MAAM;AAGnD,UAAM,gBAAgB,YAAY,kBAAkB;AACpD,UAAM,eAAoB,cAAS,QAAQ,IAAI,GAAG,UAAU;AAC5D,kBAAc,QAAQ,IAAI,IAAI,QAAQ,YAAY;AAClD,gBAAY,kBAAkB,aAAa;AAG3C,UAAM,OAAO,YAAY,gBAAgB;AACzC,SAAK,QAAQ,IAAI,IAAI;AAAA,MACnB,SAAS;AAAA;AAAA,MACT,WAAW;AAAA,MACX,cAAc;AAAA;AAAA,IAChB;AACA,gBAAY,gBAAgB,IAAI;AAEhC,UAAM,cAAc,KAAK,YAAY;AACrC,YAAQ;AAAA,MACN,MAAM,MAAM,+BAA0B,MAAM,KAAK,WAAW,CAAC,EAAE;AAAA,IACjE;AACA,YAAQ,IAAI,MAAM,KAAK,gCAAgC,CAAC;AACxD,YAAQ,IAAI,MAAM,KAAK,yBAAyB,CAAC;AAAA,EACnD,SAAS,OAAO;AACd,YAAQ;AAAA,MACN,MAAM,IAAI,mBAAmB;AAAA,MAC7B,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAC3C;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}