langwatch 0.3.1 → 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 (203) hide show
  1. package/README.md +5 -2
  2. package/dist/{add-LBBS4I3H.js → add-35QACTIV.js} +34 -28
  3. package/dist/add-35QACTIV.js.map +1 -0
  4. package/dist/{add-RD3ZKFAT.mjs → add-TRJAXM4D.mjs} +22 -16
  5. package/dist/add-TRJAXM4D.mjs.map +1 -0
  6. package/dist/chunk-4ZSSHX6F.js +636 -0
  7. package/dist/chunk-4ZSSHX6F.js.map +1 -0
  8. package/dist/chunk-5EVBOHJY.js +155 -0
  9. package/dist/chunk-5EVBOHJY.js.map +1 -0
  10. package/dist/{chunk-YN4436PK.mjs → chunk-CU3443HD.mjs} +14 -9
  11. package/dist/{chunk-2JU376G7.js → chunk-D2CSG4SJ.js} +4 -4
  12. package/dist/chunk-D2CSG4SJ.js.map +1 -0
  13. package/dist/chunk-DISMHYXC.js +184 -0
  14. package/dist/chunk-DISMHYXC.js.map +1 -0
  15. package/dist/{chunk-E7UE2MPD.mjs → chunk-ECUXLXFT.mjs} +2 -2
  16. package/dist/chunk-EJWJXTPU.mjs +626 -0
  17. package/dist/chunk-EJWJXTPU.mjs.map +1 -0
  18. package/dist/chunk-GQMDZ4GY.mjs +155 -0
  19. package/dist/chunk-GQMDZ4GY.mjs.map +1 -0
  20. package/dist/{chunk-3GKPQB4R.mjs → chunk-HUI45ULC.mjs} +4 -4
  21. package/dist/chunk-HUI45ULC.mjs.map +1 -0
  22. package/dist/{chunk-HJU67C7H.js → chunk-K64Y6YUG.js} +10 -10
  23. package/dist/{chunk-HJU67C7H.js.map → chunk-K64Y6YUG.js.map} +1 -1
  24. package/dist/chunk-LP76VXI3.mjs +636 -0
  25. package/dist/chunk-LP76VXI3.mjs.map +1 -0
  26. package/dist/chunk-M4VUHTT2.js +626 -0
  27. package/dist/chunk-M4VUHTT2.js.map +1 -0
  28. package/dist/{chunk-PR3JDWC3.mjs → chunk-N2V6J3U2.mjs} +28 -3
  29. package/dist/chunk-N2V6J3U2.mjs.map +1 -0
  30. package/dist/chunk-OUCVXP4G.js +258 -0
  31. package/dist/chunk-OUCVXP4G.js.map +1 -0
  32. package/dist/{chunk-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
  33. package/dist/chunk-OXBO24RB.js.map +1 -0
  34. package/dist/chunk-PGWR3OQY.mjs +258 -0
  35. package/dist/chunk-PGWR3OQY.mjs.map +1 -0
  36. package/dist/{chunk-SMXXAVMB.js → chunk-SGNJDRCT.js} +2 -2
  37. package/dist/chunk-SGNJDRCT.js.map +1 -0
  38. package/dist/{chunk-W5ZEP3CI.mjs → chunk-SYMZPWZE.mjs} +2 -2
  39. package/dist/chunk-SYMZPWZE.mjs.map +1 -0
  40. package/dist/{chunk-KGDAENGD.js → chunk-YH5TIVK2.js} +28 -3
  41. package/dist/chunk-YH5TIVK2.js.map +1 -0
  42. package/dist/chunk-YNQ44U6D.mjs +184 -0
  43. package/dist/chunk-YNQ44U6D.mjs.map +1 -0
  44. package/dist/cli/index.js +8 -8
  45. package/dist/cli/index.mjs +8 -8
  46. package/dist/{create-G5MTGOOH.js → create-7K2CC4KQ.js} +11 -11
  47. package/dist/{create-G5MTGOOH.js.map → create-7K2CC4KQ.js.map} +1 -1
  48. package/dist/{create-QUZYBMQB.mjs → create-MK7NEGCM.mjs} +8 -8
  49. package/dist/implementation-C4lvooSg.d.mts +576 -0
  50. package/dist/implementation-CzemP9jY.d.ts +576 -0
  51. package/dist/index-DTEZr0Jn.d.mts +34 -0
  52. package/dist/index-DTEZr0Jn.d.ts +34 -0
  53. package/dist/index.d.mts +122 -41
  54. package/dist/index.d.ts +122 -41
  55. package/dist/index.js +16 -12
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.mjs +27 -23
  58. package/dist/index.mjs.map +1 -1
  59. package/dist/init-GDKJICSS.js +16 -0
  60. package/dist/{init-XU2JFY6N.js.map → init-GDKJICSS.js.map} +1 -1
  61. package/dist/{init-H67RW22E.mjs → init-RINSTP4L.mjs} +5 -5
  62. package/dist/{list-7NPSX2E4.mjs → list-7L23G5DY.mjs} +28 -16
  63. package/dist/list-7L23G5DY.mjs.map +1 -0
  64. package/dist/{list-ZXFLAF52.js → list-OLLQ7XKZ.js} +29 -17
  65. package/dist/list-OLLQ7XKZ.js.map +1 -0
  66. package/dist/{login-EK4WVOI2.mjs → login-RCNKL5AM.mjs} +6 -5
  67. package/dist/login-RCNKL5AM.mjs.map +1 -0
  68. package/dist/{login-76NQIHKR.js → login-XF3BQQPV.js} +7 -6
  69. package/dist/login-XF3BQQPV.js.map +1 -0
  70. package/dist/observability-sdk/index.d.mts +134 -0
  71. package/dist/observability-sdk/index.d.ts +134 -0
  72. package/dist/observability-sdk/index.js +41 -0
  73. package/dist/observability-sdk/index.js.map +1 -0
  74. package/dist/observability-sdk/index.mjs +41 -0
  75. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +69 -0
  76. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +69 -0
  77. package/dist/observability-sdk/instrumentation/langchain/index.js +518 -0
  78. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -0
  79. package/dist/observability-sdk/instrumentation/langchain/index.mjs +518 -0
  80. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -0
  81. package/dist/observability-sdk/setup/node/index.d.mts +368 -0
  82. package/dist/observability-sdk/setup/node/index.d.ts +368 -0
  83. package/dist/observability-sdk/setup/node/index.js +276 -0
  84. package/dist/observability-sdk/setup/node/index.js.map +1 -0
  85. package/dist/observability-sdk/setup/node/index.mjs +276 -0
  86. package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
  87. package/dist/{remove-SDJYEPAY.mjs → remove-3VLQNVHN.mjs} +11 -8
  88. package/dist/remove-3VLQNVHN.mjs.map +1 -0
  89. package/dist/{remove-XBNGIVMR.js → remove-L6JVJBWY.js} +18 -15
  90. package/dist/remove-L6JVJBWY.js.map +1 -0
  91. package/dist/{sync-ST2IWXSB.mjs → sync-DPMTUTVL.mjs} +39 -33
  92. package/dist/sync-DPMTUTVL.mjs.map +1 -0
  93. package/dist/{sync-EISKGPTL.js → sync-PSU3F5Z4.js} +52 -46
  94. package/dist/sync-PSU3F5Z4.js.map +1 -0
  95. package/dist/{prompt-D-jpMrLS.d.mts → types-1q5wIYP5.d.mts} +628 -14
  96. package/dist/{prompt-D-jpMrLS.d.ts → types-C9k5gGhU.d.ts} +628 -14
  97. package/dist/types-DRiQaKFG.d.mts +254 -0
  98. package/dist/types-DRiQaKFG.d.ts +254 -0
  99. package/dist/types-Dmazk5Bk.d.mts +44 -0
  100. package/dist/types-Dmazk5Bk.d.ts +44 -0
  101. package/package.json +40 -40
  102. package/dist/add-LBBS4I3H.js.map +0 -1
  103. package/dist/add-RD3ZKFAT.mjs.map +0 -1
  104. package/dist/chunk-2JU376G7.js.map +0 -1
  105. package/dist/chunk-2ODBGSBI.js +0 -4
  106. package/dist/chunk-2ODBGSBI.js.map +0 -1
  107. package/dist/chunk-3GKPQB4R.mjs.map +0 -1
  108. package/dist/chunk-52GXX3MA.js +0 -426
  109. package/dist/chunk-52GXX3MA.js.map +0 -1
  110. package/dist/chunk-5NC5ILKA.js +0 -94
  111. package/dist/chunk-5NC5ILKA.js.map +0 -1
  112. package/dist/chunk-6I4EA43Y.js +0 -39
  113. package/dist/chunk-6I4EA43Y.js.map +0 -1
  114. package/dist/chunk-DTEKFQ4U.js +0 -159
  115. package/dist/chunk-DTEKFQ4U.js.map +0 -1
  116. package/dist/chunk-F63YKTXA.mjs +0 -47
  117. package/dist/chunk-F63YKTXA.mjs.map +0 -1
  118. package/dist/chunk-FJLK5CFL.js.map +0 -1
  119. package/dist/chunk-GJSEBQXF.mjs +0 -392
  120. package/dist/chunk-GJSEBQXF.mjs.map +0 -1
  121. package/dist/chunk-J7ICRUU4.mjs +0 -426
  122. package/dist/chunk-J7ICRUU4.mjs.map +0 -1
  123. package/dist/chunk-KGDAENGD.js.map +0 -1
  124. package/dist/chunk-LD74LVRU.js +0 -47
  125. package/dist/chunk-LD74LVRU.js.map +0 -1
  126. package/dist/chunk-PCQVQ7SB.js +0 -45
  127. package/dist/chunk-PCQVQ7SB.js.map +0 -1
  128. package/dist/chunk-PR3JDWC3.mjs.map +0 -1
  129. package/dist/chunk-PWZBLTHR.js +0 -118
  130. package/dist/chunk-PWZBLTHR.js.map +0 -1
  131. package/dist/chunk-QEWDG5QE.mjs +0 -45
  132. package/dist/chunk-QEWDG5QE.mjs.map +0 -1
  133. package/dist/chunk-SMXXAVMB.js.map +0 -1
  134. package/dist/chunk-STV4ZVNA.mjs +0 -118
  135. package/dist/chunk-STV4ZVNA.mjs.map +0 -1
  136. package/dist/chunk-T5AZMMVS.mjs +0 -94
  137. package/dist/chunk-T5AZMMVS.mjs.map +0 -1
  138. package/dist/chunk-UU33HCCZ.mjs +0 -159
  139. package/dist/chunk-UU33HCCZ.mjs.map +0 -1
  140. package/dist/chunk-VGHLQXKB.js +0 -392
  141. package/dist/chunk-VGHLQXKB.js.map +0 -1
  142. package/dist/chunk-W5ZEP3CI.mjs.map +0 -1
  143. package/dist/chunk-Y666BJA5.mjs +0 -4
  144. package/dist/chunk-YFUZF7JM.mjs +0 -39
  145. package/dist/chunk-YFUZF7JM.mjs.map +0 -1
  146. package/dist/chunk-YN4436PK.mjs.map +0 -1
  147. package/dist/client-B2HqIKg6.d.ts +0 -51
  148. package/dist/client-XyCqclCi.d.mts +0 -51
  149. package/dist/client-browser.d.mts +0 -8
  150. package/dist/client-browser.d.ts +0 -8
  151. package/dist/client-browser.js +0 -85
  152. package/dist/client-browser.js.map +0 -1
  153. package/dist/client-browser.mjs +0 -85
  154. package/dist/client-browser.mjs.map +0 -1
  155. package/dist/client-node.d.mts +0 -8
  156. package/dist/client-node.d.ts +0 -8
  157. package/dist/client-node.js +0 -92
  158. package/dist/client-node.js.map +0 -1
  159. package/dist/client-node.mjs +0 -92
  160. package/dist/client-node.mjs.map +0 -1
  161. package/dist/evaluation/index.d.mts +0 -897
  162. package/dist/evaluation/index.d.ts +0 -897
  163. package/dist/evaluation/index.js +0 -14
  164. package/dist/evaluation/index.js.map +0 -1
  165. package/dist/evaluation/index.mjs +0 -14
  166. package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +0 -64
  167. package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +0 -64
  168. package/dist/init-XU2JFY6N.js +0 -16
  169. package/dist/list-7NPSX2E4.mjs.map +0 -1
  170. package/dist/list-ZXFLAF52.js.map +0 -1
  171. package/dist/login-76NQIHKR.js.map +0 -1
  172. package/dist/login-EK4WVOI2.mjs.map +0 -1
  173. package/dist/observability/index.d.mts +0 -260
  174. package/dist/observability/index.d.ts +0 -260
  175. package/dist/observability/index.js +0 -21
  176. package/dist/observability/index.js.map +0 -1
  177. package/dist/observability/index.mjs +0 -21
  178. package/dist/observability/index.mjs.map +0 -1
  179. package/dist/observability/instrumentation/langchain/index.d.mts +0 -40
  180. package/dist/observability/instrumentation/langchain/index.d.ts +0 -40
  181. package/dist/observability/instrumentation/langchain/index.js +0 -668
  182. package/dist/observability/instrumentation/langchain/index.js.map +0 -1
  183. package/dist/observability/instrumentation/langchain/index.mjs +0 -668
  184. package/dist/observability/instrumentation/langchain/index.mjs.map +0 -1
  185. package/dist/prompt/index.d.mts +0 -10
  186. package/dist/prompt/index.d.ts +0 -10
  187. package/dist/prompt/index.js +0 -22
  188. package/dist/prompt/index.js.map +0 -1
  189. package/dist/prompt/index.mjs +0 -22
  190. package/dist/prompt/index.mjs.map +0 -1
  191. package/dist/record-evaluation-CmxMXa-3.d.mts +0 -25
  192. package/dist/record-evaluation-CmxMXa-3.d.ts +0 -25
  193. package/dist/remove-SDJYEPAY.mjs.map +0 -1
  194. package/dist/remove-XBNGIVMR.js.map +0 -1
  195. package/dist/sync-EISKGPTL.js.map +0 -1
  196. package/dist/sync-ST2IWXSB.mjs.map +0 -1
  197. package/dist/trace-CqaKo0kZ.d.ts +0 -622
  198. package/dist/trace-DtVc5GhF.d.mts +0 -622
  199. /package/dist/{chunk-Y666BJA5.mjs.map → chunk-CU3443HD.mjs.map} +0 -0
  200. /package/dist/{chunk-E7UE2MPD.mjs.map → chunk-ECUXLXFT.mjs.map} +0 -0
  201. /package/dist/{create-QUZYBMQB.mjs.map → create-MK7NEGCM.mjs.map} +0 -0
  202. /package/dist/{init-H67RW22E.mjs.map → init-RINSTP4L.mjs.map} +0 -0
  203. /package/dist/{evaluation → observability-sdk}/index.mjs.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/instrumentation/langchain/index.js","../../../../src/observability/instrumentation/langchain/index.ts","../../../../src/internal/generated/types/tracer.generated.ts"],"names":["content"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/instrumentation/langchain/index.js","sourcesContent":[null,"import type { AgentAction, AgentFinish } from \"@langchain/core/agents\";\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\nimport { type DocumentInterface } from \"@langchain/core/documents\";\nimport type { Serialized } from \"@langchain/core/load/serializable\";\nimport {\n AIMessage,\n AIMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n mapChatMessagesToStoredMessages,\n type BaseMessage,\n type StoredMessage,\n} from \"@langchain/core/messages\";\nimport type { ChatGeneration, LLMResult } from \"@langchain/core/outputs\";\nimport type { ChainValues } from \"@langchain/core/utils/types\";\nimport { getLangWatchTracer } from \"../../trace\";\nimport type { LangWatchSpan } from \"../../span\";\nimport { context, trace, SpanStatusCode, Attributes } from \"@opentelemetry/api\";\nimport { chatMessageSchema } from \"../../../internal/generated/types/tracer.generated\";\nimport {\n canAutomaticallyCaptureInput,\n canAutomaticallyCaptureOutput,\n} from \"../../../client\";\nimport * as intSemconv from \"../../semconv\";\nimport { z } from \"zod\";\n\nexport class LangWatchCallbackHandler extends BaseCallbackHandler {\n name = \"LangWatchCallbackHandler\";\n tracer = getLangWatchTracer(\"langwatch.instrumentation.langchain\");\n spans: Record<string, LangWatchSpan | undefined> = {};\n\n constructor() {\n super();\n }\n\n private getParentContext(parentRunId?: string): any {\n if (parentRunId && this.spans[parentRunId]) {\n return trace.setSpan(context.active(), this.spans[parentRunId]);\n }\n\n return context.active();\n }\n\n private getSpan(runId: string): LangWatchSpan | undefined {\n return this.spans[runId];\n }\n\n async handleLLMStart(\n llm: Serialized,\n prompts: string[],\n runId: string,\n parentRunId?: string | undefined,\n extraParams?: Record<string, unknown> | undefined,\n _tags?: string[] | undefined,\n metadata?: Record<string, unknown> | undefined,\n name?: string,\n ): Promise<void> {\n const parentContext = this.getParentContext(parentRunId);\n const span = this.tracer.startSpan(\n name ?? llm.id?.[llm.id.length - 1]?.toString() ?? \"llm\",\n {},\n parentContext,\n );\n\n span.setType(\"llm\");\n\n if (canAutomaticallyCaptureInput()) {\n span.setInput(prompts);\n }\n\n if (_tags) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);\n }\n if (extraParams) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(extraParams).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n if (metadata) {\n if (metadata.ls_model_name) {\n span.setRequestModel(metadata.ls_model_name as string);\n metadata.ls_model_name = void 0;\n }\n\n span.setAttributes(\n Object.fromEntries(\n Object.entries(metadata).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n this.spans[runId] = span;\n }\n\n async handleChatModelStart(\n llm: Serialized,\n messages: BaseMessage[][],\n runId: string,\n parentRunId?: string | undefined,\n extraParams?: Record<string, unknown> | undefined,\n _tags?: string[] | undefined,\n metadata?: Record<string, unknown> | undefined,\n name?: string,\n ): Promise<void> {\n const parentContext = this.getParentContext(parentRunId);\n const span = this.tracer.startSpan(\n name ?? llm.id?.[llm.id.length - 1]?.toString() ?? \"chat_model\",\n {},\n parentContext,\n );\n\n span.setType(\"llm\");\n\n if (canAutomaticallyCaptureInput()) {\n span.setInput(messages.flatMap(convertFromLangChainMessages));\n }\n\n if (_tags) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);\n }\n if (extraParams) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(extraParams).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n if (metadata) {\n if (metadata.ls_model_name) {\n span.setRequestModel(metadata.ls_model_name as string);\n metadata.ls_model_name = void 0;\n }\n span.setAttributes(\n Object.fromEntries(\n Object.entries(metadata).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n\n this.spans[runId] = span;\n }\n\n async handleLLMEnd(\n response: LLMResult,\n runId: string,\n _parentRunId?: string | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n const outputs: unknown[] = [];\n for (const generation of response.generations) {\n for (const generation_ of generation) {\n if (\"message\" in generation_ && generation_.message) {\n outputs.push(\n convertFromLangChainMessages([\n (generation_ as ChatGeneration).message,\n ]),\n );\n } else if (\"text\" in generation_) {\n outputs.push(generation_.text);\n } else {\n outputs.push(JSON.stringify(generation_));\n }\n }\n }\n const output = outputs.length === 1 ? outputs[0] : outputs;\n\n if (canAutomaticallyCaptureOutput()) {\n span.setOutput(output);\n }\n\n addLangChainEvent(span, \"handleLLMEnd\", runId, _parentRunId);\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleLLMError(\n err: Error,\n runId: string,\n _parentRunId?: string | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleLLMError\", runId, _parentRunId);\n\n span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: err.message });\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleChainStart(\n chain: Serialized,\n inputs: ChainValues,\n runId: string,\n parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n _metadata?: Record<string, unknown> | undefined,\n _runType?: string,\n name?: string,\n ): Promise<void> {\n const parentContext = this.getParentContext(parentRunId);\n const span = this.tracer.startSpan(\n name ?? chain.id?.[chain.id.length - 1]?.toString() ?? \"chain\",\n {},\n parentContext,\n );\n span.setType(\"chain\");\n\n if (canAutomaticallyCaptureInput()) {\n span.setInput(inputs);\n }\n\n if (_tags) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);\n }\n if (_metadata) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(_metadata).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n if (_runType) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TYPE, _runType);\n }\n\n this.spans[runId] = span;\n }\n\n async handleChainEnd(\n output: ChainValues,\n runId: string,\n _parentRunId?: string | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleChainEnd\", runId, _parentRunId);\n span.setOutput(output);\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleChainError(\n err: Error,\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n _kwargs?: { inputs?: Record<string, unknown> | undefined } | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleChainError\", runId, _parentRunId);\n span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: err.message });\n span.end();\n\n this.spans[runId] = void 0;\n }\n\n async handleToolStart(\n tool: Serialized,\n input: string,\n runId: string,\n parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n _metadata?: Record<string, unknown> | undefined,\n name?: string,\n ): Promise<void> {\n const parentContext = this.getParentContext(parentRunId);\n const span = this.tracer.startSpan(\n name ?? tool.id?.[tool.id.length - 1]?.toString() ?? \"tool\",\n {},\n parentContext,\n );\n span.setType(\"tool\");\n\n if (canAutomaticallyCaptureInput()) {\n span.setInputString(input);\n }\n\n span.setAttributes({\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId,\n });\n\n if (_tags) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);\n }\n if (_metadata) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(_metadata).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n this.spans[runId] = span;\n }\n\n async handleToolEnd(\n output: string,\n runId: string,\n _parentRunId?: string | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n if (canAutomaticallyCaptureOutput()) {\n span.setOutputString(output);\n }\n\n addLangChainEvent(span, \"handleToolEnd\", runId, _parentRunId);\n\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleToolError(\n err: Error,\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleToolError\", runId, _parentRunId, _tags);\n\n span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: err.message });\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleRetrieverStart(\n retriever: Serialized,\n query: string,\n runId: string,\n parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n _metadata?: Record<string, unknown> | undefined,\n name?: string | undefined,\n ) {\n const parentContext = this.getParentContext(parentRunId);\n const span = this.tracer.startSpan(\n name ??\n retriever.id?.[retriever.id.length - 1]?.toString() ??\n \"retriever\",\n {},\n parentContext,\n );\n span.setType(\"rag\");\n\n if (canAutomaticallyCaptureInput()) {\n span.setInputString(query);\n }\n if (_tags) {\n span.setAttribute(intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);\n }\n if (_metadata) {\n span.setAttributes(\n Object.fromEntries(\n Object.entries(_metadata).map(([key, value]) => [\n [`${intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],\n wrapNonScalarValues(value),\n ]),\n ),\n );\n }\n\n span.setAttributes({\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId,\n });\n\n this.spans[runId] = span;\n }\n\n async handleRetrieverEnd(\n documents: DocumentInterface<Record<string, any>>[],\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n ) {\n const span = this.getSpan(runId);\n if (!span) return;\n if (canAutomaticallyCaptureOutput()) {\n span.setOutput(documents);\n }\n\n addLangChainEvent(span, \"handleRetrieverEnd\", runId, _parentRunId, _tags);\n\n span.setRAGContexts(\n documents.map((document) => ({\n document_id: document.metadata.id,\n chunk_id: document.metadata.chunk_id,\n content: canAutomaticallyCaptureInput() ? document.pageContent : \"\",\n })),\n );\n\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleRetrieverError(\n err: Error,\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n ) {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleRetrieverError\", runId, _parentRunId, _tags);\n\n span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR, message: err.message });\n span.end();\n this.spans[runId] = void 0;\n }\n\n async handleAgentAction(\n _action: AgentAction,\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleAgentAction\", runId, _parentRunId, _tags);\n span.setType(\"agent\");\n }\n\n async handleAgentEnd(\n action: AgentFinish,\n runId: string,\n _parentRunId?: string | undefined,\n _tags?: string[] | undefined,\n ): Promise<void> {\n const span = this.getSpan(runId);\n if (!span) return;\n\n addLangChainEvent(span, \"handleAgentEnd\", runId, _parentRunId, _tags);\n\n if (canAutomaticallyCaptureOutput()) {\n span.setOutput(action.returnValues);\n }\n\n span.end();\n this.spans[runId] = void 0;\n }\n}\n\nexport const convertFromLangChainMessages = (\n messages: BaseMessage[],\n): any[] => {\n const chatMessages: any[] = [];\n for (const message of messages) {\n chatMessages.push(\n convertFromLangChainMessage(message as BaseMessage & { id?: string[] }),\n );\n }\n return chatMessages;\n};\n\nconst convertFromLangChainMessage = (\n message: BaseMessage & { id?: string[] },\n): any => {\n let role: string = \"user\";\n const message_: (BaseMessage | StoredMessage) & {\n id?: string[];\n type?: string;\n } = message.lc_serializable\n ? mapChatMessagesToStoredMessages([message])[0]!\n : message;\n if (\n message_ instanceof HumanMessage ||\n message_ instanceof HumanMessageChunk ||\n message_.id?.[message_.id.length - 1] === \"HumanMessage\" ||\n message_.id?.[message_.id.length - 1] === \"HumanMessageChunk\" ||\n message_.type === \"human\"\n ) {\n role = \"user\";\n } else if (\n message instanceof AIMessage ||\n message instanceof AIMessageChunk ||\n message.id?.[message.id.length - 1] === \"AIMessage\" ||\n message.id?.[message.id.length - 1] === \"AIMessageChunk\" ||\n message_.type === \"ai\"\n ) {\n role = \"assistant\";\n } else if (\n message instanceof SystemMessage ||\n message instanceof SystemMessageChunk ||\n message.id?.[message.id.length - 1] === \"SystemMessage\" ||\n message.id?.[message.id.length - 1] === \"SystemMessageChunk\" ||\n message_.type === \"system\"\n ) {\n role = \"system\";\n } else if (\n message instanceof FunctionMessage ||\n message instanceof FunctionMessageChunk ||\n message.id?.[message.id.length - 1] === \"FunctionMessage\" ||\n message.id?.[message.id.length - 1] === \"FunctionMessageChunk\" ||\n message_.type === \"function\"\n ) {\n role = \"function\";\n } else if (\n message instanceof ToolMessage ||\n message instanceof ToolMessageChunk ||\n message.id?.[message.id.length - 1] === \"ToolMessage\" ||\n message.id?.[message.id.length - 1] === \"ToolMessageChunk\" ||\n message_.type === \"tool\"\n ) {\n role = \"tool\";\n }\n const content =\n typeof message.content === \"string\"\n ? message.content\n : message.content.map((content: any) =>\n content.type === \"text\"\n ? { type: \"text\", text: content.text }\n : content.type == \"image_url\"\n ? { type: \"image_url\", image_url: content.image_url }\n : { type: \"text\", text: JSON.stringify(content) },\n );\n const functionCall = message.additional_kwargs as any;\n return {\n role,\n content,\n ...(functionCall &&\n typeof functionCall === \"object\" &&\n Object.keys(functionCall).length > 0\n ? { function_call: functionCall }\n : {}),\n };\n};\n\nfunction wrapNonScalarValues(value: unknown): string | number | boolean | undefined {\n if (value === void 0) {\n return void 0;\n }\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n return value;\n }\n\n const chatMessages = z.array(chatMessageSchema).safeParse(value);\n if (Array.isArray(value) && chatMessages.success) {\n return JSON.stringify({\n type: \"chat_messages\",\n value: chatMessages.data,\n });\n }\n\n try {\n JSON.stringify(value);\n\n return JSON.stringify({\n type: \"json\",\n value: value as object,\n });\n } catch (e) {\n return JSON.stringify({\n type: \"raw\",\n value: value as any,\n });\n }\n}\n\nfunction addLangChainEvent(\n span: LangWatchSpan,\n eventName: string,\n runId: string,\n parentRunId: string | undefined,\n tags?: string[] | undefined,\n metadata?: Record<string, unknown> | undefined,\n attributes?: Attributes,\n) {\n const attrs: Attributes = {\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId,\n [intSemconv.ATTR_LANGWATCH_LANGCHAIN_EVENT_NAME]: eventName,\n ...attributes,\n };\n\n if (tags) {\n attrs[intSemconv.ATTR_LANGWATCH_LANGCHAIN_TAGS] = tags;\n }\n if (metadata) {\n Object.entries(metadata).forEach(([key, value]) => {\n attrs[key] = wrapNonScalarValues(value);\n });\n }\n\n span.addEvent(intSemconv.EVNT_LANGWATCH_LANGCHAIN_CALLBACK, attrs);\n}\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\nimport { type SpanInputOutput } from \"./tracer\";\n\nconst chatRoleSchema = z.union([\n z.literal(\"system\"),\n z.literal(\"user\"),\n z.literal(\"assistant\"),\n z.literal(\"function\"),\n z.literal(\"tool\"),\n z.literal(\"unknown\"),\n]);\n\nconst functionCallSchema = z.object({\n name: z.string().optional(),\n arguments: z.string().optional(),\n});\n\nconst toolCallSchema = z.object({\n id: z.string(),\n type: z.string(),\n function: functionCallSchema,\n});\n\nexport const rAGChunkSchema = z.object({\n document_id: z.string().optional().nullable(),\n chunk_id: z.string().optional().nullable(),\n content: z.union([z.string(), z.record(z.string(), z.any()), z.array(z.any())]),\n});\n\nexport const chatRichContentSchema = z.union([\n z.object({\n type: z.literal(\"text\"),\n text: z.string().optional(),\n }),\n z.object({\n text: z.string(),\n }),\n z.object({\n type: z.literal(\"image_url\"),\n image_url: z\n .object({\n url: z.string(),\n detail: z\n .union([z.literal(\"auto\"), z.literal(\"low\"), z.literal(\"high\")])\n .optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.literal(\"tool_call\"),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n args: z.string().optional(),\n }),\n z.object({\n type: z.literal(\"tool_result\"),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n result: z.any().optional(),\n }),\n]);\n\nexport const chatMessageSchema = z.object({\n role: chatRoleSchema.optional(),\n content: z\n .union([z.string(), z.array(chatRichContentSchema)])\n .optional()\n .nullable(),\n function_call: functionCallSchema.optional().nullable(),\n tool_calls: z.array(toolCallSchema).optional().nullable(),\n tool_call_id: z.string().optional().nullable(),\n name: z.string().optional().nullable(),\n});\n\nconst typedValueTextSchema = z.object({\n type: z.literal(\"text\"),\n value: z.string(),\n});\n\nconst typedValueRawSchema = z.object({\n type: z.literal(\"raw\"),\n value: z.string(),\n});\n\nconst jSONSerializableSchema = z\n .union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.any()),\n z.array(z.any()),\n ])\n .nullable();\n\nexport const typedValueJsonSchema = z.object({\n type: z.literal(\"json\"),\n value: jSONSerializableSchema,\n});\n\nexport const moneySchema = z.object({\n currency: z.string(),\n amount: z.number(),\n});\n\nexport const evaluationResultSchema = z.object({\n status: z.union([\n z.literal(\"processed\"),\n z.literal(\"skipped\"),\n z.literal(\"error\"),\n ]),\n passed: z.boolean().optional().nullable(),\n score: z.number().optional().nullable(),\n label: z.string().optional().nullable(),\n details: z.string().optional().nullable(),\n cost: moneySchema.optional().nullable(),\n});\n\nexport const typedValueGuardrailResultSchema = z.object({\n type: z.literal(\"guardrail_result\"),\n value: evaluationResultSchema,\n});\n\nexport const typedValueEvaluationResultSchema = z.object({\n type: z.literal(\"evaluation_result\"),\n value: evaluationResultSchema,\n});\n\nexport const typedValueChatMessagesSchema = z.object({\n type: z.literal(\"chat_messages\"),\n value: z.array(chatMessageSchema),\n});\n\nexport const spanInputOutputSchema: z.ZodSchema<SpanInputOutput> = z.lazy(() =>\n z.union([\n typedValueTextSchema,\n typedValueChatMessagesSchema,\n typedValueGuardrailResultSchema,\n typedValueEvaluationResultSchema,\n typedValueJsonSchema,\n typedValueRawSchema,\n z.object({\n type: z.literal(\"list\"),\n value: z.array(spanInputOutputSchema),\n }),\n ]),\n);\n\nexport const errorCaptureSchema = z.object({\n has_error: z.literal(true),\n message: z.string(),\n stacktrace: z.array(z.string()),\n});\n\nexport const spanMetricsSchema = z.object({\n prompt_tokens: z.number().optional().nullable(),\n completion_tokens: z.number().optional().nullable(),\n tokens_estimated: z.boolean().optional().nullable(),\n cost: z.number().optional().nullable(),\n});\n\nexport const spanTimestampsSchema = z.object({\n ignore_timestamps_on_write: z.boolean().optional().nullable(),\n started_at: z.number(),\n first_token_at: z.number().optional().nullable(),\n finished_at: z.number(),\n});\n\nexport const spanTypesSchema = z.union([\n z.literal(\"span\"),\n z.literal(\"llm\"),\n z.literal(\"chain\"),\n z.literal(\"tool\"),\n z.literal(\"agent\"),\n z.literal(\"rag\"),\n z.literal(\"guardrail\"),\n z.literal(\"evaluation\"),\n z.literal(\"workflow\"),\n z.literal(\"component\"),\n z.literal(\"module\"),\n z.literal(\"server\"),\n z.literal(\"client\"),\n z.literal(\"producer\"),\n z.literal(\"consumer\"),\n z.literal(\"task\"),\n z.literal(\"unknown\"),\n]);\n\nconst spanInputOutputValidatorSchema = spanInputOutputSchema.and(\n z.object({\n value: z.any(),\n }),\n);\n\nexport const traceInputSchema = z.object({\n value: z.string(),\n satisfaction_score: z.number().optional(),\n});\n\nexport const traceOutputSchema = z.object({\n value: z.string(),\n});\n\nconst primitiveTypeSchema = z\n .union([z.string(), z.number(), z.boolean(), z.undefined()])\n .nullable();\n\nexport const reservedTraceMetadataSchema = z.object({\n thread_id: z.string().optional().nullable(),\n user_id: z.string().optional().nullable(),\n customer_id: z.string().optional().nullable(),\n labels: z.array(z.string()).optional().nullable(),\n topic_id: z.string().optional().nullable(),\n subtopic_id: z.string().optional().nullable(),\n sdk_name: z.string().optional().nullable(),\n sdk_version: z.string().optional().nullable(),\n sdk_language: z.string().optional().nullable(),\n telemetry_sdk_language: z.string().optional().nullable(),\n telemetry_sdk_name: z.string().optional().nullable(),\n telemetry_sdk_version: z.string().optional().nullable(),\n prompt_ids: z.array(z.string()).optional().nullable(),\n prompt_version_ids: z.array(z.string()).optional().nullable(),\n});\n\nconst evaluationStatusSchema = z.union([\n z.literal(\"scheduled\"),\n z.literal(\"in_progress\"),\n z.literal(\"error\"),\n z.literal(\"skipped\"),\n z.literal(\"processed\"),\n]);\n\nexport const evaluationSchema = z.object({\n evaluation_id: z.string(),\n evaluator_id: z.string(),\n span_id: z.string().optional().nullable(),\n name: z.string(),\n type: z.string().optional().nullable(),\n is_guardrail: z.boolean().optional().nullable(),\n status: evaluationStatusSchema,\n passed: z.boolean().optional().nullable(),\n score: z.number().optional().nullable(),\n label: z.string().optional().nullable(),\n details: z.string().optional().nullable(),\n error: errorCaptureSchema.optional().nullable(),\n retries: z.number().optional().nullable(),\n timestamps: z.object({\n ignore_timestamps_on_write: z.boolean().optional().nullable(),\n inserted_at: z.number().optional().nullable(),\n started_at: z.number().optional().nullable(),\n finished_at: z.number().optional().nullable(),\n updated_at: z.number().optional().nullable(),\n }),\n});\n\nexport const elasticSearchEvaluationSchema = evaluationSchema;\n\nexport const rESTEvaluationSchema = evaluationSchema\n .omit({\n evaluation_id: true,\n evaluator_id: true,\n status: true,\n timestamps: true,\n retries: true,\n })\n .and(\n z.object({\n evaluation_id: z.string().optional().nullable(),\n evaluator_id: z.string().optional().nullable(),\n status: z\n .union([\n z.literal(\"processed\"),\n z.literal(\"skipped\"),\n z.literal(\"error\"),\n ])\n .optional()\n .nullable(),\n timestamps: z\n .object({\n started_at: z.number().optional().nullable(),\n finished_at: z.number().optional().nullable(),\n })\n .optional()\n .nullable(),\n }),\n );\n\nexport const contextsSchema = z.object({\n traceId: z.string(),\n contexts: z.array(rAGChunkSchema),\n});\n"]}