@cloudbase/agent-adapter-langgraph 1.0.1-alpha.7 → 1.0.1-alpha.9

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.
@@ -0,0 +1,2322 @@
1
+ import {
2
+ __publicField
3
+ } from "./chunk-NSSMTXJJ.mjs";
4
+
5
+ // ../../observability/dist/chunk-NFEGQTCC.mjs
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __esm = (fn, res) => function __init() {
11
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
12
+ };
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+
27
+ // ../../../node_modules/.pnpm/@arizeai+openinference-semantic-conventions@2.1.7/node_modules/@arizeai/openinference-semantic-conventions/dist/esm/trace/SemanticConventions.js
28
+ var SemanticAttributePrefixes = {
29
+ input: "input",
30
+ output: "output",
31
+ llm: "llm",
32
+ retrieval: "retrieval",
33
+ reranker: "reranker",
34
+ messages: "messages",
35
+ message: "message",
36
+ document: "document",
37
+ embedding: "embedding",
38
+ tool: "tool",
39
+ tool_call: "tool_call",
40
+ metadata: "metadata",
41
+ tag: "tag",
42
+ session: "session",
43
+ user: "user",
44
+ openinference: "openinference",
45
+ message_content: "message_content",
46
+ image: "image",
47
+ audio: "audio",
48
+ prompt: "prompt",
49
+ agent: "agent",
50
+ graph: "graph"
51
+ };
52
+ var LLMAttributePostfixes = {
53
+ provider: "provider",
54
+ system: "system",
55
+ model_name: "model_name",
56
+ token_count: "token_count",
57
+ input_messages: "input_messages",
58
+ output_messages: "output_messages",
59
+ invocation_parameters: "invocation_parameters",
60
+ prompts: "prompts",
61
+ prompt_template: "prompt_template",
62
+ function_call: "function_call",
63
+ tools: "tools",
64
+ cost: "cost"
65
+ };
66
+ var RetrievalAttributePostfixes = {
67
+ documents: "documents"
68
+ };
69
+ var RerankerAttributePostfixes = {
70
+ input_documents: "input_documents",
71
+ output_documents: "output_documents",
72
+ query: "query",
73
+ model_name: "model_name",
74
+ top_k: "top_k"
75
+ };
76
+ var EmbeddingAttributePostfixes = {
77
+ embeddings: "embeddings",
78
+ text: "text",
79
+ model_name: "model_name",
80
+ vector: "vector"
81
+ };
82
+ var ToolAttributePostfixes = {
83
+ name: "name",
84
+ description: "description",
85
+ parameters: "parameters",
86
+ json_schema: "json_schema"
87
+ };
88
+ var MessageAttributePostfixes = {
89
+ role: "role",
90
+ content: "content",
91
+ contents: "contents",
92
+ name: "name",
93
+ function_call_name: "function_call_name",
94
+ function_call_arguments_json: "function_call_arguments_json",
95
+ tool_calls: "tool_calls",
96
+ tool_call_id: "tool_call_id"
97
+ };
98
+ var MessageContentsAttributePostfixes = {
99
+ type: "type",
100
+ text: "text",
101
+ image: "image"
102
+ };
103
+ var ImageAttributesPostfixes = {
104
+ url: "url"
105
+ };
106
+ var ToolCallAttributePostfixes = {
107
+ function_name: "function.name",
108
+ function_arguments_json: "function.arguments",
109
+ id: "id"
110
+ };
111
+ var DocumentAttributePostfixes = {
112
+ id: "id",
113
+ content: "content",
114
+ score: "score",
115
+ metadata: "metadata"
116
+ };
117
+ var TagAttributePostfixes = {
118
+ tags: "tags"
119
+ };
120
+ var SessionAttributePostfixes = {
121
+ id: "id"
122
+ };
123
+ var UserAttributePostfixes = {
124
+ id: "id"
125
+ };
126
+ var AudioAttributesPostfixes = {
127
+ url: "url",
128
+ mime_type: "mime_type",
129
+ transcript: "transcript"
130
+ };
131
+ var PromptAttributePostfixes = {
132
+ vendor: "vendor",
133
+ id: "id",
134
+ url: "url"
135
+ };
136
+ var AgentPostfixes = {
137
+ name: "name"
138
+ };
139
+ var GraphPostfixes = {
140
+ node_id: "node.id",
141
+ node_name: "node.name",
142
+ node_parent_id: "node.parent_id"
143
+ };
144
+ var INPUT_VALUE = `${SemanticAttributePrefixes.input}.value`;
145
+ var INPUT_MIME_TYPE = `${SemanticAttributePrefixes.input}.mime_type`;
146
+ var OUTPUT_VALUE = `${SemanticAttributePrefixes.output}.value`;
147
+ var OUTPUT_MIME_TYPE = `${SemanticAttributePrefixes.output}.mime_type`;
148
+ var LLM_INPUT_MESSAGES = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.input_messages}`;
149
+ var LLM_PROMPTS = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.prompts}`;
150
+ var LLM_INVOCATION_PARAMETERS = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.invocation_parameters}`;
151
+ var LLM_OUTPUT_MESSAGES = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.output_messages}`;
152
+ var LLM_MODEL_NAME = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.model_name}`;
153
+ var LLM_PROVIDER = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.provider}`;
154
+ var LLM_SYSTEM = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.system}`;
155
+ var LLM_TOKEN_COUNT_COMPLETION = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.completion`;
156
+ var LLM_TOKEN_COUNT_COMPLETION_DETAILS_REASONING = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.completion_details.reasoning`;
157
+ var LLM_TOKEN_COUNT_COMPLETION_DETAILS_AUDIO = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.completion_details.audio`;
158
+ var LLM_TOKEN_COUNT_PROMPT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt`;
159
+ var LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_WRITE = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt_details.cache_write`;
160
+ var LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_READ = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt_details.cache_read`;
161
+ var LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_INPUT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt_details.cache_input`;
162
+ var LLM_TOKEN_COUNT_PROMPT_DETAILS_AUDIO = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt_details.audio`;
163
+ var LLM_TOKEN_COUNT_TOTAL = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.total`;
164
+ var LLM_TOKEN_COUNT_PROMPT_DETAILS = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.prompt_details`;
165
+ var LLM_TOKEN_COUNT_COMPLETION_DETAILS = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.token_count}.completion_details`;
166
+ var LLM_COST = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}`;
167
+ var LLM_COST_PROMPT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt`;
168
+ var LLM_COST_COMPLETION = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.completion`;
169
+ var LLM_COST_TOTAL = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.total`;
170
+ var LLM_COST_INPUT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt_details.input`;
171
+ var LLM_COST_OUTPUT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.completion_details.output`;
172
+ var LLM_COST_COMPLETION_DETAILS_REASONING = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.completion_details.reasoning`;
173
+ var LLM_COST_COMPLETION_DETAILS_AUDIO = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.completion_details.audio`;
174
+ var LLM_COST_PROMPT_DETAILS_CACHE_WRITE = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt_details.cache_write`;
175
+ var LLM_COST_PROMPT_DETAILS_CACHE_READ = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt_details.cache_read`;
176
+ var LLM_COST_PROMPT_DETAILS_CACHE_INPUT = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt_details.cache_input`;
177
+ var LLM_COST_PROMPT_DETAILS_AUDIO = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.cost}.prompt_details.audio`;
178
+ var MESSAGE_ROLE = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.role}`;
179
+ var MESSAGE_NAME = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.name}`;
180
+ var MESSAGE_TOOL_CALLS = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.tool_calls}`;
181
+ var MESSAGE_TOOL_CALL_ID = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.tool_call_id}`;
182
+ var TOOL_CALL_FUNCTION_NAME = `${SemanticAttributePrefixes.tool_call}.${ToolCallAttributePostfixes.function_name}`;
183
+ var TOOL_CALL_FUNCTION_ARGUMENTS_JSON = `${SemanticAttributePrefixes.tool_call}.${ToolCallAttributePostfixes.function_arguments_json}`;
184
+ var TOOL_CALL_ID = `${SemanticAttributePrefixes.tool_call}.${ToolCallAttributePostfixes.id}`;
185
+ var MESSAGE_FUNCTION_CALL_NAME = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.function_call_name}`;
186
+ var MESSAGE_FUNCTION_CALL_ARGUMENTS_JSON = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.function_call_arguments_json}`;
187
+ var MESSAGE_CONTENT = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.content}`;
188
+ var MESSAGE_CONTENTS = `${SemanticAttributePrefixes.message}.${MessageAttributePostfixes.contents}`;
189
+ var MESSAGE_CONTENT_TYPE = `${SemanticAttributePrefixes.message_content}.${MessageContentsAttributePostfixes.type}`;
190
+ var MESSAGE_CONTENT_TEXT = `${SemanticAttributePrefixes.message_content}.${MessageContentsAttributePostfixes.text}`;
191
+ var MESSAGE_CONTENT_IMAGE = `${SemanticAttributePrefixes.message_content}.${MessageContentsAttributePostfixes.image}`;
192
+ var IMAGE_URL = `${SemanticAttributePrefixes.image}.${ImageAttributesPostfixes.url}`;
193
+ var DOCUMENT_ID = `${SemanticAttributePrefixes.document}.${DocumentAttributePostfixes.id}`;
194
+ var DOCUMENT_CONTENT = `${SemanticAttributePrefixes.document}.${DocumentAttributePostfixes.content}`;
195
+ var DOCUMENT_SCORE = `${SemanticAttributePrefixes.document}.${DocumentAttributePostfixes.score}`;
196
+ var DOCUMENT_METADATA = `${SemanticAttributePrefixes.document}.${DocumentAttributePostfixes.metadata}`;
197
+ var EMBEDDING_TEXT = `${SemanticAttributePrefixes.embedding}.${EmbeddingAttributePostfixes.text}`;
198
+ var EMBEDDING_MODEL_NAME = `${SemanticAttributePrefixes.embedding}.${EmbeddingAttributePostfixes.model_name}`;
199
+ var EMBEDDING_VECTOR = `${SemanticAttributePrefixes.embedding}.${EmbeddingAttributePostfixes.vector}`;
200
+ var EMBEDDING_EMBEDDINGS = `${SemanticAttributePrefixes.embedding}.${EmbeddingAttributePostfixes.embeddings}`;
201
+ var RETRIEVAL_DOCUMENTS = `${SemanticAttributePrefixes.retrieval}.${RetrievalAttributePostfixes.documents}`;
202
+ var PROMPT_TEMPLATE_PREFIX = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.prompt_template}`;
203
+ var PROMPT_TEMPLATE_VARIABLES = `${PROMPT_TEMPLATE_PREFIX}.variables`;
204
+ var PROMPT_TEMPLATE_TEMPLATE = `${PROMPT_TEMPLATE_PREFIX}.template`;
205
+ var LLM_FUNCTION_CALL = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.function_call}`;
206
+ var LLM_TOOLS = `${SemanticAttributePrefixes.llm}.${LLMAttributePostfixes.tools}`;
207
+ var TOOL_NAME = `${SemanticAttributePrefixes.tool}.${ToolAttributePostfixes.name}`;
208
+ var TOOL_DESCRIPTION = `${SemanticAttributePrefixes.tool}.${ToolAttributePostfixes.description}`;
209
+ var TOOL_PARAMETERS = `${SemanticAttributePrefixes.tool}.${ToolAttributePostfixes.parameters}`;
210
+ var TOOL_JSON_SCHEMA = `${SemanticAttributePrefixes.tool}.${ToolAttributePostfixes.json_schema}`;
211
+ var SESSION_ID = `${SemanticAttributePrefixes.session}.${SessionAttributePostfixes.id}`;
212
+ var USER_ID = `${SemanticAttributePrefixes.user}.${UserAttributePostfixes.id}`;
213
+ var RERANKER_INPUT_DOCUMENTS = `${SemanticAttributePrefixes.reranker}.${RerankerAttributePostfixes.input_documents}`;
214
+ var RERANKER_OUTPUT_DOCUMENTS = `${SemanticAttributePrefixes.reranker}.${RerankerAttributePostfixes.output_documents}`;
215
+ var RERANKER_QUERY = `${SemanticAttributePrefixes.reranker}.${RerankerAttributePostfixes.query}`;
216
+ var RERANKER_MODEL_NAME = `${SemanticAttributePrefixes.reranker}.${RerankerAttributePostfixes.model_name}`;
217
+ var RERANKER_TOP_K = `${SemanticAttributePrefixes.reranker}.${RerankerAttributePostfixes.top_k}`;
218
+ var METADATA = "metadata";
219
+ var PROMPT_TEMPLATE_VERSION = `${PROMPT_TEMPLATE_PREFIX}.version`;
220
+ var TAG_TAGS = `${SemanticAttributePrefixes.tag}.${TagAttributePostfixes.tags}`;
221
+ var AUDIO_URL = `${SemanticAttributePrefixes.audio}.${AudioAttributesPostfixes.url}`;
222
+ var AUDIO_MIME_TYPE = `${SemanticAttributePrefixes.audio}.${AudioAttributesPostfixes.mime_type}`;
223
+ var AUDIO_TRANSCRIPT = `${SemanticAttributePrefixes.audio}.${AudioAttributesPostfixes.transcript}`;
224
+ var PROMPT_VENDOR = `${SemanticAttributePrefixes.prompt}.${PromptAttributePostfixes.vendor}`;
225
+ var PROMPT_ID = `${SemanticAttributePrefixes.prompt}.${PromptAttributePostfixes.id}`;
226
+ var PROMPT_URL = `${SemanticAttributePrefixes.prompt}.${PromptAttributePostfixes.url}`;
227
+ var AGENT_NAME = `${SemanticAttributePrefixes.agent}.${AgentPostfixes.name}`;
228
+ var GRAPH_NODE_ID = `${SemanticAttributePrefixes.graph}.${GraphPostfixes.node_id}`;
229
+ var GRAPH_NODE_NAME = `${SemanticAttributePrefixes.graph}.${GraphPostfixes.node_name}`;
230
+ var GRAPH_NODE_PARENT_ID = `${SemanticAttributePrefixes.graph}.${GraphPostfixes.node_parent_id}`;
231
+ var SemanticConventions = {
232
+ IMAGE_URL,
233
+ INPUT_VALUE,
234
+ INPUT_MIME_TYPE,
235
+ OUTPUT_VALUE,
236
+ OUTPUT_MIME_TYPE,
237
+ LLM_INPUT_MESSAGES,
238
+ LLM_OUTPUT_MESSAGES,
239
+ LLM_MODEL_NAME,
240
+ LLM_PROMPTS,
241
+ LLM_INVOCATION_PARAMETERS,
242
+ LLM_TOKEN_COUNT_COMPLETION,
243
+ LLM_TOKEN_COUNT_COMPLETION_DETAILS,
244
+ LLM_TOKEN_COUNT_COMPLETION_DETAILS_REASONING,
245
+ LLM_TOKEN_COUNT_COMPLETION_DETAILS_AUDIO,
246
+ LLM_TOKEN_COUNT_PROMPT,
247
+ LLM_TOKEN_COUNT_PROMPT_DETAILS,
248
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_WRITE,
249
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_READ,
250
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_INPUT,
251
+ LLM_TOKEN_COUNT_PROMPT_DETAILS_AUDIO,
252
+ LLM_TOKEN_COUNT_TOTAL,
253
+ LLM_SYSTEM,
254
+ LLM_PROVIDER,
255
+ LLM_TOOLS,
256
+ LLM_COST,
257
+ LLM_COST_PROMPT,
258
+ LLM_COST_COMPLETION,
259
+ LLM_COST_TOTAL,
260
+ LLM_COST_INPUT,
261
+ LLM_COST_OUTPUT,
262
+ LLM_COST_COMPLETION_DETAILS_REASONING,
263
+ LLM_COST_COMPLETION_DETAILS_AUDIO,
264
+ LLM_COST_PROMPT_DETAILS_CACHE_WRITE,
265
+ LLM_COST_PROMPT_DETAILS_CACHE_READ,
266
+ LLM_COST_PROMPT_DETAILS_CACHE_INPUT,
267
+ LLM_COST_PROMPT_DETAILS_AUDIO,
268
+ MESSAGE_ROLE,
269
+ MESSAGE_NAME,
270
+ MESSAGE_TOOL_CALLS,
271
+ MESSAGE_TOOL_CALL_ID,
272
+ TOOL_CALL_ID,
273
+ TOOL_CALL_FUNCTION_NAME,
274
+ TOOL_CALL_FUNCTION_ARGUMENTS_JSON,
275
+ MESSAGE_FUNCTION_CALL_NAME,
276
+ MESSAGE_FUNCTION_CALL_ARGUMENTS_JSON,
277
+ MESSAGE_CONTENT,
278
+ MESSAGE_CONTENTS,
279
+ MESSAGE_CONTENT_IMAGE,
280
+ MESSAGE_CONTENT_TEXT,
281
+ MESSAGE_CONTENT_TYPE,
282
+ DOCUMENT_ID,
283
+ DOCUMENT_CONTENT,
284
+ DOCUMENT_SCORE,
285
+ DOCUMENT_METADATA,
286
+ EMBEDDING_EMBEDDINGS,
287
+ EMBEDDING_TEXT,
288
+ EMBEDDING_MODEL_NAME,
289
+ EMBEDDING_VECTOR,
290
+ TOOL_DESCRIPTION,
291
+ TOOL_NAME,
292
+ TOOL_PARAMETERS,
293
+ TOOL_JSON_SCHEMA,
294
+ PROMPT_TEMPLATE_VARIABLES,
295
+ PROMPT_TEMPLATE_TEMPLATE,
296
+ PROMPT_TEMPLATE_VERSION,
297
+ RERANKER_INPUT_DOCUMENTS,
298
+ RERANKER_OUTPUT_DOCUMENTS,
299
+ RERANKER_QUERY,
300
+ RERANKER_MODEL_NAME,
301
+ RERANKER_TOP_K,
302
+ LLM_FUNCTION_CALL,
303
+ RETRIEVAL_DOCUMENTS,
304
+ SESSION_ID,
305
+ USER_ID,
306
+ METADATA,
307
+ TAG_TAGS,
308
+ OPENINFERENCE_SPAN_KIND: `${SemanticAttributePrefixes.openinference}.span.kind`,
309
+ PROMPT_VENDOR,
310
+ PROMPT_ID,
311
+ PROMPT_URL,
312
+ AGENT_NAME,
313
+ GRAPH_NODE_ID,
314
+ GRAPH_NODE_NAME,
315
+ GRAPH_NODE_PARENT_ID
316
+ };
317
+ var OpenInferenceSpanKind;
318
+ (function(OpenInferenceSpanKind2) {
319
+ OpenInferenceSpanKind2["LLM"] = "LLM";
320
+ OpenInferenceSpanKind2["CHAIN"] = "CHAIN";
321
+ OpenInferenceSpanKind2["TOOL"] = "TOOL";
322
+ OpenInferenceSpanKind2["RETRIEVER"] = "RETRIEVER";
323
+ OpenInferenceSpanKind2["RERANKER"] = "RERANKER";
324
+ OpenInferenceSpanKind2["EMBEDDING"] = "EMBEDDING";
325
+ OpenInferenceSpanKind2["AGENT"] = "AGENT";
326
+ OpenInferenceSpanKind2["GUARDRAIL"] = "GUARDRAIL";
327
+ OpenInferenceSpanKind2["EVALUATOR"] = "EVALUATOR";
328
+ })(OpenInferenceSpanKind || (OpenInferenceSpanKind = {}));
329
+ var MimeType;
330
+ (function(MimeType2) {
331
+ MimeType2["TEXT"] = "text/plain";
332
+ MimeType2["JSON"] = "application/json";
333
+ MimeType2["AUDIO_WAV"] = "audio/wav";
334
+ })(MimeType || (MimeType = {}));
335
+ var LLMSystem;
336
+ (function(LLMSystem2) {
337
+ LLMSystem2["OPENAI"] = "openai";
338
+ LLMSystem2["ANTHROPIC"] = "anthropic";
339
+ LLMSystem2["MISTRALAI"] = "mistralai";
340
+ LLMSystem2["COHERE"] = "cohere";
341
+ LLMSystem2["VERTEXAI"] = "vertexai";
342
+ LLMSystem2["AI21"] = "ai21";
343
+ LLMSystem2["META"] = "meta";
344
+ LLMSystem2["AMAZON"] = "amazon";
345
+ })(LLMSystem || (LLMSystem = {}));
346
+ var LLMProvider;
347
+ (function(LLMProvider2) {
348
+ LLMProvider2["OPENAI"] = "openai";
349
+ LLMProvider2["ANTHROPIC"] = "anthropic";
350
+ LLMProvider2["MISTRALAI"] = "mistralai";
351
+ LLMProvider2["COHERE"] = "cohere";
352
+ LLMProvider2["GOOGLE"] = "google";
353
+ LLMProvider2["AWS"] = "aws";
354
+ LLMProvider2["AZURE"] = "azure";
355
+ LLMProvider2["XAI"] = "xai";
356
+ LLMProvider2["DEEPSEEK"] = "deepseek";
357
+ })(LLMProvider || (LLMProvider = {}));
358
+
359
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js
360
+ var _globalThis = typeof globalThis === "object" ? globalThis : global;
361
+
362
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/version.js
363
+ var VERSION = "1.9.0";
364
+
365
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/internal/semver.js
366
+ var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
367
+ function _makeCompatibilityCheck(ownVersion) {
368
+ var acceptedVersions = /* @__PURE__ */ new Set([ownVersion]);
369
+ var rejectedVersions = /* @__PURE__ */ new Set();
370
+ var myVersionMatch = ownVersion.match(re);
371
+ if (!myVersionMatch) {
372
+ return function() {
373
+ return false;
374
+ };
375
+ }
376
+ var ownVersionParsed = {
377
+ major: +myVersionMatch[1],
378
+ minor: +myVersionMatch[2],
379
+ patch: +myVersionMatch[3],
380
+ prerelease: myVersionMatch[4]
381
+ };
382
+ if (ownVersionParsed.prerelease != null) {
383
+ return function isExactmatch(globalVersion) {
384
+ return globalVersion === ownVersion;
385
+ };
386
+ }
387
+ function _reject(v) {
388
+ rejectedVersions.add(v);
389
+ return false;
390
+ }
391
+ function _accept(v) {
392
+ acceptedVersions.add(v);
393
+ return true;
394
+ }
395
+ return function isCompatible2(globalVersion) {
396
+ if (acceptedVersions.has(globalVersion)) {
397
+ return true;
398
+ }
399
+ if (rejectedVersions.has(globalVersion)) {
400
+ return false;
401
+ }
402
+ var globalVersionMatch = globalVersion.match(re);
403
+ if (!globalVersionMatch) {
404
+ return _reject(globalVersion);
405
+ }
406
+ var globalVersionParsed = {
407
+ major: +globalVersionMatch[1],
408
+ minor: +globalVersionMatch[2],
409
+ patch: +globalVersionMatch[3],
410
+ prerelease: globalVersionMatch[4]
411
+ };
412
+ if (globalVersionParsed.prerelease != null) {
413
+ return _reject(globalVersion);
414
+ }
415
+ if (ownVersionParsed.major !== globalVersionParsed.major) {
416
+ return _reject(globalVersion);
417
+ }
418
+ if (ownVersionParsed.major === 0) {
419
+ if (ownVersionParsed.minor === globalVersionParsed.minor && ownVersionParsed.patch <= globalVersionParsed.patch) {
420
+ return _accept(globalVersion);
421
+ }
422
+ return _reject(globalVersion);
423
+ }
424
+ if (ownVersionParsed.minor <= globalVersionParsed.minor) {
425
+ return _accept(globalVersion);
426
+ }
427
+ return _reject(globalVersion);
428
+ };
429
+ }
430
+ var isCompatible = _makeCompatibilityCheck(VERSION);
431
+
432
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js
433
+ var major = VERSION.split(".")[0];
434
+ var GLOBAL_OPENTELEMETRY_API_KEY = /* @__PURE__ */ Symbol.for("opentelemetry.js.api." + major);
435
+ var _global = _globalThis;
436
+ function registerGlobal(type, instance, diag, allowOverride) {
437
+ var _a;
438
+ if (allowOverride === void 0) {
439
+ allowOverride = false;
440
+ }
441
+ var api = _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {
442
+ version: VERSION
443
+ };
444
+ if (!allowOverride && api[type]) {
445
+ var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type);
446
+ diag.error(err.stack || err.message);
447
+ return false;
448
+ }
449
+ if (api.version !== VERSION) {
450
+ var err = new Error("@opentelemetry/api: Registration of version v" + api.version + " for " + type + " does not match previously registered API v" + VERSION);
451
+ diag.error(err.stack || err.message);
452
+ return false;
453
+ }
454
+ api[type] = instance;
455
+ diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + VERSION + ".");
456
+ return true;
457
+ }
458
+ function getGlobal(type) {
459
+ var _a, _b;
460
+ var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;
461
+ if (!globalVersion || !isCompatible(globalVersion)) {
462
+ return;
463
+ }
464
+ return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];
465
+ }
466
+ function unregisterGlobal(type, diag) {
467
+ diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + VERSION + ".");
468
+ var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];
469
+ if (api) {
470
+ delete api[type];
471
+ }
472
+ }
473
+
474
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js
475
+ var __read = function(o, n) {
476
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
477
+ if (!m) return o;
478
+ var i = m.call(o), r, ar = [], e;
479
+ try {
480
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
481
+ } catch (error) {
482
+ e = { error };
483
+ } finally {
484
+ try {
485
+ if (r && !r.done && (m = i["return"])) m.call(i);
486
+ } finally {
487
+ if (e) throw e.error;
488
+ }
489
+ }
490
+ return ar;
491
+ };
492
+ var __spreadArray = function(to, from, pack) {
493
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
494
+ if (ar || !(i in from)) {
495
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
496
+ ar[i] = from[i];
497
+ }
498
+ }
499
+ return to.concat(ar || Array.prototype.slice.call(from));
500
+ };
501
+ var DiagComponentLogger = (
502
+ /** @class */
503
+ (function() {
504
+ function DiagComponentLogger2(props) {
505
+ this._namespace = props.namespace || "DiagComponentLogger";
506
+ }
507
+ DiagComponentLogger2.prototype.debug = function() {
508
+ var args = [];
509
+ for (var _i = 0; _i < arguments.length; _i++) {
510
+ args[_i] = arguments[_i];
511
+ }
512
+ return logProxy("debug", this._namespace, args);
513
+ };
514
+ DiagComponentLogger2.prototype.error = function() {
515
+ var args = [];
516
+ for (var _i = 0; _i < arguments.length; _i++) {
517
+ args[_i] = arguments[_i];
518
+ }
519
+ return logProxy("error", this._namespace, args);
520
+ };
521
+ DiagComponentLogger2.prototype.info = function() {
522
+ var args = [];
523
+ for (var _i = 0; _i < arguments.length; _i++) {
524
+ args[_i] = arguments[_i];
525
+ }
526
+ return logProxy("info", this._namespace, args);
527
+ };
528
+ DiagComponentLogger2.prototype.warn = function() {
529
+ var args = [];
530
+ for (var _i = 0; _i < arguments.length; _i++) {
531
+ args[_i] = arguments[_i];
532
+ }
533
+ return logProxy("warn", this._namespace, args);
534
+ };
535
+ DiagComponentLogger2.prototype.verbose = function() {
536
+ var args = [];
537
+ for (var _i = 0; _i < arguments.length; _i++) {
538
+ args[_i] = arguments[_i];
539
+ }
540
+ return logProxy("verbose", this._namespace, args);
541
+ };
542
+ return DiagComponentLogger2;
543
+ })()
544
+ );
545
+ function logProxy(funcName, namespace, args) {
546
+ var logger = getGlobal("diag");
547
+ if (!logger) {
548
+ return;
549
+ }
550
+ args.unshift(namespace);
551
+ return logger[funcName].apply(logger, __spreadArray([], __read(args), false));
552
+ }
553
+
554
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/diag/types.js
555
+ var DiagLogLevel;
556
+ (function(DiagLogLevel2) {
557
+ DiagLogLevel2[DiagLogLevel2["NONE"] = 0] = "NONE";
558
+ DiagLogLevel2[DiagLogLevel2["ERROR"] = 30] = "ERROR";
559
+ DiagLogLevel2[DiagLogLevel2["WARN"] = 50] = "WARN";
560
+ DiagLogLevel2[DiagLogLevel2["INFO"] = 60] = "INFO";
561
+ DiagLogLevel2[DiagLogLevel2["DEBUG"] = 70] = "DEBUG";
562
+ DiagLogLevel2[DiagLogLevel2["VERBOSE"] = 80] = "VERBOSE";
563
+ DiagLogLevel2[DiagLogLevel2["ALL"] = 9999] = "ALL";
564
+ })(DiagLogLevel || (DiagLogLevel = {}));
565
+
566
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js
567
+ function createLogLevelDiagLogger(maxLevel, logger) {
568
+ if (maxLevel < DiagLogLevel.NONE) {
569
+ maxLevel = DiagLogLevel.NONE;
570
+ } else if (maxLevel > DiagLogLevel.ALL) {
571
+ maxLevel = DiagLogLevel.ALL;
572
+ }
573
+ logger = logger || {};
574
+ function _filterFunc(funcName, theLevel) {
575
+ var theFunc = logger[funcName];
576
+ if (typeof theFunc === "function" && maxLevel >= theLevel) {
577
+ return theFunc.bind(logger);
578
+ }
579
+ return function() {
580
+ };
581
+ }
582
+ return {
583
+ error: _filterFunc("error", DiagLogLevel.ERROR),
584
+ warn: _filterFunc("warn", DiagLogLevel.WARN),
585
+ info: _filterFunc("info", DiagLogLevel.INFO),
586
+ debug: _filterFunc("debug", DiagLogLevel.DEBUG),
587
+ verbose: _filterFunc("verbose", DiagLogLevel.VERBOSE)
588
+ };
589
+ }
590
+
591
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/api/diag.js
592
+ var __read2 = function(o, n) {
593
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
594
+ if (!m) return o;
595
+ var i = m.call(o), r, ar = [], e;
596
+ try {
597
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
598
+ } catch (error) {
599
+ e = { error };
600
+ } finally {
601
+ try {
602
+ if (r && !r.done && (m = i["return"])) m.call(i);
603
+ } finally {
604
+ if (e) throw e.error;
605
+ }
606
+ }
607
+ return ar;
608
+ };
609
+ var __spreadArray2 = function(to, from, pack) {
610
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
611
+ if (ar || !(i in from)) {
612
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
613
+ ar[i] = from[i];
614
+ }
615
+ }
616
+ return to.concat(ar || Array.prototype.slice.call(from));
617
+ };
618
+ var API_NAME = "diag";
619
+ var DiagAPI = (
620
+ /** @class */
621
+ (function() {
622
+ function DiagAPI2() {
623
+ function _logProxy(funcName) {
624
+ return function() {
625
+ var args = [];
626
+ for (var _i = 0; _i < arguments.length; _i++) {
627
+ args[_i] = arguments[_i];
628
+ }
629
+ var logger = getGlobal("diag");
630
+ if (!logger)
631
+ return;
632
+ return logger[funcName].apply(logger, __spreadArray2([], __read2(args), false));
633
+ };
634
+ }
635
+ var self = this;
636
+ var setLogger = function(logger, optionsOrLogLevel) {
637
+ var _a, _b, _c;
638
+ if (optionsOrLogLevel === void 0) {
639
+ optionsOrLogLevel = { logLevel: DiagLogLevel.INFO };
640
+ }
641
+ if (logger === self) {
642
+ var err = new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");
643
+ self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);
644
+ return false;
645
+ }
646
+ if (typeof optionsOrLogLevel === "number") {
647
+ optionsOrLogLevel = {
648
+ logLevel: optionsOrLogLevel
649
+ };
650
+ }
651
+ var oldLogger = getGlobal("diag");
652
+ var newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger);
653
+ if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {
654
+ var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : "<failed to generate stacktrace>";
655
+ oldLogger.warn("Current logger will be overwritten from " + stack);
656
+ newLogger.warn("Current logger will overwrite one already registered from " + stack);
657
+ }
658
+ return registerGlobal("diag", newLogger, self, true);
659
+ };
660
+ self.setLogger = setLogger;
661
+ self.disable = function() {
662
+ unregisterGlobal(API_NAME, self);
663
+ };
664
+ self.createComponentLogger = function(options) {
665
+ return new DiagComponentLogger(options);
666
+ };
667
+ self.verbose = _logProxy("verbose");
668
+ self.debug = _logProxy("debug");
669
+ self.info = _logProxy("info");
670
+ self.warn = _logProxy("warn");
671
+ self.error = _logProxy("error");
672
+ }
673
+ DiagAPI2.instance = function() {
674
+ if (!this._instance) {
675
+ this._instance = new DiagAPI2();
676
+ }
677
+ return this._instance;
678
+ };
679
+ return DiagAPI2;
680
+ })()
681
+ );
682
+
683
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/context/context.js
684
+ function createContextKey(description) {
685
+ return Symbol.for(description);
686
+ }
687
+ var BaseContext = (
688
+ /** @class */
689
+ /* @__PURE__ */ (function() {
690
+ function BaseContext2(parentContext) {
691
+ var self = this;
692
+ self._currentContext = parentContext ? new Map(parentContext) : /* @__PURE__ */ new Map();
693
+ self.getValue = function(key) {
694
+ return self._currentContext.get(key);
695
+ };
696
+ self.setValue = function(key, value) {
697
+ var context2 = new BaseContext2(self._currentContext);
698
+ context2._currentContext.set(key, value);
699
+ return context2;
700
+ };
701
+ self.deleteValue = function(key) {
702
+ var context2 = new BaseContext2(self._currentContext);
703
+ context2._currentContext.delete(key);
704
+ return context2;
705
+ };
706
+ }
707
+ return BaseContext2;
708
+ })()
709
+ );
710
+ var ROOT_CONTEXT = new BaseContext();
711
+
712
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js
713
+ var __read3 = function(o, n) {
714
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
715
+ if (!m) return o;
716
+ var i = m.call(o), r, ar = [], e;
717
+ try {
718
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
719
+ } catch (error) {
720
+ e = { error };
721
+ } finally {
722
+ try {
723
+ if (r && !r.done && (m = i["return"])) m.call(i);
724
+ } finally {
725
+ if (e) throw e.error;
726
+ }
727
+ }
728
+ return ar;
729
+ };
730
+ var __spreadArray3 = function(to, from, pack) {
731
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
732
+ if (ar || !(i in from)) {
733
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
734
+ ar[i] = from[i];
735
+ }
736
+ }
737
+ return to.concat(ar || Array.prototype.slice.call(from));
738
+ };
739
+ var NoopContextManager = (
740
+ /** @class */
741
+ (function() {
742
+ function NoopContextManager2() {
743
+ }
744
+ NoopContextManager2.prototype.active = function() {
745
+ return ROOT_CONTEXT;
746
+ };
747
+ NoopContextManager2.prototype.with = function(_context, fn, thisArg) {
748
+ var args = [];
749
+ for (var _i = 3; _i < arguments.length; _i++) {
750
+ args[_i - 3] = arguments[_i];
751
+ }
752
+ return fn.call.apply(fn, __spreadArray3([thisArg], __read3(args), false));
753
+ };
754
+ NoopContextManager2.prototype.bind = function(_context, target) {
755
+ return target;
756
+ };
757
+ NoopContextManager2.prototype.enable = function() {
758
+ return this;
759
+ };
760
+ NoopContextManager2.prototype.disable = function() {
761
+ return this;
762
+ };
763
+ return NoopContextManager2;
764
+ })()
765
+ );
766
+
767
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/api/context.js
768
+ var __read4 = function(o, n) {
769
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
770
+ if (!m) return o;
771
+ var i = m.call(o), r, ar = [], e;
772
+ try {
773
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
774
+ } catch (error) {
775
+ e = { error };
776
+ } finally {
777
+ try {
778
+ if (r && !r.done && (m = i["return"])) m.call(i);
779
+ } finally {
780
+ if (e) throw e.error;
781
+ }
782
+ }
783
+ return ar;
784
+ };
785
+ var __spreadArray4 = function(to, from, pack) {
786
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
787
+ if (ar || !(i in from)) {
788
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
789
+ ar[i] = from[i];
790
+ }
791
+ }
792
+ return to.concat(ar || Array.prototype.slice.call(from));
793
+ };
794
+ var API_NAME2 = "context";
795
+ var NOOP_CONTEXT_MANAGER = new NoopContextManager();
796
+ var ContextAPI = (
797
+ /** @class */
798
+ (function() {
799
+ function ContextAPI2() {
800
+ }
801
+ ContextAPI2.getInstance = function() {
802
+ if (!this._instance) {
803
+ this._instance = new ContextAPI2();
804
+ }
805
+ return this._instance;
806
+ };
807
+ ContextAPI2.prototype.setGlobalContextManager = function(contextManager) {
808
+ return registerGlobal(API_NAME2, contextManager, DiagAPI.instance());
809
+ };
810
+ ContextAPI2.prototype.active = function() {
811
+ return this._getContextManager().active();
812
+ };
813
+ ContextAPI2.prototype.with = function(context2, fn, thisArg) {
814
+ var _a;
815
+ var args = [];
816
+ for (var _i = 3; _i < arguments.length; _i++) {
817
+ args[_i - 3] = arguments[_i];
818
+ }
819
+ return (_a = this._getContextManager()).with.apply(_a, __spreadArray4([context2, fn, thisArg], __read4(args), false));
820
+ };
821
+ ContextAPI2.prototype.bind = function(context2, target) {
822
+ return this._getContextManager().bind(context2, target);
823
+ };
824
+ ContextAPI2.prototype._getContextManager = function() {
825
+ return getGlobal(API_NAME2) || NOOP_CONTEXT_MANAGER;
826
+ };
827
+ ContextAPI2.prototype.disable = function() {
828
+ this._getContextManager().disable();
829
+ unregisterGlobal(API_NAME2, DiagAPI.instance());
830
+ };
831
+ return ContextAPI2;
832
+ })()
833
+ );
834
+
835
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js
836
+ var TraceFlags;
837
+ (function(TraceFlags2) {
838
+ TraceFlags2[TraceFlags2["NONE"] = 0] = "NONE";
839
+ TraceFlags2[TraceFlags2["SAMPLED"] = 1] = "SAMPLED";
840
+ })(TraceFlags || (TraceFlags = {}));
841
+
842
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js
843
+ var INVALID_SPANID = "0000000000000000";
844
+ var INVALID_TRACEID = "00000000000000000000000000000000";
845
+ var INVALID_SPAN_CONTEXT = {
846
+ traceId: INVALID_TRACEID,
847
+ spanId: INVALID_SPANID,
848
+ traceFlags: TraceFlags.NONE
849
+ };
850
+
851
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js
852
+ var NonRecordingSpan = (
853
+ /** @class */
854
+ (function() {
855
+ function NonRecordingSpan2(_spanContext) {
856
+ if (_spanContext === void 0) {
857
+ _spanContext = INVALID_SPAN_CONTEXT;
858
+ }
859
+ this._spanContext = _spanContext;
860
+ }
861
+ NonRecordingSpan2.prototype.spanContext = function() {
862
+ return this._spanContext;
863
+ };
864
+ NonRecordingSpan2.prototype.setAttribute = function(_key, _value) {
865
+ return this;
866
+ };
867
+ NonRecordingSpan2.prototype.setAttributes = function(_attributes) {
868
+ return this;
869
+ };
870
+ NonRecordingSpan2.prototype.addEvent = function(_name, _attributes) {
871
+ return this;
872
+ };
873
+ NonRecordingSpan2.prototype.addLink = function(_link) {
874
+ return this;
875
+ };
876
+ NonRecordingSpan2.prototype.addLinks = function(_links) {
877
+ return this;
878
+ };
879
+ NonRecordingSpan2.prototype.setStatus = function(_status) {
880
+ return this;
881
+ };
882
+ NonRecordingSpan2.prototype.updateName = function(_name) {
883
+ return this;
884
+ };
885
+ NonRecordingSpan2.prototype.end = function(_endTime) {
886
+ };
887
+ NonRecordingSpan2.prototype.isRecording = function() {
888
+ return false;
889
+ };
890
+ NonRecordingSpan2.prototype.recordException = function(_exception, _time) {
891
+ };
892
+ return NonRecordingSpan2;
893
+ })()
894
+ );
895
+
896
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js
897
+ var SPAN_KEY = createContextKey("OpenTelemetry Context Key SPAN");
898
+ function getSpan(context2) {
899
+ return context2.getValue(SPAN_KEY) || void 0;
900
+ }
901
+ function getActiveSpan() {
902
+ return getSpan(ContextAPI.getInstance().active());
903
+ }
904
+ function setSpan(context2, span) {
905
+ return context2.setValue(SPAN_KEY, span);
906
+ }
907
+ function deleteSpan(context2) {
908
+ return context2.deleteValue(SPAN_KEY);
909
+ }
910
+ function setSpanContext(context2, spanContext) {
911
+ return setSpan(context2, new NonRecordingSpan(spanContext));
912
+ }
913
+ function getSpanContext(context2) {
914
+ var _a;
915
+ return (_a = getSpan(context2)) === null || _a === void 0 ? void 0 : _a.spanContext();
916
+ }
917
+
918
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js
919
+ var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;
920
+ var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;
921
+ function isValidTraceId(traceId) {
922
+ return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;
923
+ }
924
+ function isValidSpanId(spanId) {
925
+ return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;
926
+ }
927
+ function isSpanContextValid(spanContext) {
928
+ return isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId);
929
+ }
930
+ function wrapSpanContext(spanContext) {
931
+ return new NonRecordingSpan(spanContext);
932
+ }
933
+
934
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js
935
+ var contextApi = ContextAPI.getInstance();
936
+ var NoopTracer = (
937
+ /** @class */
938
+ (function() {
939
+ function NoopTracer2() {
940
+ }
941
+ NoopTracer2.prototype.startSpan = function(name, options, context2) {
942
+ if (context2 === void 0) {
943
+ context2 = contextApi.active();
944
+ }
945
+ var root = Boolean(options === null || options === void 0 ? void 0 : options.root);
946
+ if (root) {
947
+ return new NonRecordingSpan();
948
+ }
949
+ var parentFromContext = context2 && getSpanContext(context2);
950
+ if (isSpanContext(parentFromContext) && isSpanContextValid(parentFromContext)) {
951
+ return new NonRecordingSpan(parentFromContext);
952
+ } else {
953
+ return new NonRecordingSpan();
954
+ }
955
+ };
956
+ NoopTracer2.prototype.startActiveSpan = function(name, arg2, arg3, arg4) {
957
+ var opts;
958
+ var ctx;
959
+ var fn;
960
+ if (arguments.length < 2) {
961
+ return;
962
+ } else if (arguments.length === 2) {
963
+ fn = arg2;
964
+ } else if (arguments.length === 3) {
965
+ opts = arg2;
966
+ fn = arg3;
967
+ } else {
968
+ opts = arg2;
969
+ ctx = arg3;
970
+ fn = arg4;
971
+ }
972
+ var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();
973
+ var span = this.startSpan(name, opts, parentContext);
974
+ var contextWithSpanSet = setSpan(parentContext, span);
975
+ return contextApi.with(contextWithSpanSet, fn, void 0, span);
976
+ };
977
+ return NoopTracer2;
978
+ })()
979
+ );
980
+ function isSpanContext(spanContext) {
981
+ return typeof spanContext === "object" && typeof spanContext["spanId"] === "string" && typeof spanContext["traceId"] === "string" && typeof spanContext["traceFlags"] === "number";
982
+ }
983
+
984
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js
985
+ var NOOP_TRACER = new NoopTracer();
986
+ var ProxyTracer = (
987
+ /** @class */
988
+ (function() {
989
+ function ProxyTracer2(_provider, name, version, options) {
990
+ this._provider = _provider;
991
+ this.name = name;
992
+ this.version = version;
993
+ this.options = options;
994
+ }
995
+ ProxyTracer2.prototype.startSpan = function(name, options, context2) {
996
+ return this._getTracer().startSpan(name, options, context2);
997
+ };
998
+ ProxyTracer2.prototype.startActiveSpan = function(_name, _options, _context, _fn) {
999
+ var tracer = this._getTracer();
1000
+ return Reflect.apply(tracer.startActiveSpan, tracer, arguments);
1001
+ };
1002
+ ProxyTracer2.prototype._getTracer = function() {
1003
+ if (this._delegate) {
1004
+ return this._delegate;
1005
+ }
1006
+ var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);
1007
+ if (!tracer) {
1008
+ return NOOP_TRACER;
1009
+ }
1010
+ this._delegate = tracer;
1011
+ return this._delegate;
1012
+ };
1013
+ return ProxyTracer2;
1014
+ })()
1015
+ );
1016
+
1017
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js
1018
+ var NoopTracerProvider = (
1019
+ /** @class */
1020
+ (function() {
1021
+ function NoopTracerProvider2() {
1022
+ }
1023
+ NoopTracerProvider2.prototype.getTracer = function(_name, _version, _options) {
1024
+ return new NoopTracer();
1025
+ };
1026
+ return NoopTracerProvider2;
1027
+ })()
1028
+ );
1029
+
1030
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js
1031
+ var NOOP_TRACER_PROVIDER = new NoopTracerProvider();
1032
+ var ProxyTracerProvider = (
1033
+ /** @class */
1034
+ (function() {
1035
+ function ProxyTracerProvider2() {
1036
+ }
1037
+ ProxyTracerProvider2.prototype.getTracer = function(name, version, options) {
1038
+ var _a;
1039
+ return (_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options);
1040
+ };
1041
+ ProxyTracerProvider2.prototype.getDelegate = function() {
1042
+ var _a;
1043
+ return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;
1044
+ };
1045
+ ProxyTracerProvider2.prototype.setDelegate = function(delegate) {
1046
+ this._delegate = delegate;
1047
+ };
1048
+ ProxyTracerProvider2.prototype.getDelegateTracer = function(name, version, options) {
1049
+ var _a;
1050
+ return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);
1051
+ };
1052
+ return ProxyTracerProvider2;
1053
+ })()
1054
+ );
1055
+
1056
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace/status.js
1057
+ var SpanStatusCode;
1058
+ (function(SpanStatusCode2) {
1059
+ SpanStatusCode2[SpanStatusCode2["UNSET"] = 0] = "UNSET";
1060
+ SpanStatusCode2[SpanStatusCode2["OK"] = 1] = "OK";
1061
+ SpanStatusCode2[SpanStatusCode2["ERROR"] = 2] = "ERROR";
1062
+ })(SpanStatusCode || (SpanStatusCode = {}));
1063
+
1064
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/context-api.js
1065
+ var context = ContextAPI.getInstance();
1066
+
1067
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/api/trace.js
1068
+ var API_NAME3 = "trace";
1069
+ var TraceAPI = (
1070
+ /** @class */
1071
+ (function() {
1072
+ function TraceAPI2() {
1073
+ this._proxyTracerProvider = new ProxyTracerProvider();
1074
+ this.wrapSpanContext = wrapSpanContext;
1075
+ this.isSpanContextValid = isSpanContextValid;
1076
+ this.deleteSpan = deleteSpan;
1077
+ this.getSpan = getSpan;
1078
+ this.getActiveSpan = getActiveSpan;
1079
+ this.getSpanContext = getSpanContext;
1080
+ this.setSpan = setSpan;
1081
+ this.setSpanContext = setSpanContext;
1082
+ }
1083
+ TraceAPI2.getInstance = function() {
1084
+ if (!this._instance) {
1085
+ this._instance = new TraceAPI2();
1086
+ }
1087
+ return this._instance;
1088
+ };
1089
+ TraceAPI2.prototype.setGlobalTracerProvider = function(provider) {
1090
+ var success = registerGlobal(API_NAME3, this._proxyTracerProvider, DiagAPI.instance());
1091
+ if (success) {
1092
+ this._proxyTracerProvider.setDelegate(provider);
1093
+ }
1094
+ return success;
1095
+ };
1096
+ TraceAPI2.prototype.getTracerProvider = function() {
1097
+ return getGlobal(API_NAME3) || this._proxyTracerProvider;
1098
+ };
1099
+ TraceAPI2.prototype.getTracer = function(name, version) {
1100
+ return this.getTracerProvider().getTracer(name, version);
1101
+ };
1102
+ TraceAPI2.prototype.disable = function() {
1103
+ unregisterGlobal(API_NAME3, DiagAPI.instance());
1104
+ this._proxyTracerProvider = new ProxyTracerProvider();
1105
+ };
1106
+ return TraceAPI2;
1107
+ })()
1108
+ );
1109
+
1110
+ // ../../../node_modules/.pnpm/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/esm/trace-api.js
1111
+ var trace = TraceAPI.getInstance();
1112
+
1113
+ // ../../observability/dist/chunk-ZGEMAYS4.mjs
1114
+ var OtelSpanAttributes;
1115
+ var init_constants = __esm({
1116
+ "src/core/constants.ts"() {
1117
+ "use strict";
1118
+ OtelSpanAttributes = {
1119
+ // OpenInference - re-export all standard conventions
1120
+ ...SemanticConventions,
1121
+ // AG-Kit Trace attributes (non-standard)
1122
+ TRACE_NAME: "trace.name",
1123
+ TRACE_TAGS: "trace.tags",
1124
+ TRACE_PUBLIC: "trace.public",
1125
+ TRACE_METADATA: "trace.metadata",
1126
+ TRACE_INPUT: "trace.input",
1127
+ TRACE_OUTPUT: "trace.output",
1128
+ // AG-Kit Observation attributes (non-standard)
1129
+ OBSERVATION_TYPE: "observation.type",
1130
+ OBSERVATION_LEVEL: "observation.level",
1131
+ OBSERVATION_STATUS_MESSAGE: "observation.status_message",
1132
+ OBSERVATION_INPUT: "observation.input",
1133
+ OBSERVATION_OUTPUT: "observation.output",
1134
+ OBSERVATION_METADATA: "observation.metadata",
1135
+ // AG-Kit LLM-specific (non-standard)
1136
+ LLM_COMPLETION_START_TIME: "llm.completion_start_time",
1137
+ LLM_MODEL_PARAMETERS: "llm.model_parameters",
1138
+ LLM_USAGE_DETAILS: "llm.usage_details",
1139
+ LLM_COST_DETAILS: "llm.cost_details",
1140
+ // AG-Kit Retriever-specific (non-standard)
1141
+ RETRIEVER_NAME: "retriever.name",
1142
+ RETRIEVER_QUERY: "retriever.query",
1143
+ RETRIEVER_INDEX_ID: "retriever.index_id",
1144
+ RETRIEVER_TOP_K: "retriever.top_k",
1145
+ // AG-Kit General (non-standard)
1146
+ ENVIRONMENT: "environment",
1147
+ RELEASE: "release",
1148
+ VERSION: "version"
1149
+ };
1150
+ }
1151
+ });
1152
+ function createTraceAttributes({
1153
+ name,
1154
+ userId,
1155
+ sessionId,
1156
+ version,
1157
+ release,
1158
+ input,
1159
+ output,
1160
+ metadata,
1161
+ tags,
1162
+ environment,
1163
+ public: isPublic
1164
+ } = {}) {
1165
+ const attributes = {
1166
+ [OtelSpanAttributes.TRACE_NAME]: name,
1167
+ // Use OpenInference standard attributes for user and session
1168
+ [OtelSpanAttributes.USER_ID]: userId,
1169
+ [OtelSpanAttributes.SESSION_ID]: sessionId,
1170
+ [OtelSpanAttributes.VERSION]: version,
1171
+ [OtelSpanAttributes.RELEASE]: release,
1172
+ [OtelSpanAttributes.TRACE_INPUT]: _serialize(input),
1173
+ [OtelSpanAttributes.TRACE_OUTPUT]: _serialize(output),
1174
+ [OtelSpanAttributes.TRACE_TAGS]: tags,
1175
+ [OtelSpanAttributes.ENVIRONMENT]: environment,
1176
+ [OtelSpanAttributes.TRACE_PUBLIC]: isPublic,
1177
+ ..._flattenAndSerializeMetadata(metadata, OtelSpanAttributes.TRACE_METADATA)
1178
+ };
1179
+ return Object.fromEntries(
1180
+ Object.entries(attributes).filter(([_, v]) => v != null)
1181
+ );
1182
+ }
1183
+ function createObservationAttributes(type, attributes) {
1184
+ const {
1185
+ metadata,
1186
+ input,
1187
+ output,
1188
+ level,
1189
+ statusMessage,
1190
+ version,
1191
+ completionStartTime,
1192
+ model,
1193
+ modelParameters,
1194
+ usageDetails
1195
+ } = attributes;
1196
+ const otelAttributes = {
1197
+ [SemanticConventions.OPENINFERENCE_SPAN_KIND]: type.toUpperCase(),
1198
+ [OtelSpanAttributes.OBSERVATION_TYPE]: type,
1199
+ [OtelSpanAttributes.OBSERVATION_LEVEL]: level,
1200
+ [OtelSpanAttributes.OBSERVATION_STATUS_MESSAGE]: statusMessage,
1201
+ [OtelSpanAttributes.VERSION]: version,
1202
+ // Use OpenInference input.value convention
1203
+ [SemanticConventions.INPUT_VALUE]: _serialize(input),
1204
+ // Also set legacy agkit.observation.input for compatibility
1205
+ [OtelSpanAttributes.OBSERVATION_INPUT]: _serialize(input),
1206
+ // Use OpenInference output.value convention
1207
+ [SemanticConventions.OUTPUT_VALUE]: _serialize(output),
1208
+ // Also set legacy agkit.observation.output for compatibility
1209
+ [OtelSpanAttributes.OBSERVATION_OUTPUT]: _serialize(output)
1210
+ };
1211
+ if (type === "llm") {
1212
+ if (model) {
1213
+ otelAttributes[SemanticConventions.LLM_MODEL_NAME] = model;
1214
+ }
1215
+ if (modelParameters) {
1216
+ otelAttributes[SemanticConventions.LLM_INVOCATION_PARAMETERS] = _serialize(modelParameters);
1217
+ otelAttributes[OtelSpanAttributes.LLM_MODEL_PARAMETERS] = _serialize(modelParameters);
1218
+ }
1219
+ if (usageDetails) {
1220
+ if (typeof usageDetails === "object") {
1221
+ const usage = usageDetails;
1222
+ if (usage.promptTokens !== void 0) {
1223
+ otelAttributes[SemanticConventions.LLM_TOKEN_COUNT_PROMPT] = usage.promptTokens;
1224
+ }
1225
+ if (usage.completionTokens !== void 0) {
1226
+ otelAttributes[SemanticConventions.LLM_TOKEN_COUNT_COMPLETION] = usage.completionTokens;
1227
+ }
1228
+ if (usage.totalTokens !== void 0) {
1229
+ otelAttributes[SemanticConventions.LLM_TOKEN_COUNT_TOTAL] = usage.totalTokens;
1230
+ }
1231
+ }
1232
+ otelAttributes[OtelSpanAttributes.LLM_USAGE_DETAILS] = _serialize(usageDetails);
1233
+ }
1234
+ if (completionStartTime) {
1235
+ otelAttributes[OtelSpanAttributes.LLM_COMPLETION_START_TIME] = _serialize(completionStartTime);
1236
+ }
1237
+ }
1238
+ if (type === "embedding") {
1239
+ if (model) {
1240
+ otelAttributes[SemanticConventions.EMBEDDING_MODEL_NAME] = model;
1241
+ }
1242
+ if (modelParameters) {
1243
+ otelAttributes[SemanticConventions.LLM_INVOCATION_PARAMETERS] = _serialize(modelParameters);
1244
+ }
1245
+ }
1246
+ const metadataAttrs = _flattenAndSerializeMetadata(
1247
+ metadata,
1248
+ SemanticConventions.METADATA
1249
+ );
1250
+ Object.assign(otelAttributes, metadataAttrs);
1251
+ const obsetvabilityMetadataAttrs = _flattenAndSerializeMetadata(
1252
+ metadata,
1253
+ OtelSpanAttributes.OBSERVATION_METADATA
1254
+ );
1255
+ Object.assign(otelAttributes, obsetvabilityMetadataAttrs);
1256
+ return Object.fromEntries(
1257
+ Object.entries(otelAttributes).filter(([_, v]) => v != null)
1258
+ );
1259
+ }
1260
+ function _serialize(obj) {
1261
+ try {
1262
+ if (typeof obj === "string") return obj;
1263
+ if (obj instanceof Date) return obj.toISOString();
1264
+ return obj != null ? JSON.stringify(obj) : void 0;
1265
+ } catch {
1266
+ return "<failed to serialize>";
1267
+ }
1268
+ }
1269
+ function _flattenAndSerializeMetadata(metadata, prefix) {
1270
+ const metadataAttributes = {};
1271
+ if (metadata === void 0 || metadata === null) {
1272
+ return metadataAttributes;
1273
+ }
1274
+ if (typeof metadata !== "object" || Array.isArray(metadata)) {
1275
+ const serialized = _serialize(metadata);
1276
+ if (serialized) {
1277
+ metadataAttributes[prefix] = serialized;
1278
+ }
1279
+ } else {
1280
+ for (const [key, value] of Object.entries(metadata)) {
1281
+ const serialized = typeof value === "string" ? value : _serialize(value);
1282
+ if (serialized) {
1283
+ metadataAttributes[`${prefix}.${key}`] = serialized;
1284
+ }
1285
+ }
1286
+ }
1287
+ return metadataAttributes;
1288
+ }
1289
+ var init_attributes = __esm({
1290
+ "src/core/attributes.ts"() {
1291
+ "use strict";
1292
+ init_constants();
1293
+ }
1294
+ });
1295
+ function createState() {
1296
+ return {
1297
+ isolatedTracerProvider: null
1298
+ };
1299
+ }
1300
+ function getObservabilityGlobalState() {
1301
+ const initialState = createState();
1302
+ try {
1303
+ const g = globalThis;
1304
+ if (typeof g !== "object" || g === null) {
1305
+ console.warn(
1306
+ "[Observability] globalThis is not available, using fallback state"
1307
+ );
1308
+ return initialState;
1309
+ }
1310
+ if (!g[OBSERVABILITY_GLOBAL_SYMBOL]) {
1311
+ Object.defineProperty(g, OBSERVABILITY_GLOBAL_SYMBOL, {
1312
+ value: initialState,
1313
+ writable: false,
1314
+ configurable: false,
1315
+ enumerable: false
1316
+ });
1317
+ }
1318
+ return g[OBSERVABILITY_GLOBAL_SYMBOL];
1319
+ } catch (err) {
1320
+ console.error(
1321
+ `[Observability] Failed to access global state: ${err instanceof Error ? err.message : String(err)}`
1322
+ );
1323
+ return initialState;
1324
+ }
1325
+ }
1326
+ function setTracerProvider(provider) {
1327
+ getObservabilityGlobalState().isolatedTracerProvider = provider;
1328
+ }
1329
+ function getTracerProvider() {
1330
+ const { isolatedTracerProvider } = getObservabilityGlobalState();
1331
+ if (isolatedTracerProvider) return isolatedTracerProvider;
1332
+ return trace.getTracerProvider();
1333
+ }
1334
+ function getTracer() {
1335
+ return getTracerProvider().getTracer(
1336
+ OBSERVABILITY_SDK_NAME,
1337
+ OBSERVABILITY_SDK_VERSION
1338
+ );
1339
+ }
1340
+ var OBSERVABILITY_GLOBAL_SYMBOL;
1341
+ var OBSERVABILITY_SDK_NAME;
1342
+ var OBSERVABILITY_SDK_VERSION;
1343
+ var init_tracerProvider = __esm({
1344
+ "src/core/tracerProvider.ts"() {
1345
+ "use strict";
1346
+ OBSERVABILITY_GLOBAL_SYMBOL = /* @__PURE__ */ Symbol.for("observability");
1347
+ OBSERVABILITY_SDK_NAME = "ag-kit-observability";
1348
+ OBSERVABILITY_SDK_VERSION = "0.1.0";
1349
+ }
1350
+ });
1351
+ var BaseObservation;
1352
+ var ObservationSpan;
1353
+ var ObservationLLM;
1354
+ var ObservationEmbedding;
1355
+ var ObservationAgent;
1356
+ var ObservationTool;
1357
+ var ObservationChain;
1358
+ var ObservationRetriever;
1359
+ var ObservationReranker;
1360
+ var ObservationEvaluator;
1361
+ var ObservationGuardrail;
1362
+ var init_spanWrapper = __esm({
1363
+ "src/core/spanWrapper.ts"() {
1364
+ "use strict";
1365
+ init_attributes();
1366
+ init_tracerProvider();
1367
+ BaseObservation = class {
1368
+ constructor(params) {
1369
+ /** The underlying OpenTelemetry span */
1370
+ __publicField(this, "otelSpan");
1371
+ /** The observation type */
1372
+ __publicField(this, "type");
1373
+ /** The span ID from the OpenTelemetry span context */
1374
+ __publicField(this, "id");
1375
+ /** The trace ID from the OpenTelemetry span context */
1376
+ __publicField(this, "traceId");
1377
+ this.otelSpan = params.otelSpan;
1378
+ this.id = params.otelSpan.spanContext().spanId;
1379
+ this.traceId = params.otelSpan.spanContext().traceId;
1380
+ this.type = params.type;
1381
+ if (params.attributes) {
1382
+ this.otelSpan.setAttributes(
1383
+ createObservationAttributes(params.type, params.attributes)
1384
+ );
1385
+ }
1386
+ }
1387
+ /** Gets the AG-Kit OpenTelemetry tracer instance */
1388
+ get tracer() {
1389
+ return getTracer();
1390
+ }
1391
+ /**
1392
+ * Ends the observation, marking it as complete.
1393
+ *
1394
+ * @param endTime - Optional end time, defaults to current time
1395
+ */
1396
+ end(endTime) {
1397
+ this.otelSpan.end(endTime);
1398
+ }
1399
+ /**
1400
+ * Updates the OTEL span attributes.
1401
+ *
1402
+ * @param attributes - Attributes to update
1403
+ * @internal
1404
+ */
1405
+ updateOtelSpanAttributes(attributes) {
1406
+ this.otelSpan.setAttributes(
1407
+ createObservationAttributes(this.type, attributes)
1408
+ );
1409
+ }
1410
+ /**
1411
+ * Updates the parent trace with new attributes.
1412
+ *
1413
+ * @param attributes - Trace attributes to set
1414
+ * @returns This observation for method chaining
1415
+ */
1416
+ updateTrace(attributes) {
1417
+ this.otelSpan.setAttributes(createTraceAttributes(attributes));
1418
+ return this;
1419
+ }
1420
+ startObservation(name, attributes, options) {
1421
+ const { startObservation: startObs } = (init_src(), __toCommonJS(src_exports));
1422
+ const { asType = "span" } = options || {};
1423
+ return startObs(name, attributes, {
1424
+ asType,
1425
+ parentSpanContext: this.otelSpan.spanContext()
1426
+ });
1427
+ }
1428
+ };
1429
+ ObservationSpan = class extends BaseObservation {
1430
+ constructor(params) {
1431
+ super({ ...params, type: "span" });
1432
+ }
1433
+ update(attributes) {
1434
+ super.updateOtelSpanAttributes(attributes);
1435
+ return this;
1436
+ }
1437
+ };
1438
+ ObservationLLM = class extends BaseObservation {
1439
+ constructor(params) {
1440
+ super({ ...params, type: "llm" });
1441
+ }
1442
+ update(attributes) {
1443
+ super.updateOtelSpanAttributes(attributes);
1444
+ return this;
1445
+ }
1446
+ };
1447
+ ObservationEmbedding = class extends BaseObservation {
1448
+ constructor(params) {
1449
+ super({ ...params, type: "embedding" });
1450
+ }
1451
+ update(attributes) {
1452
+ super.updateOtelSpanAttributes(attributes);
1453
+ return this;
1454
+ }
1455
+ };
1456
+ ObservationAgent = class extends BaseObservation {
1457
+ constructor(params) {
1458
+ super({ ...params, type: "agent" });
1459
+ }
1460
+ update(attributes) {
1461
+ super.updateOtelSpanAttributes(attributes);
1462
+ return this;
1463
+ }
1464
+ };
1465
+ ObservationTool = class extends BaseObservation {
1466
+ constructor(params) {
1467
+ super({ ...params, type: "tool" });
1468
+ }
1469
+ update(attributes) {
1470
+ super.updateOtelSpanAttributes(attributes);
1471
+ return this;
1472
+ }
1473
+ };
1474
+ ObservationChain = class extends BaseObservation {
1475
+ constructor(params) {
1476
+ super({ ...params, type: "chain" });
1477
+ }
1478
+ update(attributes) {
1479
+ super.updateOtelSpanAttributes(attributes);
1480
+ return this;
1481
+ }
1482
+ };
1483
+ ObservationRetriever = class extends BaseObservation {
1484
+ constructor(params) {
1485
+ super({ ...params, type: "retriever" });
1486
+ }
1487
+ update(attributes) {
1488
+ super.updateOtelSpanAttributes(attributes);
1489
+ return this;
1490
+ }
1491
+ };
1492
+ ObservationReranker = class extends BaseObservation {
1493
+ constructor(params) {
1494
+ super({ ...params, type: "reranker" });
1495
+ }
1496
+ update(attributes) {
1497
+ super.updateOtelSpanAttributes(attributes);
1498
+ return this;
1499
+ }
1500
+ };
1501
+ ObservationEvaluator = class extends BaseObservation {
1502
+ constructor(params) {
1503
+ super({ ...params, type: "evaluator" });
1504
+ }
1505
+ update(attributes) {
1506
+ super.updateOtelSpanAttributes(attributes);
1507
+ return this;
1508
+ }
1509
+ };
1510
+ ObservationGuardrail = class extends BaseObservation {
1511
+ constructor(params) {
1512
+ super({ ...params, type: "guardrail" });
1513
+ }
1514
+ update(attributes) {
1515
+ super.updateOtelSpanAttributes(attributes);
1516
+ return this;
1517
+ }
1518
+ };
1519
+ }
1520
+ });
1521
+ var src_exports = {};
1522
+ __export(src_exports, {
1523
+ ObservationAgent: () => ObservationAgent,
1524
+ ObservationChain: () => ObservationChain,
1525
+ ObservationEmbedding: () => ObservationEmbedding,
1526
+ ObservationEvaluator: () => ObservationEvaluator,
1527
+ ObservationGuardrail: () => ObservationGuardrail,
1528
+ ObservationLLM: () => ObservationLLM,
1529
+ ObservationReranker: () => ObservationReranker,
1530
+ ObservationRetriever: () => ObservationRetriever,
1531
+ ObservationSpan: () => ObservationSpan,
1532
+ ObservationTool: () => ObservationTool,
1533
+ createObservationAttributes: () => createObservationAttributes,
1534
+ createTraceAttributes: () => createTraceAttributes,
1535
+ getActiveSpanId: () => getActiveSpanId,
1536
+ getActiveTraceId: () => getActiveTraceId,
1537
+ getTracer: () => getTracer,
1538
+ getTracerProvider: () => getTracerProvider,
1539
+ observe: () => observe,
1540
+ setTracerProvider: () => setTracerProvider,
1541
+ startActiveObservation: () => startActiveObservation,
1542
+ startObservation: () => startObservation,
1543
+ updateActiveObservation: () => updateActiveObservation,
1544
+ updateActiveTrace: () => updateActiveTrace
1545
+ });
1546
+ function createOtelSpan(params) {
1547
+ return getTracer().startSpan(
1548
+ params.name,
1549
+ { startTime: params.startTime },
1550
+ createParentContext(params.parentSpanContext)
1551
+ );
1552
+ }
1553
+ function createParentContext(parentSpanContext) {
1554
+ if (!parentSpanContext) return;
1555
+ return trace.setSpanContext(context.active(), parentSpanContext);
1556
+ }
1557
+ function startObservation(name, attributes, options) {
1558
+ const { asType = "span", ...observationOptions } = options || {};
1559
+ const otelSpan = createOtelSpan({
1560
+ name,
1561
+ ...observationOptions
1562
+ });
1563
+ switch (asType) {
1564
+ case "llm":
1565
+ return new ObservationLLM({
1566
+ otelSpan,
1567
+ attributes
1568
+ });
1569
+ case "embedding":
1570
+ return new ObservationEmbedding({
1571
+ otelSpan,
1572
+ attributes
1573
+ });
1574
+ case "agent":
1575
+ return new ObservationAgent({
1576
+ otelSpan,
1577
+ attributes
1578
+ });
1579
+ case "tool":
1580
+ return new ObservationTool({
1581
+ otelSpan,
1582
+ attributes
1583
+ });
1584
+ case "chain":
1585
+ return new ObservationChain({
1586
+ otelSpan,
1587
+ attributes
1588
+ });
1589
+ case "retriever":
1590
+ return new ObservationRetriever({
1591
+ otelSpan,
1592
+ attributes
1593
+ });
1594
+ case "reranker":
1595
+ return new ObservationReranker({
1596
+ otelSpan,
1597
+ attributes
1598
+ });
1599
+ case "evaluator":
1600
+ return new ObservationEvaluator({
1601
+ otelSpan,
1602
+ attributes
1603
+ });
1604
+ case "guardrail":
1605
+ return new ObservationGuardrail({
1606
+ otelSpan,
1607
+ attributes
1608
+ });
1609
+ case "span":
1610
+ default:
1611
+ return new ObservationSpan({
1612
+ otelSpan,
1613
+ attributes
1614
+ });
1615
+ }
1616
+ }
1617
+ function updateActiveTrace(attributes) {
1618
+ const span = trace.getActiveSpan();
1619
+ if (!span) {
1620
+ console.warn(
1621
+ "[Observability] No active OTEL span in context. Skipping trace update."
1622
+ );
1623
+ return;
1624
+ }
1625
+ span.setAttributes(createTraceAttributes(attributes));
1626
+ }
1627
+ function getActiveTraceId() {
1628
+ return trace.getActiveSpan()?.spanContext().traceId;
1629
+ }
1630
+ function getActiveSpanId() {
1631
+ return trace.getActiveSpan()?.spanContext().spanId;
1632
+ }
1633
+ function wrapPromise(promise, span, endOnExit) {
1634
+ return promise.then(
1635
+ (value) => {
1636
+ if (endOnExit !== false) {
1637
+ span.end();
1638
+ }
1639
+ return value;
1640
+ },
1641
+ (err) => {
1642
+ span.setStatus({
1643
+ code: SpanStatusCode.ERROR,
1644
+ message: err instanceof Error ? err.message : "Unknown error"
1645
+ });
1646
+ if (endOnExit !== false) {
1647
+ span.end();
1648
+ }
1649
+ throw err;
1650
+ }
1651
+ );
1652
+ }
1653
+ function startActiveObservation(name, fn, options) {
1654
+ const { asType = "span", endOnExit, ...observationOptions } = options || {};
1655
+ return getTracer().startActiveSpan(
1656
+ name,
1657
+ { startTime: observationOptions?.startTime },
1658
+ createParentContext(observationOptions?.parentSpanContext) ?? context.active(),
1659
+ (span) => {
1660
+ try {
1661
+ let observation;
1662
+ switch (asType) {
1663
+ case "llm":
1664
+ observation = new ObservationLLM({ otelSpan: span });
1665
+ break;
1666
+ case "embedding":
1667
+ observation = new ObservationEmbedding({ otelSpan: span });
1668
+ break;
1669
+ case "agent":
1670
+ observation = new ObservationAgent({ otelSpan: span });
1671
+ break;
1672
+ case "tool":
1673
+ observation = new ObservationTool({ otelSpan: span });
1674
+ break;
1675
+ case "chain":
1676
+ observation = new ObservationChain({ otelSpan: span });
1677
+ break;
1678
+ case "retriever":
1679
+ observation = new ObservationRetriever({ otelSpan: span });
1680
+ break;
1681
+ case "reranker":
1682
+ observation = new ObservationReranker({ otelSpan: span });
1683
+ break;
1684
+ case "evaluator":
1685
+ observation = new ObservationEvaluator({ otelSpan: span });
1686
+ break;
1687
+ case "guardrail":
1688
+ observation = new ObservationGuardrail({ otelSpan: span });
1689
+ break;
1690
+ case "span":
1691
+ default:
1692
+ observation = new ObservationSpan({ otelSpan: span });
1693
+ }
1694
+ const result = fn(observation);
1695
+ if (result instanceof Promise) {
1696
+ return wrapPromise(
1697
+ result,
1698
+ span,
1699
+ endOnExit
1700
+ );
1701
+ } else {
1702
+ if (endOnExit !== false) {
1703
+ span.end();
1704
+ }
1705
+ return result;
1706
+ }
1707
+ } catch (err) {
1708
+ span.setStatus({
1709
+ code: SpanStatusCode.ERROR,
1710
+ message: err instanceof Error ? err.message : "Unknown error"
1711
+ });
1712
+ if (endOnExit !== false) {
1713
+ span.end();
1714
+ }
1715
+ throw err;
1716
+ }
1717
+ }
1718
+ );
1719
+ }
1720
+ function updateActiveObservation(attributes) {
1721
+ const span = trace.getActiveSpan();
1722
+ if (!span) {
1723
+ console.warn(
1724
+ "[Observability] No active OTEL span in context. Skipping observation update."
1725
+ );
1726
+ return;
1727
+ }
1728
+ span.setAttributes(createObservationAttributes("span", attributes));
1729
+ }
1730
+ function _captureArguments(args) {
1731
+ if (args.length === 0) return {};
1732
+ if (args.length === 1) return { arg: args[0] };
1733
+ return { args };
1734
+ }
1735
+ function observe(fn, options = {}) {
1736
+ const {
1737
+ asType = "span",
1738
+ captureInput = true,
1739
+ captureOutput = true,
1740
+ ...observationOptions
1741
+ } = options;
1742
+ const wrappedFunction = function(...args) {
1743
+ const name = fn.name || "anonymous-function";
1744
+ const inputData = captureInput ? _captureArguments(args) : void 0;
1745
+ const observation = startObservation(
1746
+ name,
1747
+ inputData ? { input: inputData } : {},
1748
+ {
1749
+ ...observationOptions,
1750
+ asType
1751
+ }
1752
+ );
1753
+ const activeContext = trace.setSpan(context.active(), observation.otelSpan);
1754
+ const result = context.with(activeContext, () => fn.apply(this, args));
1755
+ if (result instanceof Promise) {
1756
+ return result.then(
1757
+ (value) => {
1758
+ if (captureOutput) {
1759
+ observation.update({ output: value });
1760
+ }
1761
+ observation.end();
1762
+ return value;
1763
+ },
1764
+ (err) => {
1765
+ observation.update({
1766
+ level: "ERROR",
1767
+ statusMessage: err instanceof Error ? err.message : "Unknown error"
1768
+ });
1769
+ observation.end();
1770
+ throw err;
1771
+ }
1772
+ );
1773
+ }
1774
+ if (captureOutput) {
1775
+ observation.update({ output: result });
1776
+ }
1777
+ observation.end();
1778
+ return result;
1779
+ };
1780
+ Object.defineProperty(wrappedFunction, "name", { value: fn.name });
1781
+ Object.defineProperty(wrappedFunction, "length", { value: fn.length });
1782
+ return wrappedFunction;
1783
+ }
1784
+ var init_src = __esm({
1785
+ "src/index.ts"() {
1786
+ init_attributes();
1787
+ init_spanWrapper();
1788
+ init_tracerProvider();
1789
+ init_attributes();
1790
+ init_tracerProvider();
1791
+ }
1792
+ });
1793
+
1794
+ // ../../observability/dist/langchain.mjs
1795
+ import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
1796
+ import {
1797
+ AIMessage,
1798
+ AIMessageChunk,
1799
+ BaseMessage
1800
+ } from "@langchain/core/messages";
1801
+ init_src();
1802
+ var CallbackHandler = class extends BaseCallbackHandler {
1803
+ constructor(params) {
1804
+ super();
1805
+ __publicField(this, "name", "ObservabilityCallbackHandler");
1806
+ __publicField(this, "userId");
1807
+ __publicField(this, "version");
1808
+ __publicField(this, "sessionId");
1809
+ __publicField(this, "tags");
1810
+ __publicField(this, "traceMetadata");
1811
+ __publicField(this, "completionStartTimes", {});
1812
+ __publicField(this, "promptToParentRunMap");
1813
+ __publicField(this, "runMap", /* @__PURE__ */ new Map());
1814
+ __publicField(this, "last_trace_id", null);
1815
+ // External parent context from AG-UI.Server span
1816
+ __publicField(this, "externalParentSpanContext");
1817
+ // Adapter name for ROOT span prefix
1818
+ __publicField(this, "adapterName");
1819
+ this.sessionId = params?.sessionId;
1820
+ this.userId = params?.userId;
1821
+ this.tags = params?.tags ?? [];
1822
+ this.traceMetadata = params?.traceMetadata;
1823
+ this.version = params?.version;
1824
+ this.adapterName = params?.adapterName;
1825
+ this.promptToParentRunMap = /* @__PURE__ */ new Map();
1826
+ }
1827
+ get logger() {
1828
+ return console;
1829
+ }
1830
+ /**
1831
+ * Set external parent SpanContext from AG-UI.Server span.
1832
+ * This allows the CallbackHandler to link LangChain/LangGraph spans
1833
+ * to the server-level span, creating a unified trace hierarchy.
1834
+ *
1835
+ * @param spanContext - SpanContext from the AG-UI.Server span
1836
+ * @public
1837
+ */
1838
+ setExternalParentContext(spanContext) {
1839
+ this.externalParentSpanContext = spanContext;
1840
+ }
1841
+ async handleLLMNewToken(token, _idx, runId, _parentRunId, _tags, _fields) {
1842
+ if (runId && !(runId in this.completionStartTimes)) {
1843
+ this.logger.debug(`LLM first streaming token: ${runId}`);
1844
+ this.completionStartTimes[runId] = /* @__PURE__ */ new Date();
1845
+ }
1846
+ }
1847
+ async handleChainStart(chain, inputs, runId, parentRunId, tags, metadata, runType, name) {
1848
+ try {
1849
+ this.logger.debug(`Chain start with Id: ${runId}`);
1850
+ const runName = name ?? chain.id.at(-1)?.toString() ?? "Langchain Run";
1851
+ this.registerPromptInfo(parentRunId, metadata);
1852
+ let finalInput = inputs;
1853
+ if (typeof inputs === "object" && "input" in inputs && Array.isArray(inputs["input"]) && inputs["input"].every((m) => m instanceof BaseMessage)) {
1854
+ finalInput = inputs["input"].map(
1855
+ (m) => this.extractChatMessageContent(m)
1856
+ );
1857
+ } else if (typeof inputs === "object" && "messages" in inputs && Array.isArray(inputs["messages"]) && inputs["messages"].every((m) => m instanceof BaseMessage)) {
1858
+ finalInput = inputs["messages"].map(
1859
+ (m) => this.extractChatMessageContent(m)
1860
+ );
1861
+ } else if (typeof inputs === "object" && "content" in inputs && typeof inputs["content"] === "string") {
1862
+ finalInput = inputs["content"];
1863
+ }
1864
+ const observation = this.startAndRegisterObservation({
1865
+ runName,
1866
+ parentRunId,
1867
+ runId,
1868
+ tags,
1869
+ metadata,
1870
+ attributes: {
1871
+ input: finalInput
1872
+ },
1873
+ asType: "span"
1874
+ });
1875
+ const traceTags = [.../* @__PURE__ */ new Set([...tags ?? [], ...this.tags])];
1876
+ if (!parentRunId) {
1877
+ observation.updateTrace({
1878
+ tags: traceTags,
1879
+ userId: metadata && "userId" in metadata && typeof metadata["userId"] === "string" ? metadata["userId"] : this.userId,
1880
+ sessionId: metadata && "sessionId" in metadata && typeof metadata["sessionId"] === "string" ? metadata["sessionId"] : this.sessionId,
1881
+ metadata: this.traceMetadata,
1882
+ version: this.version
1883
+ });
1884
+ }
1885
+ } catch (e) {
1886
+ this.logger.debug(e instanceof Error ? e.message : String(e));
1887
+ }
1888
+ }
1889
+ async handleAgentAction(action, runId, parentRunId) {
1890
+ try {
1891
+ this.logger.debug(`Agent action ${action.tool} with ID: ${runId}`);
1892
+ this.startAndRegisterObservation({
1893
+ runId,
1894
+ parentRunId,
1895
+ runName: action.tool,
1896
+ attributes: {
1897
+ input: action
1898
+ },
1899
+ asType: "tool"
1900
+ });
1901
+ } catch (e) {
1902
+ this.logger.debug(e instanceof Error ? e.message : String(e));
1903
+ }
1904
+ }
1905
+ async handleAgentEnd(action, runId, _parentRunId) {
1906
+ try {
1907
+ this.logger.debug(`Agent finish with ID: ${runId}`);
1908
+ this.handleObservationEnd({
1909
+ runId,
1910
+ attributes: { output: action }
1911
+ });
1912
+ } catch (e) {
1913
+ this.logger.debug(e instanceof Error ? e.message : String(e));
1914
+ }
1915
+ }
1916
+ async handleChainError(err, runId, _parentRunId) {
1917
+ try {
1918
+ this.logger.debug(`Chain error: ${err} with ID: ${runId}`);
1919
+ this.handleObservationEnd({
1920
+ runId,
1921
+ attributes: {
1922
+ level: "ERROR",
1923
+ statusMessage: err.toString()
1924
+ }
1925
+ });
1926
+ } catch (e) {
1927
+ this.logger.debug(e instanceof Error ? e.message : String(e));
1928
+ }
1929
+ }
1930
+ async handleGenerationStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
1931
+ this.logger.debug(
1932
+ `Generation start with ID: ${runId} and parentRunId ${parentRunId}`
1933
+ );
1934
+ const runName = name ?? llm.id.at(-1)?.toString() ?? "Langchain Generation";
1935
+ const modelParameters = {};
1936
+ const invocationParams = extraParams?.["invocation_params"];
1937
+ for (const [key, value] of Object.entries({
1938
+ temperature: invocationParams?.temperature,
1939
+ max_tokens: invocationParams?.max_tokens,
1940
+ top_p: invocationParams?.top_p,
1941
+ frequency_penalty: invocationParams?.frequency_penalty,
1942
+ presence_penalty: invocationParams?.presence_penalty,
1943
+ request_timeout: invocationParams?.request_timeout
1944
+ })) {
1945
+ if (value !== void 0 && value !== null) {
1946
+ modelParameters[key] = value;
1947
+ }
1948
+ }
1949
+ let extractedModelName;
1950
+ if (extraParams) {
1951
+ const invocationParamsModelName = extraParams.invocation_params.model;
1952
+ const metadataModelName = metadata && "ls_model_name" in metadata ? metadata["ls_model_name"] : void 0;
1953
+ extractedModelName = invocationParamsModelName ?? metadataModelName;
1954
+ }
1955
+ const registeredPrompt = this.promptToParentRunMap.get(
1956
+ parentRunId ?? "root"
1957
+ );
1958
+ if (registeredPrompt && parentRunId) {
1959
+ this.deregisterPromptInfo(parentRunId);
1960
+ }
1961
+ this.startAndRegisterObservation({
1962
+ runId,
1963
+ parentRunId,
1964
+ metadata,
1965
+ tags,
1966
+ runName,
1967
+ attributes: {
1968
+ input: messages,
1969
+ model: extractedModelName,
1970
+ modelParameters
1971
+ },
1972
+ asType: "llm"
1973
+ });
1974
+ }
1975
+ async handleChatModelStart(llm, messages, runId, parentRunId, extraParams, tags, metadata, name) {
1976
+ try {
1977
+ this.logger.debug(`Chat model start with ID: ${runId}`);
1978
+ const prompts = messages.flatMap(
1979
+ (message) => message.map((m) => this.extractChatMessageContent(m))
1980
+ );
1981
+ this.handleGenerationStart(
1982
+ llm,
1983
+ prompts,
1984
+ runId,
1985
+ parentRunId,
1986
+ extraParams,
1987
+ tags,
1988
+ metadata,
1989
+ name
1990
+ );
1991
+ } catch (e) {
1992
+ this.logger.debug(e instanceof Error ? e.message : String(e));
1993
+ }
1994
+ }
1995
+ async handleChainEnd(outputs, runId, _parentRunId) {
1996
+ try {
1997
+ this.logger.debug(`Chain end with ID: ${runId}`);
1998
+ let finalOutput = outputs;
1999
+ if (typeof outputs === "object" && "output" in outputs && typeof outputs["output"] === "string") {
2000
+ finalOutput = outputs["output"];
2001
+ } else if (typeof outputs === "object" && "messages" in outputs && Array.isArray(outputs["messages"]) && outputs["messages"].every((m) => m instanceof BaseMessage)) {
2002
+ finalOutput = {
2003
+ messages: outputs.messages.map(
2004
+ (message) => this.extractChatMessageContent(message)
2005
+ )
2006
+ };
2007
+ }
2008
+ this.handleObservationEnd({
2009
+ runId,
2010
+ attributes: {
2011
+ output: finalOutput
2012
+ }
2013
+ });
2014
+ this.deregisterPromptInfo(runId);
2015
+ } catch (e) {
2016
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2017
+ }
2018
+ }
2019
+ async handleLLMStart(llm, prompts, runId, parentRunId, extraParams, tags, metadata, name) {
2020
+ try {
2021
+ this.logger.debug(`LLM start with ID: ${runId}`);
2022
+ this.handleGenerationStart(
2023
+ llm,
2024
+ prompts,
2025
+ runId,
2026
+ parentRunId,
2027
+ extraParams,
2028
+ tags,
2029
+ metadata,
2030
+ name
2031
+ );
2032
+ } catch (e) {
2033
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2034
+ }
2035
+ }
2036
+ async handleToolStart(tool, input, runId, parentRunId, tags, metadata, name) {
2037
+ try {
2038
+ this.logger.debug(`Tool start with ID: ${runId}`);
2039
+ this.startAndRegisterObservation({
2040
+ runId,
2041
+ parentRunId,
2042
+ runName: name ?? tool.id.at(-1)?.toString() ?? "Tool execution",
2043
+ attributes: {
2044
+ input
2045
+ },
2046
+ metadata,
2047
+ tags,
2048
+ asType: "tool"
2049
+ });
2050
+ } catch (e) {
2051
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2052
+ }
2053
+ }
2054
+ async handleRetrieverStart(retriever, query, runId, parentRunId, tags, metadata, name) {
2055
+ try {
2056
+ this.logger.debug(`Retriever start with ID: ${runId}`);
2057
+ this.startAndRegisterObservation({
2058
+ runId,
2059
+ parentRunId,
2060
+ runName: name ?? retriever.id.at(-1)?.toString() ?? "Retriever",
2061
+ attributes: {
2062
+ input: query
2063
+ },
2064
+ tags,
2065
+ metadata,
2066
+ asType: "span"
2067
+ });
2068
+ } catch (e) {
2069
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2070
+ }
2071
+ }
2072
+ async handleRetrieverEnd(documents, runId, _parentRunId) {
2073
+ try {
2074
+ this.logger.debug(`Retriever end with ID: ${runId}`);
2075
+ this.handleObservationEnd({
2076
+ runId,
2077
+ attributes: {
2078
+ output: documents
2079
+ }
2080
+ });
2081
+ } catch (e) {
2082
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2083
+ }
2084
+ }
2085
+ async handleRetrieverError(err, runId, _parentRunId) {
2086
+ try {
2087
+ this.logger.debug(`Retriever error: ${err} with ID: ${runId}`);
2088
+ this.handleObservationEnd({
2089
+ runId,
2090
+ attributes: {
2091
+ level: "ERROR",
2092
+ statusMessage: err.toString()
2093
+ }
2094
+ });
2095
+ } catch (e) {
2096
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2097
+ }
2098
+ }
2099
+ async handleToolEnd(output, runId, _parentRunId) {
2100
+ try {
2101
+ this.logger.debug(`Tool end with ID: ${runId}`);
2102
+ this.handleObservationEnd({
2103
+ runId,
2104
+ attributes: { output }
2105
+ });
2106
+ } catch (e) {
2107
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2108
+ }
2109
+ }
2110
+ async handleToolError(err, runId, _parentRunId) {
2111
+ try {
2112
+ this.logger.debug(`Tool error ${err} with ID: ${runId}`);
2113
+ this.handleObservationEnd({
2114
+ runId,
2115
+ attributes: {
2116
+ level: "ERROR",
2117
+ statusMessage: err.toString()
2118
+ }
2119
+ });
2120
+ } catch (e) {
2121
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2122
+ }
2123
+ }
2124
+ async handleLLMEnd(output, runId, _parentRunId) {
2125
+ try {
2126
+ this.logger.debug(`LLM end with ID: ${runId}`);
2127
+ const lastResponse = output.generations[output.generations.length - 1][output.generations[output.generations.length - 1].length - 1];
2128
+ const llmUsage = this.extractUsageMetadata(lastResponse) ?? output.llmOutput?.["tokenUsage"];
2129
+ const modelName = this.extractModelNameFromMetadata(lastResponse);
2130
+ const usageDetails = {
2131
+ input: llmUsage?.input_tokens ?? ("promptTokens" in llmUsage ? llmUsage?.promptTokens : void 0),
2132
+ output: llmUsage?.output_tokens ?? ("completionTokens" in llmUsage ? llmUsage?.completionTokens : void 0),
2133
+ total: llmUsage?.total_tokens ?? ("totalTokens" in llmUsage ? llmUsage?.totalTokens : void 0)
2134
+ };
2135
+ if (llmUsage && "input_token_details" in llmUsage) {
2136
+ for (const [key, val] of Object.entries(
2137
+ llmUsage["input_token_details"] ?? {}
2138
+ )) {
2139
+ usageDetails[`input_${key}`] = val;
2140
+ if ("input" in usageDetails && typeof val === "number") {
2141
+ usageDetails["input"] = Math.max(0, usageDetails["input"] - val);
2142
+ }
2143
+ }
2144
+ }
2145
+ if (llmUsage && "output_token_details" in llmUsage) {
2146
+ for (const [key, val] of Object.entries(
2147
+ llmUsage["output_token_details"] ?? {}
2148
+ )) {
2149
+ usageDetails[`output_${key}`] = val;
2150
+ if ("output" in usageDetails && typeof val === "number") {
2151
+ usageDetails["output"] = Math.max(0, usageDetails["output"] - val);
2152
+ }
2153
+ }
2154
+ }
2155
+ const extractedOutput = "message" in lastResponse ? this.extractChatMessageContent(
2156
+ lastResponse["message"]
2157
+ ) : lastResponse.text;
2158
+ this.handleObservationEnd({
2159
+ runId,
2160
+ attributes: {
2161
+ model: modelName,
2162
+ output: extractedOutput,
2163
+ completionStartTime: runId in this.completionStartTimes ? this.completionStartTimes[runId] : void 0,
2164
+ usageDetails
2165
+ }
2166
+ });
2167
+ if (runId in this.completionStartTimes) {
2168
+ delete this.completionStartTimes[runId];
2169
+ }
2170
+ } catch (e) {
2171
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2172
+ }
2173
+ }
2174
+ async handleLLMError(err, runId, _parentRunId) {
2175
+ try {
2176
+ this.logger.debug(`LLM error ${err} with ID: ${runId}`);
2177
+ this.handleObservationEnd({
2178
+ runId,
2179
+ attributes: {
2180
+ level: "ERROR",
2181
+ statusMessage: err.toString()
2182
+ }
2183
+ });
2184
+ } catch (e) {
2185
+ this.logger.debug(e instanceof Error ? e.message : String(e));
2186
+ }
2187
+ }
2188
+ registerPromptInfo(parentRunId, metadata) {
2189
+ if (metadata && "promptInfo" in metadata && parentRunId) {
2190
+ this.promptToParentRunMap.set(
2191
+ parentRunId,
2192
+ metadata.promptInfo
2193
+ );
2194
+ }
2195
+ }
2196
+ deregisterPromptInfo(runId) {
2197
+ this.promptToParentRunMap.delete(runId);
2198
+ }
2199
+ startAndRegisterObservation(params) {
2200
+ const { runName, runId, parentRunId, attributes, metadata, tags, asType } = params;
2201
+ let parentSpanContext;
2202
+ if (parentRunId) {
2203
+ parentSpanContext = this.runMap.get(parentRunId)?.otelSpan.spanContext();
2204
+ } else if (this.externalParentSpanContext) {
2205
+ parentSpanContext = this.externalParentSpanContext;
2206
+ }
2207
+ let finalRunName = runName;
2208
+ if (!parentRunId && this.adapterName) {
2209
+ finalRunName = `Adapter.${this.adapterName}`;
2210
+ }
2211
+ const observation = startObservation(
2212
+ finalRunName,
2213
+ {
2214
+ version: this.version,
2215
+ metadata: this.joinTagsAndMetaData(tags, metadata),
2216
+ ...attributes
2217
+ },
2218
+ {
2219
+ asType: asType ?? "span",
2220
+ parentSpanContext
2221
+ }
2222
+ );
2223
+ this.runMap.set(runId, observation);
2224
+ return observation;
2225
+ }
2226
+ handleObservationEnd(params) {
2227
+ const { runId, attributes = {} } = params;
2228
+ const observation = this.runMap.get(runId);
2229
+ if (!observation) {
2230
+ this.logger.warn("Observation not found in runMap. Skipping operation.");
2231
+ return;
2232
+ }
2233
+ observation.update(attributes).end();
2234
+ this.last_trace_id = observation.traceId;
2235
+ this.runMap.delete(runId);
2236
+ }
2237
+ joinTagsAndMetaData(tags, metadata1, metadata2) {
2238
+ const finalDict = {};
2239
+ if (tags && tags.length > 0) {
2240
+ finalDict.tags = tags;
2241
+ }
2242
+ if (metadata1) {
2243
+ Object.assign(finalDict, metadata1);
2244
+ }
2245
+ if (metadata2) {
2246
+ Object.assign(finalDict, metadata2);
2247
+ }
2248
+ return this.stripObservabilityKeysFromMetadata(finalDict);
2249
+ }
2250
+ stripObservabilityKeysFromMetadata(metadata) {
2251
+ if (!metadata) {
2252
+ return;
2253
+ }
2254
+ const reservedKeys = ["promptInfo", "userId", "sessionId"];
2255
+ return Object.fromEntries(
2256
+ Object.entries(metadata).filter(([key, _]) => !reservedKeys.includes(key))
2257
+ );
2258
+ }
2259
+ extractUsageMetadata(generation) {
2260
+ try {
2261
+ const usageMetadata = "message" in generation && (AIMessage.isInstance(generation["message"]) || AIMessageChunk.isInstance(generation["message"])) ? generation["message"].usage_metadata : void 0;
2262
+ return usageMetadata;
2263
+ } catch (err) {
2264
+ this.logger.debug(`Error extracting usage metadata: ${err}`);
2265
+ return;
2266
+ }
2267
+ }
2268
+ extractModelNameFromMetadata(generation) {
2269
+ try {
2270
+ return "message" in generation && (AIMessage.isInstance(generation["message"]) || AIMessageChunk.isInstance(generation["message"])) ? generation["message"].response_metadata.model_name : void 0;
2271
+ } catch {
2272
+ }
2273
+ }
2274
+ extractChatMessageContent(message) {
2275
+ let response = void 0;
2276
+ if (message.getType() === "human") {
2277
+ response = { content: message.content, role: "user" };
2278
+ } else if (message.getType() === "generic") {
2279
+ response = {
2280
+ content: message.content,
2281
+ role: "human"
2282
+ };
2283
+ } else if (message.getType() === "ai") {
2284
+ response = { content: message.content, role: "assistant" };
2285
+ if ("tool_calls" in message && Array.isArray(message.tool_calls) && (message.tool_calls?.length ?? 0) > 0) {
2286
+ response["tool_calls"] = message["tool_calls"];
2287
+ }
2288
+ if ("additional_kwargs" in message && "tool_calls" in message["additional_kwargs"]) {
2289
+ response["tool_calls"] = message["additional_kwargs"]["tool_calls"];
2290
+ }
2291
+ } else if (message.getType() === "system") {
2292
+ response = { content: message.content, role: "system" };
2293
+ } else if (message.getType() === "function") {
2294
+ response = {
2295
+ content: message.content,
2296
+ additional_kwargs: message.additional_kwargs,
2297
+ role: message.name
2298
+ };
2299
+ } else if (message.getType() === "tool") {
2300
+ response = {
2301
+ content: message.content,
2302
+ additional_kwargs: message.additional_kwargs,
2303
+ role: message.name
2304
+ };
2305
+ } else if (!message.name) {
2306
+ response = { content: message.content };
2307
+ } else {
2308
+ response = {
2309
+ role: message.name,
2310
+ content: message.content
2311
+ };
2312
+ }
2313
+ if ((message.additional_kwargs.function_call || message.additional_kwargs.tool_calls) && response["tool_calls"] === void 0) {
2314
+ return { ...response, additional_kwargs: message.additional_kwargs };
2315
+ }
2316
+ return response;
2317
+ }
2318
+ };
2319
+ export {
2320
+ CallbackHandler
2321
+ };
2322
+ //# sourceMappingURL=langchain-NZNM23PL.mjs.map