langwatch 0.16.1 → 0.18.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 (103) hide show
  1. package/dist/{add-H5KAG6WK.mjs → add-5RVW7RGD.mjs} +7 -7
  2. package/dist/{add-VERZBAAU.js → add-MJE7G2BM.js} +10 -10
  3. package/dist/{add-VERZBAAU.js.map → add-MJE7G2BM.js.map} +1 -1
  4. package/dist/{chunk-LOVNOYYC.mjs → chunk-3NPLA2MU.mjs} +2 -2
  5. package/dist/{chunk-ZSALL3F3.js → chunk-5LYWRKDF.js} +5 -2
  6. package/dist/chunk-5LYWRKDF.js.map +1 -0
  7. package/dist/{chunk-RC5UD4BW.mjs → chunk-AXCVJYSK.mjs} +12 -19
  8. package/dist/chunk-AXCVJYSK.mjs.map +1 -0
  9. package/dist/{chunk-BJFZUNQP.js → chunk-DKEWJFMO.js} +17 -17
  10. package/dist/{chunk-BJFZUNQP.js.map → chunk-DKEWJFMO.js.map} +1 -1
  11. package/dist/{chunk-5FBGDIHX.js → chunk-EHWKVO46.js} +31 -34
  12. package/dist/chunk-EHWKVO46.js.map +1 -0
  13. package/dist/{chunk-KJFN6D3P.mjs → chunk-FMYG6IOZ.mjs} +2 -2
  14. package/dist/{chunk-MGHXC55F.mjs → chunk-JVIQJFUE.mjs} +4 -1
  15. package/dist/{chunk-C2X4KWDK.js → chunk-KIFN3ONO.js} +40 -25
  16. package/dist/chunk-KIFN3ONO.js.map +1 -0
  17. package/dist/{chunk-L5UUBING.mjs → chunk-MRQNP55T.mjs} +16 -19
  18. package/dist/chunk-MRQNP55T.mjs.map +1 -0
  19. package/dist/{chunk-BKQY5RVH.mjs → chunk-NKGYK3B7.mjs} +33 -18
  20. package/dist/chunk-NKGYK3B7.mjs.map +1 -0
  21. package/dist/{chunk-IRGFB3BV.js → chunk-ODBP2KFB.js} +11 -11
  22. package/dist/{chunk-IRGFB3BV.js.map → chunk-ODBP2KFB.js.map} +1 -1
  23. package/dist/{chunk-CQ6LE6V4.js → chunk-QNT5P6VV.js} +2 -2
  24. package/dist/{chunk-CQ6LE6V4.js.map → chunk-QNT5P6VV.js.map} +1 -1
  25. package/dist/{chunk-ZJDIXB42.js → chunk-RPCEDRSR.js} +2 -2
  26. package/dist/{chunk-ZJDIXB42.js.map → chunk-RPCEDRSR.js.map} +1 -1
  27. package/dist/{chunk-PK2IYKBI.js → chunk-SAEA37H5.js} +14 -21
  28. package/dist/chunk-SAEA37H5.js.map +1 -0
  29. package/dist/{chunk-RYZHOFQM.mjs → chunk-WAHZXF7I.mjs} +2 -2
  30. package/dist/{chunk-SVJQD7JQ.mjs → chunk-WQ7AKXY7.mjs} +2 -2
  31. package/dist/chunk-WQ7AKXY7.mjs.map +1 -0
  32. package/dist/{chunk-L4INM3N7.mjs → chunk-WSSWTQIB.mjs} +3 -3
  33. package/dist/{chunk-BNFRYHOP.js → chunk-XEYCRZ64.js} +4 -4
  34. package/dist/{chunk-BNFRYHOP.js.map → chunk-XEYCRZ64.js.map} +1 -1
  35. package/dist/cli/index.js +8 -8
  36. package/dist/cli/index.mjs +8 -8
  37. package/dist/{implementation-ubgXW-8T.d.ts → implementation--OaaaMLb.d.ts} +3 -3
  38. package/dist/{implementation-CjoYqq-W.d.mts → implementation-CoqzgwCU.d.mts} +3 -3
  39. package/dist/index.d.mts +3 -3
  40. package/dist/index.d.ts +3 -3
  41. package/dist/index.js +32 -25
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +16 -9
  44. package/dist/index.mjs.map +1 -1
  45. package/dist/{list-QV73ABKP.mjs → list-IGP275AO.mjs} +7 -7
  46. package/dist/{list-6N352JKT.js → list-QMPURSWH.js} +10 -10
  47. package/dist/{list-6N352JKT.js.map → list-QMPURSWH.js.map} +1 -1
  48. package/dist/{login-PHAU2VBJ.mjs → login-EBPGM5GC.mjs} +2 -2
  49. package/dist/{login-7MN6QJCA.js → login-ZKVIVJC6.js} +3 -3
  50. package/dist/{login-7MN6QJCA.js.map → login-ZKVIVJC6.js.map} +1 -1
  51. package/dist/observability-sdk/index.d.mts +4 -4
  52. package/dist/observability-sdk/index.d.ts +4 -4
  53. package/dist/observability-sdk/index.js +6 -6
  54. package/dist/observability-sdk/index.mjs +5 -5
  55. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +2 -2
  56. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +2 -2
  57. package/dist/observability-sdk/instrumentation/langchain/index.js +16 -16
  58. package/dist/observability-sdk/instrumentation/langchain/index.mjs +2 -2
  59. package/dist/observability-sdk/setup/node/index.d.mts +17 -9
  60. package/dist/observability-sdk/setup/node/index.d.ts +17 -9
  61. package/dist/observability-sdk/setup/node/index.js +5 -5
  62. package/dist/observability-sdk/setup/node/index.mjs +4 -4
  63. package/dist/pull-22TPEMFM.js +20 -0
  64. package/dist/{pull-M4K3RJK4.js.map → pull-22TPEMFM.js.map} +1 -1
  65. package/dist/pull-3NWDN7CX.mjs +20 -0
  66. package/dist/push-3CMG3MTX.mjs +20 -0
  67. package/dist/push-7WZUQYC3.js +20 -0
  68. package/dist/{push-RBMMCBJV.js.map → push-7WZUQYC3.js.map} +1 -1
  69. package/dist/{remove-7FLHBPAH.js → remove-HPZGTSOK.js} +9 -9
  70. package/dist/{remove-7FLHBPAH.js.map → remove-HPZGTSOK.js.map} +1 -1
  71. package/dist/{remove-I3MLOKDK.mjs → remove-QJJWZ2ZA.mjs} +7 -7
  72. package/dist/{sync-2CIUEV2B.js → sync-67UMHLSY.js} +13 -13
  73. package/dist/{sync-2CIUEV2B.js.map → sync-67UMHLSY.js.map} +1 -1
  74. package/dist/{sync-HKGOBRN3.mjs → sync-BNPR6W4G.mjs} +9 -9
  75. package/dist/{types-DobBt1Tk.d.ts → types-AByjs5T0.d.ts} +3 -3
  76. package/dist/{types-EZcXXg5C.d.mts → types-DWVQcIaM.d.mts} +3 -3
  77. package/dist/{types-CCH1oIsx.d.mts → types-DYLY4SyT.d.mts} +1 -1
  78. package/dist/{types-CCH1oIsx.d.ts → types-DYLY4SyT.d.ts} +1 -1
  79. package/package.json +36 -6
  80. package/dist/chunk-5FBGDIHX.js.map +0 -1
  81. package/dist/chunk-BKQY5RVH.mjs.map +0 -1
  82. package/dist/chunk-C2X4KWDK.js.map +0 -1
  83. package/dist/chunk-L5UUBING.mjs.map +0 -1
  84. package/dist/chunk-PK2IYKBI.js.map +0 -1
  85. package/dist/chunk-RC5UD4BW.mjs.map +0 -1
  86. package/dist/chunk-SVJQD7JQ.mjs.map +0 -1
  87. package/dist/chunk-ZSALL3F3.js.map +0 -1
  88. package/dist/pull-ATOZJIXF.mjs +0 -20
  89. package/dist/pull-M4K3RJK4.js +0 -20
  90. package/dist/push-RBMMCBJV.js +0 -20
  91. package/dist/push-YJTRRJOZ.mjs +0 -20
  92. /package/dist/{add-H5KAG6WK.mjs.map → add-5RVW7RGD.mjs.map} +0 -0
  93. /package/dist/{chunk-LOVNOYYC.mjs.map → chunk-3NPLA2MU.mjs.map} +0 -0
  94. /package/dist/{chunk-KJFN6D3P.mjs.map → chunk-FMYG6IOZ.mjs.map} +0 -0
  95. /package/dist/{chunk-MGHXC55F.mjs.map → chunk-JVIQJFUE.mjs.map} +0 -0
  96. /package/dist/{chunk-RYZHOFQM.mjs.map → chunk-WAHZXF7I.mjs.map} +0 -0
  97. /package/dist/{chunk-L4INM3N7.mjs.map → chunk-WSSWTQIB.mjs.map} +0 -0
  98. /package/dist/{list-QV73ABKP.mjs.map → list-IGP275AO.mjs.map} +0 -0
  99. /package/dist/{login-PHAU2VBJ.mjs.map → login-EBPGM5GC.mjs.map} +0 -0
  100. /package/dist/{pull-ATOZJIXF.mjs.map → pull-3NWDN7CX.mjs.map} +0 -0
  101. /package/dist/{push-YJTRRJOZ.mjs.map → push-3CMG3MTX.mjs.map} +0 -0
  102. /package/dist/{remove-I3MLOKDK.mjs.map → remove-QJJWZ2ZA.mjs.map} +0 -0
  103. /package/dist/{sync-HKGOBRN3.mjs.map → sync-BNPR6W4G.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-6N352JKT.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-6N352JKT.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[[0-9;]*m/g, \"\");\n};\n\n// Simple table formatting helper\nconst formatTable = (\n data: Array<Record<string, string>>,\n headers: string[],\n): void => {\n if (data.length === 0) {\n console.log(chalk.gray(\"No prompts found\"));\n return;\n }\n\n // Calculate column widths (strip ANSI codes for accurate length calculation)\n const colWidths: Record<string, number> = {};\n headers.forEach((header) => {\n colWidths[header] = Math.max(\n header.length,\n ...data.map((row) => stripAnsi(row[header] ?? \"\").length),\n );\n });\n\n // Print header\n const headerRow = headers\n .map((header) => chalk.bold(header.padEnd(colWidths[header]!)))\n .join(\" \");\n console.log(headerRow);\n\n // Print separator\n const separator = headers\n .map((header) => \"─\".repeat(colWidths[header]!))\n .join(\" \");\n console.log(chalk.gray(separator));\n\n // Print data rows\n data.forEach((row) => {\n const dataRow = headers\n .map((header) => {\n const value = row[header] ?? \"\";\n const strippedLength = stripAnsi(value).length;\n const paddingNeeded = colWidths[header]! - strippedLength;\n const paddedValue = value + \" \".repeat(Math.max(0, paddingNeeded));\n\n // Color coding\n if (header === \"Name\") {\n return chalk.cyan(paddedValue);\n } else if (header === \"Version\") {\n return chalk.green(paddedValue);\n } else if (header === \"Model\") {\n return chalk.yellow(paddedValue);\n } else {\n return chalk.gray(paddedValue);\n }\n })\n .join(\" \");\n console.log(dataRow);\n });\n};\n\nconst formatRelativeTime = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n\n const seconds = Math.floor(diffMs / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n if (years > 0) return `${years}y ago`;\n if (months > 0) return `${months}mo ago`;\n if (days > 0) return `${days}d ago`;\n if (hours > 0) return `${hours}h ago`;\n if (minutes > 0) return `${minutes}m ago`;\n return `${seconds}s ago`;\n};\n\nexport const listCommand = async (): 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 (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 Updated: formatRelativeTime(prompt.updatedAt),\n }));\n\n // Display table\n formatTable(tableData, [\"Name\", \"Version\", \"Model\", \"Updated\"]);\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 spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error fetching prompts: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\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"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-QMPURSWH.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-QMPURSWH.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[[0-9;]*m/g, \"\");\n};\n\n// Simple table formatting helper\nconst formatTable = (\n data: Array<Record<string, string>>,\n headers: string[],\n): void => {\n if (data.length === 0) {\n console.log(chalk.gray(\"No prompts found\"));\n return;\n }\n\n // Calculate column widths (strip ANSI codes for accurate length calculation)\n const colWidths: Record<string, number> = {};\n headers.forEach((header) => {\n colWidths[header] = Math.max(\n header.length,\n ...data.map((row) => stripAnsi(row[header] ?? \"\").length),\n );\n });\n\n // Print header\n const headerRow = headers\n .map((header) => chalk.bold(header.padEnd(colWidths[header]!)))\n .join(\" \");\n console.log(headerRow);\n\n // Print separator\n const separator = headers\n .map((header) => \"─\".repeat(colWidths[header]!))\n .join(\" \");\n console.log(chalk.gray(separator));\n\n // Print data rows\n data.forEach((row) => {\n const dataRow = headers\n .map((header) => {\n const value = row[header] ?? \"\";\n const strippedLength = stripAnsi(value).length;\n const paddingNeeded = colWidths[header]! - strippedLength;\n const paddedValue = value + \" \".repeat(Math.max(0, paddingNeeded));\n\n // Color coding\n if (header === \"Name\") {\n return chalk.cyan(paddedValue);\n } else if (header === \"Version\") {\n return chalk.green(paddedValue);\n } else if (header === \"Model\") {\n return chalk.yellow(paddedValue);\n } else {\n return chalk.gray(paddedValue);\n }\n })\n .join(\" \");\n console.log(dataRow);\n });\n};\n\nconst formatRelativeTime = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n\n const seconds = Math.floor(diffMs / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n if (years > 0) return `${years}y ago`;\n if (months > 0) return `${months}mo ago`;\n if (days > 0) return `${days}d ago`;\n if (hours > 0) return `${hours}h ago`;\n if (minutes > 0) return `${minutes}m ago`;\n return `${seconds}s ago`;\n};\n\nexport const listCommand = async (): 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 (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 Updated: formatRelativeTime(prompt.updatedAt),\n }));\n\n // Display table\n formatTable(tableData, [\"Name\", \"Version\", \"Model\", \"Updated\"]);\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 spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error fetching prompts: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\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"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_ENDPOINT
3
- } from "./chunk-SVJQD7JQ.mjs";
3
+ } from "./chunk-WQ7AKXY7.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-PHAU2VBJ.mjs.map
114
+ //# sourceMappingURL=login-EBPGM5GC.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 _chunkZJDIXB42js = require('./chunk-ZJDIXB42.js');
3
+ var _chunkRPCEDRSRjs = require('./chunk-RPCEDRSR.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 : _chunkZJDIXB42js.DEFAULT_ENDPOINT;
14
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkRPCEDRSRjs.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-7MN6QJCA.js.map
114
+ //# sourceMappingURL=login-ZKVIVJC6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-7MN6QJCA.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-7MN6QJCA.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-ZKVIVJC6.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-ZKVIVJC6.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,11 +1,11 @@
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-CjoYqq-W.mjs';
1
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, b as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, c as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-CoqzgwCU.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-EZcXXg5C.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-EZcXXg5C.mjs';
5
+ import { a as LangWatchSpan } from '../types-DWVQcIaM.mjs';
6
+ export { I as INPUT_OUTPUT_TYPES, b as InputOutputType, J as JsonSerializable, c as LangWatchSpanMetrics, d as LangWatchSpanOptions, e as LangWatchSpanRAGContext, L as LangWatchTracer, S as SimpleChatMessage, f as SpanType, s as spanTypes } from '../types-DWVQcIaM.mjs';
7
7
  import { Span } from '@opentelemetry/api';
8
- export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-CCH1oIsx.mjs';
8
+ export { a as SemConvAttributeKey, S as SemConvAttributes, b as SemConvLogRecordAttributes, l as attributes } from '../types-DYLY4SyT.mjs';
9
9
  import '@opentelemetry/sdk-trace-base';
10
10
  import '@opentelemetry/exporter-trace-otlp-http';
11
11
  import '@opentelemetry/core';
@@ -1,11 +1,11 @@
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-ubgXW-8T.js';
1
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, b as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, c as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation--OaaaMLb.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-DobBt1Tk.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-DobBt1Tk.js';
5
+ import { a as LangWatchSpan } from '../types-AByjs5T0.js';
6
+ export { I as INPUT_OUTPUT_TYPES, b as InputOutputType, J as JsonSerializable, c as LangWatchSpanMetrics, d as LangWatchSpanOptions, e as LangWatchSpanRAGContext, L as LangWatchTracer, S as SimpleChatMessage, f as SpanType, s as spanTypes } from '../types-AByjs5T0.js';
7
7
  import { Span } from '@opentelemetry/api';
8
- export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-CCH1oIsx.js';
8
+ export { a as SemConvAttributeKey, S as SemConvAttributes, b as SemConvLogRecordAttributes, l as attributes } from '../types-DYLY4SyT.js';
9
9
  import '@opentelemetry/sdk-trace-base';
10
10
  import '@opentelemetry/exporter-trace-otlp-http';
11
11
  import '@opentelemetry/core';
@@ -1,26 +1,26 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkCQ6LE6V4js = require('../chunk-CQ6LE6V4.js');
4
+ var _chunkQNT5P6VVjs = require('../chunk-QNT5P6VV.js');
5
5
 
6
6
 
7
7
 
8
8
 
9
9
 
10
- var _chunkIRGFB3BVjs = require('../chunk-IRGFB3BV.js');
10
+ var _chunkODBP2KFBjs = require('../chunk-ODBP2KFB.js');
11
11
 
12
12
 
13
13
 
14
14
 
15
15
 
16
- var _chunkBJFZUNQPjs = require('../chunk-BJFZUNQP.js');
17
- require('../chunk-ZJDIXB42.js');
16
+ var _chunkDKEWJFMOjs = require('../chunk-DKEWJFMO.js');
17
+ require('../chunk-RPCEDRSR.js');
18
18
 
19
19
 
20
20
 
21
21
 
22
22
 
23
- var _chunkZSALL3F3js = require('../chunk-ZSALL3F3.js');
23
+ var _chunk5LYWRKDFjs = require('../chunk-5LYWRKDF.js');
24
24
  require('../chunk-OHM7JUMR.js');
25
25
 
26
26
 
@@ -38,5 +38,5 @@ require('../chunk-OHM7JUMR.js');
38
38
 
39
39
 
40
40
 
41
- exports.DataCapturePresets = _chunkCQ6LE6V4js.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkCQ6LE6V4js.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkBJFZUNQPjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkBJFZUNQPjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkBJFZUNQPjs.LangWatchTraceExporter; exports.attributes = _chunkZSALL3F3js.attributes_exports; exports.createLangWatchSpan = _chunkIRGFB3BVjs.createLangWatchSpan; exports.getDataCaptureMode = _chunkZSALL3F3js.getDataCaptureMode; exports.getLangWatchLogger = _chunkBJFZUNQPjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkBJFZUNQPjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkIRGFB3BVjs.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkIRGFB3BVjs.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkZSALL3F3js.shouldCaptureInput; exports.shouldCaptureOutput = _chunkZSALL3F3js.shouldCaptureOutput; exports.spanTypes = _chunkIRGFB3BVjs.spanTypes;
41
+ exports.DataCapturePresets = _chunkQNT5P6VVjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkQNT5P6VVjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkDKEWJFMOjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkDKEWJFMOjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkDKEWJFMOjs.LangWatchTraceExporter; exports.attributes = _chunk5LYWRKDFjs.attributes_exports; exports.createLangWatchSpan = _chunkODBP2KFBjs.createLangWatchSpan; exports.getDataCaptureMode = _chunk5LYWRKDFjs.getDataCaptureMode; exports.getLangWatchLogger = _chunkDKEWJFMOjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkDKEWJFMOjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkODBP2KFBjs.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkODBP2KFBjs.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunk5LYWRKDFjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunk5LYWRKDFjs.shouldCaptureOutput; exports.spanTypes = _chunkODBP2KFBjs.spanTypes;
42
42
  //# sourceMappingURL=index.js.map
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  DataCapturePresets,
3
3
  FilterableBatchSpanProcessor
4
- } from "../chunk-KJFN6D3P.mjs";
4
+ } from "../chunk-FMYG6IOZ.mjs";
5
5
  import {
6
6
  createLangWatchSpan,
7
7
  getLangWatchTracer,
8
8
  getLangWatchTracerFromProvider,
9
9
  spanTypes
10
- } from "../chunk-RYZHOFQM.mjs";
10
+ } from "../chunk-WAHZXF7I.mjs";
11
11
  import {
12
12
  LangWatchLogsExporter,
13
13
  LangWatchTraceExporter,
14
14
  getLangWatchLogger,
15
15
  getLangWatchLoggerFromProvider
16
- } from "../chunk-L4INM3N7.mjs";
17
- import "../chunk-SVJQD7JQ.mjs";
16
+ } from "../chunk-WSSWTQIB.mjs";
17
+ import "../chunk-WQ7AKXY7.mjs";
18
18
  import {
19
19
  attributes_exports,
20
20
  getDataCaptureMode,
21
21
  shouldCaptureInput,
22
22
  shouldCaptureOutput
23
- } from "../chunk-MGHXC55F.mjs";
23
+ } from "../chunk-JVIQJFUE.mjs";
24
24
  import "../chunk-URTD2WOC.mjs";
