langchain 0.0.137 → 0.0.139

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 (79) hide show
  1. package/chat_models/minimax.cjs +1 -0
  2. package/chat_models/minimax.d.ts +1 -0
  3. package/chat_models/minimax.js +1 -0
  4. package/dist/agents/initialize.cjs +11 -0
  5. package/dist/agents/initialize.d.ts +4 -0
  6. package/dist/agents/initialize.js +11 -0
  7. package/dist/agents/xml/index.cjs +119 -0
  8. package/dist/agents/xml/index.d.ts +51 -0
  9. package/dist/agents/xml/index.js +114 -0
  10. package/dist/agents/xml/prompt.cjs +23 -0
  11. package/dist/agents/xml/prompt.d.ts +1 -0
  12. package/dist/agents/xml/prompt.js +20 -0
  13. package/dist/callbacks/base.d.ts +12 -4
  14. package/dist/callbacks/handlers/run_collector.cjs +50 -0
  15. package/dist/callbacks/handlers/run_collector.d.ts +26 -0
  16. package/dist/callbacks/handlers/run_collector.js +46 -0
  17. package/dist/callbacks/handlers/tracer.cjs +33 -20
  18. package/dist/callbacks/handlers/tracer.d.ts +7 -3
  19. package/dist/callbacks/handlers/tracer.js +33 -20
  20. package/dist/callbacks/handlers/tracer_langchain.cjs +1 -0
  21. package/dist/callbacks/handlers/tracer_langchain.d.ts +2 -1
  22. package/dist/callbacks/handlers/tracer_langchain.js +1 -0
  23. package/dist/callbacks/index.cjs +3 -1
  24. package/dist/callbacks/index.d.ts +1 -0
  25. package/dist/callbacks/index.js +1 -0
  26. package/dist/callbacks/manager.cjs +29 -14
  27. package/dist/callbacks/manager.d.ts +9 -4
  28. package/dist/callbacks/manager.js +29 -14
  29. package/dist/chains/openai_functions/extraction.cjs +2 -2
  30. package/dist/chains/openai_functions/extraction.d.ts +5 -4
  31. package/dist/chains/openai_functions/extraction.js +2 -2
  32. package/dist/chains/openai_functions/openapi.d.ts +2 -1
  33. package/dist/chains/openai_functions/structured_output.d.ts +4 -3
  34. package/dist/chains/openai_functions/tagging.cjs +2 -2
  35. package/dist/chains/openai_functions/tagging.d.ts +5 -4
  36. package/dist/chains/openai_functions/tagging.js +2 -2
  37. package/dist/chat_models/anthropic.cjs +7 -5
  38. package/dist/chat_models/anthropic.d.ts +17 -12
  39. package/dist/chat_models/anthropic.js +4 -2
  40. package/dist/chat_models/minimax.cjs +547 -0
  41. package/dist/chat_models/minimax.d.ts +364 -0
  42. package/dist/chat_models/minimax.js +543 -0
  43. package/dist/chat_models/ollama.cjs +136 -0
  44. package/dist/chat_models/ollama.d.ts +34 -0
  45. package/dist/chat_models/ollama.js +136 -0
  46. package/dist/embeddings/minimax.cjs +152 -0
  47. package/dist/embeddings/minimax.d.ts +104 -0
  48. package/dist/embeddings/minimax.js +148 -0
  49. package/dist/experimental/chat_models/anthropic_functions.cjs +129 -0
  50. package/dist/experimental/chat_models/anthropic_functions.d.ts +20 -0
  51. package/dist/experimental/chat_models/anthropic_functions.js +125 -0
  52. package/dist/llms/ollama.cjs +136 -0
  53. package/dist/llms/ollama.d.ts +34 -0
  54. package/dist/llms/ollama.js +136 -0
  55. package/dist/load/import_constants.cjs +1 -0
  56. package/dist/load/import_constants.js +1 -0
  57. package/dist/load/import_map.cjs +4 -2
  58. package/dist/load/import_map.d.ts +2 -0
  59. package/dist/load/import_map.js +2 -0
  60. package/dist/schema/output_parser.cjs +1 -1
  61. package/dist/schema/output_parser.js +1 -1
  62. package/dist/schema/runnable.cjs +54 -15
  63. package/dist/schema/runnable.d.ts +9 -3
  64. package/dist/schema/runnable.js +55 -16
  65. package/dist/sql_db.cjs +3 -1
  66. package/dist/sql_db.js +3 -1
  67. package/dist/util/ollama.d.ts +34 -0
  68. package/dist/vectorstores/redis.cjs +17 -2
  69. package/dist/vectorstores/redis.d.ts +10 -1
  70. package/dist/vectorstores/redis.js +17 -2
  71. package/dist/vectorstores/zep.cjs +2 -1
  72. package/dist/vectorstores/zep.js +3 -2
  73. package/embeddings/minimax.cjs +1 -0
  74. package/embeddings/minimax.d.ts +1 -0
  75. package/embeddings/minimax.js +1 -0
  76. package/experimental/chat_models/anthropic_functions.cjs +1 -0
  77. package/experimental/chat_models/anthropic_functions.d.ts +1 -0
  78. package/experimental/chat_models/anthropic_functions.js +1 -0
  79. package/package.json +34 -5
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseTracer = void 0;
4
4
  const base_js_1 = require("../base.cjs");
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ function _coerceToDict(value, defaultKey) {
7
+ return value && !Array.isArray(value) && typeof value === "object"
8
+ ? value
9
+ : { [defaultKey]: value };
10
+ }
5
11
  class BaseTracer extends base_js_1.BaseCallbackHandler {
6
12
  constructor(_fields) {
7
13
  super(...arguments);
@@ -23,6 +29,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
23
29
  const parentRun = this.runMap.get(run.parent_run_id);
24
30
  if (parentRun) {
25
31
  this._addChildRun(parentRun, run);
32
+ parentRun.child_execution_order = Math.max(parentRun.child_execution_order, run.child_execution_order);
26
33
  }
27
34
  }
28
35
  this.runMap.set(run.id, run);
@@ -60,7 +67,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
60
67
  events: [
61
68
  {
62
69
  name: "start",
63
- time: start_time,
70
+ time: new Date(start_time).toISOString(),
64
71
  },
65
72
  ],
66
73
  inputs: { prompts },
@@ -89,7 +96,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
89
96
  events: [
90
97
  {
91
98
  name: "start",
92
- time: start_time,
99
+ time: new Date(start_time).toISOString(),
93
100
  },
94
101
  ],
95
102
  inputs: { messages },
@@ -112,7 +119,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
112
119
  run.outputs = output;
113
120
  run.events.push({
114
121
  name: "end",
115
- time: run.end_time,
122
+ time: new Date(run.end_time).toISOString(),
116
123
  });
117
124
  await this.onLLMEnd?.(run);
118
125
  await this._endTrace(run);
@@ -126,7 +133,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
126
133
  run.error = error.message;
127
134
  run.events.push({
128
135
  name: "error",
129
- time: run.end_time,
136
+ time: new Date(run.end_time).toISOString(),
130
137
  });
131
138
  await this.onLLMError?.(run);
132
139
  await this._endTrace(run);
@@ -143,7 +150,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
143
150
  events: [
144
151
  {
145
152
  name: "start",
146
- time: start_time,
153
+ time: new Date(start_time).toISOString(),
147
154
  },
148
155
  ],
149
156
  inputs,
@@ -157,21 +164,24 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
157
164
  this._startTrace(run);
158
165
  await this.onChainStart?.(run);
159
166
  }
