@langchain/core 0.2.18 → 0.2.20

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 (155) hide show
  1. package/dist/callbacks/manager.cjs +94 -19
  2. package/dist/callbacks/manager.d.ts +3 -1
  3. package/dist/callbacks/manager.js +94 -19
  4. package/dist/language_models/base.d.ts +0 -10
  5. package/dist/language_models/chat_models.cjs +5 -6
  6. package/dist/language_models/chat_models.d.ts +9 -10
  7. package/dist/language_models/chat_models.js +5 -6
  8. package/dist/language_models/llms.cjs +5 -6
  9. package/dist/language_models/llms.d.ts +10 -12
  10. package/dist/language_models/llms.js +5 -6
  11. package/dist/messages/base.cjs +16 -1
  12. package/dist/messages/base.d.ts +9 -0
  13. package/dist/messages/base.js +14 -0
  14. package/dist/messages/tool.cjs +23 -0
  15. package/dist/messages/tool.d.ts +15 -0
  16. package/dist/messages/tool.js +24 -1
  17. package/dist/messages/utils.cjs +1 -1
  18. package/dist/messages/utils.js +1 -1
  19. package/dist/output_parsers/string.cjs +1 -0
  20. package/dist/output_parsers/string.js +1 -0
  21. package/dist/runnables/base.cjs +35 -12
  22. package/dist/runnables/base.js +35 -12
  23. package/dist/runnables/config.cjs +41 -0
  24. package/dist/runnables/config.js +41 -0
  25. package/dist/runnables/remote.cjs +17 -14
  26. package/dist/runnables/remote.js +17 -14
  27. package/dist/runnables/types.d.ts +10 -0
  28. package/dist/tools/index.cjs +15 -6
  29. package/dist/tools/index.d.ts +21 -12
  30. package/dist/tools/index.js +15 -6
  31. package/dist/utils/math.cjs +6 -4
  32. package/dist/utils/math.js +6 -4
  33. package/dist/utils/ml-distance/distances.cjs +18 -0
  34. package/dist/utils/ml-distance/distances.d.ts +8 -0
  35. package/dist/utils/ml-distance/distances.js +14 -0
  36. package/dist/utils/ml-distance/similarities.cjs +21 -0
  37. package/dist/utils/ml-distance/similarities.d.ts +7 -0
  38. package/dist/utils/ml-distance/similarities.js +17 -0
  39. package/dist/utils/ml-distance-euclidean/euclidean.cjs +15 -0
  40. package/dist/utils/ml-distance-euclidean/euclidean.d.ts +2 -0
  41. package/dist/utils/ml-distance-euclidean/euclidean.js +10 -0
  42. package/dist/utils/signal.cjs +28 -0
  43. package/dist/utils/signal.d.ts +1 -0
  44. package/dist/utils/signal.js +24 -0
  45. package/dist/utils/stream.cjs +19 -4
  46. package/dist/utils/stream.d.ts +3 -1
  47. package/dist/utils/stream.js +19 -4
  48. package/dist/utils/testing/index.cjs +168 -4
  49. package/dist/utils/testing/index.d.ts +100 -6
  50. package/dist/utils/testing/index.js +167 -4
  51. package/package.json +4 -4
  52. package/dist/caches/tests/in_memory_cache.test.d.ts +0 -1
  53. package/dist/caches/tests/in_memory_cache.test.js +0 -33
  54. package/dist/callbacks/tests/callbacks.test.d.ts +0 -1
  55. package/dist/callbacks/tests/callbacks.test.js +0 -495
  56. package/dist/callbacks/tests/manager.int.test.d.ts +0 -1
  57. package/dist/callbacks/tests/manager.int.test.js +0 -29
  58. package/dist/callbacks/tests/run_collector.test.d.ts +0 -1
  59. package/dist/callbacks/tests/run_collector.test.js +0 -58
  60. package/dist/language_models/tests/chat_models.test.d.ts +0 -1
  61. package/dist/language_models/tests/chat_models.test.js +0 -204
  62. package/dist/language_models/tests/count_tokens.test.d.ts +0 -1
  63. package/dist/language_models/tests/count_tokens.test.js +0 -19
  64. package/dist/language_models/tests/llms.test.d.ts +0 -1
  65. package/dist/language_models/tests/llms.test.js +0 -52
  66. package/dist/messages/tests/base_message.test.d.ts +0 -1
  67. package/dist/messages/tests/base_message.test.js +0 -245
  68. package/dist/messages/tests/message_utils.test.d.ts +0 -1
  69. package/dist/messages/tests/message_utils.test.js +0 -434
  70. package/dist/output_parsers/openai_tools/tests/json_output_tools_parser.test.d.ts +0 -1
  71. package/dist/output_parsers/openai_tools/tests/json_output_tools_parser.test.js +0 -81
  72. package/dist/output_parsers/tests/json.test.d.ts +0 -1
  73. package/dist/output_parsers/tests/json.test.js +0 -427
  74. package/dist/output_parsers/tests/output_parser.test.d.ts +0 -1
  75. package/dist/output_parsers/tests/output_parser.test.js +0 -78
  76. package/dist/output_parsers/tests/string.test.d.ts +0 -1
  77. package/dist/output_parsers/tests/string.test.js +0 -68
  78. package/dist/output_parsers/tests/structured.test.d.ts +0 -1
  79. package/dist/output_parsers/tests/structured.test.js +0 -166
  80. package/dist/output_parsers/tests/xml.test.d.ts +0 -1
  81. package/dist/output_parsers/tests/xml.test.js +0 -81
  82. package/dist/prompts/tests/chat.mustache.test.d.ts +0 -1
  83. package/dist/prompts/tests/chat.mustache.test.js +0 -129
  84. package/dist/prompts/tests/chat.test.d.ts +0 -1
  85. package/dist/prompts/tests/chat.test.js +0 -557
  86. package/dist/prompts/tests/few_shot.test.d.ts +0 -1
  87. package/dist/prompts/tests/few_shot.test.js +0 -224
  88. package/dist/prompts/tests/pipeline.test.d.ts +0 -1
  89. package/dist/prompts/tests/pipeline.test.js +0 -101
  90. package/dist/prompts/tests/prompt.mustache.test.d.ts +0 -1
  91. package/dist/prompts/tests/prompt.mustache.test.js +0 -105
  92. package/dist/prompts/tests/prompt.test.d.ts +0 -1
  93. package/dist/prompts/tests/prompt.test.js +0 -78
  94. package/dist/prompts/tests/structured.test.d.ts +0 -1
  95. package/dist/prompts/tests/structured.test.js +0 -37
  96. package/dist/prompts/tests/template.test.d.ts +0 -1
  97. package/dist/prompts/tests/template.test.js +0 -24
  98. package/dist/runnables/tests/runnable.test.d.ts +0 -1
  99. package/dist/runnables/tests/runnable.test.js +0 -491
  100. package/dist/runnables/tests/runnable_binding.test.d.ts +0 -1
  101. package/dist/runnables/tests/runnable_binding.test.js +0 -46
  102. package/dist/runnables/tests/runnable_branch.test.d.ts +0 -1
  103. package/dist/runnables/tests/runnable_branch.test.js +0 -116
  104. package/dist/runnables/tests/runnable_graph.test.d.ts +0 -1
  105. package/dist/runnables/tests/runnable_graph.test.js +0 -100
  106. package/dist/runnables/tests/runnable_history.test.d.ts +0 -1
  107. package/dist/runnables/tests/runnable_history.test.js +0 -177
  108. package/dist/runnables/tests/runnable_interface.test.d.ts +0 -1
  109. package/dist/runnables/tests/runnable_interface.test.js +0 -209
  110. package/dist/runnables/tests/runnable_map.test.d.ts +0 -1
  111. package/dist/runnables/tests/runnable_map.test.js +0 -238
  112. package/dist/runnables/tests/runnable_passthrough.test.d.ts +0 -1
  113. package/dist/runnables/tests/runnable_passthrough.test.js +0 -96
  114. package/dist/runnables/tests/runnable_remote.int.test.d.ts +0 -1
  115. package/dist/runnables/tests/runnable_remote.int.test.js +0 -138
  116. package/dist/runnables/tests/runnable_remote.test.d.ts +0 -1
  117. package/dist/runnables/tests/runnable_remote.test.js +0 -200
  118. package/dist/runnables/tests/runnable_retry.test.d.ts +0 -1
  119. package/dist/runnables/tests/runnable_retry.test.js +0 -125
  120. package/dist/runnables/tests/runnable_stream_events.test.d.ts +0 -1
  121. package/dist/runnables/tests/runnable_stream_events.test.js +0 -1013
  122. package/dist/runnables/tests/runnable_stream_events_v2.test.d.ts +0 -1
  123. package/dist/runnables/tests/runnable_stream_events_v2.test.js +0 -2022
  124. package/dist/runnables/tests/runnable_stream_log.test.d.ts +0 -1
  125. package/dist/runnables/tests/runnable_stream_log.test.js +0 -71
  126. package/dist/runnables/tests/runnable_tools.test.d.ts +0 -1
  127. package/dist/runnables/tests/runnable_tools.test.js +0 -149
  128. package/dist/runnables/tests/runnable_tracing.int.test.d.ts +0 -1
  129. package/dist/runnables/tests/runnable_tracing.int.test.js +0 -37
  130. package/dist/runnables/tests/runnable_with_fallbacks.test.d.ts +0 -1
  131. package/dist/runnables/tests/runnable_with_fallbacks.test.js +0 -36
  132. package/dist/singletons/tests/async_local_storage.test.d.ts +0 -1
  133. package/dist/singletons/tests/async_local_storage.test.js +0 -153
  134. package/dist/structured_query/tests/utils.test.d.ts +0 -1
  135. package/dist/structured_query/tests/utils.test.js +0 -47
  136. package/dist/tools/tests/tools.test.d.ts +0 -1
  137. package/dist/tools/tests/tools.test.js +0 -85
  138. package/dist/tracers/tests/langchain_tracer.int.test.d.ts +0 -1
  139. package/dist/tracers/tests/langchain_tracer.int.test.js +0 -74
  140. package/dist/tracers/tests/langsmith_interop.test.d.ts +0 -1
  141. package/dist/tracers/tests/langsmith_interop.test.js +0 -551
  142. package/dist/tracers/tests/tracer.test.d.ts +0 -1
  143. package/dist/tracers/tests/tracer.test.js +0 -378
  144. package/dist/utils/testing/tests/chatfake.test.d.ts +0 -1
  145. package/dist/utils/testing/tests/chatfake.test.js +0 -112
  146. package/dist/utils/tests/async_caller.test.d.ts +0 -1
  147. package/dist/utils/tests/async_caller.test.js +0 -27
  148. package/dist/utils/tests/enviroment.test.d.ts +0 -1
  149. package/dist/utils/tests/enviroment.test.js +0 -6
  150. package/dist/utils/tests/function_calling.test.d.ts +0 -1
  151. package/dist/utils/tests/function_calling.test.js +0 -107
  152. package/dist/utils/tests/math_utils.test.d.ts +0 -1
  153. package/dist/utils/tests/math_utils.test.js +0 -139
  154. package/dist/utils/tests/polyfill_stream.test.d.ts +0 -1
  155. package/dist/utils/tests/polyfill_stream.test.js +0 -15