25
25
  export {
26
26
  DataCapturePresets,
@@ -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-EZcXXg5C.mjs';
3
+ import { L as LangWatchTracer, a as LangWatchSpan, C as ChatMessage } from '../../../types-DWVQcIaM.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';
@@ -9,7 +9,7 @@ import { BaseMessage } from '@langchain/core/messages';
9
9
  import { LLMResult } from '@langchain/core/outputs';
10
10
  import { ChainValues } from '@langchain/core/utils/types';
11
11
  import 'zod';
12
- import '../../../types-CCH1oIsx.mjs';
12
+ import '../../../types-DYLY4SyT.mjs';
13
13
  import '@opentelemetry/api-logs';
14
14
  import '@opentelemetry/semantic-conventions';
15
15
  import '@opentelemetry/semantic-conventions/incubating';
@@ -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-DobBt1Tk.js';
3
+ import { L as LangWatchTracer, a as LangWatchSpan, C as ChatMessage } from '../../../types-AByjs5T0.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';
@@ -9,7 +9,7 @@ import { BaseMessage } from '@langchain/core/messages';
9
9
  import { LLMResult } from '@langchain/core/outputs';
10
10
  import { ChainValues } from '@langchain/core/utils/types';
11
11
  import 'zod';
12
- import '../../../types-CCH1oIsx.js';
12
+ import '../../../types-DYLY4SyT.js';
13
13
  import '@opentelemetry/api-logs';
14
14
  import '@opentelemetry/semantic-conventions';
15
15
  import '@opentelemetry/semantic-conventions/incubating';
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkIRGFB3BVjs = require('../../../chunk-IRGFB3BV.js');
4
+ var _chunkODBP2KFBjs = require('../../../chunk-ODBP2KFB.js');
5
5
 
6
6
 
7
7
 
8
- var _chunkZSALL3F3js = require('../../../chunk-ZSALL3F3.js');
8
+ var _chunk5LYWRKDFjs = require('../../../chunk-5LYWRKDF.js');
9
9
 
10
10
 
11
11
  var _chunkOHM7JUMRjs = require('../../../chunk-OHM7JUMR.js');
@@ -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 = _chunkIRGFB3BVjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
34
+ this.tracer = _chunkODBP2KFBjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
35
35
  this.spans = {};
36
36
  this.parentOf = {};
37
37
  this.skipped = {};
@@ -66,7 +66,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
66
66
  span.setType(type);
67
67
  if ((_a = args.tags) == null ? void 0 : _a.length)
68
68
  span.setAttribute("langwatch.langchain.run.tags", args.tags.slice(0, 50));
69
- if (_chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) && args.input !== void 0) {
69
+ if (_chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) && args.input !== void 0) {
70
70
  const i = args.input;
71
71
  if (i && typeof i === "object" && "type" in i && "value" in i) {
72
72
  span.setInput(i.type, i.value);
@@ -106,7 +106,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
106
106
  if (end.err) {
107
107
  span.recordException(end.err);
108
108
  span.setStatus({ code: _api.SpanStatusCode.ERROR, message: end.err.message });
109
- } else if (_chunkZSALL3F3js.shouldCaptureOutput.call(void 0, ) && end.output !== void 0) {
109
+ } else if (_chunk5LYWRKDFjs.shouldCaptureOutput.call(void 0, ) && end.output !== void 0) {
110
110
  span.setOutput(end.output);
111
111
  }
112
112
  span.end();
@@ -116,7 +116,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
116
116
  this.seenStarts.delete(runId);
117
117
  }
118
118
  async handleLLMStart(llm, prompts, runId, parentRunId, extraParams, tags, metadata, name) {
119
- const input = _chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) && prompts ? {
119
+ const input = _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) && prompts ? {
120
120
  type: "list",
121
121
  value: prompts.map((p) => ({ type: "text", value: p }))
122
122
  } : void 0;
@@ -133,7 +133,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
133
133
  });
