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
@@ -0,0 +1,626 @@
1
+ import {
2
+ ATTR_LANGWATCH_INPUT,
3
+ ATTR_LANGWATCH_METRICS,
4
+ ATTR_LANGWATCH_OUTPUT,
5
+ ATTR_LANGWATCH_PROMPT_ID,
6
+ ATTR_LANGWATCH_PROMPT_SELECTED_ID,
7
+ ATTR_LANGWATCH_PROMPT_VERSION_ID,
8
+ ATTR_LANGWATCH_PROMPT_VERSION_NUMBER,
9
+ ATTR_LANGWATCH_RAG_CONTEXTS,
10
+ ATTR_LANGWATCH_SPAN_TYPE
11
+ } from "./chunk-YNQ44U6D.mjs";
12
+
13
+ // src/observability-sdk/span/types.ts
14
+ var INPUT_OUTPUT_TYPES = [
15
+ "text",
16
+ "raw",
17
+ "chat_messages",
18
+ "list",
19
+ "json",
20
+ "guardrail_result",
21
+ "evaluation_result"
22
+ ];
23
+ var spanTypes = [
24
+ "span",
25
+ "llm",
26
+ "chain",
27
+ "tool",
28
+ "agent",
29
+ "guardrail",
30
+ "evaluation",
31
+ "rag",
32
+ "prompt",
33
+ "workflow",
34
+ "component",
35
+ "module",
36
+ "server",
37
+ "client",
38
+ "producer",
39
+ "consumer",
40
+ "task",
41
+ "unknown"
42
+ ];
43
+
44
+ // src/internal/generated/types/tracer.generated.ts
45
+ import { z } from "zod";
46
+ var chatRoleSchema = z.union([
47
+ z.literal("system"),
48
+ z.literal("user"),
49
+ z.literal("assistant"),
50
+ z.literal("function"),
51
+ z.literal("tool"),
52
+ z.literal("unknown")
53
+ ]);
54
+ var functionCallSchema = z.object({
55
+ name: z.string().optional(),
56
+ arguments: z.string().optional()
57
+ });
58
+ var toolCallSchema = z.object({
59
+ id: z.string(),
60
+ type: z.string(),
61
+ function: functionCallSchema
62
+ });
63
+ var rAGChunkSchema = z.object({
64
+ document_id: z.string().optional().nullable(),
65
+ chunk_id: z.string().optional().nullable(),
66
+ content: z.union([z.string(), z.record(z.string(), z.any()), z.array(z.any())])
67
+ });
68
+ var chatRichContentSchema = z.union([
69
+ z.object({
70
+ type: z.literal("text"),
71
+ text: z.string().optional()
72
+ }),
73
+ z.object({
74
+ text: z.string()
75
+ }),
76
+ z.object({
77
+ type: z.literal("image_url"),
78
+ image_url: z.object({
79
+ url: z.string(),
80
+ detail: z.union([z.literal("auto"), z.literal("low"), z.literal("high")]).optional()
81
+ }).optional()
82
+ }),
83
+ z.object({
84
+ type: z.literal("tool_call"),
85
+ toolName: z.string().optional(),
86
+ toolCallId: z.string().optional(),
87
+ args: z.string().optional()
88
+ }),
89
+ z.object({
90
+ type: z.literal("tool_result"),
91
+ toolName: z.string().optional(),
92
+ toolCallId: z.string().optional(),
93
+ result: z.any().optional()
94
+ })
95
+ ]);
96
+ var chatMessageSchema = z.object({
97
+ role: chatRoleSchema.optional(),
98
+ content: z.union([z.string(), z.array(chatRichContentSchema)]).optional().nullable(),
99
+ function_call: functionCallSchema.optional().nullable(),
100
+ tool_calls: z.array(toolCallSchema).optional().nullable(),
101
+ tool_call_id: z.string().optional().nullable(),
102
+ name: z.string().optional().nullable()
103
+ });
104
+ var typedValueTextSchema = z.object({
105
+ type: z.literal("text"),
106
+ value: z.string()
107
+ });
108
+ var typedValueRawSchema = z.object({
109
+ type: z.literal("raw"),
110
+ value: z.string()
111
+ });
112
+ var jSONSerializableSchema = z.union([
113
+ z.string(),
114
+ z.number(),
115
+ z.boolean(),
116
+ z.record(z.string(), z.any()),
117
+ z.array(z.any())
118
+ ]).nullable();
119
+ var typedValueJsonSchema = z.object({
120
+ type: z.literal("json"),
121
+ value: jSONSerializableSchema
122
+ });
123
+ var moneySchema = z.object({
124
+ currency: z.string(),
125
+ amount: z.number()
126
+ });
127
+ var evaluationResultSchema = z.object({
128
+ status: z.union([
129
+ z.literal("processed"),
130
+ z.literal("skipped"),
131
+ z.literal("error")
132
+ ]),
133
+ passed: z.boolean().optional().nullable(),
134
+ score: z.number().optional().nullable(),
135
+ label: z.string().optional().nullable(),
136
+ details: z.string().optional().nullable(),
137
+ cost: moneySchema.optional().nullable()
138
+ });
139
+ var typedValueGuardrailResultSchema = z.object({
140
+ type: z.literal("guardrail_result"),
141
+ value: evaluationResultSchema
142
+ });
143
+ var typedValueEvaluationResultSchema = z.object({
144
+ type: z.literal("evaluation_result"),
145
+ value: evaluationResultSchema
146
+ });
147
+ var typedValueChatMessagesSchema = z.object({
148
+ type: z.literal("chat_messages"),
149
+ value: z.array(chatMessageSchema)
150
+ });
151
+ var spanInputOutputSchema = z.lazy(
152
+ () => z.union([
153
+ typedValueTextSchema,
154
+ typedValueChatMessagesSchema,
155
+ typedValueGuardrailResultSchema,
156
+ typedValueEvaluationResultSchema,
157
+ typedValueJsonSchema,
158
+ typedValueRawSchema,
159
+ z.object({
160
+ type: z.literal("list"),
161
+ value: z.array(spanInputOutputSchema)
162
+ })
163
+ ])
164
+ );
165
+ var errorCaptureSchema = z.object({
166
+ has_error: z.literal(true),
167
+ message: z.string(),
168
+ stacktrace: z.array(z.string())
169
+ });
170
+ var spanMetricsSchema = z.object({
171
+ prompt_tokens: z.number().optional().nullable(),
172
+ completion_tokens: z.number().optional().nullable(),
173
+ tokens_estimated: z.boolean().optional().nullable(),
174
+ cost: z.number().optional().nullable()
175
+ });
176
+ var spanTimestampsSchema = z.object({
177
+ ignore_timestamps_on_write: z.boolean().optional().nullable(),
178
+ started_at: z.number(),
179
+ first_token_at: z.number().optional().nullable(),
180
+ finished_at: z.number()
181
+ });
182
+ var spanTypesSchema = z.union([
183
+ z.literal("span"),
184
+ z.literal("llm"),
185
+ z.literal("chain"),
186
+ z.literal("tool"),
187
+ z.literal("agent"),
188
+ z.literal("rag"),
189
+ z.literal("guardrail"),
190
+ z.literal("evaluation"),
191
+ z.literal("workflow"),
192
+ z.literal("component"),
193
+ z.literal("module"),
194
+ z.literal("server"),
195
+ z.literal("client"),
196
+ z.literal("producer"),
197
+ z.literal("consumer"),
198
+ z.literal("task"),
199
+ z.literal("unknown")
200
+ ]);
201
+ var spanInputOutputValidatorSchema = spanInputOutputSchema.and(
202
+ z.object({
203
+ value: z.any()
204
+ })
205
+ );
206
+ var traceInputSchema = z.object({
207
+ value: z.string(),
208
+ satisfaction_score: z.number().optional()
209
+ });
210
+ var traceOutputSchema = z.object({
211
+ value: z.string()
212
+ });
213
+ var primitiveTypeSchema = z.union([z.string(), z.number(), z.boolean(), z.undefined()]).nullable();
214
+ var reservedTraceMetadataSchema = z.object({
215
+ thread_id: z.string().optional().nullable(),
216
+ user_id: z.string().optional().nullable(),
217
+ customer_id: z.string().optional().nullable(),
218
+ labels: z.array(z.string()).optional().nullable(),
219
+ topic_id: z.string().optional().nullable(),
220
+ subtopic_id: z.string().optional().nullable(),
221
+ sdk_name: z.string().optional().nullable(),
222
+ sdk_version: z.string().optional().nullable(),
223
+ sdk_language: z.string().optional().nullable(),
224
+ telemetry_sdk_language: z.string().optional().nullable(),
225
+ telemetry_sdk_name: z.string().optional().nullable(),
226
+ telemetry_sdk_version: z.string().optional().nullable(),
227
+ prompt_ids: z.array(z.string()).optional().nullable(),
228
+ prompt_version_ids: z.array(z.string()).optional().nullable()
229
+ });
230
+ var evaluationStatusSchema = z.union([
231
+ z.literal("scheduled"),
232
+ z.literal("in_progress"),
233
+ z.literal("error"),
234
+ z.literal("skipped"),
235
+ z.literal("processed")
236
+ ]);
237
+ var evaluationSchema = z.object({
238
+ evaluation_id: z.string(),
239
+ evaluator_id: z.string(),
240
+ span_id: z.string().optional().nullable(),
241
+ name: z.string(),
242
+ type: z.string().optional().nullable(),
243
+ is_guardrail: z.boolean().optional().nullable(),
244
+ status: evaluationStatusSchema,
245
+ passed: z.boolean().optional().nullable(),
246
+ score: z.number().optional().nullable(),
247
+ label: z.string().optional().nullable(),
248
+ details: z.string().optional().nullable(),
249
+ error: errorCaptureSchema.optional().nullable(),
250
+ retries: z.number().optional().nullable(),
251
+ timestamps: z.object({
252
+ ignore_timestamps_on_write: z.boolean().optional().nullable(),
253
+ inserted_at: z.number().optional().nullable(),
254
+ started_at: z.number().optional().nullable(),
255
+ finished_at: z.number().optional().nullable(),
256
+ updated_at: z.number().optional().nullable()
257
+ })
258
+ });
259
+ var rESTEvaluationSchema = evaluationSchema.omit({
260
+ evaluation_id: true,
261
+ evaluator_id: true,
262
+ status: true,
263
+ timestamps: true,
264
+ retries: true
265
+ }).and(
266
+ z.object({
267
+ evaluation_id: z.string().optional().nullable(),
268
+ evaluator_id: z.string().optional().nullable(),
269
+ status: z.union([
270
+ z.literal("processed"),
271
+ z.literal("skipped"),
272
+ z.literal("error")
273
+ ]).optional().nullable(),
274
+ timestamps: z.object({
275
+ started_at: z.number().optional().nullable(),
276
+ finished_at: z.number().optional().nullable()
277
+ }).optional().nullable()
278
+ })
279
+ );
280
+ var contextsSchema = z.object({
281
+ traceId: z.string(),
282
+ contexts: z.array(rAGChunkSchema)
283
+ });
284
+
285
+ // src/observability-sdk/span/implementation.ts
286
+ import semconv from "@opentelemetry/semantic-conventions/incubating";
287
+
288
+ // src/observability-sdk/span/input-output.ts
289
+ import { z as z2 } from "zod";
290
+ var simpleChatMessageSchema = z2.object({
291
+ role: z2.string(),
292
+ content: z2.union([z2.string(), z2.array(z2.any())]).nullable().optional()
293
+ });
294
+ var simpleChatMessageArraySchema = z2.array(simpleChatMessageSchema);
295
+ function createSafeFallbackValue(value) {
296
+ if (typeof value === "object" && value !== null) {
297
+ return `[${typeof value}]`;
298
+ }
299
+ return String(value);
300
+ }
301
+ function createSafeSpanInputOutput(type, value) {
302
+ const safeValue = createSafeFallbackValue(value);
303
+ return { type, value: safeValue };
304
+ }
305
+ function isString(value) {
306
+ return typeof value === "string";
307
+ }
308
+ function isObject(value) {
309
+ return typeof value === "object" && value !== null && !Array.isArray(value);
310
+ }
311
+ function isChatMessage(value) {
312
+ if (!isObject(value)) return false;
313
+ return typeof value.role === "string" && (typeof value.content === "string" || value.content === null || value.content === void 0);
314
+ }
315
+ function isChatMessageArray(value) {
316
+ return Array.isArray(value) && value.every(isChatMessage);
317
+ }
318
+ function processChatMessages(value) {
319
+ const messages = Array.isArray(value) ? value : [value];
320
+ const strictResult = z2.array(chatMessageSchema).safeParse(messages);
321
+ if (strictResult.success) {
322
+ return { type: "chat_messages", value: strictResult.data };
323
+ }
324
+ const simpleResult = simpleChatMessageArraySchema.safeParse(messages);
325
+ if (simpleResult.success) {
326
+ return { type: "chat_messages", value: simpleResult.data };
327
+ }
328
+ return createSafeSpanInputOutput("text", JSON.stringify(messages));
329
+ }
330
+ function convertToSpanInputOutput(value) {
331
+ try {
332
+ if (value === null || value === void 0) {
333
+ return spanInputOutputSchema.parse({ type: "json", value: null });
334
+ }
335
+ if (isString(value)) {
336
+ return spanInputOutputSchema.parse({ type: "text", value });
337
+ }
338
+ if (isChatMessage(value) || Array.isArray(value) && value.length > 0 && isChatMessageArray(value)) {
339
+ return processChatMessages(value);
340
+ }
341
+ if (Array.isArray(value)) {
342
+ return spanInputOutputSchema.parse({
343
+ type: "list",
344
+ value: value.map((item) => convertToSpanInputOutput(item))
345
+ });
346
+ }
347
+ if (isObject(value)) {
348
+ try {
349
+ return spanInputOutputSchema.parse({ type: "json", value });
350
+ } catch (e) {
351
+ return createSafeSpanInputOutput("text", value);
352
+ }
353
+ }
354
+ return createSafeSpanInputOutput("text", value);
355
+ } catch (e) {
356
+ return createSafeSpanInputOutput("text", value);
357
+ }
358
+ }
359
+ function isValidInputOutputType(type) {
360
+ return INPUT_OUTPUT_TYPES.includes(type);
361
+ }
362
+ function validateValueForInputOutputType(type, value) {
363
+ switch (type) {
364
+ case "chat_messages": {
365
+ const messages = Array.isArray(value) ? value : [value];
366
+ const strictResult = z2.array(chatMessageSchema).safeParse(messages);
367
+ if (strictResult.success) {
368
+ return strictResult.data;
369
+ }
370
+ const simpleResult = simpleChatMessageArraySchema.safeParse(messages);
371
+ if (simpleResult.success) {
372
+ return simpleResult.data;
373
+ }
374
+ return [{ role: "user", content: createSafeFallbackValue(value) }];
375
+ }
376
+ case "list": {
377
+ const listResult = z2.array(spanInputOutputSchema).safeParse(value);
378
+ return listResult.success ? listResult.data : [{ type: "text", value: createSafeFallbackValue(value) }];
379
+ }
380
+ case "json": {
381
+ try {
382
+ JSON.stringify(value);
383
+ return value;
384
+ } catch (e) {
385
+ return createSafeFallbackValue(value);
386
+ }
387
+ }
388
+ case "text":
389
+ case "raw": {
390
+ const stringResult = z2.string().safeParse(value);
391
+ return stringResult.success ? stringResult.data : createSafeFallbackValue(value);
392
+ }
393
+ case "guardrail_result":
394
+ case "evaluation_result": {
395
+ try {
396
+ JSON.stringify(value);
397
+ return value;
398
+ } catch (e) {
399
+ return createSafeFallbackValue(value);
400
+ }
401
+ }
402
+ default:
403
+ return value;
404
+ }
405
+ }
406
+ function processSpanInputOutput(typeOrValue, value) {
407
+ try {
408
+ if (typeof typeOrValue === "string" && value !== void 0) {
409
+ const type = isValidInputOutputType(typeOrValue) ? typeOrValue : "json";
410
+ const validatedValue = validateValueForInputOutputType(type, value);
411
+ const result = spanInputOutputSchema.safeParse({ type, value: validatedValue });
412
+ return result.success ? result.data : createSafeSpanInputOutput("raw", validatedValue);
413
+ }
414
+ return convertToSpanInputOutput(typeOrValue);
415
+ } catch (e) {
416
+ return createSafeSpanInputOutput("text", typeOrValue);
417
+ }
418
+ }
419
+
420
+ // src/observability-sdk/span/implementation.ts
421
+ var LangWatchSpanInternal = class {
422
+ constructor(span) {
423
+ this.span = span;
424
+ }
425
+ setAttributes(attributes) {
426
+ this.span.setAttributes(attributes);
427
+ return this;
428
+ }
429
+ setAttribute(key, value) {
430
+ this.span.setAttribute(key, value);
431
+ return this;
432
+ }
433
+ addEvent(name, attributes) {
434
+ this.span.addEvent(name, attributes);
435
+ return this;
436
+ }
437
+ recordException(exception) {
438
+ this.span.recordException(exception);
439
+ return this;
440
+ }
441
+ setStatus(status) {
442
+ this.span.setStatus(status);
443
+ return this;
444
+ }
445
+ updateName(name) {
446
+ this.span.updateName(name);
447
+ return this;
448
+ }
449
+ end(endTime) {
450
+ this.span.end(endTime);
451
+ }
452
+ isRecording() {
453
+ return this.span.isRecording();
454
+ }
455
+ spanContext() {
456
+ return this.span.spanContext();
457
+ }
458
+ addLink(link) {
459
+ this.span.addLink(link);
460
+ return this;
461
+ }
462
+ addLinks(links) {
463
+ this.span.addLinks(links);
464
+ return this;
465
+ }
466
+ setType(type) {
467
+ return this.setAttribute(ATTR_LANGWATCH_SPAN_TYPE, type);
468
+ }
469
+ setSelectedPrompt(prompt) {
470
+ return this.setAttributes({
471
+ [ATTR_LANGWATCH_PROMPT_SELECTED_ID]: prompt.id,
472
+ [ATTR_LANGWATCH_PROMPT_ID]: prompt.id,
473
+ [ATTR_LANGWATCH_PROMPT_VERSION_ID]: prompt.versionId,
474
+ [ATTR_LANGWATCH_PROMPT_VERSION_NUMBER]: prompt.version
475
+ });
476
+ }
477
+ setRequestModel(model) {
478
+ return this.setAttribute(semconv.ATTR_GEN_AI_REQUEST_MODEL, model);
479
+ }
480
+ setResponseModel(model) {
481
+ return this.setAttribute(semconv.ATTR_GEN_AI_RESPONSE_MODEL, model);
482
+ }
483
+ setRAGContexts(ragContexts) {
484
+ return this.setAttribute(
485
+ ATTR_LANGWATCH_RAG_CONTEXTS,
486
+ JSON.stringify({
487
+ type: "json",
488
+ value: ragContexts
489
+ })
490
+ );
491
+ }
492
+ setRAGContext(ragContext) {
493
+ return this.setRAGContexts([ragContext]);
494
+ }
495
+ setMetrics(metrics) {
496
+ return this.setAttribute(
497
+ ATTR_LANGWATCH_METRICS,
498
+ JSON.stringify({
499
+ type: "json",
500
+ value: metrics
501
+ })
502
+ );
503
+ }
504
+ setInput(typeOrInput, input) {
505
+ const spanInput = processSpanInputOutput(typeOrInput, input);
506
+ return this.setAttribute(
507
+ ATTR_LANGWATCH_INPUT,
508
+ JSON.stringify(spanInput)
509
+ );
510
+ }
511
+ setOutput(typeOrOutput, output) {
512
+ const spanOutput = processSpanInputOutput(typeOrOutput, output);
513
+ return this.setAttribute(
514
+ ATTR_LANGWATCH_OUTPUT,
515
+ JSON.stringify(spanOutput)
516
+ );
517
+ }
518
+ };
519
+ function createLangWatchSpan(span) {
520
+ return new LangWatchSpanInternal(span);
521
+ }
522
+
523
+ // src/observability-sdk/tracer/implementation.ts
524
+ import {
525
+ SpanStatusCode,
526
+ trace
527
+ } from "@opentelemetry/api";
528
+ function getLangWatchTracer(name, version) {
529
+ return getLangWatchTracerFromProvider(
530
+ trace.getTracerProvider(),
531
+ name,
532
+ version
533
+ );
534
+ }
535
+ function getLangWatchTracerFromProvider(tracerProvider, name, version) {
536
+ const tracer = tracerProvider.getTracer(name, version);
537
+ let proxyInstance;
538
+ const handler = {
539
+ get(target, prop) {
540
+ switch (prop) {
541
+ case "startActiveSpan":
542
+ return (...args) => {
543
+ const spanArgs = normalizeSpanArgs(args);
544
+ const wrappedFn = (span, ...cbArgs) => spanArgs.fn(createLangWatchSpan(span), ...cbArgs);
545
+ if (spanArgs.context !== void 0)
546
+ return target.startActiveSpan(spanArgs.name, spanArgs.options, spanArgs.context, wrappedFn);
547
+ if (spanArgs.options !== void 0)
548
+ return target.startActiveSpan(spanArgs.name, spanArgs.options, wrappedFn);
549
+ return target.startActiveSpan(spanArgs.name, wrappedFn);
550
+ };
551
+ case "withActiveSpan":
552
+ return (...args) => {
553
+ const spanArgs = normalizeSpanArgs(args);
554
+ const cb = (span) => {
555
+ var _a;
556
+ const wrappedSpan = createLangWatchSpan(span);
557
+ try {
558
+ const result = spanArgs.fn(wrappedSpan);
559
+ if (result && typeof result.then === "function") {
560
+ return result.then((result2) => {
561
+ wrappedSpan.setStatus({
562
+ code: SpanStatusCode.OK
563
+ });
564
+ return result2;
565
+ }).catch((err) => {
566
+ var _a2;
567
+ wrappedSpan.setStatus({
568
+ code: SpanStatusCode.ERROR,
569
+ message: (err == null ? void 0 : err.message) || String(err)
570
+ });
571
+ (_a2 = wrappedSpan.recordException) == null ? void 0 : _a2.call(wrappedSpan, err);
572
+ throw err;
573
+ }).finally(() => {
574
+ wrappedSpan.end();
575
+ });
576
+ }
577
+ wrappedSpan.setStatus({
578
+ code: SpanStatusCode.OK
579
+ });
580
+ wrappedSpan.end();
581
+ return result;
582
+ } catch (err) {
583
+ wrappedSpan.setStatus({
584
+ code: SpanStatusCode.ERROR,
585
+ message: (err == null ? void 0 : err.message) || String(err)
586
+ });
587
+ (_a = wrappedSpan.recordException) == null ? void 0 : _a.call(wrappedSpan, err);
588
+ wrappedSpan.end();
589
+ throw err;
590
+ }
591
+ };
592
+ if (spanArgs.context !== void 0)
593
+ return target.startActiveSpan(spanArgs.name, spanArgs.options, spanArgs.context, cb);
594
+ if (spanArgs.options !== void 0)
595
+ return target.startActiveSpan(spanArgs.name, spanArgs.options, cb);
596
+ return target.startActiveSpan(spanArgs.name, cb);
597
+ };
598
+ case "startSpan":
599
+ return (name2, options, context) => createLangWatchSpan(target.startSpan(name2, options, context));
600
+ default: {
601
+ const value = target[prop];
602
+ return typeof value === "function" ? value.bind(target) : value;
603
+ }
604
+ }
605
+ }
606
+ };
607
+ proxyInstance = new Proxy(tracer, handler);
608
+ return proxyInstance;
609
+ }
610
+ function normalizeSpanArgs(args) {
611
+ const [name, arg2, arg3, arg4] = args;
612
+ if (typeof arg4 === "function")
613
+ return { name, options: arg2, context: arg3, fn: arg4 };
614
+ if (typeof arg3 === "function") return { name, options: arg2, fn: arg3 };
615
+ if (typeof arg2 === "function") return { name, fn: arg2 };
616
+ throw new Error("Expected a span callback as the last argument");
617
+ }
618
+
619
+ export {
620
+ spanTypes,
621
+ chatMessageSchema,
622
+ createLangWatchSpan,
623
+ getLangWatchTracer,
624
+ getLangWatchTracerFromProvider
625
+ };
626
+ //# sourceMappingURL=chunk-EJWJXTPU.mjs.map