langwatch 0.3.2 → 0.4.1

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 (206) hide show
  1. package/dist/{add-LBBS4I3H.js → add-RGWB3264.js} +35 -28
  2. package/dist/add-RGWB3264.js.map +1 -0
  3. package/dist/{add-RD3ZKFAT.mjs → add-WLUMK5VQ.mjs} +23 -16
  4. package/dist/add-WLUMK5VQ.mjs.map +1 -0
  5. package/dist/chunk-4ILMGMAP.mjs +155 -0
  6. package/dist/chunk-4ILMGMAP.mjs.map +1 -0
  7. package/dist/chunk-4TF2O2TH.js +207 -0
  8. package/dist/chunk-4TF2O2TH.js.map +1 -0
  9. package/dist/chunk-5N5BUR2Z.js +636 -0
  10. package/dist/chunk-5N5BUR2Z.js.map +1 -0
  11. package/dist/chunk-AZELEDOV.js +155 -0
  12. package/dist/chunk-AZELEDOV.js.map +1 -0
  13. package/dist/{chunk-YN4436PK.mjs → chunk-CU3443HD.mjs} +14 -9
  14. package/dist/{chunk-2JU376G7.js → chunk-D2CSG4SJ.js} +4 -4
  15. package/dist/chunk-D2CSG4SJ.js.map +1 -0
  16. package/dist/chunk-DEVJ7BPE.js +63 -0
  17. package/dist/chunk-DEVJ7BPE.js.map +1 -0
  18. package/dist/chunk-DISMHYXC.js +184 -0
  19. package/dist/chunk-DISMHYXC.js.map +1 -0
  20. package/dist/{chunk-E7UE2MPD.mjs → chunk-ECUXLXFT.mjs} +2 -2
  21. package/dist/chunk-EJWJXTPU.mjs +626 -0
  22. package/dist/chunk-EJWJXTPU.mjs.map +1 -0
  23. package/dist/chunk-FQSWUK5N.mjs +63 -0
  24. package/dist/chunk-FQSWUK5N.mjs.map +1 -0
  25. package/dist/{chunk-3GKPQB4R.mjs → chunk-HUI45ULC.mjs} +4 -4
  26. package/dist/chunk-HUI45ULC.mjs.map +1 -0
  27. package/dist/chunk-IZ2U3ABC.mjs +636 -0
  28. package/dist/chunk-IZ2U3ABC.mjs.map +1 -0
  29. package/dist/{chunk-HJU67C7H.js → chunk-K64Y6YUG.js} +10 -10
  30. package/dist/{chunk-HJU67C7H.js.map → chunk-K64Y6YUG.js.map} +1 -1
  31. package/dist/chunk-M4VUHTT2.js +626 -0
  32. package/dist/chunk-M4VUHTT2.js.map +1 -0
  33. package/dist/{chunk-PR3JDWC3.mjs → chunk-N2V6J3U2.mjs} +28 -3
  34. package/dist/chunk-N2V6J3U2.mjs.map +1 -0
  35. package/dist/{chunk-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
  36. package/dist/chunk-OXBO24RB.js.map +1 -0
  37. package/dist/{chunk-SMXXAVMB.js → chunk-SGNJDRCT.js} +2 -2
  38. package/dist/chunk-SGNJDRCT.js.map +1 -0
  39. package/dist/{chunk-W5ZEP3CI.mjs → chunk-SYMZPWZE.mjs} +2 -2
  40. package/dist/chunk-SYMZPWZE.mjs.map +1 -0
  41. package/dist/{chunk-KGDAENGD.js → chunk-YH5TIVK2.js} +28 -3
  42. package/dist/chunk-YH5TIVK2.js.map +1 -0
  43. package/dist/chunk-YNQ44U6D.mjs +184 -0
  44. package/dist/chunk-YNQ44U6D.mjs.map +1 -0
  45. package/dist/chunk-ZJZ3MIWE.mjs +207 -0
  46. package/dist/chunk-ZJZ3MIWE.mjs.map +1 -0
  47. package/dist/cli/index.js +8 -8
  48. package/dist/cli/index.mjs +8 -8
  49. package/dist/{create-G5MTGOOH.js → create-7K2CC4KQ.js} +11 -11
  50. package/dist/{create-G5MTGOOH.js.map → create-7K2CC4KQ.js.map} +1 -1
  51. package/dist/{create-QUZYBMQB.mjs → create-MK7NEGCM.mjs} +8 -8
  52. package/dist/implementation-C4lvooSg.d.mts +576 -0
  53. package/dist/implementation-CzemP9jY.d.ts +576 -0
  54. package/dist/index-DTEZr0Jn.d.mts +34 -0
  55. package/dist/index-DTEZr0Jn.d.ts +34 -0
  56. package/dist/index.d.mts +121 -47
  57. package/dist/index.d.ts +121 -47
  58. package/dist/index.js +17 -12
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.mjs +28 -23
  61. package/dist/index.mjs.map +1 -1
  62. package/dist/init-GDKJICSS.js +16 -0
  63. package/dist/{init-XU2JFY6N.js.map → init-GDKJICSS.js.map} +1 -1
  64. package/dist/{init-H67RW22E.mjs → init-RINSTP4L.mjs} +5 -5
  65. package/dist/{list-ZXFLAF52.js → list-DBUK47MA.js} +30 -17
  66. package/dist/list-DBUK47MA.js.map +1 -0
  67. package/dist/{list-7NPSX2E4.mjs → list-ZOMRKOBV.mjs} +29 -16
  68. package/dist/list-ZOMRKOBV.mjs.map +1 -0
  69. package/dist/{login-76NQIHKR.js → login-A7LEPNBR.js} +8 -4
  70. package/dist/login-A7LEPNBR.js.map +1 -0
  71. package/dist/{login-EK4WVOI2.mjs → login-ULPHWIAX.mjs} +8 -4
  72. package/dist/login-ULPHWIAX.mjs.map +1 -0
  73. package/dist/observability-sdk/index.d.mts +134 -0
  74. package/dist/observability-sdk/index.d.ts +134 -0
  75. package/dist/observability-sdk/index.js +42 -0
  76. package/dist/observability-sdk/index.js.map +1 -0
  77. package/dist/observability-sdk/index.mjs +42 -0
  78. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +69 -0
  79. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +69 -0
  80. package/dist/observability-sdk/instrumentation/langchain/index.js +518 -0
  81. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -0
  82. package/dist/observability-sdk/instrumentation/langchain/index.mjs +518 -0
  83. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -0
  84. package/dist/observability-sdk/setup/node/index.d.mts +368 -0
  85. package/dist/observability-sdk/setup/node/index.d.ts +368 -0
  86. package/dist/observability-sdk/setup/node/index.js +279 -0
  87. package/dist/observability-sdk/setup/node/index.js.map +1 -0
  88. package/dist/observability-sdk/setup/node/index.mjs +279 -0
  89. package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
  90. package/dist/{remove-XBNGIVMR.js → remove-ODTJLFWR.js} +19 -15
  91. package/dist/remove-ODTJLFWR.js.map +1 -0
  92. package/dist/{remove-SDJYEPAY.mjs → remove-RAJBGHQQ.mjs} +12 -8
  93. package/dist/remove-RAJBGHQQ.mjs.map +1 -0
  94. package/dist/{sync-ST2IWXSB.mjs → sync-2IXPWN64.mjs} +40 -33
  95. package/dist/sync-2IXPWN64.mjs.map +1 -0
  96. package/dist/{sync-EISKGPTL.js → sync-PBOL5ODF.js} +53 -46
  97. package/dist/sync-PBOL5ODF.js.map +1 -0
  98. package/dist/{prompt-D-jpMrLS.d.mts → types-1q5wIYP5.d.mts} +628 -14
  99. package/dist/{prompt-D-jpMrLS.d.ts → types-C9k5gGhU.d.ts} +628 -14
  100. package/dist/types-DRiQaKFG.d.mts +254 -0
  101. package/dist/types-DRiQaKFG.d.ts +254 -0
  102. package/dist/types-Dmazk5Bk.d.mts +44 -0
  103. package/dist/types-Dmazk5Bk.d.ts +44 -0
  104. package/package.json +39 -39
  105. package/dist/add-LBBS4I3H.js.map +0 -1
  106. package/dist/add-RD3ZKFAT.mjs.map +0 -1
  107. package/dist/chunk-2JU376G7.js.map +0 -1
  108. package/dist/chunk-2ODBGSBI.js +0 -4
  109. package/dist/chunk-2ODBGSBI.js.map +0 -1
  110. package/dist/chunk-3GKPQB4R.mjs.map +0 -1
  111. package/dist/chunk-52GXX3MA.js +0 -426
  112. package/dist/chunk-52GXX3MA.js.map +0 -1
  113. package/dist/chunk-5NC5ILKA.js +0 -94
  114. package/dist/chunk-5NC5ILKA.js.map +0 -1
  115. package/dist/chunk-AAROJADR.mjs +0 -49
  116. package/dist/chunk-AAROJADR.mjs.map +0 -1
  117. package/dist/chunk-DTEKFQ4U.js +0 -159
  118. package/dist/chunk-DTEKFQ4U.js.map +0 -1
  119. package/dist/chunk-F63YKTXA.mjs +0 -47
  120. package/dist/chunk-F63YKTXA.mjs.map +0 -1
  121. package/dist/chunk-FJLK5CFL.js.map +0 -1
  122. package/dist/chunk-GJSEBQXF.mjs +0 -392
  123. package/dist/chunk-GJSEBQXF.mjs.map +0 -1
  124. package/dist/chunk-IGHXIIIK.js +0 -49
  125. package/dist/chunk-IGHXIIIK.js.map +0 -1
  126. package/dist/chunk-J7ICRUU4.mjs +0 -426
  127. package/dist/chunk-J7ICRUU4.mjs.map +0 -1
  128. package/dist/chunk-KGDAENGD.js.map +0 -1
  129. package/dist/chunk-LD74LVRU.js +0 -47
  130. package/dist/chunk-LD74LVRU.js.map +0 -1
  131. package/dist/chunk-PCQVQ7SB.js +0 -45
  132. package/dist/chunk-PCQVQ7SB.js.map +0 -1
  133. package/dist/chunk-PR3JDWC3.mjs.map +0 -1
  134. package/dist/chunk-PWZBLTHR.js +0 -118
  135. package/dist/chunk-PWZBLTHR.js.map +0 -1
  136. package/dist/chunk-QEWDG5QE.mjs +0 -45
  137. package/dist/chunk-QEWDG5QE.mjs.map +0 -1
  138. package/dist/chunk-SMXXAVMB.js.map +0 -1
  139. package/dist/chunk-STV4ZVNA.mjs +0 -118
  140. package/dist/chunk-STV4ZVNA.mjs.map +0 -1
  141. package/dist/chunk-T5AZMMVS.mjs +0 -94
  142. package/dist/chunk-T5AZMMVS.mjs.map +0 -1
  143. package/dist/chunk-UU33HCCZ.mjs +0 -159
  144. package/dist/chunk-UU33HCCZ.mjs.map +0 -1
  145. package/dist/chunk-VGHLQXKB.js +0 -392
  146. package/dist/chunk-VGHLQXKB.js.map +0 -1
  147. package/dist/chunk-W5ZEP3CI.mjs.map +0 -1
  148. package/dist/chunk-Y666BJA5.mjs +0 -4
  149. package/dist/chunk-YN4436PK.mjs.map +0 -1
  150. package/dist/client-B2HqIKg6.d.ts +0 -51
  151. package/dist/client-XyCqclCi.d.mts +0 -51
  152. package/dist/client-browser.d.mts +0 -8
  153. package/dist/client-browser.d.ts +0 -8
  154. package/dist/client-browser.js +0 -88
  155. package/dist/client-browser.js.map +0 -1
  156. package/dist/client-browser.mjs +0 -88
  157. package/dist/client-browser.mjs.map +0 -1
  158. package/dist/client-node.d.mts +0 -8
  159. package/dist/client-node.d.ts +0 -8
  160. package/dist/client-node.js +0 -95
  161. package/dist/client-node.js.map +0 -1
  162. package/dist/client-node.mjs +0 -95
  163. package/dist/client-node.mjs.map +0 -1
  164. package/dist/evaluation/index.d.mts +0 -897
  165. package/dist/evaluation/index.d.ts +0 -897
  166. package/dist/evaluation/index.js +0 -14
  167. package/dist/evaluation/index.js.map +0 -1
  168. package/dist/evaluation/index.mjs +0 -14
  169. package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +0 -64
  170. package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +0 -64
  171. package/dist/init-XU2JFY6N.js +0 -16
  172. package/dist/list-7NPSX2E4.mjs.map +0 -1
  173. package/dist/list-ZXFLAF52.js.map +0 -1
  174. package/dist/login-76NQIHKR.js.map +0 -1
  175. package/dist/login-EK4WVOI2.mjs.map +0 -1
  176. package/dist/observability/index.d.mts +0 -260
  177. package/dist/observability/index.d.ts +0 -260
  178. package/dist/observability/index.js +0 -21
  179. package/dist/observability/index.js.map +0 -1
  180. package/dist/observability/index.mjs +0 -21
  181. package/dist/observability/index.mjs.map +0 -1
  182. package/dist/observability/instrumentation/langchain/index.d.mts +0 -40
  183. package/dist/observability/instrumentation/langchain/index.d.ts +0 -40
  184. package/dist/observability/instrumentation/langchain/index.js +0 -668
  185. package/dist/observability/instrumentation/langchain/index.js.map +0 -1
  186. package/dist/observability/instrumentation/langchain/index.mjs +0 -668
  187. package/dist/observability/instrumentation/langchain/index.mjs.map +0 -1
  188. package/dist/prompt/index.d.mts +0 -10
  189. package/dist/prompt/index.d.ts +0 -10
  190. package/dist/prompt/index.js +0 -22
  191. package/dist/prompt/index.js.map +0 -1
  192. package/dist/prompt/index.mjs +0 -22
  193. package/dist/prompt/index.mjs.map +0 -1
  194. package/dist/record-evaluation-CmxMXa-3.d.mts +0 -25
  195. package/dist/record-evaluation-CmxMXa-3.d.ts +0 -25
  196. package/dist/remove-SDJYEPAY.mjs.map +0 -1
  197. package/dist/remove-XBNGIVMR.js.map +0 -1
  198. package/dist/sync-EISKGPTL.js.map +0 -1
  199. package/dist/sync-ST2IWXSB.mjs.map +0 -1
  200. package/dist/trace-CqaKo0kZ.d.ts +0 -622
  201. package/dist/trace-DtVc5GhF.d.mts +0 -622
  202. /package/dist/{chunk-Y666BJA5.mjs.map → chunk-CU3443HD.mjs.map} +0 -0
  203. /package/dist/{chunk-E7UE2MPD.mjs.map → chunk-ECUXLXFT.mjs.map} +0 -0
  204. /package/dist/{create-QUZYBMQB.mjs.map → create-MK7NEGCM.mjs.map} +0 -0
  205. /package/dist/{init-H67RW22E.mjs.map → init-RINSTP4L.mjs.map} +0 -0
  206. /package/dist/{evaluation → observability-sdk}/index.mjs.map +0 -0
@@ -2,12 +2,18 @@ import {
2
2
  checkApiKey
3
3
  } from "./chunk-DHJKJVY7.mjs";
4
4
  import {
5
- PromptService,
5
+ LangWatch
6
+ } from "./chunk-4ILMGMAP.mjs";
7
+ import {
6
8
  PromptsError
7
- } from "./chunk-GJSEBQXF.mjs";
8
- import "./chunk-W5ZEP3CI.mjs";
9
- import "./chunk-QEWDG5QE.mjs";
10
- import "./chunk-YN4436PK.mjs";
9
+ } from "./chunk-IZ2U3ABC.mjs";
10
+ import "./chunk-N2V6J3U2.mjs";
11
+ import "./chunk-EJWJXTPU.mjs";
12
+ import "./chunk-ZJZ3MIWE.mjs";
13
+ import "./chunk-FQSWUK5N.mjs";
14
+ import "./chunk-YNQ44U6D.mjs";
15
+ import "./chunk-SYMZPWZE.mjs";
16
+ import "./chunk-CU3443HD.mjs";
11
17
 
