judgeval 0.1.39 → 0.1.40

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 (157) hide show
  1. package/dist/cjs/clients.js.map +1 -0
  2. package/dist/cjs/common/integrations/langgraph.js +401 -0
  3. package/dist/cjs/common/integrations/langgraph.js.map +1 -0
  4. package/dist/{common → cjs/common}/logger-instance.js +1 -13
  5. package/dist/cjs/common/logger-instance.js.map +1 -0
  6. package/dist/{common → cjs/common}/logger.js +8 -9
  7. package/dist/cjs/common/logger.js.map +1 -0
  8. package/dist/cjs/common/tracer.js +995 -0
  9. package/dist/cjs/common/tracer.js.map +1 -0
  10. package/dist/cjs/constants.js.map +1 -0
  11. package/dist/cjs/data/example.js.map +1 -0
  12. package/dist/cjs/data/result.js.map +1 -0
  13. package/dist/cjs/evaluation-run.js.map +1 -0
  14. package/dist/cjs/examples/async-evaluation.d.ts +7 -0
  15. package/dist/cjs/examples/async-evaluation.js +75 -0
  16. package/dist/cjs/examples/async-evaluation.js.map +1 -0
  17. package/dist/cjs/examples/basic-evaluation.d.ts +1 -0
  18. package/dist/cjs/examples/basic-evaluation.js +253 -0
  19. package/dist/cjs/examples/basic-evaluation.js.map +1 -0
  20. package/dist/cjs/examples/compare-with-python.d.ts +24 -0
  21. package/dist/cjs/examples/compare-with-python.js +138 -0
  22. package/dist/cjs/examples/compare-with-python.js.map +1 -0
  23. package/dist/cjs/examples/custom-scorer.d.ts +7 -0
  24. package/dist/cjs/examples/custom-scorer.js +338 -0
  25. package/dist/cjs/examples/custom-scorer.js.map +1 -0
  26. package/dist/cjs/examples/demo/basic-bot.d.ts +1 -0
  27. package/dist/cjs/examples/demo/basic-bot.js +258 -0
  28. package/dist/cjs/examples/demo/basic-bot.js.map +1 -0
  29. package/dist/cjs/examples/demo/demo_complex_async.d.ts +1 -0
  30. package/dist/cjs/examples/demo/demo_complex_async.js +166 -0
  31. package/dist/cjs/examples/demo/demo_complex_async.js.map +1 -0
  32. package/dist/cjs/examples/demo/langgraph_demo.d.ts +1 -0
  33. package/dist/cjs/examples/demo/langgraph_demo.js +134 -0
  34. package/dist/cjs/examples/demo/langgraph_demo.js.map +1 -0
  35. package/dist/cjs/examples/demo/llm-wrap-demo.d.ts +1 -0
  36. package/dist/cjs/examples/demo/llm-wrap-demo.js +176 -0
  37. package/dist/cjs/examples/demo/llm-wrap-demo.js.map +1 -0
  38. package/dist/cjs/examples/demo/openai-wrap-demo.d.ts +1 -0
  39. package/dist/cjs/examples/demo/openai-wrap-demo.js +113 -0
  40. package/dist/cjs/examples/demo/openai-wrap-demo.js.map +1 -0
  41. package/dist/cjs/examples/demo/rules-demo.d.ts +1 -0
  42. package/dist/cjs/examples/demo/rules-demo.js +144 -0
  43. package/dist/cjs/examples/demo/rules-demo.js.map +1 -0
  44. package/dist/cjs/examples/llm-async-tracer.d.ts +4 -0
  45. package/dist/cjs/examples/llm-async-tracer.js +270 -0
  46. package/dist/cjs/examples/llm-async-tracer.js.map +1 -0
  47. package/dist/cjs/examples/result-retrieval.d.ts +1 -0
  48. package/dist/cjs/examples/result-retrieval.js +148 -0
  49. package/dist/cjs/examples/result-retrieval.js.map +1 -0
  50. package/dist/cjs/examples/simple-async.d.ts +7 -0
  51. package/dist/cjs/examples/simple-async.js +111 -0
  52. package/dist/cjs/examples/simple-async.js.map +1 -0
  53. package/dist/cjs/index.js.map +1 -0
  54. package/dist/cjs/judgment-client.js +975 -0
  55. package/dist/cjs/judgment-client.js.map +1 -0
  56. package/dist/{rules.js → cjs/rules.js} +17 -28
  57. package/dist/cjs/rules.js.map +1 -0
  58. package/dist/cjs/run-evaluation.js +591 -0
  59. package/dist/cjs/run-evaluation.js.map +1 -0
  60. package/dist/{scorers → cjs/scorers}/api-scorer.js +41 -78
  61. package/dist/cjs/scorers/api-scorer.js.map +1 -0
  62. package/dist/{scorers → cjs/scorers}/base-scorer.js +2 -13
  63. package/dist/cjs/scorers/base-scorer.js.map +1 -0
  64. package/dist/cjs/scorers/exact-match-scorer.js +72 -0
  65. package/dist/cjs/scorers/exact-match-scorer.js.map +1 -0
  66. package/dist/esm/clients.d.ts +7 -0
  67. package/dist/esm/clients.js +47 -0
  68. package/dist/esm/clients.js.map +1 -0
  69. package/dist/esm/common/integrations/langgraph.d.ts +40 -0
  70. package/dist/esm/common/integrations/langgraph.js +400 -0
  71. package/dist/esm/common/integrations/langgraph.js.map +1 -0
  72. package/dist/esm/common/logger-instance.d.ts +3 -0
  73. package/dist/esm/common/logger-instance.js +47 -0
  74. package/dist/esm/common/logger-instance.js.map +1 -0
  75. package/dist/esm/common/logger.d.ts +54 -0
  76. package/dist/esm/common/logger.js +202 -0
  77. package/dist/esm/common/logger.js.map +1 -0
  78. package/dist/esm/common/tracer.d.ts +205 -0
  79. package/dist/esm/common/tracer.js +987 -0
  80. package/dist/esm/common/tracer.js.map +1 -0
  81. package/dist/esm/constants.d.ts +51 -0
  82. package/dist/esm/constants.js +338 -0
  83. package/dist/esm/constants.js.map +1 -0
  84. package/dist/esm/data/example.d.ts +70 -0
  85. package/dist/esm/data/example.js +120 -0
  86. package/dist/esm/data/example.js.map +1 -0
  87. package/dist/esm/data/result.d.ts +51 -0
  88. package/dist/esm/data/result.js +78 -0
  89. package/dist/esm/data/result.js.map +1 -0
  90. package/dist/esm/evaluation-run.d.ts +44 -0
  91. package/dist/esm/evaluation-run.js +132 -0
  92. package/dist/esm/evaluation-run.js.map +1 -0
  93. package/dist/esm/index.d.ts +12 -0
  94. package/dist/esm/index.js +21 -0
  95. package/dist/esm/index.js.map +1 -0
  96. package/dist/esm/judgment-client.d.ts +179 -0
  97. package/dist/esm/judgment-client.js +945 -0
  98. package/dist/esm/judgment-client.js.map +1 -0
  99. package/dist/esm/rules.d.ts +120 -0
  100. package/dist/esm/rules.js +303 -0
  101. package/dist/esm/rules.js.map +1 -0
  102. package/dist/esm/run-evaluation.d.ts +78 -0
  103. package/dist/esm/run-evaluation.js +572 -0
  104. package/dist/esm/run-evaluation.js.map +1 -0
  105. package/dist/esm/scorers/api-scorer.d.ts +79 -0
  106. package/dist/esm/scorers/api-scorer.js +236 -0
  107. package/dist/esm/scorers/api-scorer.js.map +1 -0
  108. package/dist/esm/scorers/base-scorer.d.ts +100 -0
  109. package/dist/esm/scorers/base-scorer.js +173 -0
  110. package/dist/esm/scorers/base-scorer.js.map +1 -0
  111. package/dist/esm/scorers/exact-match-scorer.d.ts +10 -0
  112. package/dist/esm/scorers/exact-match-scorer.js +68 -0
  113. package/dist/esm/scorers/exact-match-scorer.js.map +1 -0
  114. package/package.json +14 -5
  115. package/dist/clients.js.map +0 -1
  116. package/dist/common/integrations/langgraph.js +0 -444
  117. package/dist/common/integrations/langgraph.js.map +0 -1
  118. package/dist/common/logger-instance.js.map +0 -1
  119. package/dist/common/logger.js.map +0 -1
  120. package/dist/common/tracer.js +0 -1035
  121. package/dist/common/tracer.js.map +0 -1
  122. package/dist/constants.js.map +0 -1
  123. package/dist/data/example.js.map +0 -1
  124. package/dist/data/result.js.map +0 -1
  125. package/dist/evaluation-run.js.map +0 -1
  126. package/dist/index.js.map +0 -1
  127. package/dist/judgment-client.js +0 -1038
  128. package/dist/judgment-client.js.map +0 -1
  129. package/dist/rules.js.map +0 -1
  130. package/dist/run-evaluation.js +0 -618
  131. package/dist/run-evaluation.js.map +0 -1
  132. package/dist/scorers/api-scorer.js.map +0 -1
  133. package/dist/scorers/base-scorer.js.map +0 -1
  134. package/dist/scorers/exact-match-scorer.js +0 -84
  135. package/dist/scorers/exact-match-scorer.js.map +0 -1
  136. /package/dist/{clients.d.ts → cjs/clients.d.ts} +0 -0
  137. /package/dist/{clients.js → cjs/clients.js} +0 -0
  138. /package/dist/{common → cjs/common}/integrations/langgraph.d.ts +0 -0
  139. /package/dist/{common → cjs/common}/logger-instance.d.ts +0 -0
  140. /package/dist/{common → cjs/common}/logger.d.ts +0 -0
  141. /package/dist/{common → cjs/common}/tracer.d.ts +0 -0
  142. /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
  143. /package/dist/{constants.js → cjs/constants.js} +0 -0
  144. /package/dist/{data → cjs/data}/example.d.ts +0 -0
  145. /package/dist/{data → cjs/data}/example.js +0 -0
  146. /package/dist/{data → cjs/data}/result.d.ts +0 -0
  147. /package/dist/{data → cjs/data}/result.js +0 -0
  148. /package/dist/{evaluation-run.d.ts → cjs/evaluation-run.d.ts} +0 -0
  149. /package/dist/{evaluation-run.js → cjs/evaluation-run.js} +0 -0
  150. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  151. /package/dist/{index.js → cjs/index.js} +0 -0
  152. /package/dist/{judgment-client.d.ts → cjs/judgment-client.d.ts} +0 -0
  153. /package/dist/{rules.d.ts → cjs/rules.d.ts} +0 -0
  154. /package/dist/{run-evaluation.d.ts → cjs/run-evaluation.d.ts} +0 -0
  155. /package/dist/{scorers → cjs/scorers}/api-scorer.d.ts +0 -0
  156. /package/dist/{scorers → cjs/scorers}/base-scorer.d.ts +0 -0
  157. /package/dist/{scorers → cjs/scorers}/exact-match-scorer.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/clients.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,oDAA4B;AAC5B,4DAA0C;AAC1C,8DAAmC;AAEnC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,oCAAoC;AACpC,IAAI,YAAY,GAAkB,IAAI,CAAC;AAsC9B,oCAAY;AArCrB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,uBAAA,YAAY,GAAG,IAAI,gBAAM,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,IAAI,eAAe,GAAqB,IAAI,CAAC;AAyBtB,0CAAe;AAxBtC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,0BAAA,eAAe,GAAG,IAAI,aAAS,CAAC;YAC9B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;SACtC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,IAAI,cAAc,GAAoB,IAAI,CAAC;AAYH,wCAAc;AAXtD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,yBAAA,cAAc,GAAG,IAAI,qBAAQ,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uDAAuD;QACvD,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,401 @@