160
- async handleChainEnd(outputs, runId) {
167
+ async handleChainEnd(outputs, runId, _parentRunId, _tags, kwargs) {
161
168
  const run = this.runMap.get(runId);
162
169
  if (!run) {
163
170
  throw new Error("No chain run to end.");
164
171
  }
165
172
  run.end_time = Date.now();
166
- run.outputs = outputs;
173
+ run.outputs = _coerceToDict(outputs, "output");
167
174
  run.events.push({
168
175
  name: "end",
169
- time: run.end_time,
176
+ time: new Date(run.end_time).toISOString(),
170
177
  });
178
+ if (kwargs?.inputs !== undefined) {
179
+ run.inputs = _coerceToDict(kwargs.inputs, "input");
180
+ }
171
181
  await this.onChainEnd?.(run);
172
182
  await this._endTrace(run);
173
183
  }
174
- async handleChainError(error, runId) {
184
+ async handleChainError(error, runId, _parentRunId, _tags, kwargs) {
175
185
  const run = this.runMap.get(runId);
176
186
  if (!run) {
177
187
  throw new Error("No chain run to end.");
@@ -180,8 +190,11 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
180
190
  run.error = error.message;
181
191
  run.events.push({
182
192
  name: "error",
183
- time: run.end_time,
193
+ time: new Date(run.end_time).toISOString(),
184
194
  });
195
+ if (kwargs?.inputs !== undefined) {
196
+ run.inputs = _coerceToDict(kwargs.inputs, "input");
197
+ }
185
198
  await this.onChainError?.(run);
186
199
  await this._endTrace(run);
187
200
  }
@@ -197,7 +210,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
197
210
  events: [
198
211
  {
199
212
  name: "start",
200
- time: start_time,
213
+ time: new Date(start_time).toISOString(),
201
214
  },
202
215
  ],
203
216
  inputs: { input },
@@ -220,7 +233,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
220
233
  run.outputs = { output };
221
234
  run.events.push({
222
235
  name: "end",
223
- time: run.end_time,
236
+ time: new Date(run.end_time).toISOString(),
224
237
  });
225
238
  await this.onToolEnd?.(run);
226
239
  await this._endTrace(run);
@@ -234,7 +247,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
234
247
  run.error = error.message;
235
248
  run.events.push({
236
249
  name: "error",
237
- time: run.end_time,
250
+ time: new Date(run.end_time).toISOString(),
238
251
  });
239
252
  await this.onToolError?.(run);
240
253
  await this._endTrace(run);
@@ -249,7 +262,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
249
262
  agentRun.actions.push(action);
250
263
  agentRun.events.push({
251
264
  name: "agent_action",
252
- time: Date.now(),
265
+ time: new Date().toISOString(),
253
266
  kwargs: { action },
254
267
  });
255
268
  await this.onAgentAction?.(run);
@@ -261,7 +274,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
261
274
  }
262
275
  run.events.push({
263
276
  name: "agent_end",
264
- time: Date.now(),
277
+ time: new Date().toISOString(),
265
278
  kwargs: { action },
266
279
  });
267
280
  await this.onAgentEnd?.(run);
@@ -278,7 +291,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
278
291
  events: [
279
292
  {
280
293
  name: "start",
281
- time: start_time,
294
+ time: new Date(start_time).toISOString(),
282
295
  },
283
296
  ],
284
297
  inputs: { query },
@@ -301,7 +314,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
301
314
  run.outputs = { documents };
302
315
  run.events.push({
303
316
  name: "end",
304
- time: run.end_time,
317
+ time: new Date(run.end_time).toISOString(),
305
318
  });
306
319
  await this.onRetrieverEnd?.(run);
307
320
  await this._endTrace(run);
@@ -315,7 +328,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
315
328
  run.error = error.message;
316
329
  run.events.push({
317
330
  name: "error",
318
- time: run.end_time,
331
+ time: new Date(run.end_time).toISOString(),
319
332
  });
320
333
  await this.onRetrieverError?.(run);
321
334
  await this._endTrace(run);
@@ -327,7 +340,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
327
340
  }
328
341
  run.events.push({
329
342
  name: "text",
330
- time: Date.now(),
343
+ time: new Date().toISOString(),
331
344
  kwargs: { text },
332
345
  });
333
346
  await this.onText?.(run);
@@ -339,7 +352,7 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
339
352
  }
