judgeval 0.2.7 → 0.2.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.
Files changed (71) hide show
  1. package/dist/cjs/common/integrations/langgraph.js +360 -107
  2. package/dist/cjs/common/integrations/langgraph.js.map +1 -1
  3. package/dist/cjs/common/token-costs.js +95 -0
  4. package/dist/cjs/common/token-costs.js.map +1 -0
  5. package/dist/cjs/common/tracer.js +29 -18
  6. package/dist/cjs/common/tracer.js.map +1 -1
  7. package/dist/cjs/data/example.js +24 -11
  8. package/dist/cjs/data/example.js.map +1 -1
  9. package/dist/cjs/data/result.js +5 -5
  10. package/dist/cjs/data/result.js.map +1 -1
  11. package/dist/cjs/judges/index.js +20 -0
  12. package/dist/cjs/judges/index.js.map +1 -1
  13. package/dist/cjs/judgment-client.js +103 -41
  14. package/dist/cjs/judgment-client.js.map +1 -1
  15. package/dist/cjs/run-evaluation.js +89 -7
  16. package/dist/cjs/run-evaluation.js.map +1 -1
  17. package/dist/cjs/scorers/api-scorer.js +5 -0
  18. package/dist/cjs/scorers/api-scorer.js.map +1 -1
  19. package/dist/cjs/scorers/base-scorer.js +48 -0
  20. package/dist/cjs/scorers/base-scorer.js.map +1 -1
  21. package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js +59 -107
  22. package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -1
  23. package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js +16 -27
  24. package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -1
  25. package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js +10 -22
  26. package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js.map +1 -1
  27. package/dist/cjs/scorers/metrics/hallucination/hallucination.js +11 -15
  28. package/dist/cjs/scorers/metrics/hallucination/hallucination.js.map +1 -1
  29. package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js +11 -15
  30. package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -1
  31. package/dist/esm/common/integrations/langgraph.js +338 -108
  32. package/dist/esm/common/integrations/langgraph.js.map +1 -1
  33. package/dist/esm/common/token-costs.js +91 -0
  34. package/dist/esm/common/token-costs.js.map +1 -0
  35. package/dist/esm/common/tracer.js +29 -18
  36. package/dist/esm/common/tracer.js.map +1 -1
  37. package/dist/esm/data/example.js +24 -11
  38. package/dist/esm/data/example.js.map +1 -1
  39. package/dist/esm/data/result.js +5 -5
  40. package/dist/esm/data/result.js.map +1 -1
  41. package/dist/esm/judges/index.js +20 -0
  42. package/dist/esm/judges/index.js.map +1 -1
  43. package/dist/esm/judgment-client.js +103 -41
  44. package/dist/esm/judgment-client.js.map +1 -1
  45. package/dist/esm/run-evaluation.js +89 -7
  46. package/dist/esm/run-evaluation.js.map +1 -1
  47. package/dist/esm/scorers/api-scorer.js +5 -0
  48. package/dist/esm/scorers/api-scorer.js.map +1 -1
  49. package/dist/esm/scorers/base-scorer.js +48 -0
  50. package/dist/esm/scorers/base-scorer.js.map +1 -1
  51. package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js +57 -100
  52. package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -1
  53. package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js +15 -26
  54. package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -1
  55. package/dist/esm/scorers/metrics/faithfulness/faithfulness.js +10 -22
  56. package/dist/esm/scorers/metrics/faithfulness/faithfulness.js.map +1 -1
  57. package/dist/esm/scorers/metrics/hallucination/hallucination.js +11 -15
  58. package/dist/esm/scorers/metrics/hallucination/hallucination.js.map +1 -1
  59. package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js +11 -15
  60. package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -1
  61. package/dist/types/common/integrations/langgraph.d.ts +19 -12
  62. package/dist/types/common/token-costs.d.ts +36 -0
  63. package/dist/types/judgment-client.d.ts +17 -3
  64. package/dist/types/scorers/api-scorer.d.ts +5 -0
  65. package/dist/types/scorers/base-scorer.d.ts +19 -0
  66. package/dist/types/scorers/metrics/answer-correctness/answer-correctness.d.ts +8 -27
  67. package/dist/types/scorers/metrics/answer-relevancy/answer-relevancy.d.ts +1 -5
  68. package/dist/types/scorers/metrics/faithfulness/faithfulness.d.ts +0 -4
  69. package/dist/types/scorers/metrics/hallucination/hallucination.d.ts +0 -4
  70. package/dist/types/scorers/metrics/instruction-adherence/instruction-adherence.d.ts +0 -4
  71. package/package.json +1 -1
