langwatch 0.2.0 → 0.3.0-prerelease.2
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.
- package/LICENSE +7 -0
- package/README.md +268 -1
- package/dist/chunk-4BZATFKJ.mjs +181 -0
- package/dist/chunk-4BZATFKJ.mjs.map +1 -0
- package/dist/chunk-CSC3CMIT.mjs +118 -0
- package/dist/chunk-CSC3CMIT.mjs.map +1 -0
- package/dist/chunk-F63YKTXA.mjs +47 -0
- package/dist/chunk-F63YKTXA.mjs.map +1 -0
- package/dist/chunk-G3AUABT7.js +4 -0
- package/dist/chunk-G3AUABT7.js.map +1 -0
- package/dist/chunk-HPC6Z7J4.js +118 -0
- package/dist/chunk-HPC6Z7J4.js.map +1 -0
- package/dist/chunk-KGDAENGD.js +50 -0
- package/dist/chunk-KGDAENGD.js.map +1 -0
- package/dist/chunk-LD74LVRU.js +47 -0
- package/dist/chunk-LD74LVRU.js.map +1 -0
- package/dist/chunk-OM7VY3XT.mjs +4 -0
- package/dist/chunk-PCQVQ7SB.js +45 -0
- package/dist/chunk-PCQVQ7SB.js.map +1 -0
- package/dist/chunk-PMBEK6YE.mjs +424 -0
- package/dist/chunk-PMBEK6YE.mjs.map +1 -0
- package/dist/chunk-PR3JDWC3.mjs +50 -0
- package/dist/chunk-PR3JDWC3.mjs.map +1 -0
- package/dist/chunk-PTJ6AAI7.js +360 -0
- package/dist/chunk-PTJ6AAI7.js.map +1 -0
- package/dist/chunk-QEWDG5QE.mjs +45 -0
- package/dist/chunk-QEWDG5QE.mjs.map +1 -0
- package/dist/chunk-REUCVT7A.mjs +39 -0
- package/dist/chunk-REUCVT7A.mjs.map +1 -0
- package/dist/chunk-SVJ7SCGB.js +424 -0
- package/dist/chunk-SVJ7SCGB.js.map +1 -0
- package/dist/chunk-VJSOCNPA.js +181 -0
- package/dist/chunk-VJSOCNPA.js.map +1 -0
- package/dist/chunk-WM2GRSRW.js +39 -0
- package/dist/chunk-WM2GRSRW.js.map +1 -0
- package/dist/chunk-Z5J5UI5E.mjs +360 -0
- package/dist/chunk-Z5J5UI5E.mjs.map +1 -0
- package/dist/client-B2HqIKg6.d.ts +51 -0
- package/dist/client-XyCqclCi.d.mts +51 -0
- package/dist/client-browser.d.mts +8 -0
- package/dist/client-browser.d.ts +8 -0
- package/dist/client-browser.js +83 -0
- package/dist/client-browser.js.map +1 -0
- package/dist/client-browser.mjs +83 -0
- package/dist/client-browser.mjs.map +1 -0
- package/dist/client-node.d.mts +8 -0
- package/dist/client-node.d.ts +8 -0
- package/dist/client-node.js +90 -0
- package/dist/client-node.js.map +1 -0
- package/dist/client-node.mjs +90 -0
- package/dist/client-node.mjs.map +1 -0
- package/dist/evaluation/index.d.mts +897 -0
- package/dist/evaluation/index.d.ts +897 -0
- package/dist/evaluation/index.js +13 -0
- package/dist/evaluation/index.js.map +1 -0
- package/dist/evaluation/index.mjs +13 -0
- package/dist/evaluation/index.mjs.map +1 -0
- package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +64 -0
- package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +64 -0
- package/dist/index.d.mts +45 -1027
- package/dist/index.d.ts +45 -1027
- package/dist/index.js +11 -27291
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -956
- package/dist/index.mjs.map +1 -1
- package/dist/observability/index.d.mts +260 -0
- package/dist/observability/index.d.ts +260 -0
- package/dist/observability/index.js +20 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/index.mjs +20 -0
- package/dist/observability/index.mjs.map +1 -0
- package/dist/observability/instrumentation/langchain/index.d.mts +40 -0
- package/dist/observability/instrumentation/langchain/index.d.ts +40 -0
- package/dist/observability/instrumentation/langchain/index.js +666 -0
- package/dist/observability/instrumentation/langchain/index.js.map +1 -0
- package/dist/observability/instrumentation/langchain/index.mjs +666 -0
- package/dist/observability/instrumentation/langchain/index.mjs.map +1 -0
- package/dist/prompt/index.d.mts +10 -0
- package/dist/prompt/index.d.ts +10 -0
- package/dist/prompt/index.js +18 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/index.mjs +18 -0
- package/dist/prompt/index.mjs.map +1 -0
- package/dist/prompt-BXJWdbQp.d.mts +1967 -0
- package/dist/prompt-BXJWdbQp.d.ts +1967 -0
- package/dist/record-evaluation-CmxMXa-3.d.mts +25 -0
- package/dist/record-evaluation-CmxMXa-3.d.ts +25 -0
- package/dist/trace-D-bZOuqb.d.mts +622 -0
- package/dist/trace-G2312klE.d.ts +622 -0
- package/package.json +86 -37
- package/.eslintrc.cjs +0 -37
- package/copy-types.sh +0 -17
- package/dist/chunk-LKD2K67J.mjs +0 -717
- package/dist/chunk-LKD2K67J.mjs.map +0 -1
- package/dist/utils-Cv-rUjJ1.d.mts +0 -313
- package/dist/utils-Cv-rUjJ1.d.ts +0 -313
- package/dist/utils.d.mts +0 -2
- package/dist/utils.d.ts +0 -2
- package/dist/utils.js +0 -709
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs +0 -11
- package/example/.env.example +0 -12
- package/example/.eslintrc.json +0 -26
- package/example/LICENSE +0 -13
- package/example/README.md +0 -12
- package/example/app/(chat)/chat/[id]/page.tsx +0 -60
- package/example/app/(chat)/layout.tsx +0 -14
- package/example/app/(chat)/page.tsx +0 -27
- package/example/app/actions.ts +0 -156
- package/example/app/globals.css +0 -76
- package/example/app/guardrails/page.tsx +0 -26
- package/example/app/langchain/page.tsx +0 -27
- package/example/app/langchain-rag/page.tsx +0 -28
- package/example/app/late-update/page.tsx +0 -27
- package/example/app/layout.tsx +0 -64
- package/example/app/login/actions.ts +0 -71
- package/example/app/login/page.tsx +0 -18
- package/example/app/manual/page.tsx +0 -27
- package/example/app/new/page.tsx +0 -5
- package/example/app/opengraph-image.png +0 -0
- package/example/app/share/[id]/page.tsx +0 -58
- package/example/app/signup/actions.ts +0 -111
- package/example/app/signup/page.tsx +0 -18
- package/example/app/twitter-image.png +0 -0
- package/example/auth.config.ts +0 -42
- package/example/auth.ts +0 -45
- package/example/components/button-scroll-to-bottom.tsx +0 -36
- package/example/components/chat-history.tsx +0 -49
- package/example/components/chat-list.tsx +0 -52
- package/example/components/chat-message-actions.tsx +0 -40
- package/example/components/chat-message.tsx +0 -80
- package/example/components/chat-panel.tsx +0 -139
- package/example/components/chat-share-dialog.tsx +0 -95
- package/example/components/chat.tsx +0 -84
- package/example/components/clear-history.tsx +0 -75
- package/example/components/empty-screen.tsx +0 -38
- package/example/components/external-link.tsx +0 -29
- package/example/components/footer.tsx +0 -19
- package/example/components/header.tsx +0 -114
- package/example/components/login-button.tsx +0 -42
- package/example/components/login-form.tsx +0 -97
- package/example/components/markdown.tsx +0 -9
- package/example/components/prompt-form.tsx +0 -115
- package/example/components/providers.tsx +0 -17
- package/example/components/sidebar-actions.tsx +0 -125
- package/example/components/sidebar-desktop.tsx +0 -19
- package/example/components/sidebar-footer.tsx +0 -16
- package/example/components/sidebar-item.tsx +0 -124
- package/example/components/sidebar-items.tsx +0 -42
- package/example/components/sidebar-list.tsx +0 -38
- package/example/components/sidebar-mobile.tsx +0 -31
- package/example/components/sidebar-toggle.tsx +0 -24
- package/example/components/sidebar.tsx +0 -21
- package/example/components/signup-form.tsx +0 -95
- package/example/components/stocks/events-skeleton.tsx +0 -31
- package/example/components/stocks/events.tsx +0 -30
- package/example/components/stocks/index.tsx +0 -36
- package/example/components/stocks/message.tsx +0 -134
- package/example/components/stocks/spinner.tsx +0 -16
- package/example/components/stocks/stock-purchase.tsx +0 -146
- package/example/components/stocks/stock-skeleton.tsx +0 -22
- package/example/components/stocks/stock.tsx +0 -210
- package/example/components/stocks/stocks-skeleton.tsx +0 -9
- package/example/components/stocks/stocks.tsx +0 -67
- package/example/components/tailwind-indicator.tsx +0 -14
- package/example/components/theme-toggle.tsx +0 -31
- package/example/components/ui/alert-dialog.tsx +0 -141
- package/example/components/ui/badge.tsx +0 -36
- package/example/components/ui/button.tsx +0 -57
- package/example/components/ui/codeblock.tsx +0 -148
- package/example/components/ui/dialog.tsx +0 -122
- package/example/components/ui/dropdown-menu.tsx +0 -205
- package/example/components/ui/icons.tsx +0 -507
- package/example/components/ui/input.tsx +0 -25
- package/example/components/ui/label.tsx +0 -26
- package/example/components/ui/select.tsx +0 -164
- package/example/components/ui/separator.tsx +0 -31
- package/example/components/ui/sheet.tsx +0 -140
- package/example/components/ui/sonner.tsx +0 -31
- package/example/components/ui/switch.tsx +0 -29
- package/example/components/ui/textarea.tsx +0 -24
- package/example/components/ui/tooltip.tsx +0 -30
- package/example/components/user-menu.tsx +0 -53
- package/example/components.json +0 -17
- package/example/instrumentation.ts +0 -11
- package/example/lib/chat/guardrails.tsx +0 -181
- package/example/lib/chat/langchain-rag.tsx +0 -191
- package/example/lib/chat/langchain.tsx +0 -112
- package/example/lib/chat/late-update.tsx +0 -208
- package/example/lib/chat/manual.tsx +0 -605
- package/example/lib/chat/vercel-ai.tsx +0 -576
- package/example/lib/hooks/use-copy-to-clipboard.tsx +0 -33
- package/example/lib/hooks/use-enter-submit.tsx +0 -23
- package/example/lib/hooks/use-local-storage.ts +0 -24
- package/example/lib/hooks/use-scroll-anchor.tsx +0 -86
- package/example/lib/hooks/use-sidebar.tsx +0 -60
- package/example/lib/hooks/use-streamable-text.ts +0 -25
- package/example/lib/types.ts +0 -41
- package/example/lib/utils.ts +0 -89
- package/example/middleware.ts +0 -8
- package/example/next-env.d.ts +0 -5
- package/example/next.config.js +0 -16
- package/example/package-lock.json +0 -10917
- package/example/package.json +0 -84
- package/example/pnpm-lock.yaml +0 -5712
- package/example/postcss.config.js +0 -6
- package/example/prettier.config.cjs +0 -34
- package/example/public/apple-touch-icon.png +0 -0
- package/example/public/favicon-16x16.png +0 -0
- package/example/public/favicon.ico +0 -0
- package/example/public/next.svg +0 -1
- package/example/public/thirteen.svg +0 -1
- package/example/public/vercel.svg +0 -1
- package/example/tailwind.config.ts +0 -81
- package/example/tsconfig.json +0 -35
- package/src/LangWatchExporter.ts +0 -96
- package/src/evaluations.ts +0 -219
- package/src/index.test.ts +0 -402
- package/src/index.ts +0 -596
- package/src/langchain.ts +0 -557
- package/src/server/types/.gitkeep +0 -0
- package/src/typeUtils.ts +0 -89
- package/src/types.ts +0 -82
- package/src/utils.ts +0 -205
- package/ts-to-zod.config.js +0 -24
- package/tsconfig.json +0 -32
- package/tsup.config.ts +0 -10
- package/vitest.config.ts +0 -8
- /package/dist/{utils.mjs.map → chunk-OM7VY3XT.mjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
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"]}
|