@@ -104,7 +104,30 @@ class BaseRunManager {
104
104
  await handler.handleText?.(text, this.runId, this._parentRunId, this.tags);
105
105
  }
106
106
  catch (err) {
107
- console.error(`Error in handler ${handler.constructor.name}, handleText: ${err}`);
107
+ const logFunction = handler.raiseError
108
+ ? console.error
109
+ : console.warn;
110
+ logFunction(`Error in handler ${handler.constructor.name}, handleText: ${err}`);
111
+ if (handler.raiseError) {
112
+ throw err;
113
+ }
114
+ }
115
+ }, handler.awaitHandlers)));
116
+ }
117
+ async handleCustomEvent(eventName,
118
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
+ data, _runId, _tags,
120
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
+ _metadata) {
122
+ await Promise.all(this.handlers.map((handler) => (0, promises_js_1.consumeCallback)(async () => {
123
+ try {
124
+ await handler.handleCustomEvent?.(eventName, data, this.runId, this.tags, this.metadata);
125
+ }
126
+ catch (err) {
127
+ const logFunction = handler.raiseError
128
+ ? console.error
129
+ : console.warn;
130
+ logFunction(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
108
131
  if (handler.raiseError) {
109
132
  throw err;
110
133
  }
@@ -135,7 +158,10 @@ class CallbackManagerForRetrieverRun extends BaseRunManager {
135
158
  await handler.handleRetrieverEnd?.(documents, this.runId, this._parentRunId, this.tags);
136
159
  }
137
160
  catch (err) {
138
- console.error(`Error in handler ${handler.constructor.name}, handleRetriever`);
161
+ const logFunction = handler.raiseError
162
+ ? console.error
163
+ : console.warn;
164
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetriever`);
139
165
  if (handler.raiseError) {
140
166
  throw err;
141
167
  }
@@ -150,7 +176,10 @@ class CallbackManagerForRetrieverRun extends BaseRunManager {
150
176
  await handler.handleRetrieverError?.(err, this.runId, this._parentRunId, this.tags);
151
177
  }
152
178
  catch (error) {
153
- console.error(`Error in handler ${handler.constructor.name}, handleRetrieverError: ${error}`);
179
+ const logFunction = handler.raiseError
180
+ ? console.error
181
+ : console.warn;
182
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetrieverError: ${error}`);
154
183
  if (handler.raiseError) {
155
184
  throw err;
156
185
  }
@@ -168,7 +197,10 @@ class CallbackManagerForLLMRun extends BaseRunManager {
168
197
  await handler.handleLLMNewToken?.(token, idx ?? { prompt: 0, completion: 0 }, this.runId, this._parentRunId, this.tags, fields);
169
198
  }
170
199
  catch (err) {
171
- console.error(`Error in handler ${handler.constructor.name}, handleLLMNewToken: ${err}`);
200
+ const logFunction = handler.raiseError
201
+ ? console.error
202
+ : console.warn;
203
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMNewToken: ${err}`);
172
204
  if (handler.raiseError) {
173
205
  throw err;
174
206
  }
@@ -183,7 +215,10 @@ class CallbackManagerForLLMRun extends BaseRunManager {
183
215
  await handler.handleLLMError?.(err, this.runId, this._parentRunId, this.tags);
184
216
  }
185
217
  catch (err) {
186
- console.error(`Error in handler ${handler.constructor.name}, handleLLMError: ${err}`);
218
+ const logFunction = handler.raiseError
219
+ ? console.error
220
+ : console.warn;
221
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMError: ${err}`);
187
222
  if (handler.raiseError) {
188
223
  throw err;
189
224
  }
@@ -198,7 +233,10 @@ class CallbackManagerForLLMRun extends BaseRunManager {
198
233
  await handler.handleLLMEnd?.(output, this.runId, this._parentRunId, this.tags);
199
234
  }
200
235
  catch (err) {
201
- console.error(`Error in handler ${handler.constructor.name}, handleLLMEnd: ${err}`);
236
+ const logFunction = handler.raiseError
237
+ ? console.error
238
+ : console.warn;
239
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMEnd: ${err}`);
202
240
  if (handler.raiseError) {
203
241
  throw err;
204
242
  }
@@ -227,7 +265,10 @@ class CallbackManagerForChainRun extends BaseRunManager {
227
265
  await handler.handleChainError?.(err, this.runId, this._parentRunId, this.tags, kwargs);
228
266
  }
229
267
  catch (err) {
230
- console.error(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
268
+ const logFunction = handler.raiseError
269
+ ? console.error
270
+ : console.warn;
271
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
231
272
  if (handler.raiseError) {
232
273
  throw err;
233
274
  }
@@ -242,7 +283,10 @@ class CallbackManagerForChainRun extends BaseRunManager {
242
283
  await handler.handleChainEnd?.(output, this.runId, this._parentRunId, this.tags, kwargs);
243
284
  }
244
285
  catch (err) {
245
- console.error(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
286
+ const logFunction = handler.raiseError
287
+ ? console.error
288
+ : console.warn;
289
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
246
290
  if (handler.raiseError) {
247
291
  throw err;
248
292
  }
@@ -257,7 +301,10 @@ class CallbackManagerForChainRun extends BaseRunManager {
257
301
  await handler.handleAgentAction?.(action, this.runId, this._parentRunId, this.tags);
258
302
  }
259
303
  catch (err) {
260
- console.error(`Error in handler ${handler.constructor.name}, handleAgentAction: ${err}`);
304
+ const logFunction = handler.raiseError
305
+ ? console.error
306
+ : console.warn;
307
+ logFunction(`Error in handler ${handler.constructor.name}, handleAgentAction: ${err}`);
261
308
  if (handler.raiseError) {
262
309
  throw err;
263
310
  }
@@ -272,7 +319,10 @@ class CallbackManagerForChainRun extends BaseRunManager {
272
319
  await handler.handleAgentEnd?.(action, this.runId, this._parentRunId, this.tags);
273
320
  }
274
321
  catch (err) {
275
- console.error(`Error in handler ${handler.constructor.name}, handleAgentEnd: ${err}`);
322
+ const logFunction = handler.raiseError
323
+ ? console.error
324
+ : console.warn;
325
+ logFunction(`Error in handler ${handler.constructor.name}, handleAgentEnd: ${err}`);
276
326
  if (handler.raiseError) {
277
327
  throw err;
278
328
  }
@@ -301,7 +351,10 @@ class CallbackManagerForToolRun extends BaseRunManager {
301
351
  await handler.handleToolError?.(err, this.runId, this._parentRunId, this.tags);
302
352
  }
303
353
  catch (err) {
304
- console.error(`Error in handler ${handler.constructor.name}, handleToolError: ${err}`);
354
+ const logFunction = handler.raiseError
355
+ ? console.error
356
+ : console.warn;
357
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolError: ${err}`);
305
358
  if (handler.raiseError) {
306
359
  throw err;
307
360
  }
@@ -317,7 +370,10 @@ class CallbackManagerForToolRun extends BaseRunManager {
317
370
  await handler.handleToolEnd?.(output, this.runId, this._parentRunId, this.tags);
318
371
  }
319
372
  catch (err) {
320
- console.error(`Error in handler ${handler.constructor.name}, handleToolEnd: ${err}`);
373
+ const logFunction = handler.raiseError
374
+ ? console.error
375
+ : console.warn;
376
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolEnd: ${err}`);
321
377
  if (handler.raiseError) {
322
378
  throw err;
323
379
  }
@@ -433,7 +489,10 @@ class CallbackManager extends BaseCallbackManager {
433
489
  await handler.handleLLMStart?.(llm, [prompt], runId_, this._parentRunId, extraParams, this.tags, this.metadata, runName);
434
490
  }
435
491
  catch (err) {
436
- console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
492
+ const logFunction = handler.raiseError
493
+ ? console.error
494
+ : console.warn;
495
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
437
496
  if (handler.raiseError) {
438
497
  throw err;
439
498
  }
@@ -468,7 +527,10 @@ class CallbackManager extends BaseCallbackManager {
468
527
  }
469
528
  }
470
529
  catch (err) {
471
- console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
530
+ const logFunction = handler.raiseError
531
+ ? console.error
532
+ : console.warn;
533
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
472
534
  if (handler.raiseError) {
473
535
  throw err;
474
536
  }
@@ -494,7 +556,10 @@ class CallbackManager extends BaseCallbackManager {
494
556
  await handler.handleChainStart?.(chain, inputs, runId, this._parentRunId, this.tags, this.metadata, runType, runName);
495
557
  }
496
558
  catch (err) {
497
- console.error(`Error in handler ${handler.constructor.name}, handleChainStart: ${err}`);
559
+ const logFunction = handler.raiseError
560
+ ? console.error
561
+ : console.warn;
562
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainStart: ${err}`);
498
563
  if (handler.raiseError) {
499
564
  throw err;
500
565
  }
@@ -519,7 +584,10 @@ class CallbackManager extends BaseCallbackManager {
519
584
  await handler.handleToolStart?.(tool, input, runId, this._parentRunId, this.tags, this.metadata, runName);
520
585
  }
521
586
  catch (err) {
522
- console.error(`Error in handler ${handler.constructor.name}, handleToolStart: ${err}`);
587
+ const logFunction = handler.raiseError
588
+ ? console.error
589
+ : console.warn;
590
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolStart: ${err}`);
523
591
  if (handler.raiseError) {
524
592
  throw err;
525
593
  }
@@ -544,7 +612,10 @@ class CallbackManager extends BaseCallbackManager {
544
612
  await handler.handleRetrieverStart?.(retriever, query, runId, this._parentRunId, this.tags, this.metadata, runName);
545
613
  }
546
614
  catch (err) {
547
- console.error(`Error in handler ${handler.constructor.name}, handleRetrieverStart: ${err}`);
615
+ const logFunction = handler.raiseError
616
+ ? console.error
617
+ : console.warn;
618
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetrieverStart: ${err}`);
548
619
  if (handler.raiseError) {
549
620
  throw err;
550
621
  }
@@ -564,7 +635,10 @@ class CallbackManager extends BaseCallbackManager {
564
635
  await handler.handleCustomEvent?.(eventName, data, runId, this.tags, this.metadata);
565
636
  }
566
637
  catch (err) {
567
- console.error(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
638
+ const logFunction = handler.raiseError
639
+ ? console.error
640
+ : console.warn;
641
+ logFunction(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
568
642
  if (handler.raiseError) {
569
643
  throw err;
570
644
  }
@@ -751,7 +825,8 @@ exports.ensureHandler = ensureHandler;
751
825
  * ];
752
826
  *
753
827
  * // Run the example
754
- * processQuestions(questions).catch(console.error);
828
+ const logFunction = handler.raiseError ? console.error : console.warn;
829
+ * processQuestions(questions).catch(consolelogFunction;
755
830
  *
756
831
  * ```
757
832
  */
@@ -65,6 +65,7 @@ export declare class BaseRunManager {
65
65
  constructor(runId: string, handlers: BaseCallbackHandler[], inheritableHandlers: BaseCallbackHandler[], tags: string[], inheritableTags: string[], metadata: Record<string, unknown>, inheritableMetadata: Record<string, unknown>, _parentRunId?: string | undefined);
66
66
  get parentRunId(): string | undefined;
67
67
  handleText(text: string): Promise<void>;
68
+ handleCustomEvent(eventName: string, data: any, _runId?: string, _tags?: string[], _metadata?: Record<string, any>): Promise<void>;
68
69
  }
69
70
  /**
70
71
  * Manages callbacks for retriever runs.
@@ -182,7 +183,8 @@ export declare function ensureHandler(handler: BaseCallbackHandler | CallbackHan
182
183
  * ];
183
184
  *
184
185
  * // Run the example
185
- * processQuestions(questions).catch(console.error);
186
+ const logFunction = handler.raiseError ? console.error : console.warn;
187
+ * processQuestions(questions).catch(consolelogFunction;
186
188
  *
187
189
  * ```
188
190
  */
@@ -99,7 +99,30 @@ export class BaseRunManager {
99
99
  await handler.handleText?.(text, this.runId, this._parentRunId, this.tags);
100
100
  }
101
101
  catch (err) {
102
- console.error(`Error in handler ${handler.constructor.name}, handleText: ${err}`);
102
+ const logFunction = handler.raiseError
103
+ ? console.error
104
+ : console.warn;
105
+ logFunction(`Error in handler ${handler.constructor.name}, handleText: ${err}`);
106
+ if (handler.raiseError) {
107
+ throw err;
108
+ }
109
+ }
110
+ }, handler.awaitHandlers)));
111
+ }
112
+ async handleCustomEvent(eventName,
113
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
+ data, _runId, _tags,
115
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
+ _metadata) {
117
+ await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
118
+ try {
119
+ await handler.handleCustomEvent?.(eventName, data, this.runId, this.tags, this.metadata);
120
+ }
121
+ catch (err) {
122
+ const logFunction = handler.raiseError
123
+ ? console.error
124
+ : console.warn;
125
+ logFunction(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
103
126
  if (handler.raiseError) {
104
127
  throw err;
105
128
  }
@@ -129,7 +152,10 @@ export class CallbackManagerForRetrieverRun extends BaseRunManager {
129
152
  await handler.handleRetrieverEnd?.(documents, this.runId, this._parentRunId, this.tags);
130
153
  }
131
154
  catch (err) {
132
- console.error(`Error in handler ${handler.constructor.name}, handleRetriever`);
155
+ const logFunction = handler.raiseError
156
+ ? console.error
157
+ : console.warn;
158
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetriever`);
133
159
  if (handler.raiseError) {
134
160
  throw err;
135
161
  }
@@ -144,7 +170,10 @@ export class CallbackManagerForRetrieverRun extends BaseRunManager {
144
170
  await handler.handleRetrieverError?.(err, this.runId, this._parentRunId, this.tags);
145
171
  }
146
172
  catch (error) {
147
- console.error(`Error in handler ${handler.constructor.name}, handleRetrieverError: ${error}`);
173
+ const logFunction = handler.raiseError
174
+ ? console.error
175
+ : console.warn;
176
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetrieverError: ${error}`);
148
177
  if (handler.raiseError) {
149
178
  throw err;
150
179
  }
@@ -161,7 +190,10 @@ export class CallbackManagerForLLMRun extends BaseRunManager {
161
190
  await handler.handleLLMNewToken?.(token, idx ?? { prompt: 0, completion: 0 }, this.runId, this._parentRunId, this.tags, fields);
162
191
  }
163
192
  catch (err) {
164
- console.error(`Error in handler ${handler.constructor.name}, handleLLMNewToken: ${err}`);
193
+ const logFunction = handler.raiseError
194
+ ? console.error
195
+ : console.warn;
196
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMNewToken: ${err}`);
165
197
  if (handler.raiseError) {
166
198
  throw err;
167
199
  }
@@ -176,7 +208,10 @@ export class CallbackManagerForLLMRun extends BaseRunManager {
176
208
  await handler.handleLLMError?.(err, this.runId, this._parentRunId, this.tags);
177
209
  }
178
210
  catch (err) {
179
- console.error(`Error in handler ${handler.constructor.name}, handleLLMError: ${err}`);
211
+ const logFunction = handler.raiseError
212
+ ? console.error
213
+ : console.warn;
214
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMError: ${err}`);
180
215
  if (handler.raiseError) {
181
216
  throw err;
182
217
  }
@@ -191,7 +226,10 @@ export class CallbackManagerForLLMRun extends BaseRunManager {
191
226
  await handler.handleLLMEnd?.(output, this.runId, this._parentRunId, this.tags);
192
227
  }
193
228
  catch (err) {
194
- console.error(`Error in handler ${handler.constructor.name}, handleLLMEnd: ${err}`);
229
+ const logFunction = handler.raiseError
230
+ ? console.error
231
+ : console.warn;
232
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMEnd: ${err}`);
195
233
  if (handler.raiseError) {
196
234
  throw err;
197
235
  }
@@ -219,7 +257,10 @@ export class CallbackManagerForChainRun extends BaseRunManager {
219
257
  await handler.handleChainError?.(err, this.runId, this._parentRunId, this.tags, kwargs);
220
258
  }
221
259
  catch (err) {
222
- console.error(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
260
+ const logFunction = handler.raiseError
261
+ ? console.error
262
+ : console.warn;
263
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
223
264
  if (handler.raiseError) {
224
265
  throw err;
225
266
  }
@@ -234,7 +275,10 @@ export class CallbackManagerForChainRun extends BaseRunManager {
234
275
  await handler.handleChainEnd?.(output, this.runId, this._parentRunId, this.tags, kwargs);
235
276
  }
236
277
  catch (err) {
237
- console.error(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
278
+ const logFunction = handler.raiseError
279
+ ? console.error
280
+ : console.warn;
281
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
238
282
  if (handler.raiseError) {
239
283
  throw err;
240
284
  }
@@ -249,7 +293,10 @@ export class CallbackManagerForChainRun extends BaseRunManager {
249
293
  await handler.handleAgentAction?.(action, this.runId, this._parentRunId, this.tags);
250
294
  }
251
295
  catch (err) {
252
- console.error(`Error in handler ${handler.constructor.name}, handleAgentAction: ${err}`);
296
+ const logFunction = handler.raiseError
297
+ ? console.error
298
+ : console.warn;
299
+ logFunction(`Error in handler ${handler.constructor.name}, handleAgentAction: ${err}`);
253
300
  if (handler.raiseError) {
254
301
  throw err;
255
302
  }
@@ -264,7 +311,10 @@ export class CallbackManagerForChainRun extends BaseRunManager {
264
311
  await handler.handleAgentEnd?.(action, this.runId, this._parentRunId, this.tags);
265
312
  }
266
313
  catch (err) {
267
- console.error(`Error in handler ${handler.constructor.name}, handleAgentEnd: ${err}`);
314
+ const logFunction = handler.raiseError
315
+ ? console.error
316
+ : console.warn;
317
+ logFunction(`Error in handler ${handler.constructor.name}, handleAgentEnd: ${err}`);
268
318
  if (handler.raiseError) {
269
319
  throw err;
270
320
  }
@@ -292,7 +342,10 @@ export class CallbackManagerForToolRun extends BaseRunManager {
292
342
  await handler.handleToolError?.(err, this.runId, this._parentRunId, this.tags);
293
343
  }
294
344
  catch (err) {
295
- console.error(`Error in handler ${handler.constructor.name}, handleToolError: ${err}`);
345
+ const logFunction = handler.raiseError
346
+ ? console.error
347
+ : console.warn;
348
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolError: ${err}`);
296
349
  if (handler.raiseError) {
297
350
  throw err;
298
351
  }
@@ -308,7 +361,10 @@ export class CallbackManagerForToolRun extends BaseRunManager {
308
361
  await handler.handleToolEnd?.(output, this.runId, this._parentRunId, this.tags);
309
362
  }
310
363
  catch (err) {
311
- console.error(`Error in handler ${handler.constructor.name}, handleToolEnd: ${err}`);
364
+ const logFunction = handler.raiseError
365
+ ? console.error
366
+ : console.warn;
367
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolEnd: ${err}`);
312
368
  if (handler.raiseError) {
313
369
  throw err;
314
370
  }
@@ -423,7 +479,10 @@ export class CallbackManager extends BaseCallbackManager {
423
479
  await handler.handleLLMStart?.(llm, [prompt], runId_, this._parentRunId, extraParams, this.tags, this.metadata, runName);
424
480
  }
425
481
  catch (err) {
426
- console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
482
+ const logFunction = handler.raiseError
483
+ ? console.error
484
+ : console.warn;
485
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
427
486
  if (handler.raiseError) {
428
487
  throw err;
429
488
  }
@@ -458,7 +517,10 @@ export class CallbackManager extends BaseCallbackManager {
458
517
  }
459
518
  }
460
519
  catch (err) {
461
- console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
520
+ const logFunction = handler.raiseError
521
+ ? console.error
522
+ : console.warn;
523
+ logFunction(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
462
524
  if (handler.raiseError) {
463
525
  throw err;
464
526
  }
@@ -484,7 +546,10 @@ export class CallbackManager extends BaseCallbackManager {
484
546
  await handler.handleChainStart?.(chain, inputs, runId, this._parentRunId, this.tags, this.metadata, runType, runName);
485
547
  }
486
548
  catch (err) {
487
- console.error(`Error in handler ${handler.constructor.name}, handleChainStart: ${err}`);
549
+ const logFunction = handler.raiseError
550
+ ? console.error
551
+ : console.warn;
552
+ logFunction(`Error in handler ${handler.constructor.name}, handleChainStart: ${err}`);
488
553
  if (handler.raiseError) {
489
554
  throw err;
490
555
  }
@@ -509,7 +574,10 @@ export class CallbackManager extends BaseCallbackManager {
509
574
  await handler.handleToolStart?.(tool, input, runId, this._parentRunId, this.tags, this.metadata, runName);
510
575
  }
511
576
  catch (err) {
512
- console.error(`Error in handler ${handler.constructor.name}, handleToolStart: ${err}`);
577
+ const logFunction = handler.raiseError
578
+ ? console.error
579
+ : console.warn;
580
+ logFunction(`Error in handler ${handler.constructor.name}, handleToolStart: ${err}`);
513
581
  if (handler.raiseError) {
514
582
  throw err;
515
583
  }
@@ -534,7 +602,10 @@ export class CallbackManager extends BaseCallbackManager {
534
602
  await handler.handleRetrieverStart?.(retriever, query, runId, this._parentRunId, this.tags, this.metadata, runName);
535
603
  }
536
604
  catch (err) {
537
- console.error(`Error in handler ${handler.constructor.name}, handleRetrieverStart: ${err}`);
605
+ const logFunction = handler.raiseError
606
+ ? console.error
607
+ : console.warn;
608
+ logFunction(`Error in handler ${handler.constructor.name}, handleRetrieverStart: ${err}`);
538
609
  if (handler.raiseError) {
539
610
  throw err;
540
611
  }
@@ -554,7 +625,10 @@ export class CallbackManager extends BaseCallbackManager {
554
625
  await handler.handleCustomEvent?.(eventName, data, runId, this.tags, this.metadata);
555
626
  }
556
627
  catch (err) {
557
- console.error(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
628
+ const logFunction = handler.raiseError
629
+ ? console.error
630
+ : console.warn;
631
+ logFunction(`Error in handler ${handler.constructor.name}, handleCustomEvent: ${err}`);
558
632
  if (handler.raiseError) {
559
633
  throw err;
560
634
  }
@@ -739,7 +813,8 @@ export function ensureHandler(handler) {
739
813
  * ];
740
814
  *
741
815
  * // Run the example
742
- * processQuestions(questions).catch(console.error);
816
+ const logFunction = handler.raiseError ? console.error : console.warn;
817
+ * processQuestions(questions).catch(consolelogFunction;
743
818
  *
744
819
  * ```
745
820
  */
@@ -66,16 +66,6 @@ export interface BaseLanguageModelCallOptions extends RunnableConfig {
66
66
  * If not provided, the default stop tokens for the model will be used.
67
67
  */
68
68
  stop?: string[];
69
- /**
70
- * Timeout for this call in milliseconds.
71
- */
72
- timeout?: number;
73
- /**
74
- * Abort signal for this call.
75
- * If provided, the call will be aborted when the signal is aborted.
76
- * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
77
- */
78
- signal?: AbortSignal;
79
69
  }
80
70
  export interface FunctionDefinition {
81
71
  /**
@@ -43,11 +43,10 @@ class BaseChatModel extends base_js_1.BaseLanguageModel {
43
43
  value: ["langchain", "chat_models", this._llmType()]
44
44
  });
45
45
  }
46
- _separateRunnableConfigFromCallOptions(options) {
46
+ _separateRunnableConfigFromCallOptionsCompat(options) {
47
+ // For backwards compat, keep `signal` in both runnableConfig and callOptions
47
48
  const [runnableConfig, callOptions] = super._separateRunnableConfigFromCallOptions(options);
48
- if (callOptions?.timeout && !callOptions.signal) {
49
- callOptions.signal = AbortSignal.timeout(callOptions.timeout);
50
- }
49
+ callOptions.signal = runnableConfig.signal;
51
50
  return [runnableConfig, callOptions];
52
51
  }
53
52
  /**
@@ -76,7 +75,7 @@ class BaseChatModel extends base_js_1.BaseLanguageModel {
76
75
  else {
77
76
  const prompt = BaseChatModel._convertInputToPromptValue(input);
78
77
  const messages = prompt.toChatMessages();
79
- const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptions(options);
78
+ const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptionsCompat(options);
80
79
  const inheritableMetadata = {
81
80
  ...runnableConfig.metadata,
82
81
  ...this.getLsParams(callOptions),
@@ -303,7 +302,7 @@ class BaseChatModel extends base_js_1.BaseLanguageModel {
303
302
  parsedOptions = options;
304
303
  }
305
304
  const baseMessages = messages.map((messageList) => messageList.map(index_js_1.coerceMessageLikeToMessage));
306
- const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptions(parsedOptions);
305
+ const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptionsCompat(parsedOptions);
307
306
  runnableConfig.callbacks = runnableConfig.callbacks ?? callbacks;
308
307
  if (!this.cache) {
309
308
  return this._generateUncached(baseMessages, callOptions, runnableConfig);
@@ -61,23 +61,16 @@ export type LangSmithParams = {
61
61
  ls_max_tokens?: number;
62
62
  ls_stop?: Array<string>;
63
63
  };
64
- interface ChatModelGenerateCachedParameters<T extends BaseChatModel<CallOptions>, CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions> {
65
- messages: BaseMessageLike[][];
66
- cache: BaseCache<Generation[]>;
67
- llmStringKey: string;
68
- parsedOptions: T["ParsedCallOptions"];
69
- handledOptions: RunnableConfig;
70
- }
71
64
  /**
72
65
  * Base class for chat models. It extends the BaseLanguageModel class and
73
66
  * provides methods for generating chat based on input messages.
74
67
  */
75
68
  export declare abstract class BaseChatModel<CallOptions extends BaseChatModelCallOptions = BaseChatModelCallOptions, OutputMessageType extends BaseMessageChunk = BaseMessageChunk> extends BaseLanguageModel<OutputMessageType, CallOptions> {
76
- ParsedCallOptions: Omit<CallOptions, keyof RunnableConfig & "timeout">;
69
+ ParsedCallOptions: Omit<CallOptions, Exclude<keyof RunnableConfig, "signal" | "timeout" | "maxConcurrency">>;
77
70
  lc_namespace: string[];
78
71
  constructor(fields: BaseChatModelParams);
79
72
  _combineLLMOutput?(...llmOutputs: LLMResult["llmOutput"][]): LLMResult["llmOutput"];
80
- protected _separateRunnableConfigFromCallOptions(options?: Partial<CallOptions>): [RunnableConfig, this["ParsedCallOptions"]];
73
+ protected _separateRunnableConfigFromCallOptionsCompat(options?: Partial<CallOptions>): [RunnableConfig, this["ParsedCallOptions"]];
81
74
  /**
82
75
  * Bind tool-like objects to this chat model.
83
76
  *
@@ -99,7 +92,13 @@ export declare abstract class BaseChatModel<CallOptions extends BaseChatModelCal
99
92
  getLsParams(options: this["ParsedCallOptions"]): LangSmithParams;
100
93
  /** @ignore */
101
94
  _generateUncached(messages: BaseMessageLike[][], parsedOptions: this["ParsedCallOptions"], handledOptions: RunnableConfig): Promise<LLMResult>;
102
- _generateCached({ messages, cache, llmStringKey, parsedOptions, handledOptions, }: ChatModelGenerateCachedParameters<typeof this>): Promise<LLMResult & {
95
+ _generateCached({ messages, cache, llmStringKey, parsedOptions, handledOptions, }: {
96
+ messages: BaseMessageLike[][];
97
+ cache: BaseCache<Generation[]>;
98
+ llmStringKey: string;
99
+ parsedOptions: any;
100
+ handledOptions: RunnableConfig;
101
+ }): Promise<LLMResult & {
103
102
  missingPromptIndices: number[];
104
103
  }>;
105
104
  /**
@@ -39,11 +39,10 @@ export class BaseChatModel extends BaseLanguageModel {
39
39
  value: ["langchain", "chat_models", this._llmType()]
40
40
  });
41
41
  }
42
- _separateRunnableConfigFromCallOptions(options) {
42
+ _separateRunnableConfigFromCallOptionsCompat(options) {
43
+ // For backwards compat, keep `signal` in both runnableConfig and callOptions
43
44
  const [runnableConfig, callOptions] = super._separateRunnableConfigFromCallOptions(options);
44
- if (callOptions?.timeout && !callOptions.signal) {
45
- callOptions.signal = AbortSignal.timeout(callOptions.timeout);
46
- }
45
+ callOptions.signal = runnableConfig.signal;
47
46
  return [runnableConfig, callOptions];
48
47
  }
49
48
  /**
@@ -72,7 +71,7 @@ export class BaseChatModel extends BaseLanguageModel {
72
71
  else {
73
72
  const prompt = BaseChatModel._convertInputToPromptValue(input);
74
73
  const messages = prompt.toChatMessages();
75
- const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptions(options);
74
+ const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptionsCompat(options);
76
75
  const inheritableMetadata = {
77
76
  ...runnableConfig.metadata,
78
77
  ...this.getLsParams(callOptions),
@@ -299,7 +298,7 @@ export class BaseChatModel extends BaseLanguageModel {
299
298
  parsedOptions = options;
300
299
  }
301
300
  const baseMessages = messages.map((messageList) => messageList.map(coerceMessageLikeToMessage));
302
- const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptions(parsedOptions);
301
+ const [runnableConfig, callOptions] = this._separateRunnableConfigFromCallOptionsCompat(parsedOptions);
303
302
  runnableConfig.callbacks = runnableConfig.callbacks ?? callbacks;
304
303
  if (!this.cache) {
305
304
  return this._generateUncached(baseMessages, callOptions, runnableConfig);