@@ -8,39 +8,165 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { BaseCallbackHandler, } from "@langchain/core/callbacks/base";
11
- import { Tracer } from "../tracer.js";
12
- // It's my understanding that you can only be on one node in the graph at a time
13
- // That means we don't need to worry about the async problem
11
+ import { Tracer, TraceClient } from "../tracer.js";
12
+ import * as uuid from "uuid";
13
+ // Removed ActiveNodeSpan interface
14
+ // Match Python structure more closely
14
15
  export class JudgevalLanggraphCallbackHandler extends BaseCallbackHandler {
15
16
  constructor(tracer) {
16
17
  super();
17
18
  this.name = "judgeval_langgraph_callback_handler";
19
+ this._startTime = 0; // Needed for TS manual duration calculation (if needed)
20
+ this.finished = false;
21
+ this.rootSpanStarted = false; // Still useful to track root
22
+ // Removed activeNodeSpans array
23
+ // Attributes for users to access (matching Python)
18
24
  this.executedNodeTools = [];
19
- this.executedNodes = [];
25
+ this.executedNodes = []; // Add this like Python
20
26
  this.executedTools = [];
21
27
  this.tracer = tracer !== null && tracer !== void 0 ? tracer : Tracer.getInstance();
22
- console.log(`[Judgeval Handler] Initialized. Monitoring Enabled: ${this.tracer.enableMonitoring}`); // Added prefix
28
+ console.log(`[Judgeval Handler] Initialized. Monitoring Enabled: ${this.tracer.enableMonitoring}`);
29
+ // traceClient will be initialized in handleChainStart if needed
23
30
  }
24
- getTraceClient() {
31
+ // --- Reset state helper (called internally) ---
32
+ initializeRunState(client) {
33
+ this.traceClient = client;
34
+ this.previousNode = undefined;
35
+ this._startTime = 0;
36
+ this.finished = false;
37
+ this.rootSpanStarted = true; // Mark as started since we just created/found the client
38
+ this.executedNodeTools.length = 0;
39
+ this.executedNodes.length = 0;
40
+ this.executedTools.length = 0;
41
+ console.log(`[Judgeval Handler] Run state initialized for TraceClient ID: ${client.traceId}`);
42
+ }
43
+ // --- Span management (simplified, relies on TraceClient internals) ---
44
+ startSpan(name, spanType = "span") {
45
+ if (!this.traceClient) {
46
+ console.warn(`[Judgeval Handler] startSpan(${name}, ${spanType}) called but traceClient is undefined.`);
47
+ return undefined;
48
+ }
49
+ const parentSpanId = this.traceClient.getCurrentSpanId();
50
+ console.log(`[Judgeval Handler] Before startSpan(${name}): Current Span ID = ${parentSpanId}`);
51
+ this.traceClient.startSpan(name, { spanType }); // TraceClient handles stack
52
+ const newSpanId = this.traceClient.getCurrentSpanId();
53
+ console.log(`[Judgeval Handler] Started span: ${name} (ID: ${newSpanId}), Parent reported: ${parentSpanId}, Type: ${spanType}`);
54
+ return newSpanId;
55
+ }
56
+ endSpan(context) {
57
+ if (!this.traceClient) {
58
+ console.warn(`[Judgeval Handler] endSpan(${context !== null && context !== void 0 ? context : ''}) called but traceClient is undefined.`);
59
+ return;
60
+ }
61
+ const currentSpanId = this.traceClient.getCurrentSpanId();
62
+ console.log(`[Judgeval Handler] Before endSpan(${context !== null && context !== void 0 ? context : ''}): Current Span ID = ${currentSpanId}`);
63
+ this.traceClient.endSpan(); // TraceClient handles stack
64
+ const spanIdAfterEnd = this.traceClient.getCurrentSpanId();
65
+ console.log(`[Judgeval Handler] Ended span: ${currentSpanId} (Context: ${context !== null && context !== void 0 ? context : 'N/A'}). Current Span ID after end: ${spanIdAfterEnd}`);
66
+ // Save logic: Python saves when depth returns to 0.
67
+ // TS TraceClient doesn't expose depth. Rely on external context ending or manual save?
68
+ // For now, let's stick to the previous logic: save if root finished and stack is empty.
69
+ // The final endSpan call will be triggered by the tracer wrapper ideally.
70
+ if (this.rootSpanStarted && this.finished && spanIdAfterEnd === undefined) {
71
+ console.log("[Judgeval Handler] Root context likely ended and graph finished. Saving trace.");
72
+ if (this.traceClient) {
73
+ // Save might need to happen *before* clearing the client
74
+ const clientToSave = this.traceClient;
75
+ this.traceClient = undefined; // Clear reference first?
76
+ this.rootSpanStarted = false;
77
+ clientToSave.save(true) // Save with overwrite=true
78
+ .then(() => console.log(`[Judgeval Handler] Trace ${clientToSave.traceId} saved.`))
79
+ .catch(err => console.error(`[Judgeval Handler] Error saving trace ${clientToSave.traceId}:`, err));
80
+ }
81
+ else {
82
+ console.warn("[Judgeval Handler] Cannot save trace as traceClient is undefined after root span ended.");
83
+ }
84
+ }
85
+ }
86
+ // --- Get or Create Client (Python logic adapted) ---
87
+ getOrCreateRootTraceClient(name, runType) {
25
88
  if (!this.tracer.enableMonitoring)
26
89
  return undefined;
27
- const client = this.tracer.getCurrentTrace();
28
- if (!client) {
29
- console.warn("No trace client found");
90
+ // If a client already exists for this handler instance, return it
91
+ if (this.traceClient) {
92
+ // console.log(`[Judgeval Handler] Re-using existing TraceClient instance (ID: ${this.traceClient.traceId}).`);
93
+ return this.traceClient;
94
+ }
95
+ // Check if we are starting the root LangGraph run (like Python's check)
96
+ const isLangGraphRootStart = (name === 'LangGraph' || runType === 'Graph'); // Check both name and runType
97
+ if (isLangGraphRootStart) {
98
+ console.log("[Judgeval Handler] LangGraph root run detected. Getting/Creating TraceClient.");
99
+ // Check context first, in case external wrapper is used
100
+ let client = this.tracer.getCurrentTrace();
101
+ if (client) {
102
+ console.log(`[Judgeval Handler] Found existing TraceClient in context (ID: ${client.traceId}). Initializing run state.`);
103
+ this.initializeRunState(client);
104
+ }
105
+ else {
106
+ // Create a new TraceClient if none exists (like Python)
107
+ console.log("[Judgeval Handler] No TraceClient in context, creating new one.");
108
+ const traceId = uuid.v4();
109
+ client = new TraceClient({
110
+ tracer: this.tracer,
111
+ traceId: traceId,
112
+ name: "LangGraphRun", // Default name
113
+ projectName: this.tracer.projectName,
114
+ overwrite: false,
115
+ rules: this.tracer.defaultRules,
116
+ enableMonitoring: this.tracer.enableMonitoring,
117
+ enableEvaluations: this.tracer.enableEvaluations,
118
+ apiKey: this.tracer.apiKey,
119
+ organizationId: this.tracer.organizationId
120
+ });
121
+ // Save empty trace immediately (like Python)
122
+ client.save(false).catch(err => console.error("[Judgeval Handler] Error saving initial empty trace:", err));
123
+ this.initializeRunState(client);
124
+ // We might need to manually set this client into the async context
125
+ // if LangChain doesn't propagate it from the initial invoke context.
126
+ // This is complex and might require changes to the Tracer class or usage pattern.
127
+ // For now, we store it locally in the handler.
128
+ console.log(`[Judgeval Handler] Created new TraceClient (ID: ${client.traceId}). Run state initialized.`);
129
+ }
130
+ // Start the root span *after* initializing the state
131
+ this.startSpan("LangGraphRoot", "Main Function");
132
+ return this.traceClient;
133
+ }
134
+ else {
135
+ // If it's not the root start, try to get the client from context (might exist due to wrapper)
136
+ let client = this.tracer.getCurrentTrace();
137
+ if (client) {
138
+ // If we find a client but haven't initialized state, initialize now
139
+ if (!this.traceClient) {
140
+ console.log(`[Judgeval Handler] Found TraceClient in context mid-run (ID: ${client.traceId}). Initializing run state.`);
141
+ this.initializeRunState(client);
142
+ }
143
+ return this.traceClient;
144
+ }
145
+ else {
146
+ // No client found, and it's not the root start - likely context issue
147
+ console.warn(`[Judgeval Handler] handleChainStart called for non-root chain ('${name}') but no TraceClient found in context.`);
148
+ return undefined;
149
+ }
30
150
  }
31
- return client;
32
151
  }
152
+ // --- Callback Handlers (Adapted to Python logic) ---
33
153
  handleRetrieverStart(serialized, query, runId, parentRunId, tags, metadata, name, options) {
34
154
  return __awaiter(this, void 0, void 0, function* () {
155
+ // Ensure client exists, but don't create it here
156
+ this.traceClient = this.tracer.getCurrentTrace();
157
+ if (!this.traceClient) {
158
+ console.warn(`[Judgeval Handler] handleRetrieverStart: No TraceClient found.`);
159
+ return;
160
+ }
35
161
  let name_ = "RETRIEVER_CALL";
36
- if (serialized === null || serialized === void 0 ? void 0 : serialized.name) {
162
+ if (name) {
163
+ name_ = `RETRIEVER_${name.toUpperCase()}`;
164
+ }
165
+ else if (serialized === null || serialized === void 0 ? void 0 : serialized.name) {
37
166
  name_ = `RETRIEVER_${serialized.name.toUpperCase()}`;
38
167
  }
39
- const traceClient = this.getTraceClient();
40
- if (!traceClient)
41
- return;
42
- traceClient.startSpan(name_, { spanType: "retriever" });
43
- traceClient.recordInput({
168
+ this.startSpan(name_, "retriever");
169
+ this.traceClient.recordInput({
44
170
  query,
45
171
  tags,
46
172
  metadata,
@@ -50,6 +176,10 @@ export class JudgevalLanggraphCallbackHandler extends BaseCallbackHandler {
50
176
  }
51
177
  handleRetrieverEnd(documents, runId, parentRunId, tags, options) {
52
178
  return __awaiter(this, void 0, void 0, function* () {
179
+ // Use existing client
180
+ if (!this.traceClient || !this.traceClient.getCurrentSpanId())
181
+ return;
182
+ // ... record output (docSummary)
53
183
  const docSummary = documents.map((doc, i) => ({
54
184
  index: i,
55
185
  page_content: doc.pageContent.length > 100
@@ -57,157 +187,257 @@ export class JudgevalLanggraphCallbackHandler extends BaseCallbackHandler {
57
187
  : doc.pageContent,
58
188
  metadata: doc.metadata,
59
189
  }));
60
- const traceClient = this.getTraceClient();
61
- if (!traceClient)
62
- return;
63
- traceClient.recordOutput({
64
- document_count: documents.length,
65
- documents: docSummary,
66
- });
67
- traceClient.endSpan();
190
+ this.traceClient.recordOutput({ document_count: documents.length, documents: docSummary });
191
+ this.endSpan("RetrieverEnd");
68
192
  });
69
193
  }
70
194
  handleRetrieverError(error, runId, parentRunId, tags, options) {
71
195
  return __awaiter(this, void 0, void 0, function* () {
72
- const traceClient = this.getTraceClient();
73
- if (!traceClient)
196
+ console.error(`[Judgeval Handler] Retriever error: ${error}`);
197
+ if (!this.traceClient || !this.traceClient.getCurrentSpanId())
74
198
  return;
75
- traceClient.recordError(error);
199
+ this.traceClient.recordError(error);
200
+ this.endSpan("RetrieverError");
76
201
  });
77
202
  }
78
- handleChainStart(serialized, inputs, runId, parentRunId, tags, metadata, name, runName, runType, options) {
203
+ handleChainStart(serialized, inputs, runId, parentRunId, tags, metadata, runType, name, options) {
79
204
  return __awaiter(this, void 0, void 0, function* () {
80
- let traceClient = this.getTraceClient();
81
- if (!traceClient) {
82
- console.warn("No trace client found");
205
+ var _a;
206
+ console.log(`[Judgeval Handler] handleChainStart: Name=${name}, Type=${runType}, Node=${metadata === null || metadata === void 0 ? void 0 : metadata.langgraph_node}, RunID=${runId}`);
207
+ // Initialize client and root span if this is the LangGraph start
208
+ // Otherwise, ensure client exists from context
209
+ const client = this.getOrCreateRootTraceClient(name, runType);
210
+ if (!client)
211
+ return; // If no client (monitoring off or context issue), do nothing
212
+ // Now handle node detection (if not the root start event itself)
213
+ const isLangGraphRootStartEvent = (name === 'LangGraph' || runType === 'Graph') && this.rootSpanStarted;
214
+ const nodeName = metadata === null || metadata === void 0 ? void 0 : metadata.langgraph_node;
215
+ // Don't process the root start event as a node start
216
+ if (isLangGraphRootStartEvent && nodeName === undefined) { // Check nodeName too
217
+ console.log(`[Judgeval Handler] Skipping node processing for root start event.`);
83
218
  return;
84
219
  }
85
- traceClient.startSpan(name !== null && name !== void 0 ? name : "unknown_chain", { spanType: "chain" });
86
- traceClient.recordInput(inputs);
220
+ // If it's a node and different from the previous one
221
+ if (nodeName && nodeName !== this.previousNode) {
222
+ console.log(`[Judgeval Handler] New node detected: ${nodeName}`);
223
+ // Start a span for the node
224
+ this.startSpan(nodeName, "node");
225
+ // Update tracking (like Python)
226
+ this.executedNodes.push(nodeName);
227
+ // Update node:tool tracking context
228
+ this.previousNode = nodeName;
229
+ // Record input for the node span (like Python)
230
+ (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.recordInput({
231
+ args: inputs,
232
+ kwargs: { tags, metadata, runType, name: nodeName, options }
233
+ });
234
+ }
235
+ else if (nodeName && nodeName === this.previousNode) {
236
+ // It's a chain start within the *same* node, log but don't start new node span
237
+ console.log(`[Judgeval Handler] Chain start ('${name}') within existing node context ('${nodeName}').`);
238
+ }
239
+ else {
240
+ // It's some other chain, maybe log it?
241
+ console.log(`[Judgeval Handler] Generic chain start ('${name}') detected. Node context: '${this.previousNode}'.`);
242
+ }
87
243
  });
88
244
  }
89
- handleChainEnd(outputs, runId, parentRunId, tags, options) {
245
+ handleChainEnd(outputs, runId, parentRunId, tags, metadata, // Need metadata
246
+ name, options) {
90
247
  return __awaiter(this, void 0, void 0, function* () {
91
- const traceClient = this.getTraceClient();
92
- if (!traceClient)
248
+ var _a, _b, _c;
249
+ const currentSpanId = (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.getCurrentSpanId();
250
+ const nodeNameFromMetadata = metadata === null || metadata === void 0 ? void 0 : metadata.langgraph_node;
251
+ console.log(`[Judgeval Handler] handleChainEnd: RunID=${runId}, Node=${nodeNameFromMetadata}, CurrentSpanID=${currentSpanId}`);
252
+ if (!this.traceClient || !currentSpanId) {
253
+ console.warn(`[Judgeval Handler] handleChainEnd called but no active span. RunID=${runId}`);
93
254
  return;
94
- traceClient.recordOutput(outputs);
95
- traceClient.endSpan();
255
+ }
256
+ // Always record output
257
+ this.traceClient.recordOutput(outputs);
258
+ // Check if this marks the end of a graph step (node)
259
+ const isGraphStepEnd = tags === null || tags === void 0 ? void 0 : tags.some(tag => tag.includes("graph:step"));
260
+ if (isGraphStepEnd) {
261
+ console.log(`[Judgeval Handler] Graph step end detected for span: ${currentSpanId}. Ending span as 'node'.`);
262
+ // Assume the current span *is* the node span
263
+ this.endSpan(`NodeEnd: ${(_b = this.previousNode) !== null && _b !== void 0 ? _b : 'unknown'}`); // Use previousNode hint
264
+ }
265
+ // Check for graph finish signal AFTER potentially ending the node span
266
+ const isEndSignal = outputs === "__end__";
267
+ const isGraphFinishTag = tags === null || tags === void 0 ? void 0 : tags.some(tag => tag.includes(":graph:finish") || tag.includes(":__end__"));
268
+ if (isEndSignal || isGraphFinishTag) {
269
+ console.log(`[Judgeval Handler] Graph finished signal detected.`);
270
+ this.finished = true;
271
+ // End the root span if it's currently active
272
+ const currentSpanIdAfterNodeEnd = (_c = this.traceClient) === null || _c === void 0 ? void 0 : _c.getCurrentSpanId();
273
+ if (this.rootSpanStarted && !currentSpanIdAfterNodeEnd) {
274
+ console.log(`[Judgeval Handler] Graph finished signal and span stack is empty. Save should occur.`);
275
+ }
276
+ }
96
277
  });
97
278
  }
98
- handleChainError(error, runId, parentRunId, tags, options) {
279
+ handleChainError(error, runId, parentRunId, tags, metadata, name, options) {
99
280
  return __awaiter(this, void 0, void 0, function* () {
100
- console.log(`Chain error: ${error}`);
101
- const traceClient = this.getTraceClient();
102
- if (!traceClient)
281
+ var _a, _b;
282
+ console.error(`[Judgeval Handler] Chain error: ${error}`);
283
+ const currentSpanId = (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.getCurrentSpanId();
284
+ console.log(`[Judgeval Handler] ChainError occurred during span: ${currentSpanId}`);
285
+ if (!this.traceClient || !currentSpanId)
103
286
  return;
104
- traceClient.recordError(error);
105
- traceClient.endSpan();
287
+ this.traceClient.recordError(error);
288
+ // Check if the error occurred within a node span we are tracking
289
+ // Need a robust way to know if the current span is a node span started by us
290
+ // For now, assume if it's a graph step error, end the current span as node error
291
+ const isGraphStepError = tags === null || tags === void 0 ? void 0 : tags.some(tag => tag.includes("graph:step"));
292
+ if (isGraphStepError) {
293
+ console.log(`[Judgeval Handler] Ending current span ${currentSpanId} as NodeError due to graph:step tag.`);
294
+ this.endSpan(`NodeError: ${(_b = this.previousNode) !== null && _b !== void 0 ? _b : 'unknown'}`);
295
+ }
296
+ // Don't end generic chain errors otherwise, might pop root span too early.
106
297
  });
107
298
  }
108
- handleToolStart(serialized, inputStr, runId, parentRunId, tags, metadata, name, runType, runName, options) {
299
+ handleToolStart(serialized, inputStr, runId, parentRunId, tags, metadata, name, options) {
109
300
  return __awaiter(this, void 0, void 0, function* () {
110
- const traceClient = this.getTraceClient();
111
- if (!traceClient)
301
+ var _a;
302
+ const toolName = (_a = name !== null && name !== void 0 ? name : serialized === null || serialized === void 0 ? void 0 : serialized.name) !== null && _a !== void 0 ? _a : "unknown_tool";
303
+ console.log(`[Judgeval Handler] handleToolStart: Name=${toolName}, RunID=${runId}`);
304
+ // Ensure client exists
305
+ this.traceClient = this.tracer.getCurrentTrace();
306
+ if (!this.traceClient) {
307
+ console.warn(`[Judgeval Handler] handleToolStart: No TraceClient found.`);
112
308
  return;
113
- // Python SDK doesn't handle name None case
114
- traceClient.startSpan(name !== null && name !== void 0 ? name : "unknown_tool", { spanType: "tool" });
115
- if (name) {
116
- this.executedTools.push(name);
117
- this.executedNodeTools.push(this.previousNode ? `${this.previousNode}:${name}` : name);
118
309
  }
119
- traceClient.recordInput({
310
+ // this.previousNode should be set by the last handleChainStart for the node
311
+ console.log(`[Judgeval Handler] Starting tool span: ${toolName} (Parent Node Hint: ${this.previousNode})`);
312
+ this.startSpan(toolName, "tool");
313
+ this.executedTools.push(toolName);
314
+ const nodeTool = this.previousNode ? `${this.previousNode}:${toolName}` : toolName;
315
+ this.executedNodeTools.push(nodeTool);
316
+ this.traceClient.recordInput({
120
317
  args: inputStr,
121
- kwargs: options,
318
+ kwargs: { tags, metadata, options }
122
319
  });
123
320
  });
124
321
  }
125
- handleToolEnd(output, runId, parentRunId, options) {
322
+ handleToolEnd(output, runId, parentRunId, tags, options) {
126
323
  return __awaiter(this, void 0, void 0, function* () {
127
- const traceClient = this.getTraceClient();
128
- if (!traceClient)
324
+ var _a;
325
+ const currentSpanId = (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.getCurrentSpanId();
326
+ console.log(`[Judgeval Handler] handleToolEnd: RunID=${runId}, CurrentSpanID=${currentSpanId}`);
327
+ if (!this.traceClient || !currentSpanId)
129
328
  return;
130
- traceClient.recordOutput(output);
131
- traceClient.endSpan();
329
+ this.traceClient.recordOutput(output);
330
+ this.endSpan("ToolEnd"); // End specifically for tool
132
331
  });
133
332
  }
134
- handleToolError(error, runId, parentRunId, options) {
333
+ handleToolError(error, runId, parentRunId, tags, options) {
135
334
  return __awaiter(this, void 0, void 0, function* () {
136
- console.log(`Tool error: ${error}`);
137
- const traceClient = this.getTraceClient();
138
- if (!traceClient)
335
+ var _a;
336
+ console.error(`[Judgeval Handler] Tool error: ${error}`);
337
+ const currentSpanId = (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.getCurrentSpanId();
338
+ if (!this.traceClient || !currentSpanId)
139
339
  return;
140
- traceClient.recordError(error);
141
- traceClient.endSpan();
340
+ this.traceClient.recordError(error);
341
+ this.endSpan("ToolError"); // End specifically for tool error
142
342
  });
143
343
  }
144
- handleAgentAction(action, runId, parentRunId, tags, options) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- console.log(`Agent action: ${action}`);
147
- });
344
+ // AgentAction / AgentFinish remain no-op for span management
345
+ handleAgentAction( /* ... */) {
346
+ return __awaiter(this, void 0, void 0, function* () { });
148
347
  }
149
- handleAgentFinish(finish, runId, parentRunId, tags, options) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- console.log(`Agent finish: ${finish}`);
152
- });
348
+ handleAgentFinish( /* ... */) {
349
+ return __awaiter(this, void 0, void 0, function* () { });
153
350
  }
154
- handleLLMStart(serialized, prompts, runId, parentRunId, extraParams, tags, metadata, runName, options) {
351
+ handleLLMStart(serialized, prompts, runId, parentRunId, extraParams, tags, metadata, name, options) {
155
352
  return __awaiter(this, void 0, void 0, function* () {
156
- const name = "LLM call";
157
- const traceClient = this.getTraceClient();
158
- if (!traceClient)
353
+ const llmName = name !== null && name !== void 0 ? name : "LLM call";
354
+ // Ensure client exists
355
+ this.traceClient = this.tracer.getCurrentTrace();
356
+ if (!this.traceClient) {
357
+ console.warn(`[Judgeval Handler] handleLLMStart: No TraceClient found.`);
159
358
  return;
160
- traceClient.startSpan(name, { spanType: "llm" });
161
- traceClient.recordInput({
359
+ }
360
+ console.log(`[Judgeval Handler] Starting LLM span: ${llmName}`);
361
+ this.startSpan(llmName, "llm");
362
+ this.traceClient.recordInput({
162
363
  args: prompts,
163
- kwargs: Object.assign({ extra_params: extraParams, tags: tags, metadata: metadata }, options),
364
+ kwargs: Object.assign({ extra_params: extraParams, tags: tags, metadata: metadata, serialized_id: serialized === null || serialized === void 0 ? void 0 : serialized.id }, options),
164
365
  });
165
366
  });
166
367
  }
167
- // Also called on chat model end
168
368
  handleLLMEnd(output, runId, parentRunId, tags, options) {
169
369
  return __awaiter(this, void 0, void 0, function* () {
170
- const traceClient = this.getTraceClient();
171
- if (!traceClient)
370
+ if (!this.traceClient || !this.traceClient.getCurrentSpanId())
172
371
  return;
173
- traceClient.recordOutput(output.generations[0][0].text);
174
- traceClient.endSpan();
372
+ // ... extract textOutput ...
373
+ let textOutput = "No text output found";
374
+ try {
375
+ if (output.generations && output.generations.length > 0 && output.generations[0].length > 0) {
376
+ const firstGen = output.generations[0][0];
377
+ if (firstGen.text) {
378
+ textOutput = firstGen.text;
379
+ }
380
+ else if ('message' in firstGen && firstGen.message && typeof firstGen.message === 'object' && firstGen.message !== null && 'content' in firstGen.message) {
381
+ const messageContent = firstGen.message.content;
382
+ textOutput = typeof messageContent === 'string'
383
+ ? messageContent
384
+ : JSON.stringify(messageContent);
385
+ }
386
+ }
387
+ else if (output.llmOutput) {
388
+ textOutput = JSON.stringify(output.llmOutput);
389
+ }
390
+ }
391
+ catch (e) {
392
+ console.error("[Judgeval Handler] Error extracting LLM output text:", e);
393
+ textOutput = `Error extracting output: ${e instanceof Error ? e.message : String(e)}`;
394
+ }
395
+ this.traceClient.recordOutput(textOutput);
396
+ console.log(`[Judgeval Handler] Ending LLM span: ${this.traceClient.getCurrentSpanId()}`);
397
+ this.endSpan("LLMEnd"); // End specifically for LLM
175
398
  });
176
399
  }
177
400
  handleLLMError(error, runId, parentRunId, tags, options) {
178
401
  return __awaiter(this, void 0, void 0, function* () {
179
- console.log(`LLM error: ${error}`);
180
- const traceClient = this.getTraceClient();
181
- if (!traceClient)
402
+ var _a;
403
+ console.error(`[Judgeval Handler] LLM error: ${error}`);
404
+ const currentSpanId = (_a = this.traceClient) === null || _a === void 0 ? void 0 : _a.getCurrentSpanId();
405
+ if (!this.traceClient || !currentSpanId)
182
406
  return;
183
- traceClient.recordError(error);
184
- traceClient.endSpan();
407
+ this.traceClient.recordError(error);
408
+ this.endSpan("LLMError"); // End specifically for LLM error
185
409
  });
186
410
  }
187
- // Why is there no handleChatModelEnd?
188
- handleChatModelStart(serialized, messages, runId, parentRunId, extraParams, tags, metadata, name, runType, runName, options) {
411
+ handleChatModelStart(serialized, messages, runId, parentRunId, extraParams, tags, metadata, name, options) {
189
412
  return __awaiter(this, void 0, void 0, function* () {
190
- let name_ = "LLM call";
191
- if (serialized.id.includes("openai")) {
192
- name_ = "OPENAI_API_CALL";
413
+ var _a, _b;
414
+ // Ensure client exists
415
+ this.traceClient = this.tracer.getCurrentTrace();
416
+ if (!this.traceClient) {
417
+ console.warn(`[Judgeval Handler] handleChatModelStart: No TraceClient found.`);
418
+ return;
193
419
  }
194
- else if (serialized.id.includes("anthropic")) {
195
- name_ = "ANTHROPIC_API_CALL";
420
+ let modelName = "LLM call";
421
+ const serializedId = (_b = (_a = serialized === null || serialized === void 0 ? void 0 : serialized.id) === null || _a === void 0 ? void 0 : _a.join("::")) !== null && _b !== void 0 ? _b : "";
422
+ if (name) {
423
+ modelName = name;
196
424
  }
197
- else if (serialized.id.includes("together")) {
198
- name_ = "TOGETHER_API_CALL";
425
+ else if (serializedId.includes("openai")) {
426
+ modelName = "OPENAI_API_CALL";
199
427
  }
200
- else {
201
- name_ = "LLM call";
428
+ else if (serializedId.includes("anthropic")) {
429
+ modelName = "ANTHROPIC_API_CALL";
202
430
  }
203
- const traceClient = this.getTraceClient();
204
- if (!traceClient)
205
- return;
206
- traceClient.startSpan(name_, { spanType: "llm" });
207
- traceClient.recordInput({
208
- args: messages,
209
- kwargs: Object.assign({ extra_params: extraParams, tags: tags, metadata: metadata }, options),
431
+ else if (serializedId.includes("together")) {
432
+ modelName = "TOGETHER_API_CALL";
433
+ }
434
+ console.log(`[Judgeval Handler] Starting ChatModel span: ${modelName}`);
435
+ this.startSpan(modelName, "llm");
436
+ this.traceClient.recordInput({
437
+ args: JSON.stringify(messages.map(msgList => msgList.map(msg => msg.toDict()))),
438
+ kwargs: Object.assign({ extra_params: extraParams, tags: tags, metadata: metadata, serialized_id: serializedId }, options),
210
439
  });
440
+ // Note: handleLLMEnd will end this span
211
441
  });
212
442
  }
213
443
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../../../src/common/integrations/langgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../../../src/common/integrations/langgraph.ts"],"names":[],"mappings":"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"}