1
+ "use strict";
2
+ // judgeval-js/src/integrations/langgraph.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.JudgevalLanggraphCallbackHandler = void 0;
5
+ const base_1 = require("@langchain/core/callbacks/base");
6
+ const messages_1 = require("@langchain/core/messages"); // Regular import for BaseMessage value
7
+ const uuid_1 = require("uuid");
8
+ const tracer_1 = require("../tracer"); // Adjust path
9
+ // --- Global Handler Setup (REMOVED - No longer needed with context propagation) ---
10
+ class JudgevalLanggraphCallbackHandler extends base_1.BaseCallbackHandler {
11
+ // Optional: Track executed nodes/tools if needed for external use cases like evaluation
12
+ // public executedNodes: string[] = [];
13
+ // public executedTools: string[] = [];
14
+ constructor(tracer) {
15
+ super(); // Call parent constructor
16
+ this.name = "judgeval_langgraph_callback_handler"; // Identifier for the handler
17
+ this.spanStartTimes = {}; // Store start time per spanId (using Judgeval spanId)
18
+ this.runIdToSpanId = {}; // Map Langchain runId to Judgeval spanId
19
+ this.tracer = tracer ?? tracer_1.Tracer.getInstance(); // Use provided or singleton tracer
20
+ // No need to get traceClient here, will be fetched from context in methods
21
+ console.log(`[Judgeval Handler] Initialized. Monitoring Enabled: ${this.tracer.enableMonitoring}`); // Added prefix
22
+ }
23
+ // Helper to safely get the current TraceClient from context
24
+ _getActiveTraceClient() {
25
+ if (!this.tracer.enableMonitoring) {
26
+ // console.log("Judgeval Handler: Monitoring disabled."); // Reduce noise
27
+ return null;
28
+ }
29
+ const client = this.tracer.getCurrentTrace();
30
+ if (!client) {
31
+ console.log("[Judgeval Handler] _getActiveTraceClient: No active trace client found in context."); // Added log
32
+ }
33
+ // Explicitly return null if client is undefined
34
+ return client ?? null;
35
+ }
36
+ // Helper to create a unique span ID
37
+ _generateSpanId() {
38
+ return (0, uuid_1.v4)();
39
+ }
40
+ // Start a new span, associating it with the LangChain runId
41
+ _startSpan(lcRunId, name, spanType = "span") {
42
+ const traceClient = this._getActiveTraceClient();
43
+ if (!traceClient)
44
+ return;
45
+ const startTime = Date.now() / 1000;
46
+ const spanId = this._generateSpanId();
47
+ this.runIdToSpanId[lcRunId] = spanId; // Map Langchain runId to our new spanId
48
+ // Get parent span ID from the current async context
49
+ const parentSpanId = tracer_1.currentSpanAsyncLocalStorage.getStore();
50
+ // Calculate depth based on parent
51
+ let depth = 0;
52
+ if (parentSpanId) {
53
+ const parentEntry = traceClient.entries.find((e) => e.span_id === parentSpanId && e.type === 'enter');
54
+ if (parentEntry) {
55
+ depth = (parentEntry.depth ?? -1) + 1; // Increment parent depth
56
+ }
57
+ else {
58
+ // If parent entry not found (should be rare in async context), start at 0
59
+ console.warn(`Judgeval Handler: Parent span entry ${parentSpanId} not found for child ${spanId}. Defaulting depth to 0.`);
60
+ depth = 0;
61
+ }
62
+ }
63
+ else {
64
+ // No parent in context, this is a root span (relative to this handler's context)
65
+ depth = 0;
66
+ }
67
+ // console.log(`>>> _startSpan: Creating span ${spanId} ('${name}') depth: ${depth}, parent: ${parentSpanId ?? 'None'}, lcRunId: ${lcRunId}`); // Debug log
68
+ traceClient.addEntry({
69
+ type: 'enter',
70
+ function: name,
71
+ span_id: spanId,
72
+ depth: depth,
73
+ timestamp: startTime,
74
+ span_type: spanType,
75
+ parent_span_id: parentSpanId
76
+ });
77
+ this.spanStartTimes[spanId] = startTime;
78
+ // Set this new span as the current one in the context *for child operations*
79
+ // Note: This relies on Langchain's async flow preserving the context.
80
+ // If Langchain breaks context, this might not propagate correctly.
81
+ // It's generally better to *read* the parent from context when starting a span,
82
+ // rather than trying to manage pushing/popping onto the context here.
83
+ // The Tracer's observe/runInTrace methods handle setting the context.
84
+ }
85
+ // End the span corresponding to the LangChain runId
86
+ _endSpan(lcRunId, output, error) {
87
+ const traceClient = this._getActiveTraceClient();
88
+ // Retrieve the spanId using the LangChain runId
89
+ const spanId = this.runIdToSpanId[lcRunId];
90
+ if (!traceClient || !spanId || !(spanId in this.spanStartTimes)) {
91
+ // console.log(`>>> _endSpan: Skipping endSpan for lcRunId ${lcRunId} / spanId ${spanId} - ID/trace/time missing or monitoring disabled.`); // Debug log
92
+ // Clean up the map even if we can't end the span fully
93
+ if (lcRunId in this.runIdToSpanId)
94
+ delete this.runIdToSpanId[lcRunId];
95
+ return;
96
+ }
97
+ const startTime = this.spanStartTimes[spanId];
98
+ const endTime = Date.now() / 1000;
99
+ const duration = endTime - startTime;
100
+ // Find the original 'enter' entry to get details like name and depth
101
+ const enterEntry = traceClient.entries.find(e => e.span_id === spanId && e.type === 'enter');
102
+ if (!enterEntry) {
103
+ console.warn(`Judgeval Handler: Could not find 'enter' entry for span ${spanId} (lcRunId: ${lcRunId}) during _endSpan.`);
104
+ // Clean up maps even if entry isn't found
105
+ delete this.spanStartTimes[spanId];
106
+ delete this.runIdToSpanId[lcRunId];
107
+ return;
108
+ }
109
+ // Record output or error *before* the exit entry
110
+ if (error) {
111
+ traceClient.recordOutput(error instanceof Error ? error : new Error(String(error)));
112
+ }
113
+ else if (output !== undefined) {
114
+ // Avoid recording 'undefined' as output explicitly
115
+ traceClient.recordOutput(output);
116
+ }
117
+ traceClient.addEntry({
118
+ type: 'exit',
119
+ function: enterEntry.function, // Use name from 'enter' entry
120
+ span_id: spanId,
121
+ depth: enterEntry.depth, // Use depth from 'enter' entry
122
+ timestamp: endTime,
123
+ duration: duration,
124
+ span_type: enterEntry.span_type // Use type from 'enter' entry
125
+ });
126
+ // Clean up maps
127
+ delete this.spanStartTimes[spanId];
128
+ delete this.runIdToSpanId[lcRunId];
129
+ // console.log(`>>> _endSpan: Ended span ${spanId} ('${enterEntry.function}'), lcRunId: ${lcRunId}`); // Debug log
130
+ }
131
+ // --- Chain Events ---
132
+ async onChainStart(serialized, inputs, runId, parentRunId, tags, metadata, options // Langchain-JS doesn't seem to pass options here consistently
133
+ ) {
134
+ console.log(`[Judgeval Handler] onChainStart called for runId: ${runId}`); // Added log
135
+ // console.log(`>>> onChainStart: runId: ${runId}, parentRunId: ${parentRunId}, metadata: ${JSON.stringify(metadata)}, tags: ${JSON.stringify(tags)}`); // Debug log
136
+ const traceClient = this._getActiveTraceClient();
137
+ if (!traceClient)
138
+ return;
139
+ let spanName;
140
+ const spanType = "chain"; // Keep type as chain
141
+ // Determine span name based on Python logic: prioritize 'LangGraph' root, then serialized name
142
+ const executionName = serialized?.name ?? 'Unknown Chain';
143
+ if (executionName === 'LangGraph') {
144
+ spanName = 'LangGraph'; // Match Python root span name
145
+ }
146
+ else {
147
+ // Use the serialized name or a generic fallback, avoiding node-specific prefixes
148
+ spanName = executionName;
149
+ }
150
+ // Removed node-specific logic:
151
+ // const nodeName = metadata?.langgraph_node ? String(metadata.langgraph_node) : null;
152
+ // if (nodeName) { ... } else { ... }
153
+ this._startSpan(runId, spanName, spanType);
154
+ // Record input associated with the started span
155
+ const currentSpanId = this.runIdToSpanId[runId];
156
+ if (currentSpanId) {
157
+ // Input is recorded in the current context span of the TraceClient
158
+ traceClient.recordInput({ args: inputs /* , options: options */ }); // Removed spanId
159
+ }
160
+ }
161
+ async onChainEnd(outputs, // Output can sometimes be a simple string
162
+ runId, parentRunId, tags) {
163
+ // console.log(`>>> onChainEnd: runId: ${runId}`); // Debug log
164
+ // Output is recorded within _endSpan
165
+ this._endSpan(runId, outputs);
166
+ }
167
+ async onChainError(error, runId, parentRunId, tags) {
168
+ // console.error(`>>> onChainError: runId: ${runId}`, error); // Debug log
169
+ // Error is recorded within _endSpan
170
+ this._endSpan(runId, undefined, error);
171
+ }
172
+ // --- LLM Events ---
173
+ _getLlmSpanName(serialized) {
174
+ // Simplify extraction if possible, check common patterns
175
+ const idPath = (serialized?.id ?? []).join('/').toLowerCase();
176
+ if (idPath.includes("openai"))
177
+ return "OPENAI_API_CALL";
178
+ if (idPath.includes("anthropic"))
179
+ return "ANTHROPIC_API_CALL";
180
+ if (idPath.includes("together"))
181
+ return "TOGETHER_API_CALL";
182
+ // Add other common providers if needed (e.g., google, bedrock)
183
+ return "LLM_CALL"; // Default
184
+ }
185
+ // Generic LLM Start handler (covers both base LLM and ChatModel)
186
+ async _handleLlmStart(serialized, runId, inputData, extraParams,
187
+ // tags?: string[] | undefined, // Often unused for LLM spans
188
+ // metadata?: Record<string, unknown> | undefined, // Often unused for LLM spans
189
+ options // Langchain passes invocation params here
190
+ ) {
191
+ // console.log(`>>> _handleLlmStart: runId: ${runId}`); // Debug log
192
+ const traceClient = this._getActiveTraceClient();
193
+ if (!traceClient)
194
+ return;
195
+ // Extract model name from options (common pattern) or extraParams
196
+ const invocationParams = options?.invocation_params ?? extraParams ?? {};
197
+ const modelName = invocationParams?.model_name ?? invocationParams?.model ?? 'unknown_model';
198
+ const spanName = this._getLlmSpanName(serialized);
199
+ this._startSpan(runId, spanName, "llm");
200
+ // Prepare input payload
201
+ let inputPayload = {
202
+ model: modelName,
203
+ params: invocationParams, // Record all invocation params
204
+ // options: options // May include other config besides invocation_params
205
+ };
206
+ if ('prompts' in inputData) {
207
+ inputPayload.prompts = inputData.prompts;
208
+ }
209
+ else if ('messages' in inputData) {
210
+ // Langchain JS passes messages as BaseMessage[][]
211
+ inputPayload.messages = inputData.messages[0] ?? []; // Extract first batch element safely
212
+ }
213
+ // Record input associated with the started span
214
+ const currentSpanId = this.runIdToSpanId[runId];
215
+ if (currentSpanId) {
216
+ // Input is recorded in the current context span of the TraceClient
217
+ traceClient.recordInput(inputPayload); // Removed spanId
218
+ }
219
+ }
220
+ async onLlmStart(serialized, prompts, runId, parentRunId, extraParams, tags, metadata, options // options might contain invocation_params
221
+ ) {
222
+ console.log(`[Judgeval Handler] onLlmStart called for runId: ${runId}`); // Added log
223
+ await this._handleLlmStart(serialized, runId, { prompts }, extraParams, options);
224
+ }
225
+ // Handles Chat Model start specifically
226
+ async onChatModelStart(serialized, messages, runId, parentRunId, extraParams, tags, metadata, options // options might contain invocation_params
227
+ ) {
228
+ console.log(`[Judgeval Handler] onChatModelStart called for runId: ${runId}`); // Added log
229
+ await this._handleLlmStart(serialized, runId, { messages }, extraParams, options);
230
+ }
231
+ /**
232
+ * Handles the end of an LLM call. Extracts the output, usage data, and ends the corresponding span.
233
+ * @param output The result from the LLM call.
234
+ * @param runId The unique ID of the run.
235
+ */
236
+ async onLlmEnd(output, runId) {
237
+ // console.log(`>>> onLlmEnd: runId: ${runId}`); // Debug log
238
+ const traceClient = this._getActiveTraceClient();
239
+ const spanId = this.runIdToSpanId[runId]; // Needed for context if recording output directly here
240
+ if (!traceClient || !spanId) {
241
+ // console.warn(`Judgeval Handler: Skipping onLlmEnd for runId ${runId}. Trace client or span ID missing.`); // Debug log
242
+ this._endSpan(runId, output); // Still attempt to end span if possible, passing raw output
243
+ return;
244
+ }
245
+ // Process LLMResult to extract relevant data
246
+ const generation = output.generations?.[0]?.[0];
247
+ let llmOutputPayload = {};
248
+ if (generation) {
249
+ // Handle ChatGeneration vs regular Generation
250
+ if ("message" in generation && generation.message instanceof messages_1.BaseMessage) {
251
+ const aiMessage = generation.message; // Assume AI message for output
252
+ llmOutputPayload.content = aiMessage.content;
253
+ // Include tool calls if present
254
+ if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {
255
+ llmOutputPayload.tool_calls = aiMessage.tool_calls;
256
+ }
257
+ if (aiMessage.invalid_tool_calls && aiMessage.invalid_tool_calls.length > 0) {
258
+ llmOutputPayload.invalid_tool_calls = aiMessage.invalid_tool_calls;
259
+ }
260
+ // Usage metadata might be here (e.g., OpenAI)
261
+ if (aiMessage.usage_metadata) {
262
+ llmOutputPayload.usage_metadata = aiMessage.usage_metadata;
263
+ }
264
+ }
265
+ else if (generation.text) {
266
+ // Handle plain text generation
267
+ llmOutputPayload.content = generation.text;
268
+ }
269
+ // Standardize token usage extraction if not in usage_metadata
270
+ // Check generationInfo first, then llmOutput
271
+ const tokenUsage = generation.generationInfo?.tokenUsage ?? output.llmOutput?.tokenUsage;
272
+ if (tokenUsage && !llmOutputPayload.usage_metadata?.token_usage) { // Avoid duplication if already in usage_metadata
273
+ llmOutputPayload.token_usage = {
274
+ completionTokens: tokenUsage.completionTokens ?? tokenUsage.completion_tokens,
275
+ promptTokens: tokenUsage.promptTokens ?? tokenUsage.prompt_tokens,
276
+ totalTokens: tokenUsage.totalTokens ?? tokenUsage.total_tokens,
277
+ };
278
+ // Normalize keys within usage_metadata if present
279
+ }
280
+ else if (llmOutputPayload.usage_metadata?.token_usage) {
281
+ const usageMeta = llmOutputPayload.usage_metadata.token_usage;
282
+ llmOutputPayload.token_usage = {
283
+ completionTokens: usageMeta.completionTokens ?? usageMeta.completion_tokens,
284
+ promptTokens: usageMeta.promptTokens ?? usageMeta.prompt_tokens,
285
+ totalTokens: usageMeta.totalTokens ?? usageMeta.total_tokens,
286
+ };
287
+ }
288
+ // Include other generationInfo if available and potentially useful
289
+ if (generation.generationInfo) {
290
+ llmOutputPayload.generation_info = generation.generationInfo;
291
+ }
292
+ }
293
+ // Include raw LLM output if available and potentially useful (can be verbose)
294
+ // if (output.llmOutput) {
295
+ // llmOutputPayload.raw_llm_output = output.llmOutput;
296
+ // }
297
+ // Output is recorded within _endSpan
298
+ this._endSpan(runId, llmOutputPayload);
299
+ }
300
+ async onLlmError(error, runId, parentRunId) {
301
+ // console.error(`>>> onLlmError: runId: ${runId}`, error); // Debug log
302
+ // Error is recorded within _endSpan
303
+ this._endSpan(runId, undefined, error);
304
+ }
305
+ // --- Tool Events ---
306
+ async onToolStart(serialized, inputStr, // input is often a stringified object
307
+ runId, parentRunId, tags, metadata) {
308
+ console.log(`[Judgeval Handler] onToolStart called for runId: ${runId}`); // Added log
309
+ // console.log(`>>> onToolStart: runId: ${runId}, name: ${serialized?.name}`); // Debug log
310
+ const traceClient = this._getActiveTraceClient();
311
+ if (!traceClient)
312
+ return;
313
+ // Match Python: Use the tool name directly as the span name
314
+ const toolName = serialized?.name ?? 'Unknown Tool';
315
+ const spanName = toolName; // Removed "TOOL: " prefix
316
+ this._startSpan(runId, spanName, "tool");
317
+ // Try to parse inputStr if it's JSON, otherwise keep as string
318
+ let parsedInput = inputStr;
319
+ try {
320
+ // Avoid parsing null/empty strings
321
+ if (inputStr && inputStr.trim().startsWith('{') && inputStr.trim().endsWith('}')) {
322
+ parsedInput = JSON.parse(inputStr);
323
+ }
324
+ }
325
+ catch (e) {
326
+ // Ignore error, keep as string if parsing fails
327
+ }
328
+ // Record input associated with the started span
329
+ const currentSpanId = this.runIdToSpanId[runId];
330
+ if (currentSpanId) {
331
+ // Input is recorded in the current context span of the TraceClient
332
+ traceClient.recordInput({ input: parsedInput /* , options: options */ }); // Removed spanId
333
+ }
334
+ // Track tool execution (if needed externally)
335
+ // this.executedTools.push(toolName); // Example
336
+ }
337
+ async onToolEnd(output, // Tool output is typically a string
338
+ runId, parentRunId) {
339
+ // console.log(`>>> onToolEnd: runId: ${runId}`); // Debug log
340
+ // Output is recorded within _endSpan
341
+ this._endSpan(runId, output);
342
+ }
343
+ async onToolError(error, runId, parentRunId) {
344
+ // console.error(`>>> onToolError: runId: ${runId}`, error); // Debug log
345
+ // Error is recorded within _endSpan
346
+ this._endSpan(runId, undefined, error);
347
+ }
348
+ // --- Retriever Events ---
349
+ async onRetrieverStart(serialized, query, runId, parentRunId, tags, metadata) {
350
+ console.log(`[Judgeval Handler] onRetrieverStart called for runId: ${runId}`); // Added log
351
+ // console.log(`>>> onRetrieverStart: runId: ${runId}, name: ${serialized?.name}`); // Debug log
352
+ const traceClient = this._getActiveTraceClient();
353
+ if (!traceClient)
354
+ return;
355
+ // Match Python naming convention
356
+ const retrieverName = serialized?.name;
357
+ let spanName;
358
+ if (retrieverName) {
359
+ spanName = `RETRIEVER_${retrieverName.toUpperCase()}`;
360
+ }
361
+ else {
362
+ spanName = "RETRIEVER_CALL";
363
+ }
364
+ // const spanName = `RETRIEVER: ${retrieverName}`; // Old naming
365
+ this._startSpan(runId, spanName, "retriever"); // Use 'retriever' span type
366
+ // Record input associated with the started span
367
+ const currentSpanId = this.runIdToSpanId[runId];
368
+ if (currentSpanId) {
369
+ // Input is recorded in the current context span of the TraceClient
370
+ traceClient.recordInput({ query: query /* , options: options */ }); // Removed spanId
371
+ }
372
+ }
373
+ async onRetrieverEnd(documents, runId, parentRunId, tags) {
374
+ // console.log(`>>> onRetrieverEnd: runId: ${runId}, docs: ${documents.length}`); // Debug log
375
+ const traceClient = this._getActiveTraceClient();
376
+ if (!traceClient) {
377
+ // If no trace client, we still need to clean up the runId mapping potentially
378
+ this._endSpan(runId);
379
+ return;
380
+ }
381
+ // Format output similar to Python's handler
382
+ const docSummary = documents.map((doc, i) => ({
383
+ index: i,
384
+ page_content: doc.pageContent.substring(0, 150) + (doc.pageContent.length > 150 ? "..." : ""), // Slightly longer preview
385
+ metadata: doc.metadata,
386
+ }));
387
+ const output = {
388
+ document_count: documents.length,
389
+ documents: docSummary,
390
+ };
391
+ // Output is recorded within _endSpan
392
+ this._endSpan(runId, output);
393
+ }
394
+ async onRetrieverError(error, runId, parentRunId, tags) {
395
+ // console.error(`>>> onRetrieverError: runId: ${runId}`, error); // Debug log
396
+ // Error is recorded within _endSpan
397
+ this._endSpan(runId, undefined, error);
398
+ }
399
+ }
400
+ exports.JudgevalLanggraphCallbackHandler = JudgevalLanggraphCallbackHandler;
401
+ //# sourceMappingURL=langgraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../../../src/common/integrations/langgraph.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
@@ -18,8 +7,7 @@ const winston_1 = __importDefault(require("winston"));
18
7
  // Define the logger configuration
