langwatch 0.3.2 → 0.4.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 (202) hide show
  1. package/dist/{add-LBBS4I3H.js → add-35QACTIV.js} +34 -28
  2. package/dist/add-35QACTIV.js.map +1 -0
  3. package/dist/{add-RD3ZKFAT.mjs → add-TRJAXM4D.mjs} +22 -16
  4. package/dist/add-TRJAXM4D.mjs.map +1 -0
  5. package/dist/chunk-4ZSSHX6F.js +636 -0
  6. package/dist/chunk-4ZSSHX6F.js.map +1 -0
  7. package/dist/chunk-5EVBOHJY.js +155 -0
  8. package/dist/chunk-5EVBOHJY.js.map +1 -0
  9. package/dist/{chunk-YN4436PK.mjs → chunk-CU3443HD.mjs} +14 -9
  10. package/dist/{chunk-2JU376G7.js → chunk-D2CSG4SJ.js} +4 -4
  11. package/dist/chunk-D2CSG4SJ.js.map +1 -0
  12. package/dist/chunk-DISMHYXC.js +184 -0
  13. package/dist/chunk-DISMHYXC.js.map +1 -0
  14. package/dist/{chunk-E7UE2MPD.mjs → chunk-ECUXLXFT.mjs} +2 -2
  15. package/dist/chunk-EJWJXTPU.mjs +626 -0
  16. package/dist/chunk-EJWJXTPU.mjs.map +1 -0
  17. package/dist/chunk-GQMDZ4GY.mjs +155 -0
  18. package/dist/chunk-GQMDZ4GY.mjs.map +1 -0
  19. package/dist/{chunk-3GKPQB4R.mjs → chunk-HUI45ULC.mjs} +4 -4
  20. package/dist/chunk-HUI45ULC.mjs.map +1 -0
  21. package/dist/{chunk-HJU67C7H.js → chunk-K64Y6YUG.js} +10 -10
  22. package/dist/{chunk-HJU67C7H.js.map → chunk-K64Y6YUG.js.map} +1 -1
  23. package/dist/chunk-LP76VXI3.mjs +636 -0
  24. package/dist/chunk-LP76VXI3.mjs.map +1 -0
  25. package/dist/chunk-M4VUHTT2.js +626 -0
  26. package/dist/chunk-M4VUHTT2.js.map +1 -0
  27. package/dist/{chunk-PR3JDWC3.mjs → chunk-N2V6J3U2.mjs} +28 -3
  28. package/dist/chunk-N2V6J3U2.mjs.map +1 -0
  29. package/dist/chunk-OUCVXP4G.js +258 -0
  30. package/dist/chunk-OUCVXP4G.js.map +1 -0
  31. package/dist/{chunk-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
  32. package/dist/chunk-OXBO24RB.js.map +1 -0
  33. package/dist/chunk-PGWR3OQY.mjs +258 -0
  34. package/dist/chunk-PGWR3OQY.mjs.map +1 -0
  35. package/dist/{chunk-SMXXAVMB.js → chunk-SGNJDRCT.js} +2 -2
  36. package/dist/chunk-SGNJDRCT.js.map +1 -0
  37. package/dist/{chunk-W5ZEP3CI.mjs → chunk-SYMZPWZE.mjs} +2 -2
  38. package/dist/chunk-SYMZPWZE.mjs.map +1 -0
  39. package/dist/{chunk-KGDAENGD.js → chunk-YH5TIVK2.js} +28 -3
  40. package/dist/chunk-YH5TIVK2.js.map +1 -0
  41. package/dist/chunk-YNQ44U6D.mjs +184 -0
  42. package/dist/chunk-YNQ44U6D.mjs.map +1 -0
  43. package/dist/cli/index.js +8 -8
  44. package/dist/cli/index.mjs +8 -8
  45. package/dist/{create-G5MTGOOH.js → create-7K2CC4KQ.js} +11 -11
  46. package/dist/{create-G5MTGOOH.js.map → create-7K2CC4KQ.js.map} +1 -1
  47. package/dist/{create-QUZYBMQB.mjs → create-MK7NEGCM.mjs} +8 -8
  48. package/dist/implementation-C4lvooSg.d.mts +576 -0
  49. package/dist/implementation-CzemP9jY.d.ts +576 -0
  50. package/dist/index-DTEZr0Jn.d.mts +34 -0
  51. package/dist/index-DTEZr0Jn.d.ts +34 -0
  52. package/dist/index.d.mts +121 -47
  53. package/dist/index.d.ts +121 -47
  54. package/dist/index.js +16 -12
  55. package/dist/index.js.map +1 -1
  56. package/dist/index.mjs +27 -23
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/init-GDKJICSS.js +16 -0
  59. package/dist/{init-XU2JFY6N.js.map → init-GDKJICSS.js.map} +1 -1
  60. package/dist/{init-H67RW22E.mjs → init-RINSTP4L.mjs} +5 -5
  61. package/dist/{list-7NPSX2E4.mjs → list-7L23G5DY.mjs} +28 -16
  62. package/dist/list-7L23G5DY.mjs.map +1 -0
  63. package/dist/{list-ZXFLAF52.js → list-OLLQ7XKZ.js} +29 -17
  64. package/dist/list-OLLQ7XKZ.js.map +1 -0
  65. package/dist/{login-EK4WVOI2.mjs → login-RCNKL5AM.mjs} +6 -5
  66. package/dist/login-RCNKL5AM.mjs.map +1 -0
  67. package/dist/{login-76NQIHKR.js → login-XF3BQQPV.js} +7 -6
  68. package/dist/login-XF3BQQPV.js.map +1 -0
  69. package/dist/observability-sdk/index.d.mts +134 -0
  70. package/dist/observability-sdk/index.d.ts +134 -0
  71. package/dist/observability-sdk/index.js +41 -0
  72. package/dist/observability-sdk/index.js.map +1 -0
  73. package/dist/observability-sdk/index.mjs +41 -0
  74. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +69 -0
  75. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +69 -0
  76. package/dist/observability-sdk/instrumentation/langchain/index.js +518 -0
  77. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -0
  78. package/dist/observability-sdk/instrumentation/langchain/index.mjs +518 -0
  79. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -0
  80. package/dist/observability-sdk/setup/node/index.d.mts +368 -0
  81. package/dist/observability-sdk/setup/node/index.d.ts +368 -0
  82. package/dist/observability-sdk/setup/node/index.js +276 -0
  83. package/dist/observability-sdk/setup/node/index.js.map +1 -0
  84. package/dist/observability-sdk/setup/node/index.mjs +276 -0
  85. package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
  86. package/dist/{remove-SDJYEPAY.mjs → remove-3VLQNVHN.mjs} +11 -8
  87. package/dist/remove-3VLQNVHN.mjs.map +1 -0
  88. package/dist/{remove-XBNGIVMR.js → remove-L6JVJBWY.js} +18 -15
  89. package/dist/remove-L6JVJBWY.js.map +1 -0
  90. package/dist/{sync-ST2IWXSB.mjs → sync-DPMTUTVL.mjs} +39 -33
  91. package/dist/sync-DPMTUTVL.mjs.map +1 -0
  92. package/dist/{sync-EISKGPTL.js → sync-PSU3F5Z4.js} +52 -46
  93. package/dist/sync-PSU3F5Z4.js.map +1 -0
  94. package/dist/{prompt-D-jpMrLS.d.mts → types-1q5wIYP5.d.mts} +628 -14
  95. package/dist/{prompt-D-jpMrLS.d.ts → types-C9k5gGhU.d.ts} +628 -14
  96. package/dist/types-DRiQaKFG.d.mts +254 -0
  97. package/dist/types-DRiQaKFG.d.ts +254 -0
  98. package/dist/types-Dmazk5Bk.d.mts +44 -0
  99. package/dist/types-Dmazk5Bk.d.ts +44 -0
  100. package/package.json +39 -39
  101. package/dist/add-LBBS4I3H.js.map +0 -1
  102. package/dist/add-RD3ZKFAT.mjs.map +0 -1
  103. package/dist/chunk-2JU376G7.js.map +0 -1
  104. package/dist/chunk-2ODBGSBI.js +0 -4
  105. package/dist/chunk-2ODBGSBI.js.map +0 -1
  106. package/dist/chunk-3GKPQB4R.mjs.map +0 -1
  107. package/dist/chunk-52GXX3MA.js +0 -426
  108. package/dist/chunk-52GXX3MA.js.map +0 -1
  109. package/dist/chunk-5NC5ILKA.js +0 -94
  110. package/dist/chunk-5NC5ILKA.js.map +0 -1
  111. package/dist/chunk-AAROJADR.mjs +0 -49
  112. package/dist/chunk-AAROJADR.mjs.map +0 -1
  113. package/dist/chunk-DTEKFQ4U.js +0 -159
  114. package/dist/chunk-DTEKFQ4U.js.map +0 -1
  115. package/dist/chunk-F63YKTXA.mjs +0 -47
  116. package/dist/chunk-F63YKTXA.mjs.map +0 -1
  117. package/dist/chunk-FJLK5CFL.js.map +0 -1
  118. package/dist/chunk-GJSEBQXF.mjs +0 -392
  119. package/dist/chunk-GJSEBQXF.mjs.map +0 -1
  120. package/dist/chunk-IGHXIIIK.js +0 -49
  121. package/dist/chunk-IGHXIIIK.js.map +0 -1
  122. package/dist/chunk-J7ICRUU4.mjs +0 -426
  123. package/dist/chunk-J7ICRUU4.mjs.map +0 -1
  124. package/dist/chunk-KGDAENGD.js.map +0 -1
  125. package/dist/chunk-LD74LVRU.js +0 -47
  126. package/dist/chunk-LD74LVRU.js.map +0 -1
  127. package/dist/chunk-PCQVQ7SB.js +0 -45
  128. package/dist/chunk-PCQVQ7SB.js.map +0 -1
  129. package/dist/chunk-PR3JDWC3.mjs.map +0 -1
  130. package/dist/chunk-PWZBLTHR.js +0 -118
  131. package/dist/chunk-PWZBLTHR.js.map +0 -1
  132. package/dist/chunk-QEWDG5QE.mjs +0 -45
  133. package/dist/chunk-QEWDG5QE.mjs.map +0 -1
  134. package/dist/chunk-SMXXAVMB.js.map +0 -1
  135. package/dist/chunk-STV4ZVNA.mjs +0 -118
  136. package/dist/chunk-STV4ZVNA.mjs.map +0 -1
  137. package/dist/chunk-T5AZMMVS.mjs +0 -94
  138. package/dist/chunk-T5AZMMVS.mjs.map +0 -1
  139. package/dist/chunk-UU33HCCZ.mjs +0 -159
  140. package/dist/chunk-UU33HCCZ.mjs.map +0 -1
  141. package/dist/chunk-VGHLQXKB.js +0 -392
  142. package/dist/chunk-VGHLQXKB.js.map +0 -1
  143. package/dist/chunk-W5ZEP3CI.mjs.map +0 -1
  144. package/dist/chunk-Y666BJA5.mjs +0 -4
  145. package/dist/chunk-YN4436PK.mjs.map +0 -1
  146. package/dist/client-B2HqIKg6.d.ts +0 -51
  147. package/dist/client-XyCqclCi.d.mts +0 -51
  148. package/dist/client-browser.d.mts +0 -8
  149. package/dist/client-browser.d.ts +0 -8
  150. package/dist/client-browser.js +0 -88
  151. package/dist/client-browser.js.map +0 -1
  152. package/dist/client-browser.mjs +0 -88
  153. package/dist/client-browser.mjs.map +0 -1
  154. package/dist/client-node.d.mts +0 -8
  155. package/dist/client-node.d.ts +0 -8
  156. package/dist/client-node.js +0 -95
  157. package/dist/client-node.js.map +0 -1
  158. package/dist/client-node.mjs +0 -95
  159. package/dist/client-node.mjs.map +0 -1
  160. package/dist/evaluation/index.d.mts +0 -897
  161. package/dist/evaluation/index.d.ts +0 -897
  162. package/dist/evaluation/index.js +0 -14
  163. package/dist/evaluation/index.js.map +0 -1
  164. package/dist/evaluation/index.mjs +0 -14
  165. package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +0 -64
  166. package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +0 -64
  167. package/dist/init-XU2JFY6N.js +0 -16
  168. package/dist/list-7NPSX2E4.mjs.map +0 -1
  169. package/dist/list-ZXFLAF52.js.map +0 -1
  170. package/dist/login-76NQIHKR.js.map +0 -1
  171. package/dist/login-EK4WVOI2.mjs.map +0 -1
  172. package/dist/observability/index.d.mts +0 -260
  173. package/dist/observability/index.d.ts +0 -260
  174. package/dist/observability/index.js +0 -21
  175. package/dist/observability/index.js.map +0 -1
  176. package/dist/observability/index.mjs +0 -21
  177. package/dist/observability/index.mjs.map +0 -1
  178. package/dist/observability/instrumentation/langchain/index.d.mts +0 -40
  179. package/dist/observability/instrumentation/langchain/index.d.ts +0 -40
  180. package/dist/observability/instrumentation/langchain/index.js +0 -668
  181. package/dist/observability/instrumentation/langchain/index.js.map +0 -1
  182. package/dist/observability/instrumentation/langchain/index.mjs +0 -668
  183. package/dist/observability/instrumentation/langchain/index.mjs.map +0 -1
  184. package/dist/prompt/index.d.mts +0 -10
  185. package/dist/prompt/index.d.ts +0 -10
  186. package/dist/prompt/index.js +0 -22
  187. package/dist/prompt/index.js.map +0 -1
  188. package/dist/prompt/index.mjs +0 -22
  189. package/dist/prompt/index.mjs.map +0 -1
  190. package/dist/record-evaluation-CmxMXa-3.d.mts +0 -25
  191. package/dist/record-evaluation-CmxMXa-3.d.ts +0 -25
  192. package/dist/remove-SDJYEPAY.mjs.map +0 -1
  193. package/dist/remove-XBNGIVMR.js.map +0 -1
  194. package/dist/sync-EISKGPTL.js.map +0 -1
  195. package/dist/sync-ST2IWXSB.mjs.map +0 -1
  196. package/dist/trace-CqaKo0kZ.d.ts +0 -622
  197. package/dist/trace-DtVc5GhF.d.mts +0 -622
  198. /package/dist/{chunk-Y666BJA5.mjs.map → chunk-CU3443HD.mjs.map} +0 -0
  199. /package/dist/{chunk-E7UE2MPD.mjs.map → chunk-ECUXLXFT.mjs.map} +0 -0
  200. /package/dist/{create-QUZYBMQB.mjs.map → create-MK7NEGCM.mjs.map} +0 -0
  201. /package/dist/{init-H67RW22E.mjs.map → init-RINSTP4L.mjs.map} +0 -0
  202. /package/dist/{evaluation → observability-sdk}/index.mjs.map +0 -0
@@ -3,11 +3,16 @@
3
3
  var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
+ var _chunk5EVBOHJYjs = require('./chunk-5EVBOHJY.js');
6
7
 
7
- var _chunkVGHLQXKBjs = require('./chunk-VGHLQXKB.js');
8
- require('./chunk-SMXXAVMB.js');
9
- require('./chunk-PCQVQ7SB.js');
10
- require('./chunk-FJLK5CFL.js');
8
+
9
+ var _chunk4ZSSHX6Fjs = require('./chunk-4ZSSHX6F.js');
10
+ require('./chunk-YH5TIVK2.js');
11
+ require('./chunk-M4VUHTT2.js');
12
+ require('./chunk-OUCVXP4G.js');
13
+ require('./chunk-DISMHYXC.js');
14
+ require('./chunk-SGNJDRCT.js');
15
+ require('./chunk-OXBO24RB.js');
11
16
 
12
17
  // src/cli/commands/list.ts
13
18
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -24,7 +29,10 @@ var formatTable = (data, headers) => {
24
29
  headers.forEach((header) => {
25
30
  colWidths[header] = Math.max(
26
31
  header.length,
27
- ...data.map((row) => stripAnsi(row[header] || "").length)
32
+ ...data.map((row) => {
33
+ var _a;
34
+ return stripAnsi((_a = row[header]) != null ? _a : "").length;
35
+ })
28
36
  );
29
37
  });
30
38
  const headerRow = headers.map((header) => _chalk2.default.bold(header.padEnd(colWidths[header]))).join(" ");
@@ -33,7 +41,8 @@ var formatTable = (data, headers) => {
33
41
  console.log(_chalk2.default.gray(separator));
34
42
  data.forEach((row) => {
35
43
  const dataRow = headers.map((header) => {
36
- const value = row[header] || "";
44
+ var _a;
45
+ const value = (_a = row[header]) != null ? _a : "";
37
46
  const strippedLength = stripAnsi(value).length;
38
47
  const paddingNeeded = colWidths[header] - strippedLength;
39
48
  const paddedValue = value + " ".repeat(Math.max(0, paddingNeeded));
@@ -70,10 +79,10 @@ var formatRelativeTime = (dateString) => {
70
79
  var listCommand = async () => {
71
80
  try {
72
81
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
73
- const promptService = _chunkVGHLQXKBjs.PromptService.getInstance();
82
+ const langwatch = new (0, _chunk5EVBOHJYjs.LangWatch)();
74
83
  const spinner = _ora2.default.call(void 0, "Fetching prompts from server...").start();
75
84
  try {
76
- const allPrompts = await promptService.getAll();
85
+ const allPrompts = await langwatch.prompts.getAll();
77
86
  const prompts = allPrompts.filter((prompt) => prompt.version);
78
87
  const draftPrompts = allPrompts.filter((prompt) => !prompt.version);
79
88
  spinner.succeed(
@@ -89,12 +98,15 @@ var listCommand = async () => {
89
98
  return;
90
99
  }
91
100
  console.log();
92
- const tableData = prompts.map((prompt) => ({
93
- Name: prompt.handle || `${prompt.name} ` + _chalk2.default.gray(`(${prompt.id})`),
94
- Version: prompt.version ? `${prompt.version}` : "N/A",
95
- Model: prompt.model || "N/A",
96
- Updated: formatRelativeTime(prompt.updatedAt)
97
- }));
101
+ const tableData = prompts.map((prompt) => {
102
+ var _a, _b;
103
+ return {
104
+ Name: (_a = prompt.handle) != null ? _a : `${prompt.name} ` + _chalk2.default.gray(`(${prompt.id})`),
105
+ Version: prompt.version ? `${prompt.version}` : "N/A",
106
+ Model: (_b = prompt.model) != null ? _b : "N/A",
107
+ Updated: formatRelativeTime(prompt.updatedAt)
108
+ };
109
+ });
98
110
  formatTable(tableData, ["Name", "Version", "Model", "Updated"]);
99
111
  console.log();
100
112
  console.log(
@@ -106,7 +118,7 @@ var listCommand = async () => {
106
118
  );
107
119
  } catch (error) {
108
120
  spinner.fail();
109
- if (error instanceof _chunkVGHLQXKBjs.PromptsError) {
121
+ if (error instanceof _chunk4ZSSHX6Fjs.PromptsError) {
110
122
  console.error(_chalk2.default.red(`Error: ${error.message}`));
111
123
  } else {
112
124
  console.error(
@@ -118,7 +130,7 @@ var listCommand = async () => {
118
130
  process.exit(1);
119
131
  }
120
132
  } catch (error) {
121
- if (error instanceof _chunkVGHLQXKBjs.PromptsError) {
133
+ if (error instanceof _chunk4ZSSHX6Fjs.PromptsError) {
122
134
  console.error(_chalk2.default.red(`Error: ${error.message}`));
123
135
  } else {
124
136
  console.error(
@@ -133,4 +145,4 @@ var listCommand = async () => {
133
145
 
134
146
 
135
147
  exports.listCommand = listCommand;
136
- //# sourceMappingURL=list-ZXFLAF52.js.map
148
+ //# sourceMappingURL=list-OLLQ7XKZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-OLLQ7XKZ.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-OLLQ7XKZ.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { LangWatch } from \"@/client-sdk\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\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 LangWatch client\n const langwatch = new LangWatch();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await langwatch.prompts.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${prompts.length !== 1 ? \"s\" : \"\"} ` +\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,7 +1,4 @@
1
- import {
2
- getEndpoint
3
- } from "./chunk-QEWDG5QE.mjs";
4
- import "./chunk-YN4436PK.mjs";
1
+ import "./chunk-CU3443HD.mjs";
5
2
 
6
3
  // src/cli/commands/login.ts
7
4
  import * as fs from "fs";
@@ -9,6 +6,10 @@ import * as path from "path";
9
6
  import chalk from "chalk";
10
7
  import ora from "ora";
11
8
  import prompts from "prompts";
9
+ var getEndpoint = () => {
10
+ var _a;
11
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : "https://app.langwatch.ai";
12
+ };
12
13
  var updateEnvFile = (apiKey) => {
13
14
  const envPath = path.join(process.cwd(), ".env");
14
15
  if (!fs.existsSync(envPath)) {
@@ -107,4 +108,4 @@ var loginCommand = async () => {
107
108
  export {
108
109
  loginCommand
109
110
  };
110
- //# sourceMappingURL=login-EK4WVOI2.mjs.map
111
+ //# sourceMappingURL=login-RCNKL5AM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/login.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\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 (error) {\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"],"mappings":"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","names":[]}
@@ -1,7 +1,4 @@
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
-
3
- var _chunkPCQVQ7SBjs = require('./chunk-PCQVQ7SB.js');
4
- require('./chunk-FJLK5CFL.js');
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 }; }require('./chunk-OXBO24RB.js');
5
2
 
6
3
  // src/cli/commands/login.ts
7
4
  var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
@@ -9,6 +6,10 @@ var _path = require('path'); var path = _interopRequireWildcard(_path);
9
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
7
  var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
11
8
  var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
9
+ var getEndpoint = () => {
10
+ var _a;
11
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : "https://app.langwatch.ai";
12
+ };
12
13
  var updateEnvFile = (apiKey) => {
13
14
  const envPath = path.join(process.cwd(), ".env");
14
15
  if (!fs.existsSync(envPath)) {
@@ -45,7 +46,7 @@ var loginCommand = async () => {
45
46
  )
46
47
  );
47
48
  console.log();
48
- const endpoint = _chunkPCQVQ7SBjs.getEndpoint.call(void 0, );
49
+ const endpoint = getEndpoint();
49
50
  const authUrl = `${endpoint}/authorize`;
50
51
  console.log(_chalk2.default.cyan(`Opening: ${authUrl}`));
51
52
  const spinner = _ora2.default.call(void 0, "Opening browser...").start();
@@ -107,4 +108,4 @@ var loginCommand = async () => {
107
108
 
108
109
 
109
110
  exports.loginCommand = loginCommand;
110
- //# sourceMappingURL=login-76NQIHKR.js.map
111
+ //# sourceMappingURL=login-XF3BQQPV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XF3BQQPV.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,0dAA4B;AAC5B;AACA;ACFA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AACpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AALlC,EAAA,IAAA,EAAA;AAME,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,0BAAA;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;AAClB,IAAA;AACD,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;AD1ByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XF3BQQPV.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\";\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\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 (error) {\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"]}
@@ -0,0 +1,134 @@
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-C4lvooSg.mjs';
2
+ import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
3
+ import { a as DataCaptureMode } from '../types-Dmazk5Bk.mjs';
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-1q5wIYP5.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-1q5wIYP5.mjs';
7
+ import { Span } from '@opentelemetry/api';
8
+ export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.mjs';
9
+ import '@opentelemetry/sdk-trace-base';
10
+ import '@opentelemetry/exporter-trace-otlp-http';
11
+ import '@opentelemetry/api-logs';
12
+ import '@opentelemetry/semantic-conventions';
13
+ import '@opentelemetry/semantic-conventions/incubating';
14
+
15
+ interface LangWatchLogsExporterOptions {
16
+ endpoint?: string;
17
+ apiKey?: string;
18
+ }
19
+ /**
20
+ * LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter
21
+ * to send logs to LangWatch with proper authentication and metadata headers.
22
+ *
23
+ * This exporter automatically configures:
24
+ * - Authorization headers using the provided API key or environment variables/fallback
25
+ * - SDK version and language identification headers
26
+ * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { LangWatchLogsExporter } from '@langwatch/observability';
31
+ *
32
+ * // Using environment variables/fallback configuration
33
+ * const exporter = new LangWatchLogsExporter();
34
+ *
35
+ * // Using custom options
36
+ * const exporter = new LangWatchLogsExporter({
37
+ * apiKey: 'your-api-key',
38
+ * endpoint: 'https://custom.langwatch.com'
39
+ * });
40
+ * ```
41
+ */
42
+ declare class LangWatchLogsExporter extends OTLPLogExporter {
43
+ /**
44
+ * Creates a new LangWatchLogsExporter instance.
45
+ *
46
+ * @param opts - Optional configuration options for the exporter.
47
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
48
+ * will use environment variables or fallback configuration.
49
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
50
+ * If not provided, will use environment variables or fallback configuration.
51
+ */
52
+ constructor(opts?: LangWatchLogsExporterOptions);
53
+ }
54
+
55
+ /**
56
+ * Predefined data capture configurations for common use cases.
57
+ */
58
+ declare const DataCapturePresets: {
59
+ /**
60
+ * Capture both input and output - useful for development and debugging.
61
+ */
62
+ readonly CAPTURE_ALL: DataCaptureMode;
63
+ /**
64
+ * Capture nothing - useful for high-security environments.
65
+ */
66
+ readonly CAPTURE_NONE: DataCaptureMode;
67
+ /**
68
+ * Capture only inputs - useful when you want to see what's being sent.
69
+ */
70
+ readonly INPUT_ONLY: DataCaptureMode;
71
+ /**
72
+ * Capture only outputs - useful when you want to see responses.
73
+ */
74
+ readonly OUTPUT_ONLY: DataCaptureMode;
75
+ };
76
+
77
+ /**
78
+ * Creates a LangWatchSpan, which adds additional methods to an OpenTelemetry Span.
79
+ *
80
+ * @param span - The OpenTelemetry Span to add LangWatch methods to
81
+ * @returns A LangWatchSpan with additional methods for LLM/GenAI observability
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * import { createLangWatchSpan } from './span';
86
+ * const otelSpan = tracer.startSpan('llm-call');
87
+ * const span = createLangWatchSpan(otelSpan);
88
+ * span.setType('llm').setInput('Prompt').setOutput('Completion');
89
+ * ```
90
+ */
91
+ declare function createLangWatchSpan(span: Span): LangWatchSpan;
92
+
93
+ /**
94
+ * Determines the effective data capture mode.
95
+ *
96
+ * @returns The resolved {@link DataCaptureMode} ("all", "input", or "output").
97
+ *
98
+ * @remarks
99
+ * The mode is determined by the configuration, which can be a string, function, or object. Defaults to "all" if not specified.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const mode = getDataCaptureMode();
104
+ * ```
105
+ */
106
+ declare function getDataCaptureMode(): DataCaptureMode;
107
+ /**
108
+ * Determines if input data should be captured.
109
+ *
110
+ * @returns `true` if input should be captured, otherwise `false`.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * if (shouldCaptureInput()) {
115
+ * // Capture input
116
+ * }
117
+ * ```
118
+ */
119
+ declare function shouldCaptureInput(): boolean;
120
+ /**
121
+ * Determines if output data should be captured.
122
+ *
123
+ * @returns `true` if output should be captured, otherwise `false`.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * if (shouldCaptureOutput()) {
128
+ * // Capture output
129
+ * }
130
+ * ```
131
+ */
132
+ declare function shouldCaptureOutput(): boolean;
133
+
134
+ export { DataCaptureMode, DataCapturePresets, LangWatchLogsExporter, type LangWatchLogsExporterOptions, LangWatchSpan, createLangWatchSpan, getDataCaptureMode, shouldCaptureInput, shouldCaptureOutput };
@@ -0,0 +1,134 @@
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-CzemP9jY.js';
2
+ import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
3
+ import { a as DataCaptureMode } from '../types-Dmazk5Bk.js';
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-C9k5gGhU.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-C9k5gGhU.js';
7
+ import { Span } from '@opentelemetry/api';
8
+ export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.js';
9
+ import '@opentelemetry/sdk-trace-base';
10
+ import '@opentelemetry/exporter-trace-otlp-http';
11
+ import '@opentelemetry/api-logs';
12
+ import '@opentelemetry/semantic-conventions';
13
+ import '@opentelemetry/semantic-conventions/incubating';
14
+
15
+ interface LangWatchLogsExporterOptions {
16
+ endpoint?: string;
17
+ apiKey?: string;
18
+ }
19
+ /**
20
+ * LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter
21
+ * to send logs to LangWatch with proper authentication and metadata headers.
22
+ *
23
+ * This exporter automatically configures:
24
+ * - Authorization headers using the provided API key or environment variables/fallback
25
+ * - SDK version and language identification headers
26
+ * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { LangWatchLogsExporter } from '@langwatch/observability';
31
+ *
32
+ * // Using environment variables/fallback configuration
33
+ * const exporter = new LangWatchLogsExporter();
34
+ *
35
+ * // Using custom options
36
+ * const exporter = new LangWatchLogsExporter({
37
+ * apiKey: 'your-api-key',
38
+ * endpoint: 'https://custom.langwatch.com'
39
+ * });
40
+ * ```
41
+ */
42
+ declare class LangWatchLogsExporter extends OTLPLogExporter {
43
+ /**
44
+ * Creates a new LangWatchLogsExporter instance.
45
+ *
46
+ * @param opts - Optional configuration options for the exporter.
47
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
48
+ * will use environment variables or fallback configuration.
49
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
50
+ * If not provided, will use environment variables or fallback configuration.
51
+ */
52
+ constructor(opts?: LangWatchLogsExporterOptions);
53
+ }
54
+
55
+ /**
56
+ * Predefined data capture configurations for common use cases.
57
+ */
58
+ declare const DataCapturePresets: {
59
+ /**
60
+ * Capture both input and output - useful for development and debugging.
61
+ */
62
+ readonly CAPTURE_ALL: DataCaptureMode;
63
+ /**
64
+ * Capture nothing - useful for high-security environments.
65
+ */
66
+ readonly CAPTURE_NONE: DataCaptureMode;
67
+ /**
68
+ * Capture only inputs - useful when you want to see what's being sent.
69
+ */
70
+ readonly INPUT_ONLY: DataCaptureMode;
71
+ /**
72
+ * Capture only outputs - useful when you want to see responses.
73
+ */
74
+ readonly OUTPUT_ONLY: DataCaptureMode;
75
+ };
76
+
77
+ /**
78
+ * Creates a LangWatchSpan, which adds additional methods to an OpenTelemetry Span.
79
+ *
80
+ * @param span - The OpenTelemetry Span to add LangWatch methods to
81
+ * @returns A LangWatchSpan with additional methods for LLM/GenAI observability
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * import { createLangWatchSpan } from './span';
86
+ * const otelSpan = tracer.startSpan('llm-call');
87
+ * const span = createLangWatchSpan(otelSpan);
88
+ * span.setType('llm').setInput('Prompt').setOutput('Completion');
89
+ * ```
90
+ */
91
+ declare function createLangWatchSpan(span: Span): LangWatchSpan;
92
+
93
+ /**
94
+ * Determines the effective data capture mode.
95
+ *
96
+ * @returns The resolved {@link DataCaptureMode} ("all", "input", or "output").
97
+ *
98
+ * @remarks
99
+ * The mode is determined by the configuration, which can be a string, function, or object. Defaults to "all" if not specified.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const mode = getDataCaptureMode();
104
+ * ```
105
+ */
106
+ declare function getDataCaptureMode(): DataCaptureMode;
107
+ /**
108
+ * Determines if input data should be captured.
109
+ *
110
+ * @returns `true` if input should be captured, otherwise `false`.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * if (shouldCaptureInput()) {
115
+ * // Capture input
116
+ * }
117
+ * ```
118
+ */
119
+ declare function shouldCaptureInput(): boolean;
120
+ /**
121
+ * Determines if output data should be captured.
122
+ *
123
+ * @returns `true` if output should be captured, otherwise `false`.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * if (shouldCaptureOutput()) {
128
+ * // Capture output
129
+ * }
130
+ * ```
131
+ */
132
+ declare function shouldCaptureOutput(): boolean;
133
+
134
+ export { DataCaptureMode, DataCapturePresets, LangWatchLogsExporter, type LangWatchLogsExporterOptions, LangWatchSpan, createLangWatchSpan, getDataCaptureMode, shouldCaptureInput, shouldCaptureOutput };
@@ -0,0 +1,41 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkYH5TIVK2js = require('../chunk-YH5TIVK2.js');
5
+
6
+
7
+
8
+
9
+
10
+ var _chunkM4VUHTT2js = require('../chunk-M4VUHTT2.js');
11
+
12
+
13
+
14
+
15
+
16
+ var _chunkOUCVXP4Gjs = require('../chunk-OUCVXP4G.js');
17
+
18
+
19
+
20
+
21
+
22
+ var _chunkDISMHYXCjs = require('../chunk-DISMHYXC.js');
23
+ require('../chunk-OXBO24RB.js');
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ exports.DataCapturePresets = _chunkYH5TIVK2js.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkOUCVXP4Gjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkOUCVXP4Gjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkOUCVXP4Gjs.LangWatchTraceExporter; exports.attributes = _chunkDISMHYXCjs.attributes_exports; exports.createLangWatchSpan = _chunkM4VUHTT2js.createLangWatchSpan; exports.getDataCaptureMode = _chunkDISMHYXCjs.getDataCaptureMode; exports.getLangWatchLogger = _chunkOUCVXP4Gjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkOUCVXP4Gjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkM4VUHTT2js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkM4VUHTT2js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkDISMHYXCjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkDISMHYXCjs.shouldCaptureOutput; exports.spanTypes = _chunkM4VUHTT2js.spanTypes;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;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"}
@@ -0,0 +1,41 @@
1
+ import {
2
+ DataCapturePresets,
3
+ FilterableBatchSpanProcessor
4
+ } from "../chunk-N2V6J3U2.mjs";
5
+ import {
6
+ createLangWatchSpan,
7
+ getLangWatchTracer,
8
+ getLangWatchTracerFromProvider,
9
+ spanTypes
10
+ } from "../chunk-EJWJXTPU.mjs";
11
+ import {
12
+ LangWatchLogsExporter,
13
+ LangWatchTraceExporter,
14
+ getLangWatchLogger,
15
+ getLangWatchLoggerFromProvider
16
+ } from "../chunk-PGWR3OQY.mjs";
17
+ import {
18
+ attributes_exports,
19
+ getDataCaptureMode,
20
+ shouldCaptureInput,
21
+ shouldCaptureOutput
22
+ } from "../chunk-YNQ44U6D.mjs";
23
+ import "../chunk-CU3443HD.mjs";
24
+ export {
25
+ DataCapturePresets,
26
+ FilterableBatchSpanProcessor,
27
+ LangWatchTraceExporter as LangWatchExporter,
28
+ LangWatchLogsExporter,
29
+ LangWatchTraceExporter,
30
+ attributes_exports as attributes,
31
+ createLangWatchSpan,
32
+ getDataCaptureMode,
33
+ getLangWatchLogger,
34
+ getLangWatchLoggerFromProvider,
35
+ getLangWatchTracer,
36
+ getLangWatchTracerFromProvider,
37
+ shouldCaptureInput,
38
+ shouldCaptureOutput,
39
+ spanTypes
40
+ };
41
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,69 @@
1
+ import * as _opentelemetry_api from '@opentelemetry/api';
2
+ import { Attributes } from '@opentelemetry/api';
3
+ import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-1q5wIYP5.mjs';
4
+ import { AgentAction, AgentFinish } from '@langchain/core/agents';
5
+ import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
6
+ import { DocumentInterface } from '@langchain/core/documents';
7
+ import { Serialized } from '@langchain/core/load/serializable';
8
+ import { BaseMessage } from '@langchain/core/messages';
9
+ import { LLMResult } from '@langchain/core/outputs';
10
+ import { ChainValues } from '@langchain/core/utils/types';
11
+ import '../../../types-DRiQaKFG.mjs';
12
+ import '@opentelemetry/api-logs';
13
+ import '@opentelemetry/semantic-conventions';
14
+ import '@opentelemetry/semantic-conventions/incubating';
15
+
16
+ type RunKind = "llm" | "chat" | "chain" | "tool" | "retriever";
17
+ declare class LangWatchCallbackHandler extends BaseCallbackHandler {
18
+ name: string;
19
+ tracer: LangWatchTracer;
20
+ private spans;
21
+ private parentOf;
22
+ private skipped;
23
+ private seenStarts;
24
+ private startRunSpan;
25
+ private finishRun;
26
+ handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
27
+ handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
28
+ handleLLMEnd(response: LLMResult, runId: string, parentRunId?: string): Promise<void>;
29
+ handleLLMError(err: Error, runId: string, parentRunId?: string): Promise<void>;
30
+ handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, _runType?: string, name?: string): Promise<void>;
31
+ handleChainEnd(output: ChainValues, runId: string, parentRunId?: string): Promise<void>;
32
+ handleChainError(err: Error, runId: string, parentRunId?: string, tags?: string[], kwargs?: {
33
+ inputs?: Record<string, unknown> | undefined;
34
+ }): Promise<void>;
35
+ handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
36
+ handleToolEnd(output: string, runId: string, parentRunId?: string): Promise<void>;
37
+ handleToolError(err: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
38
+ handleRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
39
+ handleRetrieverEnd(documents: DocumentInterface<Record<string, any>>[], runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
40
+ handleRetrieverError(err: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
41
+ handleAgentAction(_action: AgentAction, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
42
+ handleAgentEnd(action: AgentFinish, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
43
+ }
44
+ declare function convertFromLangChainMessages(messages: BaseMessage[]): ChatMessage[];
45
+ declare function className(serialized?: Serialized): string;
46
+ declare function shorten(str: string, max?: number): string;
47
+ declare function previewInput(v: unknown): string | undefined;
48
+ declare function ctxSkip(serialized?: Serialized, tags?: string[]): boolean;
49
+ declare function wrapNonScalarValues(value: unknown): string | number | boolean | undefined;
50
+ declare function addLangChainEvent(span: LangWatchSpan, eventName: string, runId: string, parentRunId: string | undefined, tags?: string[], metadata?: Record<string, unknown>, attributes?: Attributes): void;
51
+ declare function setLangGraphAttributes(span: LangWatchSpan, metadata?: Record<string, unknown>): void;
52
+ declare function buildLangChainMetadataAttributes(metadata: Record<string, unknown>): {
53
+ [k: string]: string | number | boolean | undefined;
54
+ };
55
+ declare function applyGenAIAttrs(span: LangWatchSpan, metadata?: Record<string, unknown>, extraParams?: Record<string, unknown>): void;
56
+ declare function getResolvedParentContext(runId: string | undefined, spans: Record<string, LangWatchSpan | undefined>, parentOf: Record<string, string | undefined>): _opentelemetry_api.Context;
57
+ declare function deriveNameAndType(opts: {
58
+ runType: RunKind;
59
+ name?: string;
60
+ serialized?: Serialized;
61
+ metadata?: Record<string, unknown>;
62
+ tags?: string[];
63
+ inputs?: unknown;
64
+ }): {
65
+ name: string;
66
+ type: "llm" | "chain" | "tool" | "rag" | "component";
67
+ };
68
+
69
+ export { LangWatchCallbackHandler, addLangChainEvent, applyGenAIAttrs, buildLangChainMetadataAttributes, className, convertFromLangChainMessages, ctxSkip, deriveNameAndType, getResolvedParentContext, previewInput, setLangGraphAttributes, shorten, wrapNonScalarValues };