134
134
  }
135
135
  async handleChatModelStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
136
- const input = _chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) ? {
136
+ const input = _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) ? {
137
137
  type: "chat_messages",
138
138
  value: messages.flatMap(convertFromLangChainMessages)
139
139
  } : void 0;
@@ -160,7 +160,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
160
160
  "gen_ai.usage.total_tokens": (_d = tu.totalTokens) != null ? _d : 0
161
161
  });
162
162
  }
163
- const outputs = _chunkZSALL3F3js.shouldCaptureOutput.call(void 0, ) ? response.generations.flat().map((g) => {
163
+ const outputs = _chunk5LYWRKDFjs.shouldCaptureOutput.call(void 0, ) ? response.generations.flat().map((g) => {
164
164
  if ("message" in g && g.message) {
165
165
  return convertFromLangChainMessages([
166
166
  g.message
@@ -188,7 +188,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
188
188
  metadata,
189
189
  tags,
190
190
  name,
191
- input: _chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) ? inputs : void 0
191
+ input: _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) ? inputs : void 0
192
192
  });
193
193
  if (_runType) {
194
194
  const span = this.spans[runId];
@@ -216,7 +216,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
216
216
  metadata,
217
217
  tags,
218
218
  name,
219
- input: _chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) ? { type: "text", value: input } : void 0
219
+ input: _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) ? { type: "text", value: input } : void 0
220
220
  });
