langwatch 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/{add-ZAPD2GBO.mjs → add-2IXDXEK6.mjs} +5 -5
  2. package/dist/{add-Z5UVUPCK.js → add-JT6DMMHI.js} +8 -8
  3. package/dist/{add-Z5UVUPCK.js.map → add-JT6DMMHI.js.map} +1 -1
  4. package/dist/chunk-2L4OQ2V4.js +191 -0
  5. package/dist/chunk-2L4OQ2V4.js.map +1 -0
  6. package/dist/{chunk-SZRV7E6P.mjs → chunk-3FGEJOXJ.mjs} +2 -2
  7. package/dist/{chunk-RM2VUAFL.js → chunk-3SRD4FTK.js} +11 -11
  8. package/dist/{chunk-RM2VUAFL.js.map → chunk-3SRD4FTK.js.map} +1 -1
  9. package/dist/{chunk-J4HK6XZR.mjs → chunk-62FCDILL.mjs} +5 -5
  10. package/dist/{chunk-OAKQ7UBU.mjs → chunk-AEBXFLKZ.mjs} +3 -3
  11. package/dist/chunk-CMWRDIEK.js +331 -0
  12. package/dist/chunk-CMWRDIEK.js.map +1 -0
  13. package/dist/chunk-FONDDULA.mjs +331 -0
  14. package/dist/chunk-FONDDULA.mjs.map +1 -0
  15. package/dist/{chunk-NPFWFQK6.js → chunk-HKAAWGL2.js} +2 -2
  16. package/dist/{chunk-NPFWFQK6.js.map → chunk-HKAAWGL2.js.map} +1 -1
  17. package/dist/{chunk-IIUI2XYW.mjs → chunk-KD5U3MP3.mjs} +11 -2
  18. package/dist/chunk-KD5U3MP3.mjs.map +1 -0
  19. package/dist/{chunk-DXBTJGCK.js → chunk-KRVLZYQ2.js} +10 -10
  20. package/dist/{chunk-DXBTJGCK.js.map → chunk-KRVLZYQ2.js.map} +1 -1
  21. package/dist/{chunk-4BNGSDYW.js → chunk-OFM5YRU7.js} +14 -14
  22. package/dist/{chunk-4BNGSDYW.js.map → chunk-OFM5YRU7.js.map} +1 -1
  23. package/dist/{chunk-ONXIZKC6.js → chunk-SHJZRXU7.js} +11 -2
  24. package/dist/chunk-SHJZRXU7.js.map +1 -0
  25. package/dist/chunk-ZSFUEQNQ.mjs +191 -0
  26. package/dist/chunk-ZSFUEQNQ.mjs.map +1 -0
  27. package/dist/{chunk-77XIPD42.mjs → chunk-ZWP3XAML.mjs} +2 -2
  28. package/dist/{chunk-77XIPD42.mjs.map → chunk-ZWP3XAML.mjs.map} +1 -1
  29. package/dist/cli/index.js +30 -6
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/index.mjs +30 -6
  32. package/dist/cli/index.mjs.map +1 -1
  33. package/dist/{implementation-Ck58nRkT.d.mts → implementation-Dl15eRjo.d.mts} +1 -1
  34. package/dist/{implementation-Bnc8Aymq.d.ts → implementation-gLzM6qpI.d.ts} +1 -1
  35. package/dist/index.d.mts +31 -3
  36. package/dist/index.d.ts +31 -3
  37. package/dist/index.js +72 -18
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +63 -9
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/{list-LASBYRI4.js → list-DVHIOSYS.js} +8 -8
  42. package/dist/{list-LASBYRI4.js.map → list-DVHIOSYS.js.map} +1 -1
  43. package/dist/{list-XX4VPNJA.mjs → list-YTBLDLDR.mjs} +5 -5
  44. package/dist/{login-2VCZDSLE.js → login-5AK4ERR6.js} +3 -3
  45. package/dist/{login-2VCZDSLE.js.map → login-5AK4ERR6.js.map} +1 -1
  46. package/dist/{login-CZ2257SV.mjs → login-PEGONPR5.mjs} +2 -2
  47. package/dist/observability-sdk/index.d.mts +3 -3
  48. package/dist/observability-sdk/index.d.ts +3 -3
  49. package/dist/observability-sdk/index.js +4 -4
  50. package/dist/observability-sdk/index.js.map +1 -1
  51. package/dist/observability-sdk/index.mjs +8 -8
  52. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
  53. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
  54. package/dist/observability-sdk/instrumentation/langchain/index.js +3 -3
  55. package/dist/observability-sdk/instrumentation/langchain/index.mjs +1 -1
  56. package/dist/observability-sdk/setup/node/index.js +4 -4
  57. package/dist/observability-sdk/setup/node/index.mjs +3 -3
  58. package/dist/pull-5PYS2W6F.js +20 -0
  59. package/dist/pull-5PYS2W6F.js.map +1 -0
  60. package/dist/pull-LRX5WFAL.mjs +20 -0
  61. package/dist/pull-LRX5WFAL.mjs.map +1 -0
  62. package/dist/push-23BCXSEH.mjs +20 -0
  63. package/dist/push-23BCXSEH.mjs.map +1 -0
  64. package/dist/push-IK2OQDXQ.js +20 -0
  65. package/dist/push-IK2OQDXQ.js.map +1 -0
  66. package/dist/{remove-XWN3XTF5.js → remove-BFUQEPHI.js} +7 -7
  67. package/dist/{remove-XWN3XTF5.js.map → remove-BFUQEPHI.js.map} +1 -1
  68. package/dist/{remove-KESD7YHL.mjs → remove-M2PKTPUW.mjs} +5 -5
  69. package/dist/sync-EQFZ2JB3.js +123 -0
  70. package/dist/sync-EQFZ2JB3.js.map +1 -0
  71. package/dist/sync-K4SYFVKU.mjs +123 -0
  72. package/dist/sync-K4SYFVKU.mjs.map +1 -0
  73. package/dist/{types-5h2Im4pl.d.mts → types-ExKeJEM0.d.mts} +1179 -17
  74. package/dist/{types-fo-Ij9pl.d.ts → types-WRcnQUom.d.ts} +1179 -17
  75. package/package.json +1 -1
  76. package/dist/chunk-IIUI2XYW.mjs.map +0 -1
  77. package/dist/chunk-ONXIZKC6.js.map +0 -1
  78. package/dist/sync-IJ26JHEP.js +0 -413
  79. package/dist/sync-IJ26JHEP.js.map +0 -1
  80. package/dist/sync-SCVP7CHX.mjs +0 -413
  81. package/dist/sync-SCVP7CHX.mjs.map +0 -1
  82. /package/dist/{add-ZAPD2GBO.mjs.map → add-2IXDXEK6.mjs.map} +0 -0
  83. /package/dist/{chunk-SZRV7E6P.mjs.map → chunk-3FGEJOXJ.mjs.map} +0 -0
  84. /package/dist/{chunk-J4HK6XZR.mjs.map → chunk-62FCDILL.mjs.map} +0 -0
  85. /package/dist/{chunk-OAKQ7UBU.mjs.map → chunk-AEBXFLKZ.mjs.map} +0 -0
  86. /package/dist/{list-XX4VPNJA.mjs.map → list-YTBLDLDR.mjs.map} +0 -0
  87. /package/dist/{login-CZ2257SV.mjs.map → login-PEGONPR5.mjs.map} +0 -0
  88. /package/dist/{remove-KESD7YHL.mjs.map → remove-M2PKTPUW.mjs.map} +0 -0
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  PromptsApiService,
6
6
  PromptsError