12
18
  // src/cli/commands/list.ts
13
19
  import chalk from "chalk";
@@ -24,7 +30,10 @@ var formatTable = (data, headers) => {
24
30
  headers.forEach((header) => {
25
31
  colWidths[header] = Math.max(
26
32
  header.length,
27
- ...data.map((row) => stripAnsi(row[header] || "").length)
33
+ ...data.map((row) => {
34
+ var _a;
35
+ return stripAnsi((_a = row[header]) != null ? _a : "").length;
36
+ })
28
37
  );
29
38
  });
30
39
  const headerRow = headers.map((header) => chalk.bold(header.padEnd(colWidths[header]))).join(" ");
@@ -33,7 +42,8 @@ var formatTable = (data, headers) => {
33
42
  console.log(chalk.gray(separator));
34
43
  data.forEach((row) => {
35
44
  const dataRow = headers.map((header) => {
36
- const value = row[header] || "";
45
+ var _a;
46
+ const value = (_a = row[header]) != null ? _a : "";
37
47
  const strippedLength = stripAnsi(value).length;
38
48
  const paddingNeeded = colWidths[header] - strippedLength;
39
49
  const paddedValue = value + " ".repeat(Math.max(0, paddingNeeded));
@@ -70,10 +80,10 @@ var formatRelativeTime = (dateString) => {
70
80
  var listCommand = async () => {
71
81
  try {
72
82
  checkApiKey();
73
- const promptService = PromptService.getInstance();
83
+ const langwatch = new LangWatch();
74
84
  const spinner = ora("Fetching prompts from server...").start();
75
85
  try {
76
- const allPrompts = await promptService.getAll();
86
+ const allPrompts = await langwatch.prompts.getAll();
77
87
  const prompts = allPrompts.filter((prompt) => prompt.version);
78
88
  const draftPrompts = allPrompts.filter((prompt) => !prompt.version);
79
89
  spinner.succeed(
@@ -89,12 +99,15 @@ var listCommand = async () => {
89
99
  return;
90
100
  }
91
101
  console.log();
92
- const tableData = prompts.map((prompt) => ({
93
- Name: prompt.handle || `${prompt.name} ` + chalk.gray(`(${prompt.id})`),
94
- Version: prompt.version ? `${prompt.version}` : "N/A",
95
- Model: prompt.model || "N/A",
96
- Updated: formatRelativeTime(prompt.updatedAt)
97
- }));
102
+ const tableData = prompts.map((prompt) => {
103
+ var _a, _b;
104
+ return {
105
+ Name: (_a = prompt.handle) != null ? _a : `${prompt.name} ` + chalk.gray(`(${prompt.id})`),
106
+ Version: prompt.version ? `${prompt.version}` : "N/A",
107
+ Model: (_b = prompt.model) != null ? _b : "N/A",
108
+ Updated: formatRelativeTime(prompt.updatedAt)
109
+ };
110
+ });
98
111
  formatTable(tableData, ["Name", "Version", "Model", "Updated"]);
99
112
  console.log();
100
113
  console.log(
@@ -133,4 +146,4 @@ var listCommand = async () => {
133
146
  export {
134
147
  listCommand
135
148
  };
136
- //# sourceMappingURL=list-7NPSX2E4.mjs.map
149
+ //# sourceMappingURL=list-ZOMRKOBV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/list.ts"],"sourcesContent":["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"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
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 _chunkPCQVQ7SBjs = require('./chunk-PCQVQ7SB.js');
4
- require('./chunk-FJLK5CFL.js');
3
+ var _chunkDEVJ7BPEjs = require('./chunk-DEVJ7BPE.js');
4
+ require('./chunk-OXBO24RB.js');
5
5
 
6
6
  // src/cli/commands/login.ts
7
7
  var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
@@ -9,6 +9,10 @@ var _path = require('path'); var path = _interopRequireWildcard(_path);
9
9
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
10
  var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
11
11
  var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
12
+ var getEndpoint = () => {
13
+ var _a;
14
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkDEVJ7BPEjs.DEFAULT_ENDPOINT;
15
+ };
12
16
  var updateEnvFile = (apiKey) => {
13
17
  const envPath = path.join(process.cwd(), ".env");
14
18
  if (!fs.existsSync(envPath)) {
@@ -45,7 +49,7 @@ var loginCommand = async () => {
45
49
  )
46
50
  );
47
51
  console.log();
48
- const endpoint = _chunkPCQVQ7SBjs.getEndpoint.call(void 0, );
52
+ const endpoint = getEndpoint();
49
53
  const authUrl = `${endpoint}/authorize`;
50
54
  console.log(_chalk2.default.cyan(`Opening: ${authUrl}`));
51
55
  const spinner = _ora2.default.call(void 0, "Opening browser...").start();
@@ -107,4 +111,4 @@ var loginCommand = async () => {
107
111
 
108
112
 
109
113
  exports.loginCommand = loginCommand;
110
- //# sourceMappingURL=login-76NQIHKR.js.map
114
+ //# sourceMappingURL=login-A7LEPNBR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-A7LEPNBR.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;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;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-A7LEPNBR.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 (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"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
- getEndpoint
3
- } from "./chunk-QEWDG5QE.mjs";
4
- import "./chunk-YN4436PK.mjs";
2
+ DEFAULT_ENDPOINT
3
+ } from "./chunk-FQSWUK5N.mjs";
4
+ import "./chunk-CU3443HD.mjs";
5
5
 
6
6
  // src/cli/commands/login.ts
7
7
  import * as fs from "fs";
@@ -9,6 +9,10 @@ import * as path from "path";
9
9
  import chalk from "chalk";
10
10
  import ora from "ora";
11
11
  import prompts from "prompts";
12
+ var getEndpoint = () => {
13
+ var _a;
14
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : DEFAULT_ENDPOINT;
15
+ };
12
16
  var updateEnvFile = (apiKey) => {
13
17
  const envPath = path.join(process.cwd(), ".env");
14
18
  if (!fs.existsSync(envPath)) {
@@ -107,4 +111,4 @@ var loginCommand = async () => {
107
111
  export {
108
112
  loginCommand
109
113
  };
110
- //# sourceMappingURL=login-EK4WVOI2.mjs.map
114
+ //# sourceMappingURL=login-ULPHWIAX.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\";\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 (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":[]}
@@ -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,42 @@
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 _chunk4TF2O2THjs = require('../chunk-4TF2O2TH.js');
17
+ require('../chunk-DEVJ7BPE.js');
18
+
19
+
20
+
21
+
22
+
23
+ var _chunkDISMHYXCjs = require('../chunk-DISMHYXC.js');
24
+ require('../chunk-OXBO24RB.js');
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ exports.DataCapturePresets = _chunkYH5TIVK2js.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunk4TF2O2THjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunk4TF2O2THjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunk4TF2O2THjs.LangWatchTraceExporter; exports.attributes = _chunkDISMHYXCjs.attributes_exports; exports.createLangWatchSpan = _chunkM4VUHTT2js.createLangWatchSpan; exports.getDataCaptureMode = _chunkDISMHYXCjs.getDataCaptureMode; exports.getLangWatchLogger = _chunk4TF2O2THjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunk4TF2O2THjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkM4VUHTT2js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkM4VUHTT2js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkDISMHYXCjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkDISMHYXCjs.shouldCaptureOutput; exports.spanTypes = _chunkM4VUHTT2js.spanTypes;
42
+ //# 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,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4hCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"}
@@ -0,0 +1,42 @@
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-ZJZ3MIWE.mjs";
17
+ import "../chunk-FQSWUK5N.mjs";
18
+ import {
19
+ attributes_exports,
20
+ getDataCaptureMode,
21
+ shouldCaptureInput,
22
+ shouldCaptureOutput
23
+ } from "../chunk-YNQ44U6D.mjs";
24
+ import "../chunk-CU3443HD.mjs";
25
+ export {
26
+ DataCapturePresets,
27
+ FilterableBatchSpanProcessor,
28
+ LangWatchTraceExporter as LangWatchExporter,
29
+ LangWatchLogsExporter,
30
+ LangWatchTraceExporter,
31
+ attributes_exports as attributes,
32
+ createLangWatchSpan,
33
+ getDataCaptureMode,
34
+ getLangWatchLogger,
35
+ getLangWatchLoggerFromProvider,
36
+ getLangWatchTracer,
37
+ getLangWatchTracerFromProvider,
38
+ shouldCaptureInput,
39
+ shouldCaptureOutput,
40
+ spanTypes
41
+ };
42
+ //# 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 };