221
221
  const span = this.spans[runId];
222
222
  if (span) {
@@ -228,7 +228,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
228
228
  }
229
229
  async handleToolEnd(output, runId, parentRunId) {
230
230
  this.finishRun(runId, {
231
- output: _chunkZSALL3F3js.shouldCaptureOutput.call(void 0, ) ? { type: "text", value: output } : void 0,
231
+ output: _chunk5LYWRKDFjs.shouldCaptureOutput.call(void 0, ) ? { type: "text", value: output } : void 0,
232
232
  event: "handleToolEnd",
233
233
  parentRunId
234
234
  });
@@ -245,7 +245,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
245
245
  metadata,
246
246
  tags,
247
247
  name,
248
- input: _chunkZSALL3F3js.shouldCaptureInput.call(void 0, ) ? { type: "text", value: query } : void 0
248
+ input: _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, ) ? { type: "text", value: query } : void 0
249
249
  });
250
250
  const span = this.spans[runId];
251
251
  if (span) {
@@ -257,10 +257,10 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
257
257
  }
258
258
  async handleRetrieverEnd(documents, runId, parentRunId, tags) {
259
259
  const span = this.spans[runId];
260
- if (span && _chunkZSALL3F3js.shouldCaptureOutput.call(void 0, )) {
260
+ if (span && _chunk5LYWRKDFjs.shouldCaptureOutput.call(void 0, )) {
261
261
  span.setOutput(documents);
262
262
  }
263
- if (span && _chunkZSALL3F3js.shouldCaptureInput.call(void 0, )) {
263
+ if (span && _chunk5LYWRKDFjs.shouldCaptureInput.call(void 0, )) {
264
264
  span.setRAGContexts(
265
265
  documents.map((document) => ({
266
266
  document_id: document.metadata.id,
@@ -288,7 +288,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
288
288
  }
289
289
  async handleAgentEnd(action, runId, parentRunId, tags) {
290
290
  this.finishRun(runId, {
291
- output: _chunkZSALL3F3js.shouldCaptureOutput.call(void 0, ) ? { type: "json", value: action.returnValues } : void 0,
291
+ output: _chunk5LYWRKDFjs.shouldCaptureOutput.call(void 0, ) ? { type: "json", value: action.returnValues } : void 0,
292
292
  event: "handleAgentEnd",
293
293
  parentRunId,
294
294
  tags
@@ -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 = _chunkIRGFB3BVjs.chatMessageSchema.array().safeParse(value);
365
+ const chatMessages = _chunkODBP2KFBjs.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,11 +1,11 @@
1
1
  import {
2
2
  chatMessageSchema,
3
3
  getLangWatchTracer
4
- } from "../../../chunk-RYZHOFQM.mjs";
4
+ } from "../../../chunk-WAHZXF7I.mjs";
5
5
  import {
6
6
  shouldCaptureInput,
7
7
  shouldCaptureOutput
8
- } from "../../../chunk-MGHXC55F.mjs";
8
+ } from "../../../chunk-JVIQJFUE.mjs";
9
9
  import {
10
10
  __spreadValues
11
11
  } from "../../../chunk-URTD2WOC.mjs";
@@ -5,7 +5,7 @@ import { ContextManager, TextMapPropagator } from '@opentelemetry/api';
5
5
  import { LogRecordProcessor } from '@opentelemetry/sdk-logs';
6
6
  import { IMetricReader, ViewOptions } from '@opentelemetry/sdk-metrics';
7
7
  import { ResourceDetector, Resource } from '@opentelemetry/resources';
8
- import { S as SemConvAttributes } from '../../../types-CCH1oIsx.mjs';
8
+ import { S as SemConvAttributes } from '../../../types-DYLY4SyT.mjs';
9
9
  import { D as DataCaptureOptions } from '../../../types-Dmazk5Bk.mjs';
10
10
  import '@opentelemetry/api-logs';
11
11
  import '@opentelemetry/semantic-conventions';
@@ -68,7 +68,7 @@ interface SetupObservabilityOptions {
68
68
  * - 'simple': Exports spans immediately (good for debugging)
69
69
  * - 'batch': Batches spans for better performance (recommended for production)
70
70
  *
71
- * @default 'simple'
71
+ * @default 'batch'
72
72
  */
73
73
  processorType?: "simple" | "batch";
74
74
  } | "disabled";
@@ -302,6 +302,13 @@ interface SetupObservabilityOptions {
302
302
  * Disable the automatic shutdown of the observability system when the application
303
303
  * terminates.
304
304
  *
305
+ * When enabled (default), the SDK registers handlers for `beforeExit` (event loop
306
+ * drains), `SIGINT` (Ctrl+C), and `SIGTERM` (external kill / Docker stop) to flush
307
+ * pending traces before the process exits.
308
+ *
309
+ * Note: `process.exit()` calls (e.g. from test runners like vitest) bypass these
310
+ * handlers. In those environments, call `shutdown()` explicitly in your teardown.
311
+ *
305
312
  * @default false
306
313
  */
307
314
  disableAutoShutdown?: boolean;
@@ -309,18 +316,19 @@ interface SetupObservabilityOptions {
309
316
  }
310
317
  /**
311
318
  * Handle returned from observability setup. If you disable the automatic shutdown,
312
- * do you are running in an environment where you can't listen to SIGTERM to handle
313
- * shutdowns, you can use the shutdown function to manually shut down the
314
- * observability system, and ensure that no data is lost.
319
+ * or are running in an environment where process signals are not available (e.g.
320
+ * test runners that call `process.exit()`), you can use the shutdown function to
321
+ * manually shut down the observability system and ensure that no data is lost.
315
322
  *
316
323
  * @example
317
324
  * ```typescript
318
- * const { shutdown } = setupObservability(options);
325
+ * const { shutdown } = setupObservability({
326
+ * advanced: { disableAutoShutdown: true }
327
+ * });
319
328
  *
320
- * // Shutdown when the application is terminating
321
- * process.on('SIGTERM', async () => {
329
+ * // Manual shutdown in test teardown
330
+ * afterAll(async () => {
322
331
  * await shutdown();
323
- * process.exit(0);
324
332
  * });
325
333
  * ```
326
334
  */
@@ -5,7 +5,7 @@ import { ContextManager, TextMapPropagator } from '@opentelemetry/api';
5
5
  import { LogRecordProcessor } from '@opentelemetry/sdk-logs';
6
6
  import { IMetricReader, ViewOptions } from '@opentelemetry/sdk-metrics';
7
7
  import { ResourceDetector, Resource } from '@opentelemetry/resources';
8
- import { S as SemConvAttributes } from '../../../types-CCH1oIsx.js';
8
+ import { S as SemConvAttributes } from '../../../types-DYLY4SyT.js';
9
9
  import { D as DataCaptureOptions } from '../../../types-Dmazk5Bk.js';
10
10
  import '@opentelemetry/api-logs';
11
11
  import '@opentelemetry/semantic-conventions';
@@ -68,7 +68,7 @@ interface SetupObservabilityOptions {
68
68
  * - 'simple': Exports spans immediately (good for debugging)
69
69
  * - 'batch': Batches spans for better performance (recommended for production)
70
70
  *
71
- * @default 'simple'
71
+ * @default 'batch'
72
72
  */
73
73
  processorType?: "simple" | "batch";
74
74
  } | "disabled";
@@ -302,6 +302,13 @@ interface SetupObservabilityOptions {
302
302
  * Disable the automatic shutdown of the observability system when the application
303
303
  * terminates.
304
304
  *
305
+ * When enabled (default), the SDK registers handlers for `beforeExit` (event loop
306
+ * drains), `SIGINT` (Ctrl+C), and `SIGTERM` (external kill / Docker stop) to flush
307
+ * pending traces before the process exits.
308
+ *
309
+ * Note: `process.exit()` calls (e.g. from test runners like vitest) bypass these
310
+ * handlers. In those environments, call `shutdown()` explicitly in your teardown.
311
+ *
305
312
  * @default false
306
313
  */
307
314
  disableAutoShutdown?: boolean;
@@ -309,18 +316,19 @@ interface SetupObservabilityOptions {
309
316
  }
310
317
  /**
311
318
  * Handle returned from observability setup. If you disable the automatic shutdown,
312
- * do you are running in an environment where you can't listen to SIGTERM to handle
313
- * shutdowns, you can use the shutdown function to manually shut down the
314
- * observability system, and ensure that no data is lost.
319
+ * or are running in an environment where process signals are not available (e.g.
320
+ * test runners that call `process.exit()`), you can use the shutdown function to
321
+ * manually shut down the observability system and ensure that no data is lost.
315
322
  *
316
323
  * @example
317
324
  * ```typescript
318
- * const { shutdown } = setupObservability(options);
325
+ * const { shutdown } = setupObservability({
326
+ * advanced: { disableAutoShutdown: true }
327
+ * });
319
328
  *
320
- * // Shutdown when the application is terminating
321
- * process.on('SIGTERM', async () => {
329
+ * // Manual shutdown in test teardown
330
+ * afterAll(async () => {
322
331
  * await shutdown();
323
- * process.exit(0);
324
332
  * });
325
333
  * ```
326
334
  */
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkC2X4KWDKjs = require('../../../chunk-C2X4KWDK.js');
5
- require('../../../chunk-BJFZUNQP.js');
6
- require('../../../chunk-ZJDIXB42.js');
7
- require('../../../chunk-ZSALL3F3.js');
4
+ var _chunkKIFN3ONOjs = require('../../../chunk-KIFN3ONO.js');
5
+ require('../../../chunk-DKEWJFMO.js');
6
+ require('../../../chunk-RPCEDRSR.js');
7
+ require('../../../chunk-5LYWRKDF.js');
8
8
  require('../../../chunk-OHM7JUMR.js');
9
9
 
10
10
 
11
11
 
12
- exports.ensureSetup = _chunkC2X4KWDKjs.ensureSetup; exports.setupObservability = _chunkC2X4KWDKjs.setupObservability;
12
+ exports.ensureSetup = _chunkKIFN3ONOjs.ensureSetup; exports.setupObservability = _chunkKIFN3ONOjs.setupObservability;
13
13
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  ensureSetup,
3
3
  setupObservability
4
- } from "../../../chunk-BKQY5RVH.mjs";
5
- import "../../../chunk-L4INM3N7.mjs";
6
- import "../../../chunk-SVJQD7JQ.mjs";
7
- import "../../../chunk-MGHXC55F.mjs";
4
+ } from "../../../chunk-NKGYK3B7.mjs";
5
+ import "../../../chunk-WSSWTQIB.mjs";
6
+ import "../../../chunk-WQ7AKXY7.mjs";
7
+ import "../../../chunk-JVIQJFUE.mjs";
8
8
  import "../../../chunk-URTD2WOC.mjs";
9
9
  export {
10
10
  ensureSetup,
@@ -0,0 +1,20 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkXEYCRZ64js = require('./chunk-XEYCRZ64.js');
5
+ require('./chunk-F6E4XQQU.js');
6
+ require('./chunk-EHWKVO46.js');
7
+ require('./chunk-QNT5P6VV.js');
8
+ require('./chunk-ODBP2KFB.js');
9
+ require('./chunk-DKEWJFMO.js');
10
+ require('./chunk-RPCEDRSR.js');
11
+ require('./chunk-5LYWRKDF.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 = _chunkXEYCRZ64js.pullCommand; exports.pullPrompts = _chunkXEYCRZ64js.pullPrompts;
20
+ //# sourceMappingURL=pull-22TPEMFM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/pull-M4K3RJK4.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-M4K3RJK4.js"}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/pull-22TPEMFM.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-22TPEMFM.js"}
@@ -0,0 +1,20 @@
1
+ import {
2
+ pullCommand,
3
+ pullPrompts
4
+ } from "./chunk-3NPLA2MU.mjs";
5
+ import "./chunk-DHJKJVY7.mjs";
6
+ import "./chunk-MRQNP55T.mjs";
7
+ import "./chunk-FMYG6IOZ.mjs";
8
+ import "./chunk-WAHZXF7I.mjs";
9
+ import "./chunk-WSSWTQIB.mjs";
10
+ import "./chunk-WQ7AKXY7.mjs";
11
+ import "./chunk-JVIQJFUE.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-3NWDN7CX.mjs.map