340
353
  run.events.push({
341
354
  name: "new_token",
342
- time: Date.now(),
355
+ time: new Date().toISOString(),
343
356
  kwargs: { token, idx, chunk: fields?.chunk },
344
357
  });
345
358
  await this.onLLMNewToken?.(run);
@@ -12,7 +12,7 @@ export interface Run extends BaseRun {
12
12
  child_execution_order: number;
13
13
  events: Array<{
14
14
  name: string;
15
- time: number;
15
+ time: string;
16
16
  kwargs?: Record<string, unknown>;
17
17
  }>;
18
18
  }
@@ -33,8 +33,12 @@ export declare abstract class BaseTracer extends BaseCallbackHandler {
33
33
  handleLLMEnd(output: LLMResult, runId: string): Promise<void>;
34
34
  handleLLMError(error: Error, runId: string): Promise<void>;
35
35
  handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, runType?: string): Promise<void>;
36
- handleChainEnd(outputs: ChainValues, runId: string): Promise<void>;
37
- handleChainError(error: Error, runId: string): Promise<void>;
36
+ handleChainEnd(outputs: ChainValues, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: {
37
+ inputs?: Record<string, unknown>;
38
+ }): Promise<void>;
39
+ handleChainError(error: Error, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: {
40
+ inputs?: Record<string, unknown>;
41
+ }): Promise<void>;
38
42
  handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap): Promise<void>;