7
- } from "./chunk-J4HK6XZR.mjs";
7
+ } from "./chunk-62FCDILL.mjs";
8
8
  import "./chunk-ZEPKV5YO.mjs";
9
- import "./chunk-SZRV7E6P.mjs";
10
- import "./chunk-77XIPD42.mjs";
11
- import "./chunk-IIUI2XYW.mjs";
9
+ import "./chunk-KD5U3MP3.mjs";
10
+ import "./chunk-3FGEJOXJ.mjs";
11
+ import "./chunk-ZWP3XAML.mjs";
12
12
  import "./chunk-RSIPLYVA.mjs";
13
13
  import "./chunk-O6D3W3PG.mjs";
14
14
  import "./chunk-BTBSMJTY.mjs";
@@ -145,4 +145,4 @@ var listCommand = async () => {
145
145
  export {
146
146
  listCommand
147
147
  };
148
- //# sourceMappingURL=list-XX4VPNJA.mjs.map
148
+ //# sourceMappingURL=list-YTBLDLDR.mjs.map
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkNPFWFQK6js = require('./chunk-NPFWFQK6.js');
3
+ var _chunkHKAAWGL2js = require('./chunk-HKAAWGL2.js');
4
4
  require('./chunk-OHM7JUMR.js');
5
5
 
6
6
  // src/cli/commands/login.ts
@@ -11,7 +11,7 @@ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
11
11
  var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
12
12
  var getEndpoint = () => {
13
13
  var _a;
14
- return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkNPFWFQK6js.DEFAULT_ENDPOINT;
14
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkHKAAWGL2js.DEFAULT_ENDPOINT;
15
15
  };
16
16
  var updateEnvFile = (apiKey) => {
17
17
  const envPath = path.join(process.cwd(), ".env");
@@ -111,4 +111,4 @@ var loginCommand = async () => {
111
111
 
112
112
 
113
113
  exports.loginCommand = loginCommand;
114
- //# sourceMappingURL=login-2VCZDSLE.js.map
114
+ //# sourceMappingURL=login-5AK4ERR6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-2VCZDSLE.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AAPlC,EAAA,IAAA,EAAA;AAQE,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,iCAAA;AAC3C,CAAA;AAEA,IAAM,cAAA,EAAgB,CACpB,MAAA,EAAA,GACyD;AACzD,EAAA,MAAM,QAAA,EAAe,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAM,CAAA;AAG/C,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,OAAO,CAAA,EAAG;AAE3B,IAAG,EAAA,CAAA,aAAA,CAAc,OAAA,EAAS,CAAA,kBAAA,EAAqB,MAAM,CAAA;AAAA,CAAI,CAAA;AACzD,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,QAAQ,CAAA;AAAA,EACxD;AAGA,EAAA,MAAM,QAAA,EAAa,EAAA,CAAA,YAAA,CAAa,OAAA,EAAS,OAAO,CAAA;AAChD,EAAA,MAAM,MAAA,EAAQ,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAGhC,EAAA,IAAI,MAAA,EAAQ,KAAA;AACZ,EAAA,MAAM,aAAA,EAAe,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACvC,IAAA,GAAA,CAAI,IAAA,CAAK,UAAA,CAAW,oBAAoB,CAAA,EAAG;AACzC,MAAA,MAAA,EAAQ,IAAA;AACR,MAAA,OAAO,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAA;AACpC,IAAA;AACO,IAAA;AACR,EAAA;AAEW,EAAA;AAEoB,IAAA;AACV,MAAA;AACb,IAAA;AACiB,MAAA;AACxB,IAAA;AACF,EAAA;AAEuC,EAAA;AACL,EAAA;AACpC;AAEuD;AACjD,EAAA;AACqB,IAAA;AACf,IAAA;AACA,MAAA;AACJ,QAAA;AACF,MAAA;AACF,IAAA;AACY,IAAA;AAGiB,IAAA;AACF,IAAA;AAEQ,IAAA;AAGf,IAAA;AAEhB,IAAA;AAC+B,MAAA;AACf,MAAA;AACc,MAAA;AAC1B,IAAA;AACO,MAAA;AACY,MAAA;AAC3B,IAAA;AAEY,IAAA;AACW,IAAA;AACA,IAAA;AACA,IAAA;AACX,IAAA;AAGmB,IAAA;AACvB,MAAA;AACA,MAAA;AACG,MAAA;AACoB,MAAA;AACI,QAAA;AACtB,UAAA;AACT,QAAA;AACuB,QAAA;AACd,UAAA;AACT,QAAA;AACO,QAAA;AACT,MAAA;AACD,IAAA;AAEqB,IAAA;AACK,MAAA;AACX,MAAA;AAChB,IAAA;AAEoC,IAAA;AAGJ,IAAA;AAEpB,IAAA;AACY,IAAA;AAED,IAAA;AACE,MAAA;AACK,IAAA;AACL,MAAA;AAClB,IAAA;AACkB,MAAA;AACzB,IAAA;AAEY,IAAA;AACY,IAAA;AACD,IAAA;AACA,IAAA;AACT,EAAA;AACN,IAAA;AACA,MAAA;AAEF,QAAA;AAEJ,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-2VCZDSLE.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\n};\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n\n if (!found) {\n // Add to end of file\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (): Promise<void> => {\n try {\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log(\n chalk.gray(\n \"This will open your browser to get an API key from LangWatch.\",\n ),\n );\n console.log();\n\n // Get the authorization URL\n const endpoint = getEndpoint();\n const authUrl = `${endpoint}/authorize`;\n\n console.log(chalk.cyan(`Opening: ${authUrl}`));\n\n // Open browser\n const spinner = ora(\"Opening browser...\").start();\n\n try {\n const open = (await import(\"open\")).default;\n await open(authUrl);\n spinner.succeed(\"Browser opened\");\n } catch {\n spinner.fail(\"Failed to open browser\");\n console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));\n }\n\n console.log();\n console.log(chalk.gray(\"1. Log in to LangWatch in your browser\"));\n console.log(chalk.gray(\"2. Copy your API key\"));\n console.log(chalk.gray(\"3. Come back here and paste it\"));\n console.log();\n\n // Wait for user input using prompts library\n const response = await prompts({\n type: \"password\",\n name: \"apiKey\",\n message: \"Paste your API key here:\",\n validate: (value: string) => {\n if (!value || value.trim() === \"\") {\n return \"API key is required\";\n }\n if (value.length < 10) {\n return \"API key seems too short. Please check and try again.\";\n }\n return true;\n },\n });\n\n if (!response.apiKey) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const apiKey = response.apiKey.trim();\n\n // Save to .env file\n const envResult = updateEnvFile(apiKey);\n\n console.log();\n console.log(chalk.green(\"✓ API key saved successfully!\"));\n\n if (envResult.created) {\n console.log(chalk.gray(`• Created .env file with your API key`));\n } else if (envResult.updated) {\n console.log(chalk.gray(`• Updated existing API key in .env file`));\n } else {\n console.log(chalk.gray(`• Added API key to existing .env file`));\n }\n\n console.log();\n console.log(chalk.green(\"🎉 You're all set! You can now use:\"));\n console.log(chalk.cyan(\" langwatch prompt add <name>\"));\n console.log(chalk.cyan(\" langwatch prompt sync\"));\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-5AK4ERR6.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AAPlC,EAAA,IAAA,EAAA;AAQE,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,iCAAA;AAC3C,CAAA;AAEA,IAAM,cAAA,EAAgB,CACpB,MAAA,EAAA,GACyD;AACzD,EAAA,MAAM,QAAA,EAAe,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAM,CAAA;AAG/C,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,OAAO,CAAA,EAAG;AAE3B,IAAG,EAAA,CAAA,aAAA,CAAc,OAAA,EAAS,CAAA,kBAAA,EAAqB,MAAM,CAAA;AAAA,CAAI,CAAA;AACzD,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,QAAQ,CAAA;AAAA,EACxD;AAGA,EAAA,MAAM,QAAA,EAAa,EAAA,CAAA,YAAA,CAAa,OAAA,EAAS,OAAO,CAAA;AAChD,EAAA,MAAM,MAAA,EAAQ,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAGhC,EAAA,IAAI,MAAA,EAAQ,KAAA;AACZ,EAAA,MAAM,aAAA,EAAe,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACvC,IAAA,GAAA,CAAI,IAAA,CAAK,UAAA,CAAW,oBAAoB,CAAA,EAAG;AACzC,MAAA,MAAA,EAAQ,IAAA;AACR,MAAA,OAAO,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAA;AACpC,IAAA;AACO,IAAA;AACR,EAAA;AAEW,EAAA;AAEoB,IAAA;AACV,MAAA;AACb,IAAA;AACiB,MAAA;AACxB,IAAA;AACF,EAAA;AAEuC,EAAA;AACL,EAAA;AACpC;AAEuD;AACjD,EAAA;AACqB,IAAA;AACf,IAAA;AACA,MAAA;AACJ,QAAA;AACF,MAAA;AACF,IAAA;AACY,IAAA;AAGiB,IAAA;AACF,IAAA;AAEQ,IAAA;AAGf,IAAA;AAEhB,IAAA;AAC+B,MAAA;AACf,MAAA;AACc,MAAA;AAC1B,IAAA;AACO,MAAA;AACY,MAAA;AAC3B,IAAA;AAEY,IAAA;AACW,IAAA;AACA,IAAA;AACA,IAAA;AACX,IAAA;AAGmB,IAAA;AACvB,MAAA;AACA,MAAA;AACG,MAAA;AACoB,MAAA;AACI,QAAA;AACtB,UAAA;AACT,QAAA;AACuB,QAAA;AACd,UAAA;AACT,QAAA;AACO,QAAA;AACT,MAAA;AACD,IAAA;AAEqB,IAAA;AACK,MAAA;AACX,MAAA;AAChB,IAAA;AAEoC,IAAA;AAGJ,IAAA;AAEpB,IAAA;AACY,IAAA;AAED,IAAA;AACE,MAAA;AACK,IAAA;AACL,MAAA;AAClB,IAAA;AACkB,MAAA;AACzB,IAAA;AAEY,IAAA;AACY,IAAA;AACD,IAAA;AACA,IAAA;AACT,EAAA;AACN,IAAA;AACA,MAAA;AAEF,QAAA;AAEJ,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-5AK4ERR6.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\n};\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n\n if (!found) {\n // Add to end of file\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (): Promise<void> => {\n try {\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log(\n chalk.gray(\n \"This will open your browser to get an API key from LangWatch.\",\n ),\n );\n console.log();\n\n // Get the authorization URL\n const endpoint = getEndpoint();\n const authUrl = `${endpoint}/authorize`;\n\n console.log(chalk.cyan(`Opening: ${authUrl}`));\n\n // Open browser\n const spinner = ora(\"Opening browser...\").start();\n\n try {\n const open = (await import(\"open\")).default;\n await open(authUrl);\n spinner.succeed(\"Browser opened\");\n } catch {\n spinner.fail(\"Failed to open browser\");\n console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));\n }\n\n console.log();\n console.log(chalk.gray(\"1. Log in to LangWatch in your browser\"));\n console.log(chalk.gray(\"2. Copy your API key\"));\n console.log(chalk.gray(\"3. Come back here and paste it\"));\n console.log();\n\n // Wait for user input using prompts library\n const response = await prompts({\n type: \"password\",\n name: \"apiKey\",\n message: \"Paste your API key here:\",\n validate: (value: string) => {\n if (!value || value.trim() === \"\") {\n return \"API key is required\";\n }\n if (value.length < 10) {\n return \"API key seems too short. Please check and try again.\";\n }\n return true;\n },\n });\n\n if (!response.apiKey) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const apiKey = response.apiKey.trim();\n\n // Save to .env file\n const envResult = updateEnvFile(apiKey);\n\n console.log();\n console.log(chalk.green(\"✓ API key saved successfully!\"));\n\n if (envResult.created) {\n console.log(chalk.gray(`• Created .env file with your API key`));\n } else if (envResult.updated) {\n console.log(chalk.gray(`• Updated existing API key in .env file`));\n } else {\n console.log(chalk.gray(`• Added API key to existing .env file`));\n }\n\n console.log();\n console.log(chalk.green(\"🎉 You're all set! You can now use:\"));\n console.log(chalk.cyan(\" langwatch prompt add <name>\"));\n console.log(chalk.cyan(\" langwatch prompt sync\"));\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n process.exit(1);\n }\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_ENDPOINT
3
- } from "./chunk-77XIPD42.mjs";
3
+ } from "./chunk-ZWP3XAML.mjs";
4
4
  import "./chunk-URTD2WOC.mjs";
5
5
 
6
6
  // src/cli/commands/login.ts
@@ -111,4 +111,4 @@ var loginCommand = async () => {
111
111
  export {
112
112
  loginCommand
113
113
  };
114
- //# sourceMappingURL=login-CZ2257SV.mjs.map
114
+ //# sourceMappingURL=login-PEGONPR5.mjs.map
@@ -1,9 +1,9 @@
1
- export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-Ck58nRkT.mjs';
1
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-Dl15eRjo.mjs';
2
2
  import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
3
3
  import { a as DataCaptureMode } from '../types-Dmazk5Bk.mjs';
4
4
  export { b as DataCaptureConfig, c as DataCaptureContext, D as DataCaptureOptions, d as DataCapturePredicate } from '../types-Dmazk5Bk.mjs';
5
- import { L as LangWatchSpan } from '../types-5h2Im4pl.mjs';
6
- export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-5h2Im4pl.mjs';
5
+ import { L as LangWatchSpan } from '../types-ExKeJEM0.mjs';
6
+ export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-ExKeJEM0.mjs';
7
7
  import { Span } from '@opentelemetry/api';
8
8
  export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.mjs';
9
9
  import '@opentelemetry/sdk-trace-base';
@@ -1,9 +1,9 @@
1
- export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-Bnc8Aymq.js';
1
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-gLzM6qpI.js';
2
2
  import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
3
3
  import { a as DataCaptureMode } from '../types-Dmazk5Bk.js';
4
4
  export { b as DataCaptureConfig, c as DataCaptureContext, D as DataCaptureOptions, d as DataCapturePredicate } from '../types-Dmazk5Bk.js';
5
- import { L as LangWatchSpan } from '../types-fo-Ij9pl.js';
6
- export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-fo-Ij9pl.js';
5
+ import { L as LangWatchSpan } from '../types-WRcnQUom.js';
6
+ export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-WRcnQUom.js';
7
7
  import { Span } from '@opentelemetry/api';
8
8
  export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.js';
9
9
  import '@opentelemetry/sdk-trace-base';
@@ -7,14 +7,14 @@ var _chunkASTAIRXGjs = require('../chunk-ASTAIRXG.js');
7
7
 
8
8
 
9
9
 
10
- var _chunk4BNGSDYWjs = require('../chunk-4BNGSDYW.js');
11
- require('../chunk-NPFWFQK6.js');
10
+ var _chunkSHJZRXU7js = require('../chunk-SHJZRXU7.js');
12
11
 
13
12
 
14
13
 
15
14
 
16
15
 
17
- var _chunkONXIZKC6js = require('../chunk-ONXIZKC6.js');
16
+ var _chunkOFM5YRU7js = require('../chunk-OFM5YRU7.js');
17
+ require('../chunk-HKAAWGL2.js');
18
18
 
19
19
 
20
20
 
@@ -38,5 +38,5 @@ require('../chunk-OHM7JUMR.js');
38
38
 
39
39
 
40
40
 
41
- exports.DataCapturePresets = _chunkASTAIRXGjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkASTAIRXGjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunk4BNGSDYWjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunk4BNGSDYWjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunk4BNGSDYWjs.LangWatchTraceExporter; exports.attributes = _chunk5MQQRSVMjs.attributes_exports; exports.createLangWatchSpan = _chunkONXIZKC6js.createLangWatchSpan; exports.getDataCaptureMode = _chunk5MQQRSVMjs.getDataCaptureMode; exports.getLangWatchLogger = _chunk4BNGSDYWjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunk4BNGSDYWjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkONXIZKC6js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkONXIZKC6js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunk5MQQRSVMjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunk5MQQRSVMjs.shouldCaptureOutput; exports.spanTypes = _chunkONXIZKC6js.spanTypes;
41
+ exports.DataCapturePresets = _chunkASTAIRXGjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkASTAIRXGjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkOFM5YRU7js.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkOFM5YRU7js.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkOFM5YRU7js.LangWatchTraceExporter; exports.attributes = _chunk5MQQRSVMjs.attributes_exports; exports.createLangWatchSpan = _chunkSHJZRXU7js.createLangWatchSpan; exports.getDataCaptureMode = _chunk5MQQRSVMjs.getDataCaptureMode; exports.getLangWatchLogger = _chunkOFM5YRU7js.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkOFM5YRU7js.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkSHJZRXU7js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkSHJZRXU7js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunk5MQQRSVMjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunk5MQQRSVMjs.shouldCaptureOutput; exports.spanTypes = _chunkSHJZRXU7js.spanTypes;
42
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4hCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4hCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"}
@@ -2,19 +2,19 @@ import {
2
2
  DataCapturePresets,
3
3
  FilterableBatchSpanProcessor
4
4
  } from "../chunk-ZEPKV5YO.mjs";
5
- import {
6
- LangWatchLogsExporter,
7
- LangWatchTraceExporter,
8
- getLangWatchLogger,
9
- getLangWatchLoggerFromProvider
10
- } from "../chunk-SZRV7E6P.mjs";
11
- import "../chunk-77XIPD42.mjs";
12
5
  import {
13
6
  createLangWatchSpan,
14
7
  getLangWatchTracer,
15
8
  getLangWatchTracerFromProvider,
16
9
  spanTypes
17
- } from "../chunk-IIUI2XYW.mjs";
10
+ } from "../chunk-KD5U3MP3.mjs";
11
+ import {
12
+ LangWatchLogsExporter,
13
+ LangWatchTraceExporter,
14
+ getLangWatchLogger,
15
+ getLangWatchLoggerFromProvider
16
+ } from "../chunk-3FGEJOXJ.mjs";
17
+ import "../chunk-ZWP3XAML.mjs";
18
18
  import {
19
19
  attributes_exports,
20
20
  getDataCaptureMode,
@@ -1,6 +1,6 @@
1
1
  import * as _opentelemetry_api from '@opentelemetry/api';
2
2
  import { Attributes } from '@opentelemetry/api';
3
- import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-5h2Im4pl.mjs';
3
+ import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-ExKeJEM0.mjs';
4
4
  import { AgentAction, AgentFinish } from '@langchain/core/agents';
5
5
  import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
6
6
  import { DocumentInterface } from '@langchain/core/documents';
@@ -1,6 +1,6 @@
1
1
  import * as _opentelemetry_api from '@opentelemetry/api';
2
2
  import { Attributes } from '@opentelemetry/api';
3
- import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-fo-Ij9pl.js';
3
+ import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-WRcnQUom.js';
4
4
  import { AgentAction, AgentFinish } from '@langchain/core/agents';
5
5
  import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
6
6
  import { DocumentInterface } from '@langchain/core/documents';
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkONXIZKC6js = require('../../../chunk-ONXIZKC6.js');
4
+ var _chunkSHJZRXU7js = require('../../../chunk-SHJZRXU7.js');
5
5
 
6
6
 
7
7
 
@@ -31,7 +31,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
31
31
  constructor() {
32
32
  super(...arguments);
33
33
  this.name = "LangWatchCallbackHandler";
34
- this.tracer = _chunkONXIZKC6js.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
34
+ this.tracer = _chunkSHJZRXU7js.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
35
35
  this.spans = {};
36
36
  this.parentOf = {};
37
37
  this.skipped = {};
@@ -362,7 +362,7 @@ function wrapNonScalarValues(value) {
362
362
  if (value === null) return JSON.stringify(null);
363
363
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
364
364
  return value;
365
- const chatMessages = _chunkONXIZKC6js.chatMessageSchema.array().safeParse(value);
365
+ const chatMessages = _chunkSHJZRXU7js.chatMessageSchema.array().safeParse(value);
366
366
  if (Array.isArray(value) && chatMessages.success) {
367
367
  return JSON.stringify({ type: "chat_messages", value: chatMessages.data });
368
368
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  chatMessageSchema,
3
3
  getLangWatchTracer
4
- } from "../../../chunk-IIUI2XYW.mjs";
4
+ } from "../../../chunk-KD5U3MP3.mjs";
5
5
  import {
6
6
  shouldCaptureInput,
7
7
  shouldCaptureOutput
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkRM2VUAFLjs = require('../../../chunk-RM2VUAFL.js');
5
- require('../../../chunk-4BNGSDYW.js');
6
- require('../../../chunk-NPFWFQK6.js');
4
+ var _chunk3SRD4FTKjs = require('../../../chunk-3SRD4FTK.js');
5
+ require('../../../chunk-OFM5YRU7.js');
6
+ require('../../../chunk-HKAAWGL2.js');
7
7
  require('../../../chunk-5MQQRSVM.js');
8
8
  require('../../../chunk-OHM7JUMR.js');
9
9
 
10
10
 
11
11
 
12
- exports.ensureSetup = _chunkRM2VUAFLjs.ensureSetup; exports.setupObservability = _chunkRM2VUAFLjs.setupObservability;
12
+ exports.ensureSetup = _chunk3SRD4FTKjs.ensureSetup; exports.setupObservability = _chunk3SRD4FTKjs.setupObservability;
13
13
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ensureSetup,
3
3
  setupObservability
4
- } from "../../../chunk-OAKQ7UBU.mjs";
5
- import "../../../chunk-SZRV7E6P.mjs";
6
- import "../../../chunk-77XIPD42.mjs";
4
+ } from "../../../chunk-AEBXFLKZ.mjs";
5
+ import "../../../chunk-3FGEJOXJ.mjs";
6
+ import "../../../chunk-ZWP3XAML.mjs";
7
7
  import "../../../chunk-RSIPLYVA.mjs";
8
8
  import "../../../chunk-URTD2WOC.mjs";
9
9
  export {
@@ -0,0 +1,20 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunk2L4OQ2V4js = require('./chunk-2L4OQ2V4.js');
5
+ require('./chunk-F6E4XQQU.js');
6
+ require('./chunk-KRVLZYQ2.js');
7
+ require('./chunk-ASTAIRXG.js');
8
+ require('./chunk-SHJZRXU7.js');
9
+ require('./chunk-OFM5YRU7.js');
10
+ require('./chunk-HKAAWGL2.js');
11
+ require('./chunk-5MQQRSVM.js');
12
+ require('./chunk-BYG3QS2X.js');
13
+ require('./chunk-WAAQLJ67.js');
14
+ require('./chunk-AZHZ4NB4.js');
15
+ require('./chunk-OHM7JUMR.js');
16
+
17
+
18
+
19
+ exports.pullCommand = _chunk2L4OQ2V4js.pullCommand; exports.pullPrompts = _chunk2L4OQ2V4js.pullPrompts;
20
+ //# sourceMappingURL=pull-5PYS2W6F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/pull-5PYS2W6F.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACF,uGAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/pull-5PYS2W6F.js"}
@@ -0,0 +1,20 @@
1
+ import {
2
+ pullCommand,
3
+ pullPrompts
4
+ } from "./chunk-ZSFUEQNQ.mjs";
5
+ import "./chunk-DHJKJVY7.mjs";
6
+ import "./chunk-62FCDILL.mjs";
7
+ import "./chunk-ZEPKV5YO.mjs";
8
+ import "./chunk-KD5U3MP3.mjs";
9
+ import "./chunk-3FGEJOXJ.mjs";
10
+ import "./chunk-ZWP3XAML.mjs";
11
+ import "./chunk-RSIPLYVA.mjs";
12
+ import "./chunk-W3V3NX7P.mjs";
13
+ import "./chunk-O6D3W3PG.mjs";
14
+ import "./chunk-BTBSMJTY.mjs";
15
+ import "./chunk-URTD2WOC.mjs";
16
+ export {
17
+ pullCommand,
18
+ pullPrompts
19
+ };
20
+ //# sourceMappingURL=pull-LRX5WFAL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,20 @@
1
+ import {
2
+ pushCommand,
3
+ pushPrompts
4
+ } from "./chunk-FONDDULA.mjs";
5
+ import "./chunk-DHJKJVY7.mjs";
6
+ import "./chunk-62FCDILL.mjs";
7
+ import "./chunk-ZEPKV5YO.mjs";
8
+ import "./chunk-KD5U3MP3.mjs";
9
+ import "./chunk-3FGEJOXJ.mjs";
10
+ import "./chunk-ZWP3XAML.mjs";
11
+ import "./chunk-RSIPLYVA.mjs";
12
+ import "./chunk-W3V3NX7P.mjs";
13
+ import "./chunk-O6D3W3PG.mjs";
14
+ import "./chunk-BTBSMJTY.mjs";
15
+ import "./chunk-URTD2WOC.mjs";
16
+ export {
17
+ pushCommand,
18
+ pushPrompts
19
+ };
20
+ //# sourceMappingURL=push-23BCXSEH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkCMWRDIEKjs = require('./chunk-CMWRDIEK.js');
5
+ require('./chunk-F6E4XQQU.js');
6
+ require('./chunk-KRVLZYQ2.js');
7
+ require('./chunk-ASTAIRXG.js');
8
+ require('./chunk-SHJZRXU7.js');
9
+ require('./chunk-OFM5YRU7.js');
10
+ require('./chunk-HKAAWGL2.js');
11
+ require('./chunk-5MQQRSVM.js');
12
+ require('./chunk-BYG3QS2X.js');
13
+ require('./chunk-WAAQLJ67.js');
14
+ require('./chunk-AZHZ4NB4.js');
15
+ require('./chunk-OHM7JUMR.js');
16
+
17
+
18
+
19
+ exports.pushCommand = _chunkCMWRDIEKjs.pushCommand; exports.pushPrompts = _chunkCMWRDIEKjs.pushPrompts;
20
+ //# sourceMappingURL=push-IK2OQDXQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/push-IK2OQDXQ.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACF,uGAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/push-IK2OQDXQ.js"}
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkDXBTJGCKjs = require('./chunk-DXBTJGCK.js');
3
+ var _chunkKRVLZYQ2js = require('./chunk-KRVLZYQ2.js');
4
4
  require('./chunk-ASTAIRXG.js');
5
- require('./chunk-4BNGSDYW.js');
6
- require('./chunk-NPFWFQK6.js');
7
- require('./chunk-ONXIZKC6.js');
5
+ require('./chunk-SHJZRXU7.js');
6
+ require('./chunk-OFM5YRU7.js');
7
+ require('./chunk-HKAAWGL2.js');
8
8
  require('./chunk-5MQQRSVM.js');
9
9
 
10
10
 
@@ -87,7 +87,7 @@ var removeCommand = async (name) => {
87
87
  }
88
88
  } catch (error) {
89
89
  spinner.fail();
90
- if (error instanceof _chunkDXBTJGCKjs.PromptsError) {
90
+ if (error instanceof _chunkKRVLZYQ2js.PromptsError) {
91
91
  console.error(_chalk2.default.red(`Error: ${error.message}`));
92
92
  } else {
93
93
  console.error(_chalk2.default.red(`Error removing prompt: ${error instanceof Error ? error.message : "Unknown error"}`));
@@ -95,7 +95,7 @@ var removeCommand = async (name) => {
95
95
  process.exit(1);
96
96
  }
97
97
  } catch (error) {
98
- if (error instanceof _chunkDXBTJGCKjs.PromptsError) {
98
+ if (error instanceof _chunkKRVLZYQ2js.PromptsError) {
99
99
  console.error(_chalk2.default.red(`Error: ${error.message}`));
100
100
  } else {
101
101
  console.error(_chalk2.default.red(`Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`));
@@ -106,4 +106,4 @@ var removeCommand = async (name) => {
106
106
 
107
107
 
108
108
  exports.removeCommand = removeCommand;
109
- //# sourceMappingURL=remove-XWN3XTF5.js.map
109
+ //# sourceMappingURL=remove-BFUQEPHI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/remove-XWN3XTF5.js","../src/cli/commands/remove.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACdA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAIT,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAA,GAAgC;AAClE,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,MAAM,OAAA,EAAS,4BAAA,CAAY,iBAAA,CAAkB,CAAA;AAC7C,IAAA,MAAM,KAAA,EAAO,4BAAA,CAAY,eAAA,CAAgB,CAAA;AAGzC,IAAA,GAAA,CAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AACzB,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,CAAA,eAAA,EAAkB,IAAI,CAAA,2BAAA,CAA6B,CAAC,CAAA;AAC5E,MAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,IAAA,CAAK,CAAA,mBAAA,EAAsB,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,IAAI,EAAA,GAAK,MAAM,CAAA,CAAA;AAC/E,MAAA;AAChB,IAAA;AAEsC,IAAA;AAEhB,IAAA;AAEuC,IAAA;AAEzD,IAAA;AAEiB,MAAA;AACb,QAAA;AAEkE,QAAA;AACpB,UAAA;AACY,QAAA;AAChB,UAAA;AACvC,QAAA;AAEuE,UAAA;AAC9E,QAAA;AAGkC,QAAA;AACL,UAAA;AACoC,UAAA;AAC/C,UAAA;AAC2D,UAAA;AACtE,QAAA;AACW,UAAA;AACqD,UAAA;AACvE,QAAA;AAEyB,QAAA;AAC3B,MAAA;AAGmC,MAAA;AACN,MAAA;AACiC,QAAA;AACvB,QAAA;AACL,UAAA;AAGuB,UAAA;AACM,UAAA;AAE1C,UAAA;AACqE,UAAA;AAChF,YAAA;AACuC,cAAA;AACf,cAAA;AACD,gBAAA;AACa,gBAAA;AAC/B,cAAA;AACL,gBAAA;AACF,cAAA;AACM,YAAA;AACN,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AAG0B,MAAA;AACF,MAAA;AAGY,MAAA;AACJ,MAAA;AAEZ,MAAA;AACF,QAAA;AAC0D,QAAA;AAC5E,MAAA;AAEc,IAAA;AACD,MAAA;AACsB,MAAA;AACiB,QAAA;AAC7C,MAAA;AACsF,QAAA;AAC7F,MAAA;AACc,MAAA;AAChB,IAAA;AAEc,EAAA;AACqB,IAAA;AACiB,MAAA;AAC7C,IAAA;AACiF,MAAA;AACxF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADdoG;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/remove-XWN3XTF5.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\n\nexport const removeCommand = async (name: string): 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 // Load existing config and lock\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n // Check if prompt exists in dependencies\n if (!config.prompts[name]) {\n console.error(chalk.red(`Error: Prompt \"${name}\" not found in dependencies`));\n console.log(chalk.gray(`Available prompts: ${Object.keys(config.prompts).join(', ') || 'none'}`));\n process.exit(1);\n }\n\n const dependency = config.prompts[name];\n const isLocalPrompt = (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) ||\n (typeof dependency === \"object\" && dependency.file);\n\n const spinner = ora(`Removing ${chalk.cyan(name)}...`).start();\n\n try {\n // Handle local prompts\n if (isLocalPrompt) {\n let localFilePath: string;\n\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n localFilePath = path.resolve(dependency.slice(5)); // Remove \"file:\" prefix\n } else if (typeof dependency === \"object\" && dependency.file) {\n localFilePath = path.resolve(dependency.file);\n } else {\n // Fallback: assume it's in the prompts directory\n localFilePath = path.join(FileManager.getPromptsDir(), `${name}.prompt.yaml`);\n }\n\n // Delete the local file if it exists\n if (fs.existsSync(localFilePath)) {\n fs.unlinkSync(localFilePath);\n const relativePath = path.relative(process.cwd(), localFilePath);\n spinner.succeed();\n console.log(chalk.green(`✓ Removed local file ${chalk.gray(relativePath)}`));\n } else {\n spinner.succeed();\n console.log(chalk.yellow(`⚠ Local file not found (already deleted?)`));\n }\n\n console.log(chalk.yellow(`⚠ Note: This prompt may still exist on the server. Visit LangWatch to fully delete it.`));\n }\n\n // Remove materialized file if it exists\n const lockEntry = lock.prompts[name];\n if (lockEntry?.materialized) {\n const materializedPath = path.resolve(lockEntry.materialized);\n if (fs.existsSync(materializedPath)) {\n fs.unlinkSync(materializedPath);\n\n // Clean up empty directories\n const materializedDir = path.dirname(materializedPath);\n const rootMaterializedDir = FileManager.getMaterializedDir();\n\n let currentDir = materializedDir;\n while (currentDir !== rootMaterializedDir && currentDir !== path.dirname(currentDir)) {\n try {\n const entries = fs.readdirSync(currentDir);\n if (entries.length === 0) {\n fs.rmdirSync(currentDir);\n currentDir = path.dirname(currentDir);\n } else {\n break;\n }\n } catch {\n break;\n }\n }\n }\n }\n\n // Remove from config and lock\n delete config.prompts[name];\n delete lock.prompts[name];\n\n // Save updated files\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n if (!isLocalPrompt) {\n spinner.succeed();\n console.log(chalk.green(`✓ Removed ${chalk.cyan(name)} from dependencies`));\n }\n\n } catch (error) {\n spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Error removing prompt: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/remove-BFUQEPHI.js","../src/cli/commands/remove.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACdA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAIT,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAA,GAAgC;AAClE,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,MAAM,OAAA,EAAS,4BAAA,CAAY,iBAAA,CAAkB,CAAA;AAC7C,IAAA,MAAM,KAAA,EAAO,4BAAA,CAAY,eAAA,CAAgB,CAAA;AAGzC,IAAA,GAAA,CAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AACzB,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,CAAA,eAAA,EAAkB,IAAI,CAAA,2BAAA,CAA6B,CAAC,CAAA;AAC5E,MAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,IAAA,CAAK,CAAA,mBAAA,EAAsB,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,IAAI,EAAA,GAAK,MAAM,CAAA,CAAA;AAC/E,MAAA;AAChB,IAAA;AAEsC,IAAA;AAEhB,IAAA;AAEuC,IAAA;AAEzD,IAAA;AAEiB,MAAA;AACb,QAAA;AAEkE,QAAA;AACpB,UAAA;AACY,QAAA;AAChB,UAAA;AACvC,QAAA;AAEuE,UAAA;AAC9E,QAAA;AAGkC,QAAA;AACL,UAAA;AACoC,UAAA;AAC/C,UAAA;AAC2D,UAAA;AACtE,QAAA;AACW,UAAA;AACqD,UAAA;AACvE,QAAA;AAEyB,QAAA;AAC3B,MAAA;AAGmC,MAAA;AACN,MAAA;AACiC,QAAA;AACvB,QAAA;AACL,UAAA;AAGuB,UAAA;AACM,UAAA;AAE1C,UAAA;AACqE,UAAA;AAChF,YAAA;AACuC,cAAA;AACf,cAAA;AACD,gBAAA;AACa,gBAAA;AAC/B,cAAA;AACL,gBAAA;AACF,cAAA;AACM,YAAA;AACN,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AAG0B,MAAA;AACF,MAAA;AAGY,MAAA;AACJ,MAAA;AAEZ,MAAA;AACF,QAAA;AAC0D,QAAA;AAC5E,MAAA;AAEc,IAAA;AACD,MAAA;AACsB,MAAA;AACiB,QAAA;AAC7C,MAAA;AACsF,QAAA;AAC7F,MAAA;AACc,MAAA;AAChB,IAAA;AAEc,EAAA;AACqB,IAAA;AACiB,MAAA;AAC7C,IAAA;AACiF,MAAA;AACxF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADdoG;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/remove-BFUQEPHI.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\n\nexport const removeCommand = async (name: string): 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 // Load existing config and lock\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n // Check if prompt exists in dependencies\n if (!config.prompts[name]) {\n console.error(chalk.red(`Error: Prompt \"${name}\" not found in dependencies`));\n console.log(chalk.gray(`Available prompts: ${Object.keys(config.prompts).join(', ') || 'none'}`));\n process.exit(1);\n }\n\n const dependency = config.prompts[name];\n const isLocalPrompt = (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) ||\n (typeof dependency === \"object\" && dependency.file);\n\n const spinner = ora(`Removing ${chalk.cyan(name)}...`).start();\n\n try {\n // Handle local prompts\n if (isLocalPrompt) {\n let localFilePath: string;\n\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n localFilePath = path.resolve(dependency.slice(5)); // Remove \"file:\" prefix\n } else if (typeof dependency === \"object\" && dependency.file) {\n localFilePath = path.resolve(dependency.file);\n } else {\n // Fallback: assume it's in the prompts directory\n localFilePath = path.join(FileManager.getPromptsDir(), `${name}.prompt.yaml`);\n }\n\n // Delete the local file if it exists\n if (fs.existsSync(localFilePath)) {\n fs.unlinkSync(localFilePath);\n const relativePath = path.relative(process.cwd(), localFilePath);\n spinner.succeed();\n console.log(chalk.green(`✓ Removed local file ${chalk.gray(relativePath)}`));\n } else {\n spinner.succeed();\n console.log(chalk.yellow(`⚠ Local file not found (already deleted?)`));\n }\n\n console.log(chalk.yellow(`⚠ Note: This prompt may still exist on the server. Visit LangWatch to fully delete it.`));\n }\n\n // Remove materialized file if it exists\n const lockEntry = lock.prompts[name];\n if (lockEntry?.materialized) {\n const materializedPath = path.resolve(lockEntry.materialized);\n if (fs.existsSync(materializedPath)) {\n fs.unlinkSync(materializedPath);\n\n // Clean up empty directories\n const materializedDir = path.dirname(materializedPath);\n const rootMaterializedDir = FileManager.getMaterializedDir();\n\n let currentDir = materializedDir;\n while (currentDir !== rootMaterializedDir && currentDir !== path.dirname(currentDir)) {\n try {\n const entries = fs.readdirSync(currentDir);\n if (entries.length === 0) {\n fs.rmdirSync(currentDir);\n currentDir = path.dirname(currentDir);\n } else {\n break;\n }\n } catch {\n break;\n }\n }\n }\n }\n\n // Remove from config and lock\n delete config.prompts[name];\n delete lock.prompts[name];\n\n // Save updated files\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n if (!isLocalPrompt) {\n spinner.succeed();\n console.log(chalk.green(`✓ Removed ${chalk.cyan(name)} from dependencies`));\n }\n\n } catch (error) {\n spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Error removing prompt: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  PromptsError
3
- } from "./chunk-J4HK6XZR.mjs";
3
+ } from "./chunk-62FCDILL.mjs";
4
4
  import "./chunk-ZEPKV5YO.mjs";
5
- import "./chunk-SZRV7E6P.mjs";
6
- import "./chunk-77XIPD42.mjs";
7
- import "./chunk-IIUI2XYW.mjs";
5
+ import "./chunk-KD5U3MP3.mjs";
6
+ import "./chunk-3FGEJOXJ.mjs";
7
+ import "./chunk-ZWP3XAML.mjs";
8
8
  import "./chunk-RSIPLYVA.mjs";
9
9
  import {
10
10
  FileManager
@@ -106,4 +106,4 @@ var removeCommand = async (name) => {
106
106
  export {
107
107
  removeCommand
108
108
  };
109
- //# sourceMappingURL=remove-KESD7YHL.mjs.map
109
+ //# sourceMappingURL=remove-M2PKTPUW.mjs.map
@@ -0,0 +1,123 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunk2L4OQ2V4js = require('./chunk-2L4OQ2V4.js');
4
+
5
+
6
+ var _chunkCMWRDIEKjs = require('./chunk-CMWRDIEK.js');
7
+
8
+
9
+ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
10
+
11
+
12
+
13
+ var _chunkKRVLZYQ2js = require('./chunk-KRVLZYQ2.js');
14
+ require('./chunk-ASTAIRXG.js');
15
+ require('./chunk-SHJZRXU7.js');
16
+ require('./chunk-OFM5YRU7.js');
17
+ require('./chunk-HKAAWGL2.js');
18
+ require('./chunk-5MQQRSVM.js');
19
+
20
+
21
+ var _chunkBYG3QS2Xjs = require('./chunk-BYG3QS2X.js');
22
+
23
+
24
+ var _chunkWAAQLJ67js = require('./chunk-WAAQLJ67.js');
25
+ require('./chunk-AZHZ4NB4.js');
26
+ require('./chunk-OHM7JUMR.js');
27
+
28
+ // src/cli/commands/sync.ts
29
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
30
+ var syncCommand = async () => {
31
+ console.log("\u{1F504} Starting sync...");
32
+ const startTime = Date.now();
33
+ try {
34
+ _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
35
+ const promptsApiService = new (0, _chunkKRVLZYQ2js.PromptsApiService)();
36
+ await _chunkBYG3QS2Xjs.ensureProjectInitialized.call(void 0, false);
37
+ const config = _chunkWAAQLJ67js.FileManager.loadPromptsConfig();
38
+ const lock = _chunkWAAQLJ67js.FileManager.loadPromptsLock();
39
+ const result = {
40
+ fetched: [],
41
+ pushed: [],
42
+ unchanged: [],
43
+ cleaned: [],
44
+ errors: []
45
+ };
46
+ await _chunk2L4OQ2V4js.pullPrompts.call(void 0, { config, lock, promptsApiService, result });
47
+ await _chunkCMWRDIEKjs.pushPrompts.call(void 0, { config, lock, promptsApiService, result });
48
+ _chunkWAAQLJ67js.FileManager.savePromptsLock(lock);
49
+ if (result.fetched.length > 0) {
50
+ for (const { name, version, versionSpec } of result.fetched) {
51
+ const lockEntry = lock.prompts[name];
52
+ const displayPath = (lockEntry == null ? void 0 : lockEntry.materialized) ? `./${lockEntry.materialized}` : `./prompts/.materialized/${name}.prompt.yaml`;
53
+ console.log(
54
+ _chalk2.default.green(
55
+ `\u2713 Pulled ${_chalk2.default.cyan(`${name}@${versionSpec}`)} ${_chalk2.default.gray(
56
+ `(version ${version})`
57
+ )} \u2192 ${_chalk2.default.gray(displayPath)}`
58
+ )
59
+ );
60
+ }
61
+ }
62
+ if (result.pushed.length > 0) {
63
+ for (const { name, version } of result.pushed) {
64
+ const localPath = `./prompts/${name}.prompt.yaml`;
65
+ console.log(
66
+ _chalk2.default.green(
67
+ `\u2713 Pushed ${_chalk2.default.cyan(name)} ${_chalk2.default.gray(
68
+ `(version ${version})`
69
+ )} from ${_chalk2.default.gray(localPath)}`
70
+ )
71
+ );
72
+ }
73
+ }
74
+ if (result.cleaned.length > 0) {
75
+ for (const name of result.cleaned) {
76
+ console.log(
77
+ _chalk2.default.yellow(
78
+ `\u2713 Cleaned ${_chalk2.default.cyan(name)} (no longer in dependencies)`
79
+ )
80
+ );
81
+ }
82
+ }
83
+ if (result.errors.length > 0) {
84
+ for (const { name, error } of result.errors) {
85
+ console.log(_chalk2.default.red(`\u2717 Failed ${_chalk2.default.cyan(name)}: ${error}`));
86
+ }
87
+ }
88
+ const duration = ((Date.now() - startTime) / 1e3).toFixed(1);
89
+ const totalActions = result.fetched.length + result.pushed.length + result.cleaned.length;
90
+ if (totalActions === 0 && result.errors.length === 0) {
91
+ console.log(_chalk2.default.gray(`Synced in ${duration}s, no changes`));
92
+ } else {
93
+ const summary = [];
94
+ if (result.fetched.length > 0)
95
+ summary.push(`${result.fetched.length} fetched`);
96
+ if (result.pushed.length > 0)
97
+ summary.push(`${result.pushed.length} pushed`);
98
+ if (result.cleaned.length > 0)
99
+ summary.push(`${result.cleaned.length} cleaned`);
100
+ if (result.errors.length > 0)
101
+ summary.push(`${result.errors.length} errors`);
102
+ console.log(_chalk2.default.gray(`Synced ${summary.join(", ")} in ${duration}s`));
103
+ }
104
+ if (result.errors.length > 0) {
105
+ process.exit(1);
106
+ }
107
+ } catch (error) {
108
+ if (error instanceof _chunkKRVLZYQ2js.PromptsError) {
109
+ console.error(_chalk2.default.red(`Error: ${error.message}`));
110
+ } else {
111
+ console.error(
112
+ _chalk2.default.red(
113
+ `Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`
114
+ )
115
+ );
116
+ }
117
+ process.exit(1);
118
+ }
119
+ };
120
+
121
+
122
+ exports.syncCommand = syncCommand;
123
+ //# sourceMappingURL=sync-EQFZ2JB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/sync-EQFZ2JB3.js","../src/cli/commands/sync.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;AC3BA,4EAAkB;AAYX,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AACpD,EAAA,OAAA,CAAQ,GAAA,CAAI,4BAAqB,CAAA;AAEjC,EAAA,MAAM,UAAA,EAAY,IAAA,CAAK,GAAA,CAAI,CAAA;AAE3B,EAAA,IAAI;AAEF,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,kBAAA,EAAoB,IAAI,uCAAA,CAAkB,CAAA;AAGhD,IAAA,MAAM,uDAAA,KAA8B,CAAA;AAGpC,IAAA,MAAM,OAAA,EAAS,4BAAA,CAAY,iBAAA,CAAkB,CAAA;AAC7C,IAAA,MAAM,KAAA,EAAO,4BAAA,CAAY,eAAA,CAAgB,CAAA;AAEzC,IAAA,MAAM,OAAA,EAAqB;AAAA,MACzB,OAAA,EAAS,CAAC,CAAA;AAAA,MACV,MAAA,EAAQ,CAAC,CAAA;AAAA,MACT,SAAA,EAAW,CAAC,CAAA;AAAA,MACZ,OAAA,EAAS,CAAC,CAAA;AAAA,MACV,MAAA,EAAQ,CAAC;AAAA,IACX,CAAA;AAGA,IAAA,MAAM,0CAAA,EAAc,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAG7D,IAAA,MAAM,0CAAA,EAAc,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAG7D,IAAA,4BAAA,CAAY,eAAA,CAAgB,IAAI,CAAA;AAGhC,IAAA,GAAA,CAAI,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS,CAAA,EAAG;AAC7B,MAAA,IAAA,CAAA,MAAW,EAAE,IAAA,EAAM,OAAA,EAAS,YAAY,EAAA,GAAK,MAAA,CAAO,OAAA,EAAS;AAC3D,QAAA,MAAM,UAAA,EAAY,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAA;AACnC,QAAA,MAAM,YAAA,EAAA,CAAc,UAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,SAAA,CAAW,YAAA,EAAA,EAC3B,CAAA,EAAA,EAAK,SAAA,CAAU,YAAY,CAAA,EAAA;AAGvB,QAAA;AACA,UAAA;AACsD,YAAA;AACrC,cAAA;AACS,YAAA;AAChC,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAE8B,IAAA;AACmB,MAAA;AACV,QAAA;AAC3B,QAAA;AACA,UAAA;AACkC,YAAA;AACjB,cAAA;AACU,YAAA;AACjC,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAG+B,IAAA;AACM,MAAA;AACzB,QAAA;AACA,UAAA;AACyB,YAAA;AAC/B,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAG8B,IAAA;AACiB,MAAA;AACoB,QAAA;AACjE,MAAA;AACF,IAAA;AAG4D,IAAA;AAEI,IAAA;AAEV,IAAA;AACQ,MAAA;AACvD,IAAA;AACY,MAAA;AACW,MAAA;AACqB,QAAA;AACtB,MAAA;AACoB,QAAA;AACnB,MAAA;AACqB,QAAA;AACtB,MAAA;AACoB,QAAA;AAEuB,MAAA;AACxE,IAAA;AAE8B,IAAA;AACd,MAAA;AAChB,IAAA;AACc,EAAA;AACqB,IAAA;AACiB,MAAA;AAC7C,IAAA;AACG,MAAA;AACA,QAAA;AAGJ,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADhBgH;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/sync-EQFZ2JB3.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { pullPrompts } from \"./pull\";\nimport { pushPrompts } from \"./push\";\n\nexport const syncCommand = async (): Promise<void> => {\n console.log(\"🔄 Starting sync...\");\n\n const startTime = Date.now();\n\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 // Ensure project is initialized (prompts.json, lock file, directories)\n await ensureProjectInitialized(false); // Don't prompt for .gitignore in sync\n\n // Load prompts config and lock\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n // Pull remote prompts (fetch and materialize)\n await pullPrompts({ config, lock, promptsApiService, result });\n\n // Push local prompts to API\n await pushPrompts({ config, lock, promptsApiService, result });\n\n // Save the updated lock file\n FileManager.savePromptsLock(lock);\n\n // Print individual results if there were actions\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.pushed.length > 0) {\n for (const { name, version } of result.pushed) {\n const localPath = `./prompts/${name}.prompt.yaml`;\n console.log(\n chalk.green(\n `✓ Pushed ${chalk.cyan(name)} ${chalk.gray(\n `(version ${version})`\n )} from ${chalk.gray(localPath)}`\n )\n );\n }\n }\n\n // Print cleaned up files\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n // Print errors\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n // Print summary\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n const totalActions =\n result.fetched.length + result.pushed.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Synced in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.pushed.length > 0)\n summary.push(`${result.pushed.length} pushed`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Synced ${summary.join(\", \")} in ${duration}s`));\n }\n\n if (result.errors.length > 0) {\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 error instanceof Error ? error.message : \"Unknown error\"\n }`\n )\n );\n }\n process.exit(1);\n }\n};\n"]}