19
8
  const logger = winston_1.default.createLogger({
20
9
  level: process.env.JUDGMENT_LOG_LEVEL || 'info', // Default to 'info', allow override via env var
21
- format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston_1.default.format.printf((_a) => {
22
- var { timestamp, level, message } = _a, meta = __rest(_a, ["timestamp", "level", "message"]);
10
+ format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
23
11
  // Simple format: Timestamp [LEVEL]: message {meta}
24
12
  let metaString = '';
25
13
  if (Object.keys(meta).length > 0) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-instance.js","sourceRoot":"","sources":["../../../src/common/logger-instance.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAE9B,kCAAkC;AAClC,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,EAAE,gDAAgD;IACjG,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAC3D,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC/D,mDAAmD;QACnD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,sEAAsE;gBACtE,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBAChD,4DAA4D;wBAC5D,IAAI,GAAG,KAAK,EAAE;4BAAE,OAAO,KAAK,CAAC,CAAC,cAAc;wBAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BAAE,OAAO,YAAY,CAAC;oBACtE,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,GAAG,yBAAyB,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC1E,CAAC,CAAC,EACF,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,uBAAuB;KAC/D;IACD,UAAU,EAAE;QACV,qBAAqB;QACrB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,yCAAyC;QACzC,4DAA4D;KAC7D;IACD,oBAAoB;IACpB,iBAAiB,EAAE;QACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,8DAA8D;KAC/D;IACD,4BAA4B;IAC5B,iBAAiB,EAAE;QACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,8DAA8D;KAC/D;CACF,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
@@ -18,7 +18,7 @@ let currentTimestamp = null;
18
18
  * Log a debug message
19
19
  */
20
20
  function debug(message, meta) {
21
- logger_instance_1.default.debug(message, Object.assign(Object.assign({}, meta), { exampleId: currentExampleId, timestamp: currentTimestamp }));
21
+ logger_instance_1.default.debug(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
22
22
  }
23
23
  exports.debug = debug;
24
24
  /**
@@ -30,21 +30,21 @@ function log(message, ...args) {
30
30
  if (args.length > 0) {
31
31
  meta = { args: args };
32
32
  }
33
- logger_instance_1.default.info(message, Object.assign(Object.assign({}, meta), { exampleId: currentExampleId, timestamp: currentTimestamp }));
33
+ logger_instance_1.default.info(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
34
34
  }
35
35
  exports.log = log;
36
36
  /**
37
37
  * Log an info message
38
38
  */
39
39
  function info(message, meta) {
40
- logger_instance_1.default.info(message, Object.assign(Object.assign({}, meta), { exampleId: currentExampleId, timestamp: currentTimestamp }));
40
+ logger_instance_1.default.info(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
41
41
  }
42
42
  exports.info = info;
43
43
  /**
44
44
  * Log a warning message
45
45
  */
46
46
  function warning(message, meta) {
47
- logger_instance_1.default.warn(message, Object.assign(Object.assign({}, meta), { exampleId: currentExampleId, timestamp: currentTimestamp }));
47
+ logger_instance_1.default.warn(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
48
48
  }
49
49
  exports.warning = warning;
50
50
  /**
@@ -58,7 +58,7 @@ exports.warn = warn;
58
58
  * Log an error message
59
59
  */
60
60
  function error(message, meta) {
61
- logger_instance_1.default.error(message, Object.assign(Object.assign({}, meta), { exampleId: currentExampleId, timestamp: currentTimestamp }));
61
+ logger_instance_1.default.error(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
62
62
  }
63
63
  exports.error = error;
64
64
  /**
@@ -95,22 +95,21 @@ exports.withExampleContext = withExampleContext;
95
95
  * This matches the Python SDK's output format with clickable links
96
96
  */
97
97
  function formatEvaluationResults(results, projectName, evalName) {
98
- var _a;
99
98
  let output = '';
100
99
  // Print summary information
101
100
  if (results.length > 0) {
102
101
  output += `\n=== Evaluation Results (${results.length} examples) ===\n\n`;
103
102
  // Calculate success rate
104
- const successfulExamples = results.filter(r => { var _a, _b; return r.success || ((_b = (_a = r.scorersData) === null || _a === void 0 ? void 0 : _a.every((s) => s.success)) !== null && _b !== void 0 ? _b : false); }).length;
103
+ const successfulExamples = results.filter(r => r.success || (r.scorersData?.every((s) => s.success) ?? false)).length;
105
104
  const successRate = (successfulExamples / results.length) * 100;
106
105
  output += `Success Rate: ${successRate.toFixed(2)}% (${successfulExamples}/${results.length})\n\n`;
107
106
  // Print failures if any
108
- const failures = results.filter(r => { var _a, _b; return !r.success || ((_b = (_a = r.scorersData) === null || _a === void 0 ? void 0 : _a.some((s) => !s.success)) !== null && _b !== void 0 ? _b : false); });
107
+ const failures = results.filter(r => !r.success || (r.scorersData?.some((s) => !s.success) ?? false));
109
108
  if (failures.length > 0) {
110
109
  output += `Failures (${failures.length}):\n`;
111
110
  for (const [index, failure] of failures.entries()) {
112
111
  output += `\nExample ${index + 1}:\n`;
113
- output += `Input: ${((_a = failure.example) === null || _a === void 0 ? void 0 : _a.input) || 'N/A'}\n`;
112
+ output += `Input: ${failure.example?.input || 'N/A'}\n`;
114
113
  if (failure.scorersData) {
115
114
  output += 'Scorer Failures:\n';
116
115
  for (const scorer of failure.scorersData) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":"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"}