39
43
  handleToolEnd(output: string, runId: string): Promise<void>;
40
44
  handleToolError(error: Error, runId: string): Promise<void>;
@@ -1,4 +1,10 @@
1
1
  import { BaseCallbackHandler, } from "../base.js";
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ function _coerceToDict(value, defaultKey) {
4
+ return value && !Array.isArray(value) && typeof value === "object"
5
+ ? value
6
+ : { [defaultKey]: value };
7
+ }
2
8
  export class BaseTracer extends BaseCallbackHandler {
3
9
  constructor(_fields) {
4
10
  super(...arguments);
@@ -20,6 +26,7 @@ export class BaseTracer extends BaseCallbackHandler {
20
26
  const parentRun = this.runMap.get(run.parent_run_id);
21
27
  if (parentRun) {
22
28
  this._addChildRun(parentRun, run);
29
+ parentRun.child_execution_order = Math.max(parentRun.child_execution_order, run.child_execution_order);
23
30
  }
24
31
  }
25
32
  this.runMap.set(run.id, run);
@@ -57,7 +64,7 @@ export class BaseTracer extends BaseCallbackHandler {
57
64
  events: [
58
65
  {
59
66
  name: "start",
60
- time: start_time,
67
+ time: new Date(start_time).toISOString(),
61
68
  },
62
69
  ],
63
70
  inputs: { prompts },
@@ -86,7 +93,7 @@ export class BaseTracer extends BaseCallbackHandler {
86
93
  events: [
87
94
  {
88
95
  name: "start",
89
- time: start_time,
96
+ time: new Date(start_time).toISOString(),
90
97
  },
91
98
  ],
92
99
  inputs: { messages },
@@ -109,7 +116,7 @@ export class BaseTracer extends BaseCallbackHandler {
109
116
  run.outputs = output;
110
117
  run.events.push({
111
118
  name: "end",
112
- time: run.end_time,
119
+ time: new Date(run.end_time).toISOString(),
113
120
  });
114
121
  await this.onLLMEnd?.(run);
115
122
  await this._endTrace(run);
@@ -123,7 +130,7 @@ export class BaseTracer extends BaseCallbackHandler {
123
130
  run.error = error.message;
124
131
  run.events.push({
125
132
  name: "error",
126
- time: run.end_time,
133
+ time: new Date(run.end_time).toISOString(),
127
134
  });
128
135
  await this.onLLMError?.(run);
129
136
  await this._endTrace(run);
@@ -140,7 +147,7 @@ export class BaseTracer extends BaseCallbackHandler {
140
147
  events: [
141
148
  {
142
149
  name: "start",
143
- time: start_time,
150
+ time: new Date(start_time).toISOString(),
144
151
  },
145
152
  ],
146
153
  inputs,
@@ -154,21 +161,24 @@ export class BaseTracer extends BaseCallbackHandler {
154
161
  this._startTrace(run);
155
162
  await this.onChainStart?.(run);
156
163
  }
157
- async handleChainEnd(outputs, runId) {
164
+ async handleChainEnd(outputs, runId, _parentRunId, _tags, kwargs) {
158
165
  const run = this.runMap.get(runId);
159
166
  if (!run) {
160
167
  throw new Error("No chain run to end.");
161
168
  }
162
169
  run.end_time = Date.now();
163
- run.outputs = outputs;
170
+ run.outputs = _coerceToDict(outputs, "output");
164
171
  run.events.push({
165
172
  name: "end",
166
- time: run.end_time,
173
+ time: new Date(run.end_time).toISOString(),
167
174
  });
175
+ if (kwargs?.inputs !== undefined) {
176
+ run.inputs = _coerceToDict(kwargs.inputs, "input");
177
+ }
168
178
  await this.onChainEnd?.(run);
169
179
  await this._endTrace(run);
170
180
  }
171
- async handleChainError(error, runId) {
181
+ async handleChainError(error, runId, _parentRunId, _tags, kwargs) {
172
182
  const run = this.runMap.get(runId);
173
183
  if (!run) {
174
184
  throw new Error("No chain run to end.");
@@ -177,8 +187,11 @@ export class BaseTracer extends BaseCallbackHandler {
177
187
  run.error = error.message;
178
188
  run.events.push({
179
189
  name: "error",
180
- time: run.end_time,
190
+ time: new Date(run.end_time).toISOString(),
181
191
  });
192
+ if (kwargs?.inputs !== undefined) {
193
+ run.inputs = _coerceToDict(kwargs.inputs, "input");
194
+ }
182
195
  await this.onChainError?.(run);
183
196
  await this._endTrace(run);
184
197
  }
@@ -194,7 +207,7 @@ export class BaseTracer extends BaseCallbackHandler {
194
207
  events: [
195
208
  {
196
209
  name: "start",
197
- time: start_time,
210
+ time: new Date(start_time).toISOString(),
198
211
  },
199
212
  ],
200
213
  inputs: { input },
@@ -217,7 +230,7 @@ export class BaseTracer extends BaseCallbackHandler {
217
230
  run.outputs = { output };
218
231
  run.events.push({
219
232
  name: "end",
220
- time: run.end_time,
233
+ time: new Date(run.end_time).toISOString(),
221
234
  });
222
235
  await this.onToolEnd?.(run);
223
236
  await this._endTrace(run);
@@ -231,7 +244,7 @@ export class BaseTracer extends BaseCallbackHandler {
231
244
  run.error = error.message;
232
245
  run.events.push({
233
246
  name: "error",
234
- time: run.end_time,
247
+ time: new Date(run.end_time).toISOString(),
235
248
  });
236
249
  await this.onToolError?.(run);
237
250
  await this._endTrace(run);
@@ -246,7 +259,7 @@ export class BaseTracer extends BaseCallbackHandler {
246
259
  agentRun.actions.push(action);
247
260
  agentRun.events.push({
248
261
  name: "agent_action",
249
- time: Date.now(),
262
+ time: new Date().toISOString(),
250
263
  kwargs: { action },
251
264
  });
252
265
  await this.onAgentAction?.(run);
@@ -258,7 +271,7 @@ export class BaseTracer extends BaseCallbackHandler {
258
271
  }
259
272
  run.events.push({
260
273
  name: "agent_end",
261
- time: Date.now(),
274
+ time: new Date().toISOString(),
262
275
  kwargs: { action },
263
276
  });
264
277
  await this.onAgentEnd?.(run);
@@ -275,7 +288,7 @@ export class BaseTracer extends BaseCallbackHandler {
275
288
  events: [
276
289
  {
277
290
  name: "start",
278
- time: start_time,
291
+ time: new Date(start_time).toISOString(),
279
292
  },
280
293
  ],
281
294
  inputs: { query },
@@ -298,7 +311,7 @@ export class BaseTracer extends BaseCallbackHandler {
298
311
  run.outputs = { documents };
299
312
  run.events.push({
300
313
  name: "end",
301
- time: run.end_time,
314
+ time: new Date(run.end_time).toISOString(),
302
315
  });
303
316
  await this.onRetrieverEnd?.(run);
304
317
  await this._endTrace(run);
@@ -312,7 +325,7 @@ export class BaseTracer extends BaseCallbackHandler {
312
325
  run.error = error.message;
313
326
  run.events.push({
314
327
  name: "error",
315
- time: run.end_time,
328
+ time: new Date(run.end_time).toISOString(),
316
329
  });
317
330
  await this.onRetrieverError?.(run);
318
331
  await this._endTrace(run);
@@ -324,7 +337,7 @@ export class BaseTracer extends BaseCallbackHandler {
324
337
  }
325
338
  run.events.push({
326
339
  name: "text",
327
- time: Date.now(),
340
+ time: new Date().toISOString(),
328
341
  kwargs: { text },
329
342
  });
330
343
  await this.onText?.(run);
@@ -336,7 +349,7 @@ export class BaseTracer extends BaseCallbackHandler {
336
349
  }
337
350
  run.events.push({
338
351
  name: "new_token",
339
- time: Date.now(),
352
+ time: new Date().toISOString(),
340
353
  kwargs: { token, idx, chunk: fields?.chunk },
341
354
  });
342
355
  await this.onLLMNewToken?.(run);
@@ -62,6 +62,7 @@ class LangChainTracer extends tracer_js_1.BaseTracer {
62
62
  error: run.error,
63
63
  outputs: run.outputs,
64
64
  events: run.events,
65
+ inputs: run.inputs,
65
66
  };
66
67
  await this.client.updateRun(run.id, runUpdate);
67
68
  }
@@ -1,5 +1,5 @@
1
1
  import { Client } from "langsmith";
2
- import { BaseRun, RunUpdate as BaseRunUpdate } from "langsmith/schemas";
2
+ import { BaseRun, RunUpdate as BaseRunUpdate, KVMap } from "langsmith/schemas";
3
3
  import { BaseTracer } from "./tracer.js";
4
4
  import { BaseCallbackHandlerInput } from "../base.js";
5
5
  export interface Run extends BaseRun {
@@ -9,6 +9,7 @@ export interface Run extends BaseRun {
9
9
  }
10
10
  export interface RunUpdate extends BaseRunUpdate {
11
11
  events: BaseRun["events"];
12
+ inputs: KVMap;
12
13
  }
13
14
  export interface LangChainTracerFields extends BaseCallbackHandlerInput {
14
15
  exampleId?: string;
@@ -59,6 +59,7 @@ export class LangChainTracer extends BaseTracer {
59
59
  error: run.error,
60
60
  outputs: run.outputs,
61
61
  events: run.events,
62
+ inputs: run.inputs,
62
63
  };
63
64
  await this.client.updateRun(run.id, runUpdate);
64
65
  }
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.consumeCallback = exports.awaitAllCallbacks = exports.traceAsGroup = exports.TraceGroup = exports.CallbackManagerForToolRun = exports.CallbackManagerForLLMRun = exports.CallbackManagerForChainRun = exports.CallbackManagerForRetrieverRun = exports.CallbackManager = exports.getTracingV2CallbackHandler = exports.getTracingCallbackHandler = exports.LangChainTracerV1 = exports.LangChainTracer = exports.ConsoleCallbackHandler = exports.BaseTracer = exports.BaseCallbackHandler = void 0;
3
+ exports.consumeCallback = exports.awaitAllCallbacks = exports.traceAsGroup = exports.TraceGroup = exports.CallbackManagerForToolRun = exports.CallbackManagerForLLMRun = exports.CallbackManagerForChainRun = exports.CallbackManagerForRetrieverRun = exports.CallbackManager = exports.getTracingV2CallbackHandler = exports.getTracingCallbackHandler = exports.LangChainTracerV1 = exports.LangChainTracer = exports.RunCollectorCallbackHandler = exports.ConsoleCallbackHandler = exports.BaseTracer = exports.BaseCallbackHandler = void 0;
4
4
  var base_js_1 = require("./base.cjs");
5
5
  Object.defineProperty(exports, "BaseCallbackHandler", { enumerable: true, get: function () { return base_js_1.BaseCallbackHandler; } });
6
6
  var tracer_js_1 = require("./handlers/tracer.cjs");
7
7
  Object.defineProperty(exports, "BaseTracer", { enumerable: true, get: function () { return tracer_js_1.BaseTracer; } });
8
8
  var console_js_1 = require("./handlers/console.cjs");
9
9
  Object.defineProperty(exports, "ConsoleCallbackHandler", { enumerable: true, get: function () { return console_js_1.ConsoleCallbackHandler; } });
10
+ var run_collector_js_1 = require("./handlers/run_collector.cjs");
11
+ Object.defineProperty(exports, "RunCollectorCallbackHandler", { enumerable: true, get: function () { return run_collector_js_1.RunCollectorCallbackHandler; } });
10
12
  var tracer_langchain_js_1 = require("./handlers/tracer_langchain.cjs");
11
13
  Object.defineProperty(exports, "LangChainTracer", { enumerable: true, get: function () { return tracer_langchain_js_1.LangChainTracer; } });
12
14
  var tracer_langchain_v1_js_1 = require("./handlers/tracer_langchain_v1.cjs");
@@ -1,6 +1,7 @@
1
1
  export { BaseCallbackHandler, CallbackHandlerMethods, BaseCallbackHandlerInput, NewTokenIndices, } from "./base.js";
2
2
  export { Run, RunType, BaseTracer } from "./handlers/tracer.js";
3
3
  export { ConsoleCallbackHandler } from "./handlers/console.js";
4
+ export { RunCollectorCallbackHandler } from "./handlers/run_collector.js";
4
5
  export { LangChainTracer } from "./handlers/tracer_langchain.js";
5
6
  export { LangChainTracerV1 } from "./handlers/tracer_langchain_v1.js";
6
7
  export { getTracingCallbackHandler, getTracingV2CallbackHandler, } from "./handlers/initialize.js";
@@ -1,6 +1,7 @@
1
1
  export { BaseCallbackHandler, } from "./base.js";
2
2
  export { BaseTracer } from "./handlers/tracer.js";
3
3
  export { ConsoleCallbackHandler } from "./handlers/console.js";
4
+ export { RunCollectorCallbackHandler } from "./handlers/run_collector.js";
4
5
  export { LangChainTracer } from "./handlers/tracer_langchain.js";
5
6
  export { LangChainTracerV1 } from "./handlers/tracer_langchain_v1.js";
6
7
  export { getTracingCallbackHandler, getTracingV2CallbackHandler, } from "./handlers/initialize.js";
@@ -187,11 +187,11 @@ class CallbackManagerForChainRun extends BaseRunManager {
187
187
  }
188
188
  return manager;
189
189
  }
190
- async handleChainError(err) {
190
+ async handleChainError(err, _runId, _parentRunId, _tags, kwargs) {
191
191
  await Promise.all(this.handlers.map((handler) => (0, promises_js_1.consumeCallback)(async () => {
192
192
  if (!handler.ignoreChain) {
193
193
  try {
194
- await handler.handleChainError?.(err, this.runId, this._parentRunId, this.tags);
194
+ await handler.handleChainError?.(err, this.runId, this._parentRunId, this.tags, kwargs);
195
195
  }
196
196
  catch (err) {
197
197
  console.error(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
@@ -199,11 +199,11 @@ class CallbackManagerForChainRun extends BaseRunManager {
199
199
  }
200
200
  }, handler.awaitHandlers)));
201
201
  }
202
- async handleChainEnd(output) {
202
+ async handleChainEnd(output, _runId, _parentRunId, _tags, kwargs) {
203
203
  await Promise.all(this.handlers.map((handler) => (0, promises_js_1.consumeCallback)(async () => {
204
204
  if (!handler.ignoreChain) {
205
205
  try {
206
- await handler.handleChainEnd?.(output, this.runId, this._parentRunId, this.tags);
206
+ await handler.handleChainEnd?.(output, this.runId, this._parentRunId, this.tags, kwargs);
207
207
  }
208
208
  catch (err) {
209
209
  console.error(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
@@ -571,42 +571,57 @@ class TraceGroup {
571
571
  value: void 0
572
572
  });
573
573
  }
574
- async getTraceGroupCallbackManager(group_name, options) {
574
+ async getTraceGroupCallbackManager(group_name, inputs, options) {
575
575
  const cb = new tracer_langchain_js_1.LangChainTracer(options);
576
576
  const cm = await CallbackManager.configure([cb]);
577
577
  const runManager = await cm?.handleChainStart({
578
578
  lc: 1,
579
579
  type: "not_implemented",
580
580
  id: ["langchain", "callbacks", "groups", group_name],
581
- }, {});
581
+ }, inputs ?? {});
582
582
  if (!runManager) {
583
583
  throw new Error("Failed to create run group callback manager.");
584
584
  }
585
585
  return runManager;
586
586
  }
587
- async start() {
587
+ async start(inputs) {
588
588
  if (!this.runManager) {
589
- this.runManager = await this.getTraceGroupCallbackManager(this.groupName, this.options);
589
+ this.runManager = await this.getTraceGroupCallbackManager(this.groupName, inputs, this.options);
590
590
  }
591
591
  return this.runManager.getChild();
592
592
  }
593
- async end() {
593
+ async error(err) {
594
594
  if (this.runManager) {
595
- await this.runManager.handleChainEnd({});
595
+ await this.runManager.handleChainError(err);
596
+ this.runManager = undefined;
597
+ }
598
+ }
599
+ async end(output) {
600
+ if (this.runManager) {
601
+ await this.runManager.handleChainEnd(output ?? {});
596
602
  this.runManager = undefined;
597
603
  }
598
604
  }
599
605
  }
600
606
  exports.TraceGroup = TraceGroup;
601
607
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
608
+ function _coerceToDict(value, defaultKey) {
609
+ return value && !Array.isArray(value) && typeof value === "object"
610
+ ? value
611
+ : { [defaultKey]: value };
612
+ }
613
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
602
614
  async function traceAsGroup(groupOptions, enclosedCode, ...args) {
603
615
  const traceGroup = new TraceGroup(groupOptions.name, groupOptions);
604
- const callbackManager = await traceGroup.start();
616
+ const callbackManager = await traceGroup.start({ ...args });
605
617
  try {
606
- return await enclosedCode(callbackManager, ...args);
618
+ const result = await enclosedCode(callbackManager, ...args);
619
+ await traceGroup.end(_coerceToDict(result, "output"));
620
+ return result;
607
621
  }
608
- finally {
609
- await traceGroup.end();
622
+ catch (err) {
623
+ await traceGroup.error(err);
624
+ throw err;
610
625
  }
611
626
  }
612
627
  exports.traceAsGroup = traceAsGroup;
@@ -68,8 +68,12 @@ export declare class CallbackManagerForLLMRun extends BaseRunManager implements
68
68
  }
69
69
  export declare class CallbackManagerForChainRun extends BaseRunManager implements BaseCallbackManagerMethods {
70
70
  getChild(tag?: string): CallbackManager;
71
- handleChainError(err: Error | unknown): Promise<void>;
72
- handleChainEnd(output: ChainValues): Promise<void>;
71
+ handleChainError(err: Error | unknown, _runId?: string, _parentRunId?: string, _tags?: string[], kwargs?: {
72
+ inputs?: Record<string, unknown>;
73
+ }): Promise<void>;
74
+ handleChainEnd(output: ChainValues, _runId?: string, _parentRunId?: string, _tags?: string[], kwargs?: {
75
+ inputs?: Record<string, unknown>;
76
+ }): Promise<void>;
73
77
  handleAgentAction(action: AgentAction): Promise<void>;
74
78
  handleAgentEnd(action: AgentFinish): Promise<void>;
75
79
  }
@@ -113,8 +117,9 @@ export declare class TraceGroup {
113
117
  exampleId?: string | undefined;
114
118
  } | undefined);
115
119
  private getTraceGroupCallbackManager;
116
- start(): Promise<CallbackManager>;
117
- end(): Promise<void>;
120
+ start(inputs?: ChainValues): Promise<CallbackManager>;
121
+ error(err: Error | unknown): Promise<void>;
122
+ end(output?: ChainValues): Promise<void>;
118
123
  }
119
124
  export declare function traceAsGroup<T, A extends any[]>(groupOptions: {
120
125
  name: string;