@langchain/core 1.1.3 → 1.1.5-dev-1765431816670

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 (605) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/dist/agents.d.cts.map +1 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/caches/index.d.cts.map +1 -0
  6. package/dist/caches/index.d.ts.map +1 -0
  7. package/dist/callbacks/base.cjs +1 -1
  8. package/dist/callbacks/base.cjs.map +1 -1
  9. package/dist/callbacks/base.d.cts.map +1 -0
  10. package/dist/callbacks/base.d.ts.map +1 -0
  11. package/dist/callbacks/base.js +1 -1
  12. package/dist/callbacks/base.js.map +1 -1
  13. package/dist/callbacks/dispatch/index.d.cts.map +1 -0
  14. package/dist/callbacks/dispatch/index.d.ts.map +1 -0
  15. package/dist/callbacks/dispatch/web.d.cts.map +1 -0
  16. package/dist/callbacks/dispatch/web.d.ts.map +1 -0
  17. package/dist/callbacks/manager.cjs +6 -6
  18. package/dist/callbacks/manager.cjs.map +1 -1
  19. package/dist/callbacks/manager.d.cts.map +1 -0
  20. package/dist/callbacks/manager.d.ts.map +1 -0
  21. package/dist/callbacks/manager.js +7 -7
  22. package/dist/callbacks/manager.js.map +1 -1
  23. package/dist/chat_history.d.cts.map +1 -0
  24. package/dist/chat_history.d.ts.map +1 -0
  25. package/dist/context.d.cts.map +1 -0
  26. package/dist/context.d.ts.map +1 -0
  27. package/dist/document_loaders/base.d.cts.map +1 -0
  28. package/dist/document_loaders/base.d.ts.map +1 -0
  29. package/dist/document_loaders/langsmith.d.cts.map +1 -0
  30. package/dist/document_loaders/langsmith.d.ts.map +1 -0
  31. package/dist/documents/document.d.cts.map +1 -0
  32. package/dist/documents/document.d.ts.map +1 -0
  33. package/dist/documents/transformers.d.cts.map +1 -0
  34. package/dist/documents/transformers.d.ts.map +1 -0
  35. package/dist/embeddings.d.cts.map +1 -0
  36. package/dist/embeddings.d.ts.map +1 -0
  37. package/dist/example_selectors/base.d.cts.map +1 -0
  38. package/dist/example_selectors/base.d.ts.map +1 -0
  39. package/dist/example_selectors/conditional.d.cts.map +1 -0
  40. package/dist/example_selectors/conditional.d.ts.map +1 -0
  41. package/dist/example_selectors/length_based.d.cts.map +1 -0
  42. package/dist/example_selectors/length_based.d.ts.map +1 -0
  43. package/dist/example_selectors/semantic_similarity.d.cts.map +1 -0
  44. package/dist/example_selectors/semantic_similarity.d.ts.map +1 -0
  45. package/dist/indexing/base.d.cts.map +1 -0
  46. package/dist/indexing/base.d.ts.map +1 -0
  47. package/dist/indexing/record_manager.d.cts.map +1 -0
  48. package/dist/indexing/record_manager.d.ts.map +1 -0
  49. package/dist/language_models/base.d.cts.map +1 -0
  50. package/dist/language_models/base.d.ts.map +1 -0
  51. package/dist/language_models/chat_models.d.cts.map +1 -0
  52. package/dist/language_models/chat_models.d.ts.map +1 -0
  53. package/dist/language_models/llms.d.cts.map +1 -0
  54. package/dist/language_models/llms.d.ts.map +1 -0
  55. package/dist/language_models/profile.d.cts.map +1 -0
  56. package/dist/language_models/profile.d.ts.map +1 -0
  57. package/dist/load/import_type.d.cts.map +1 -0
  58. package/dist/load/import_type.d.ts.map +1 -0
  59. package/dist/load/index.d.cts.map +1 -0
  60. package/dist/load/index.d.ts.map +1 -0
  61. package/dist/load/map_keys.cjs +5 -4
  62. package/dist/load/map_keys.cjs.map +1 -1
  63. package/dist/load/map_keys.d.cts.map +1 -0
  64. package/dist/load/map_keys.d.ts.map +1 -0
  65. package/dist/load/map_keys.js +3 -3
  66. package/dist/load/map_keys.js.map +1 -1
  67. package/dist/load/serializable.d.cts.map +1 -0
  68. package/dist/load/serializable.d.ts.map +1 -0
  69. package/dist/memory.d.cts.map +1 -0
  70. package/dist/memory.d.ts.map +1 -0
  71. package/dist/messages/ai.d.cts.map +1 -0
  72. package/dist/messages/ai.d.ts.map +1 -0
  73. package/dist/messages/base.d.cts.map +1 -0
  74. package/dist/messages/base.d.ts.map +1 -0
  75. package/dist/messages/chat.d.cts.map +1 -0
  76. package/dist/messages/chat.d.ts.map +1 -0
  77. package/dist/messages/content/base.d.cts.map +1 -0
  78. package/dist/messages/content/base.d.ts.map +1 -0
  79. package/dist/messages/content/data.d.cts.map +1 -0
  80. package/dist/messages/content/data.d.ts.map +1 -0
  81. package/dist/messages/content/index.d.cts.map +1 -0
  82. package/dist/messages/content/index.d.ts.map +1 -0
  83. package/dist/messages/content/multimodal.d.cts.map +1 -0
  84. package/dist/messages/content/multimodal.d.ts.map +1 -0
  85. package/dist/messages/content/tools.d.cts.map +1 -0
  86. package/dist/messages/content/tools.d.ts.map +1 -0
  87. package/dist/messages/format.d.cts.map +1 -0
  88. package/dist/messages/format.d.ts.map +1 -0
  89. package/dist/messages/function.d.cts.map +1 -0
  90. package/dist/messages/function.d.ts.map +1 -0
  91. package/dist/messages/human.d.cts.map +1 -0
  92. package/dist/messages/human.d.ts.map +1 -0
  93. package/dist/messages/message.d.cts.map +1 -0
  94. package/dist/messages/message.d.ts.map +1 -0
  95. package/dist/messages/metadata.d.cts.map +1 -0
  96. package/dist/messages/metadata.d.ts.map +1 -0
  97. package/dist/messages/modifier.d.cts.map +1 -0
  98. package/dist/messages/modifier.d.ts.map +1 -0
  99. package/dist/messages/system.d.cts.map +1 -0
  100. package/dist/messages/system.d.ts.map +1 -0
  101. package/dist/messages/tool.d.cts.map +1 -0
  102. package/dist/messages/tool.d.ts.map +1 -0
  103. package/dist/messages/transformers.d.cts.map +1 -0
  104. package/dist/messages/transformers.d.ts.map +1 -0
  105. package/dist/messages/utils.d.cts.map +1 -0
  106. package/dist/messages/utils.d.ts.map +1 -0
  107. package/dist/output_parsers/base.d.cts.map +1 -0
  108. package/dist/output_parsers/base.d.ts.map +1 -0
  109. package/dist/output_parsers/bytes.d.cts.map +1 -0
  110. package/dist/output_parsers/bytes.d.ts.map +1 -0
  111. package/dist/output_parsers/json.d.cts.map +1 -0
  112. package/dist/output_parsers/json.d.ts.map +1 -0
  113. package/dist/output_parsers/list.d.cts.map +1 -0
  114. package/dist/output_parsers/list.d.ts.map +1 -0
  115. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts.map +1 -0
  116. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts.map +1 -0
  117. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts.map +1 -0
  118. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts.map +1 -0
  119. package/dist/output_parsers/string.d.cts.map +1 -0
  120. package/dist/output_parsers/string.d.ts.map +1 -0
  121. package/dist/output_parsers/structured.d.cts.map +1 -0
  122. package/dist/output_parsers/structured.d.ts.map +1 -0
  123. package/dist/output_parsers/transform.d.cts.map +1 -0
  124. package/dist/output_parsers/transform.d.ts.map +1 -0
  125. package/dist/output_parsers/xml.d.cts.map +1 -0
  126. package/dist/output_parsers/xml.d.ts.map +1 -0
  127. package/dist/outputs.d.cts.map +1 -0
  128. package/dist/outputs.d.ts.map +1 -0
  129. package/dist/prompt_values.d.cts.map +1 -0
  130. package/dist/prompt_values.d.ts.map +1 -0
  131. package/dist/prompts/base.d.cts.map +1 -0
  132. package/dist/prompts/base.d.ts.map +1 -0
  133. package/dist/prompts/chat.d.cts.map +1 -0
  134. package/dist/prompts/chat.d.ts.map +1 -0
  135. package/dist/prompts/dict.d.cts.map +1 -0
  136. package/dist/prompts/dict.d.ts.map +1 -0
  137. package/dist/prompts/few_shot.d.cts.map +1 -0
  138. package/dist/prompts/few_shot.d.ts.map +1 -0
  139. package/dist/prompts/image.d.cts.map +1 -0
  140. package/dist/prompts/image.d.ts.map +1 -0
  141. package/dist/prompts/pipeline.d.cts.map +1 -0
  142. package/dist/prompts/pipeline.d.ts.map +1 -0
  143. package/dist/prompts/prompt.d.cts.map +1 -0
  144. package/dist/prompts/prompt.d.ts.map +1 -0
  145. package/dist/prompts/serde.d.cts.map +1 -0
  146. package/dist/prompts/serde.d.ts.map +1 -0
  147. package/dist/prompts/string.d.cts.map +1 -0
  148. package/dist/prompts/string.d.ts.map +1 -0
  149. package/dist/prompts/structured.d.cts.map +1 -0
  150. package/dist/prompts/structured.d.ts.map +1 -0
  151. package/dist/prompts/template.d.cts.map +1 -0
  152. package/dist/prompts/template.d.ts.map +1 -0
  153. package/dist/retrievers/document_compressors/index.d.cts.map +1 -0
  154. package/dist/retrievers/document_compressors/index.d.ts.map +1 -0
  155. package/dist/retrievers/index.d.cts.map +1 -0
  156. package/dist/retrievers/index.d.ts.map +1 -0
  157. package/dist/runnables/base.cjs +7 -7
  158. package/dist/runnables/base.cjs.map +1 -1
  159. package/dist/runnables/base.d.cts.map +1 -0
  160. package/dist/runnables/base.d.ts.map +1 -0
  161. package/dist/runnables/base.js +1 -1
  162. package/dist/runnables/base.js.map +1 -1
  163. package/dist/runnables/branch.d.cts.map +1 -0
  164. package/dist/runnables/branch.d.ts.map +1 -0
  165. package/dist/runnables/config.cjs +15 -1
  166. package/dist/runnables/config.cjs.map +1 -1
  167. package/dist/runnables/config.d.cts.map +1 -0
  168. package/dist/runnables/config.d.ts.map +1 -0
  169. package/dist/runnables/config.js +15 -1
  170. package/dist/runnables/config.js.map +1 -1
  171. package/dist/runnables/graph.d.cts.map +1 -0
  172. package/dist/runnables/graph.d.ts.map +1 -0
  173. package/dist/runnables/history.d.cts.map +1 -0
  174. package/dist/runnables/history.d.ts.map +1 -0
  175. package/dist/runnables/passthrough.d.cts.map +1 -0
  176. package/dist/runnables/passthrough.d.ts.map +1 -0
  177. package/dist/runnables/router.d.cts.map +1 -0
  178. package/dist/runnables/router.d.ts.map +1 -0
  179. package/dist/runnables/types.d.cts.map +1 -0
  180. package/dist/runnables/types.d.ts.map +1 -0
  181. package/dist/singletons/async_local_storage/context.d.cts.map +1 -0
  182. package/dist/singletons/async_local_storage/context.d.ts.map +1 -0
  183. package/dist/singletons/async_local_storage/globals.d.cts.map +1 -0
  184. package/dist/singletons/async_local_storage/globals.d.ts.map +1 -0
  185. package/dist/singletons/async_local_storage/index.d.cts.map +1 -0
  186. package/dist/singletons/async_local_storage/index.d.ts.map +1 -0
  187. package/dist/singletons/callbacks.cjs.map +1 -1
  188. package/dist/singletons/callbacks.d.cts.map +1 -0
  189. package/dist/singletons/callbacks.d.ts.map +1 -0
  190. package/dist/singletons/callbacks.js.map +1 -1
  191. package/dist/stores.d.cts.map +1 -0
  192. package/dist/stores.d.ts.map +1 -0
  193. package/dist/structured_query/base.d.cts.map +1 -0
  194. package/dist/structured_query/base.d.ts.map +1 -0
  195. package/dist/structured_query/functional.d.cts.map +1 -0
  196. package/dist/structured_query/functional.d.ts.map +1 -0
  197. package/dist/structured_query/ir.d.cts.map +1 -0
  198. package/dist/structured_query/ir.d.ts.map +1 -0
  199. package/dist/structured_query/utils.d.cts.map +1 -0
  200. package/dist/structured_query/utils.d.ts.map +1 -0
  201. package/dist/tools/index.d.cts.map +1 -0
  202. package/dist/tools/index.d.ts.map +1 -0
  203. package/dist/tools/types.d.cts.map +1 -0
  204. package/dist/tools/types.d.ts.map +1 -0
  205. package/dist/tools/utils.d.cts.map +1 -0
  206. package/dist/tools/utils.d.ts.map +1 -0
  207. package/dist/tracers/base.d.cts.map +1 -0
  208. package/dist/tracers/base.d.ts.map +1 -0
  209. package/dist/tracers/console.cjs +3 -3
  210. package/dist/tracers/console.cjs.map +1 -1
  211. package/dist/tracers/console.d.cts.map +1 -0
  212. package/dist/tracers/console.d.ts.map +1 -0
  213. package/dist/tracers/console.js +3 -3
  214. package/dist/tracers/console.js.map +1 -1
  215. package/dist/tracers/event_stream.d.cts.map +1 -0
  216. package/dist/tracers/event_stream.d.ts.map +1 -0
  217. package/dist/tracers/log_stream.d.cts.map +1 -0
  218. package/dist/tracers/log_stream.d.ts.map +1 -0
  219. package/dist/tracers/run_collector.d.cts.map +1 -0
  220. package/dist/tracers/run_collector.d.ts.map +1 -0
  221. package/dist/tracers/tracer_langchain.d.cts.map +1 -0
  222. package/dist/tracers/tracer_langchain.d.ts.map +1 -0
  223. package/dist/types/_internal.d.cts.map +1 -0
  224. package/dist/types/_internal.d.ts.map +1 -0
  225. package/dist/types/type-utils.d.cts.map +1 -0
  226. package/dist/types/type-utils.d.ts.map +1 -0
  227. package/dist/utils/async_caller.cjs +1 -1
  228. package/dist/utils/async_caller.cjs.map +1 -1
  229. package/dist/utils/async_caller.d.cts.map +1 -0
  230. package/dist/utils/async_caller.d.ts.map +1 -0
  231. package/dist/utils/async_caller.js +1 -1
  232. package/dist/utils/async_caller.js.map +1 -1
  233. package/dist/utils/chunk_array.d.cts.map +1 -0
  234. package/dist/utils/chunk_array.d.ts.map +1 -0
  235. package/dist/utils/env.d.cts.map +1 -0
  236. package/dist/utils/env.d.ts.map +1 -0
  237. package/dist/utils/event_source_parse.d.cts.map +1 -0
  238. package/dist/utils/event_source_parse.d.ts.map +1 -0
  239. package/dist/utils/fast-json-patch/src/core.d.cts.map +1 -0
  240. package/dist/utils/fast-json-patch/src/core.d.ts.map +1 -0
  241. package/dist/utils/fast-json-patch/src/duplex.d.cts.map +1 -0
  242. package/dist/utils/fast-json-patch/src/duplex.d.ts.map +1 -0
  243. package/dist/utils/format.d.cts.map +1 -0
  244. package/dist/utils/format.d.ts.map +1 -0
  245. package/dist/utils/function_calling.d.cts.map +1 -0
  246. package/dist/utils/function_calling.d.ts.map +1 -0
  247. package/dist/utils/hash.d.cts.map +1 -0
  248. package/dist/utils/hash.d.ts.map +1 -0
  249. package/dist/{node_modules/.pnpm/is-network-error@1.3.0/node_modules → utils}/is-network-error/index.cjs +1 -1
  250. package/dist/utils/is-network-error/index.cjs.map +1 -0
  251. package/dist/{node_modules/.pnpm/is-network-error@1.3.0/node_modules → utils}/is-network-error/index.js +1 -1
  252. package/dist/utils/is-network-error/index.js.map +1 -0
  253. package/dist/utils/js-sha256/hash.d.cts.map +1 -0
  254. package/dist/utils/js-sha256/hash.d.ts.map +1 -0
  255. package/dist/utils/json.d.cts.map +1 -0
  256. package/dist/utils/json.d.ts.map +1 -0
  257. package/dist/utils/json_schema.d.cts.map +1 -0
  258. package/dist/utils/json_schema.d.ts.map +1 -0
  259. package/dist/utils/math.d.cts.map +1 -0
  260. package/dist/utils/math.d.ts.map +1 -0
  261. package/dist/utils/ml-distance/similarities.d.cts.map +1 -0
  262. package/dist/utils/ml-distance/similarities.d.ts.map +1 -0
  263. package/dist/{node_modules/.pnpm/p-retry@7.1.0/node_modules → utils}/p-retry/index.cjs +2 -2
  264. package/dist/utils/p-retry/index.cjs.map +1 -0
  265. package/dist/{node_modules/.pnpm/p-retry@7.1.0/node_modules → utils}/p-retry/index.js +2 -2
  266. package/dist/utils/p-retry/index.js.map +1 -0
  267. package/dist/utils/signal.d.cts.map +1 -0
  268. package/dist/utils/signal.d.ts.map +1 -0
  269. package/dist/utils/stream.d.cts.map +1 -0
  270. package/dist/utils/stream.d.ts.map +1 -0
  271. package/dist/utils/testing/chat_models.cjs +11 -5
  272. package/dist/utils/testing/chat_models.cjs.map +1 -1
  273. package/dist/utils/testing/chat_models.d.cts +8 -1
  274. package/dist/utils/testing/chat_models.d.cts.map +1 -0
  275. package/dist/utils/testing/chat_models.d.ts +8 -1
  276. package/dist/utils/testing/chat_models.d.ts.map +1 -0
  277. package/dist/utils/testing/chat_models.js +11 -5
  278. package/dist/utils/testing/chat_models.js.map +1 -1
  279. package/dist/utils/testing/embeddings.d.cts.map +1 -0
  280. package/dist/utils/testing/embeddings.d.ts.map +1 -0
  281. package/dist/utils/testing/llms.d.cts.map +1 -0
  282. package/dist/utils/testing/llms.d.ts.map +1 -0
  283. package/dist/utils/testing/message_history.d.cts.map +1 -0
  284. package/dist/utils/testing/message_history.d.ts.map +1 -0
  285. package/dist/utils/testing/output_parsers.d.cts.map +1 -0
  286. package/dist/utils/testing/output_parsers.d.ts.map +1 -0
  287. package/dist/utils/testing/retrievers.d.cts.map +1 -0
  288. package/dist/utils/testing/retrievers.d.ts.map +1 -0
  289. package/dist/utils/testing/runnables.d.cts.map +1 -0
  290. package/dist/utils/testing/runnables.d.ts.map +1 -0
  291. package/dist/utils/testing/tools.d.cts.map +1 -0
  292. package/dist/utils/testing/tools.d.ts.map +1 -0
  293. package/dist/utils/testing/tracers.d.cts.map +1 -0
  294. package/dist/utils/testing/tracers.d.ts.map +1 -0
  295. package/dist/utils/testing/vectorstores.d.cts.map +1 -0
  296. package/dist/utils/testing/vectorstores.d.ts.map +1 -0
  297. package/dist/utils/tiktoken.d.cts.map +1 -0
  298. package/dist/utils/tiktoken.d.ts.map +1 -0
  299. package/dist/utils/types/index.d.cts.map +1 -0
  300. package/dist/utils/types/index.d.ts.map +1 -0
  301. package/dist/utils/types/zod.d.cts.map +1 -0
  302. package/dist/utils/types/zod.d.ts.map +1 -0
  303. package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -0
  304. package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -0
  305. package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -0
  306. package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -0
  307. package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -0
  308. package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -0
  309. package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -0
  310. package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -0
  311. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -0
  312. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -0
  313. package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -0
  314. package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -0
  315. package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -0
  316. package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -0
  317. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -0
  318. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -0
  319. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -0
  320. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -0
  321. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -0
  322. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -0
  323. package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -0
  324. package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -0
  325. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -0
  326. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -0
  327. package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -0
  328. package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -0
  329. package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -0
  330. package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -0
  331. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -0
  332. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -0
  333. package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -0
  334. package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -0
  335. package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -0
  336. package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -0
  337. package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -0
  338. package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -0
  339. package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -0
  340. package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -0
  341. package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -0
  342. package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -0
  343. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -0
  344. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -0
  345. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -0
  346. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -0
  347. package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -0
  348. package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -0
  349. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -0
  350. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -0
  351. package/dist/vectorstores.d.cts.map +1 -0
  352. package/dist/vectorstores.d.ts.map +1 -0
  353. package/package.json +10 -10
  354. package/agents.cjs +0 -1
  355. package/agents.d.cts +0 -1
  356. package/agents.d.ts +0 -1
  357. package/agents.js +0 -1
  358. package/caches.cjs +0 -1
  359. package/caches.d.cts +0 -1
  360. package/caches.d.ts +0 -1
  361. package/caches.js +0 -1
  362. package/callbacks/base.cjs +0 -1
  363. package/callbacks/base.d.cts +0 -1
  364. package/callbacks/base.d.ts +0 -1
  365. package/callbacks/base.js +0 -1
  366. package/callbacks/dispatch/web.cjs +0 -1
  367. package/callbacks/dispatch/web.d.cts +0 -1
  368. package/callbacks/dispatch/web.d.ts +0 -1
  369. package/callbacks/dispatch/web.js +0 -1
  370. package/callbacks/dispatch.cjs +0 -1
  371. package/callbacks/dispatch.d.cts +0 -1
  372. package/callbacks/dispatch.d.ts +0 -1
  373. package/callbacks/dispatch.js +0 -1
  374. package/callbacks/manager.cjs +0 -1
  375. package/callbacks/manager.d.cts +0 -1
  376. package/callbacks/manager.d.ts +0 -1
  377. package/callbacks/manager.js +0 -1
  378. package/callbacks/promises.cjs +0 -1
  379. package/callbacks/promises.d.cts +0 -1
  380. package/callbacks/promises.d.ts +0 -1
  381. package/callbacks/promises.js +0 -1
  382. package/chat_history.cjs +0 -1
  383. package/chat_history.d.cts +0 -1
  384. package/chat_history.d.ts +0 -1
  385. package/chat_history.js +0 -1
  386. package/context.cjs +0 -1
  387. package/context.d.cts +0 -1
  388. package/context.d.ts +0 -1
  389. package/context.js +0 -1
  390. package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.cjs +0 -169
  391. package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.cjs.map +0 -1
  392. package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.js +0 -168
  393. package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.js.map +0 -1
  394. package/dist/node_modules/.pnpm/camelcase@9.0.0/node_modules/camelcase/index.cjs +0 -122
  395. package/dist/node_modules/.pnpm/camelcase@9.0.0/node_modules/camelcase/index.cjs.map +0 -1
  396. package/dist/node_modules/.pnpm/camelcase@9.0.0/node_modules/camelcase/index.js +0 -121
  397. package/dist/node_modules/.pnpm/camelcase@9.0.0/node_modules/camelcase/index.js.map +0 -1
  398. package/dist/node_modules/.pnpm/decamelize@6.0.1/node_modules/decamelize/index.cjs +0 -18
  399. package/dist/node_modules/.pnpm/decamelize@6.0.1/node_modules/decamelize/index.cjs.map +0 -1
  400. package/dist/node_modules/.pnpm/decamelize@6.0.1/node_modules/decamelize/index.js +0 -17
  401. package/dist/node_modules/.pnpm/decamelize@6.0.1/node_modules/decamelize/index.js.map +0 -1
  402. package/dist/node_modules/.pnpm/is-network-error@1.3.0/node_modules/is-network-error/index.cjs.map +0 -1
  403. package/dist/node_modules/.pnpm/is-network-error@1.3.0/node_modules/is-network-error/index.js.map +0 -1
  404. package/dist/node_modules/.pnpm/p-retry@7.1.0/node_modules/p-retry/index.cjs.map +0 -1
  405. package/dist/node_modules/.pnpm/p-retry@7.1.0/node_modules/p-retry/index.js.map +0 -1
  406. package/document_loaders/base.cjs +0 -1
  407. package/document_loaders/base.d.cts +0 -1
  408. package/document_loaders/base.d.ts +0 -1
  409. package/document_loaders/base.js +0 -1
  410. package/document_loaders/langsmith.cjs +0 -1
  411. package/document_loaders/langsmith.d.cts +0 -1
  412. package/document_loaders/langsmith.d.ts +0 -1
  413. package/document_loaders/langsmith.js +0 -1
  414. package/documents.cjs +0 -1
  415. package/documents.d.cts +0 -1
  416. package/documents.d.ts +0 -1
  417. package/documents.js +0 -1
  418. package/embeddings.cjs +0 -1
  419. package/embeddings.d.cts +0 -1
  420. package/embeddings.d.ts +0 -1
  421. package/embeddings.js +0 -1
  422. package/example_selectors.cjs +0 -1
  423. package/example_selectors.d.cts +0 -1
  424. package/example_selectors.d.ts +0 -1
  425. package/example_selectors.js +0 -1
  426. package/indexing.cjs +0 -1
  427. package/indexing.d.cts +0 -1
  428. package/indexing.d.ts +0 -1
  429. package/indexing.js +0 -1
  430. package/language_models/base.cjs +0 -1
  431. package/language_models/base.d.cts +0 -1
  432. package/language_models/base.d.ts +0 -1
  433. package/language_models/base.js +0 -1
  434. package/language_models/chat_models.cjs +0 -1
  435. package/language_models/chat_models.d.cts +0 -1
  436. package/language_models/chat_models.d.ts +0 -1
  437. package/language_models/chat_models.js +0 -1
  438. package/language_models/llms.cjs +0 -1
  439. package/language_models/llms.d.cts +0 -1
  440. package/language_models/llms.d.ts +0 -1
  441. package/language_models/llms.js +0 -1
  442. package/language_models/profile.cjs +0 -1
  443. package/language_models/profile.d.cts +0 -1
  444. package/language_models/profile.d.ts +0 -1
  445. package/language_models/profile.js +0 -1
  446. package/load/serializable.cjs +0 -1
  447. package/load/serializable.d.cts +0 -1
  448. package/load/serializable.d.ts +0 -1
  449. package/load/serializable.js +0 -1
  450. package/load.cjs +0 -1
  451. package/load.d.cts +0 -1
  452. package/load.d.ts +0 -1
  453. package/load.js +0 -1
  454. package/memory.cjs +0 -1
  455. package/memory.d.cts +0 -1
  456. package/memory.d.ts +0 -1
  457. package/memory.js +0 -1
  458. package/messages/tool.cjs +0 -1
  459. package/messages/tool.d.cts +0 -1
  460. package/messages/tool.d.ts +0 -1
  461. package/messages/tool.js +0 -1
  462. package/messages.cjs +0 -1
  463. package/messages.d.cts +0 -1
  464. package/messages.d.ts +0 -1
  465. package/messages.js +0 -1
  466. package/output_parsers/openai_functions.cjs +0 -1
  467. package/output_parsers/openai_functions.d.cts +0 -1
  468. package/output_parsers/openai_functions.d.ts +0 -1
  469. package/output_parsers/openai_functions.js +0 -1
  470. package/output_parsers/openai_tools.cjs +0 -1
  471. package/output_parsers/openai_tools.d.cts +0 -1
  472. package/output_parsers/openai_tools.d.ts +0 -1
  473. package/output_parsers/openai_tools.js +0 -1
  474. package/output_parsers.cjs +0 -1
  475. package/output_parsers.d.cts +0 -1
  476. package/output_parsers.d.ts +0 -1
  477. package/output_parsers.js +0 -1
  478. package/outputs.cjs +0 -1
  479. package/outputs.d.cts +0 -1
  480. package/outputs.d.ts +0 -1
  481. package/outputs.js +0 -1
  482. package/prompt_values.cjs +0 -1
  483. package/prompt_values.d.cts +0 -1
  484. package/prompt_values.d.ts +0 -1
  485. package/prompt_values.js +0 -1
  486. package/prompts.cjs +0 -1
  487. package/prompts.d.cts +0 -1
  488. package/prompts.d.ts +0 -1
  489. package/prompts.js +0 -1
  490. package/retrievers/document_compressors.cjs +0 -1
  491. package/retrievers/document_compressors.d.cts +0 -1
  492. package/retrievers/document_compressors.d.ts +0 -1
  493. package/retrievers/document_compressors.js +0 -1
  494. package/retrievers.cjs +0 -1
  495. package/retrievers.d.cts +0 -1
  496. package/retrievers.d.ts +0 -1
  497. package/retrievers.js +0 -1
  498. package/runnables/graph.cjs +0 -1
  499. package/runnables/graph.d.cts +0 -1
  500. package/runnables/graph.d.ts +0 -1
  501. package/runnables/graph.js +0 -1
  502. package/runnables.cjs +0 -1
  503. package/runnables.d.cts +0 -1
  504. package/runnables.d.ts +0 -1
  505. package/runnables.js +0 -1
  506. package/singletons.cjs +0 -1
  507. package/singletons.d.cts +0 -1
  508. package/singletons.d.ts +0 -1
  509. package/singletons.js +0 -1
  510. package/stores.cjs +0 -1
  511. package/stores.d.cts +0 -1
  512. package/stores.d.ts +0 -1
  513. package/stores.js +0 -1
  514. package/structured_query.cjs +0 -1
  515. package/structured_query.d.cts +0 -1
  516. package/structured_query.d.ts +0 -1
  517. package/structured_query.js +0 -1
  518. package/tools.cjs +0 -1
  519. package/tools.d.cts +0 -1
  520. package/tools.d.ts +0 -1
  521. package/tools.js +0 -1
  522. package/tracers/base.cjs +0 -1
  523. package/tracers/base.d.cts +0 -1
  524. package/tracers/base.d.ts +0 -1
  525. package/tracers/base.js +0 -1
  526. package/tracers/console.cjs +0 -1
  527. package/tracers/console.d.cts +0 -1
  528. package/tracers/console.d.ts +0 -1
  529. package/tracers/console.js +0 -1
  530. package/tracers/log_stream.cjs +0 -1
  531. package/tracers/log_stream.d.cts +0 -1
  532. package/tracers/log_stream.d.ts +0 -1
  533. package/tracers/log_stream.js +0 -1
  534. package/tracers/run_collector.cjs +0 -1
  535. package/tracers/run_collector.d.cts +0 -1
  536. package/tracers/run_collector.d.ts +0 -1
  537. package/tracers/run_collector.js +0 -1
  538. package/tracers/tracer_langchain.cjs +0 -1
  539. package/tracers/tracer_langchain.d.cts +0 -1
  540. package/tracers/tracer_langchain.d.ts +0 -1
  541. package/tracers/tracer_langchain.js +0 -1
  542. package/types/stream.cjs +0 -1
  543. package/types/stream.d.cts +0 -1
  544. package/types/stream.d.ts +0 -1
  545. package/types/stream.js +0 -1
  546. package/utils/async_caller.cjs +0 -1
  547. package/utils/async_caller.d.cts +0 -1
  548. package/utils/async_caller.d.ts +0 -1
  549. package/utils/async_caller.js +0 -1
  550. package/utils/chunk_array.cjs +0 -1
  551. package/utils/chunk_array.d.cts +0 -1
  552. package/utils/chunk_array.d.ts +0 -1
  553. package/utils/chunk_array.js +0 -1
  554. package/utils/env.cjs +0 -1
  555. package/utils/env.d.cts +0 -1
  556. package/utils/env.d.ts +0 -1
  557. package/utils/env.js +0 -1
  558. package/utils/event_source_parse.cjs +0 -1
  559. package/utils/event_source_parse.d.cts +0 -1
  560. package/utils/event_source_parse.d.ts +0 -1
  561. package/utils/event_source_parse.js +0 -1
  562. package/utils/format.cjs +0 -1
  563. package/utils/format.d.cts +0 -1
  564. package/utils/format.d.ts +0 -1
  565. package/utils/format.js +0 -1
  566. package/utils/function_calling.cjs +0 -1
  567. package/utils/function_calling.d.cts +0 -1
  568. package/utils/function_calling.d.ts +0 -1
  569. package/utils/function_calling.js +0 -1
  570. package/utils/hash.cjs +0 -1
  571. package/utils/hash.d.cts +0 -1
  572. package/utils/hash.d.ts +0 -1
  573. package/utils/hash.js +0 -1
  574. package/utils/json_patch.cjs +0 -1
  575. package/utils/json_patch.d.cts +0 -1
  576. package/utils/json_patch.d.ts +0 -1
  577. package/utils/json_patch.js +0 -1
  578. package/utils/json_schema.cjs +0 -1
  579. package/utils/json_schema.d.cts +0 -1
  580. package/utils/json_schema.d.ts +0 -1
  581. package/utils/json_schema.js +0 -1
  582. package/utils/math.cjs +0 -1
  583. package/utils/math.d.cts +0 -1
  584. package/utils/math.d.ts +0 -1
  585. package/utils/math.js +0 -1
  586. package/utils/stream.cjs +0 -1
  587. package/utils/stream.d.cts +0 -1
  588. package/utils/stream.d.ts +0 -1
  589. package/utils/stream.js +0 -1
  590. package/utils/testing.cjs +0 -1
  591. package/utils/testing.d.cts +0 -1
  592. package/utils/testing.d.ts +0 -1
  593. package/utils/testing.js +0 -1
  594. package/utils/tiktoken.cjs +0 -1
  595. package/utils/tiktoken.d.cts +0 -1
  596. package/utils/tiktoken.d.ts +0 -1
  597. package/utils/tiktoken.js +0 -1
  598. package/utils/types.cjs +0 -1
  599. package/utils/types.d.cts +0 -1
  600. package/utils/types.d.ts +0 -1
  601. package/utils/types.js +0 -1
  602. package/vectorstores.cjs +0 -1
  603. package/vectorstores.d.cts +0 -1
  604. package/vectorstores.d.ts +0 -1
  605. package/vectorstores.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["isNetworkError"],"sources":["../../../src/utils/p-retry/index.js"],"sourcesContent":["/* eslint-disable */\nimport isNetworkError from \"../is-network-error/index.js\";\n\nfunction validateRetries(retries) {\n if (typeof retries === \"number\") {\n if (retries < 0) {\n throw new TypeError(\"Expected `retries` to be a non-negative number.\");\n }\n\n if (Number.isNaN(retries)) {\n throw new TypeError(\n \"Expected `retries` to be a valid number or Infinity, got NaN.\"\n );\n }\n } else if (retries !== undefined) {\n throw new TypeError(\"Expected `retries` to be a number or Infinity.\");\n }\n}\n\nfunction validateNumberOption(\n name,\n value,\n { min = 0, allowInfinity = false } = {}\n) {\n if (value === undefined) {\n return;\n }\n\n if (typeof value !== \"number\" || Number.isNaN(value)) {\n throw new TypeError(\n `Expected \\`${name}\\` to be a number${\n allowInfinity ? \" or Infinity\" : \"\"\n }.`\n );\n }\n\n if (!allowInfinity && !Number.isFinite(value)) {\n throw new TypeError(`Expected \\`${name}\\` to be a finite number.`);\n }\n\n if (value < min) {\n throw new TypeError(`Expected \\`${name}\\` to be \\u2265 ${min}.`);\n }\n}\n\nexport class AbortError extends Error {\n constructor(message) {\n super();\n\n if (message instanceof Error) {\n this.originalError = message;\n ({ message } = message);\n } else {\n this.originalError = new Error(message);\n this.originalError.stack = this.stack;\n }\n\n this.name = \"AbortError\";\n this.message = message;\n }\n}\n\nfunction calculateDelay(retriesConsumed, options) {\n const attempt = Math.max(1, retriesConsumed + 1);\n const random = options.randomize ? Math.random() + 1 : 1;\n\n let timeout = Math.round(\n random * options.minTimeout * options.factor ** (attempt - 1)\n );\n timeout = Math.min(timeout, options.maxTimeout);\n\n return timeout;\n}\n\nfunction calculateRemainingTime(start, max) {\n if (!Number.isFinite(max)) {\n return max;\n }\n\n return max - (performance.now() - start);\n}\n\nasync function onAttemptFailure({\n error,\n attemptNumber,\n retriesConsumed,\n startTime,\n options,\n}) {\n const normalizedError =\n error instanceof Error\n ? error\n : new TypeError(\n `Non-error was thrown: \"${error}\". You should only throw errors.`\n );\n\n if (normalizedError instanceof AbortError) {\n throw normalizedError.originalError;\n }\n\n const retriesLeft = Number.isFinite(options.retries)\n ? Math.max(0, options.retries - retriesConsumed)\n : options.retries;\n\n const maxRetryTime = options.maxRetryTime ?? Number.POSITIVE_INFINITY;\n\n const context = Object.freeze({\n error: normalizedError,\n attemptNumber,\n retriesLeft,\n retriesConsumed,\n });\n\n await options.onFailedAttempt(context);\n\n if (calculateRemainingTime(startTime, maxRetryTime) <= 0) {\n throw normalizedError;\n }\n\n const consumeRetry = await options.shouldConsumeRetry(context);\n\n const remainingTime = calculateRemainingTime(startTime, maxRetryTime);\n\n if (remainingTime <= 0 || retriesLeft <= 0) {\n throw normalizedError;\n }\n\n if (\n normalizedError instanceof TypeError &&\n !isNetworkError(normalizedError)\n ) {\n if (consumeRetry) {\n throw normalizedError;\n }\n\n options.signal?.throwIfAborted();\n return false;\n }\n\n if (!(await options.shouldRetry(context))) {\n throw normalizedError;\n }\n\n if (!consumeRetry) {\n options.signal?.throwIfAborted();\n return false;\n }\n\n const delayTime = calculateDelay(retriesConsumed, options);\n const finalDelay = Math.min(delayTime, remainingTime);\n\n if (finalDelay > 0) {\n await new Promise((resolve, reject) => {\n const onAbort = () => {\n clearTimeout(timeoutToken);\n options.signal?.removeEventListener(\"abort\", onAbort);\n reject(options.signal.reason);\n };\n\n const timeoutToken = setTimeout(() => {\n options.signal?.removeEventListener(\"abort\", onAbort);\n resolve();\n }, finalDelay);\n\n if (options.unref) {\n timeoutToken.unref?.();\n }\n\n options.signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n }\n\n options.signal?.throwIfAborted();\n\n return true;\n}\n\nexport default async function pRetry(input, options = {}) {\n options = { ...options };\n\n validateRetries(options.retries);\n\n if (Object.hasOwn(options, \"forever\")) {\n throw new Error(\n \"The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.\"\n );\n }\n\n options.retries ??= 10;\n options.factor ??= 2;\n options.minTimeout ??= 1000;\n options.maxTimeout ??= Number.POSITIVE_INFINITY;\n options.maxRetryTime ??= Number.POSITIVE_INFINITY;\n options.randomize ??= false;\n options.onFailedAttempt ??= () => {};\n options.shouldRetry ??= () => true;\n options.shouldConsumeRetry ??= () => true;\n\n // Validate numeric options and normalize edge cases\n validateNumberOption(\"factor\", options.factor, {\n min: 0,\n allowInfinity: false,\n });\n validateNumberOption(\"minTimeout\", options.minTimeout, {\n min: 0,\n allowInfinity: false,\n });\n validateNumberOption(\"maxTimeout\", options.maxTimeout, {\n min: 0,\n allowInfinity: true,\n });\n validateNumberOption(\"maxRetryTime\", options.maxRetryTime, {\n min: 0,\n allowInfinity: true,\n });\n\n // Treat non-positive factor as 1 to avoid zero backoff or negative behavior\n if (!(options.factor > 0)) {\n options.factor = 1;\n }\n\n options.signal?.throwIfAborted();\n\n let attemptNumber = 0;\n let retriesConsumed = 0;\n const startTime = performance.now();\n\n while (\n Number.isFinite(options.retries) ? retriesConsumed <= options.retries : true\n ) {\n attemptNumber++;\n\n try {\n options.signal?.throwIfAborted();\n\n const result = await input(attemptNumber);\n\n options.signal?.throwIfAborted();\n\n return result;\n } catch (error) {\n if (\n await onAttemptFailure({\n error,\n attemptNumber,\n retriesConsumed,\n startTime,\n options,\n })\n ) {\n retriesConsumed++;\n }\n }\n }\n\n // Should not reach here, but in case it does, throw an error\n throw new Error(\"Retry attempts exhausted without throwing an error.\");\n}\n\nexport function makeRetriable(function_, options) {\n return function (...arguments_) {\n return pRetry(() => function_.apply(this, arguments_), options);\n };\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { isNetworkError } from "../../../is-network-error@1.3.0/node_modules/is-network-error/index.js";
1
+ import { isNetworkError } from "../is-network-error/index.js";
2
2
 
3
- //#region ../../node_modules/.pnpm/p-retry@7.1.0/node_modules/p-retry/index.js
3
+ //#region src/utils/p-retry/index.js
4
4
  function validateRetries(retries) {
5
5
  if (typeof retries === "number") {
6
6
  if (retries < 0) throw new TypeError("Expected `retries` to be a non-negative number.");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/p-retry/index.js"],"sourcesContent":["/* eslint-disable */\nimport isNetworkError from \"../is-network-error/index.js\";\n\nfunction validateRetries(retries) {\n if (typeof retries === \"number\") {\n if (retries < 0) {\n throw new TypeError(\"Expected `retries` to be a non-negative number.\");\n }\n\n if (Number.isNaN(retries)) {\n throw new TypeError(\n \"Expected `retries` to be a valid number or Infinity, got NaN.\"\n );\n }\n } else if (retries !== undefined) {\n throw new TypeError(\"Expected `retries` to be a number or Infinity.\");\n }\n}\n\nfunction validateNumberOption(\n name,\n value,\n { min = 0, allowInfinity = false } = {}\n) {\n if (value === undefined) {\n return;\n }\n\n if (typeof value !== \"number\" || Number.isNaN(value)) {\n throw new TypeError(\n `Expected \\`${name}\\` to be a number${\n allowInfinity ? \" or Infinity\" : \"\"\n }.`\n );\n }\n\n if (!allowInfinity && !Number.isFinite(value)) {\n throw new TypeError(`Expected \\`${name}\\` to be a finite number.`);\n }\n\n if (value < min) {\n throw new TypeError(`Expected \\`${name}\\` to be \\u2265 ${min}.`);\n }\n}\n\nexport class AbortError extends Error {\n constructor(message) {\n super();\n\n if (message instanceof Error) {\n this.originalError = message;\n ({ message } = message);\n } else {\n this.originalError = new Error(message);\n this.originalError.stack = this.stack;\n }\n\n this.name = \"AbortError\";\n this.message = message;\n }\n}\n\nfunction calculateDelay(retriesConsumed, options) {\n const attempt = Math.max(1, retriesConsumed + 1);\n const random = options.randomize ? Math.random() + 1 : 1;\n\n let timeout = Math.round(\n random * options.minTimeout * options.factor ** (attempt - 1)\n );\n timeout = Math.min(timeout, options.maxTimeout);\n\n return timeout;\n}\n\nfunction calculateRemainingTime(start, max) {\n if (!Number.isFinite(max)) {\n return max;\n }\n\n return max - (performance.now() - start);\n}\n\nasync function onAttemptFailure({\n error,\n attemptNumber,\n retriesConsumed,\n startTime,\n options,\n}) {\n const normalizedError =\n error instanceof Error\n ? error\n : new TypeError(\n `Non-error was thrown: \"${error}\". You should only throw errors.`\n );\n\n if (normalizedError instanceof AbortError) {\n throw normalizedError.originalError;\n }\n\n const retriesLeft = Number.isFinite(options.retries)\n ? Math.max(0, options.retries - retriesConsumed)\n : options.retries;\n\n const maxRetryTime = options.maxRetryTime ?? Number.POSITIVE_INFINITY;\n\n const context = Object.freeze({\n error: normalizedError,\n attemptNumber,\n retriesLeft,\n retriesConsumed,\n });\n\n await options.onFailedAttempt(context);\n\n if (calculateRemainingTime(startTime, maxRetryTime) <= 0) {\n throw normalizedError;\n }\n\n const consumeRetry = await options.shouldConsumeRetry(context);\n\n const remainingTime = calculateRemainingTime(startTime, maxRetryTime);\n\n if (remainingTime <= 0 || retriesLeft <= 0) {\n throw normalizedError;\n }\n\n if (\n normalizedError instanceof TypeError &&\n !isNetworkError(normalizedError)\n ) {\n if (consumeRetry) {\n throw normalizedError;\n }\n\n options.signal?.throwIfAborted();\n return false;\n }\n\n if (!(await options.shouldRetry(context))) {\n throw normalizedError;\n }\n\n if (!consumeRetry) {\n options.signal?.throwIfAborted();\n return false;\n }\n\n const delayTime = calculateDelay(retriesConsumed, options);\n const finalDelay = Math.min(delayTime, remainingTime);\n\n if (finalDelay > 0) {\n await new Promise((resolve, reject) => {\n const onAbort = () => {\n clearTimeout(timeoutToken);\n options.signal?.removeEventListener(\"abort\", onAbort);\n reject(options.signal.reason);\n };\n\n const timeoutToken = setTimeout(() => {\n options.signal?.removeEventListener(\"abort\", onAbort);\n resolve();\n }, finalDelay);\n\n if (options.unref) {\n timeoutToken.unref?.();\n }\n\n options.signal?.addEventListener(\"abort\", onAbort, { once: true });\n });\n }\n\n options.signal?.throwIfAborted();\n\n return true;\n}\n\nexport default async function pRetry(input, options = {}) {\n options = { ...options };\n\n validateRetries(options.retries);\n\n if (Object.hasOwn(options, \"forever\")) {\n throw new Error(\n \"The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.\"\n );\n }\n\n options.retries ??= 10;\n options.factor ??= 2;\n options.minTimeout ??= 1000;\n options.maxTimeout ??= Number.POSITIVE_INFINITY;\n options.maxRetryTime ??= Number.POSITIVE_INFINITY;\n options.randomize ??= false;\n options.onFailedAttempt ??= () => {};\n options.shouldRetry ??= () => true;\n options.shouldConsumeRetry ??= () => true;\n\n // Validate numeric options and normalize edge cases\n validateNumberOption(\"factor\", options.factor, {\n min: 0,\n allowInfinity: false,\n });\n validateNumberOption(\"minTimeout\", options.minTimeout, {\n min: 0,\n allowInfinity: false,\n });\n validateNumberOption(\"maxTimeout\", options.maxTimeout, {\n min: 0,\n allowInfinity: true,\n });\n validateNumberOption(\"maxRetryTime\", options.maxRetryTime, {\n min: 0,\n allowInfinity: true,\n });\n\n // Treat non-positive factor as 1 to avoid zero backoff or negative behavior\n if (!(options.factor > 0)) {\n options.factor = 1;\n }\n\n options.signal?.throwIfAborted();\n\n let attemptNumber = 0;\n let retriesConsumed = 0;\n const startTime = performance.now();\n\n while (\n Number.isFinite(options.retries) ? retriesConsumed <= options.retries : true\n ) {\n attemptNumber++;\n\n try {\n options.signal?.throwIfAborted();\n\n const result = await input(attemptNumber);\n\n options.signal?.throwIfAborted();\n\n return result;\n } catch (error) {\n if (\n await onAttemptFailure({\n error,\n attemptNumber,\n retriesConsumed,\n startTime,\n options,\n })\n ) {\n retriesConsumed++;\n }\n }\n }\n\n // Should not reach here, but in case it does, throw an error\n throw new Error(\"Retry attempts exhausted without throwing an error.\");\n}\n\nexport function makeRetriable(function_, options) {\n return function (...arguments_) {\n return pRetry(() => function_.apply(this, arguments_), options);\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.d.cts","names":["raceWithSignal","T","Promise","AbortSignal","getAbortSignalError","Error"],"sources":["../../src/utils/signal.d.ts"],"sourcesContent":["/**\n * Race a promise with an abort signal. If the signal is aborted, the promise will\n * be rejected with the error from the signal. If the promise is rejected, the signal will be aborted.\n *\n * @param promise - The promise to race.\n * @param signal - The abort signal.\n * @returns The result of the promise.\n */\nexport declare function raceWithSignal<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T>;\n/**\n * Get the error from an abort signal. Since you can set the reason to anything,\n * we have to do some type gymnastics to get a proper error message.\n *\n * @param signal - The abort signal.\n * @returns The error from the abort signal.\n */\nexport declare function getAbortSignalError(signal?: AbortSignal): Error;\n//# sourceMappingURL=signal.d.ts.map"],"mappings":";;AAQA;;;;;;AAA6F;iBAArEA,2BAA2BE,QAAQD,aAAaE,cAAcD,QAAQD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.d.ts","names":["raceWithSignal","T","Promise","AbortSignal","getAbortSignalError","Error"],"sources":["../../src/utils/signal.d.ts"],"sourcesContent":["/**\n * Race a promise with an abort signal. If the signal is aborted, the promise will\n * be rejected with the error from the signal. If the promise is rejected, the signal will be aborted.\n *\n * @param promise - The promise to race.\n * @param signal - The abort signal.\n * @returns The result of the promise.\n */\nexport declare function raceWithSignal<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T>;\n/**\n * Get the error from an abort signal. Since you can set the reason to anything,\n * we have to do some type gymnastics to get a proper error message.\n *\n * @param signal - The abort signal.\n * @returns The error from the abort signal.\n */\nexport declare function getAbortSignalError(signal?: AbortSignal): Error;\n//# sourceMappingURL=signal.d.ts.map"],"mappings":";;AAQA;;;;;;AAA6F;iBAArEA,2BAA2BE,QAAQD,aAAaE,cAAcD,QAAQD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.cts","names":["IterableReadableStreamInterface","IterableReadableStream","T","ReadableStreamDefaultReader","IteratorResult","Promise","Symbol","asyncIterator","asyncDispose","ReadableStream","AsyncGenerator","atee","concat","Array","Record","AsyncGeneratorWithSetup","S","TReturn","TNext","AbortSignal","PromiseLike","Error","pipeGeneratorWithSetup","A","U","UReturn","UNext","Awaited"],"sources":["../../src/utils/stream.d.ts"],"sourcesContent":["import type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nexport type { IterableReadableStreamInterface };\nexport declare class IterableReadableStream<T> extends ReadableStream<T> implements IterableReadableStreamInterface<T> {\n reader: ReadableStreamDefaultReader<T>;\n ensureReader(): void;\n next(): Promise<IteratorResult<T>>;\n return(): Promise<IteratorResult<T>>;\n throw(e: any): Promise<IteratorResult<T>>;\n [Symbol.asyncIterator](): this;\n [Symbol.asyncDispose](): Promise<void>;\n static fromReadableStream<T>(stream: ReadableStream<T>): IterableReadableStream<T>;\n static fromAsyncGenerator<T>(generator: AsyncGenerator<T>): IterableReadableStream<T>;\n}\nexport declare function atee<T>(iter: AsyncGenerator<T>, length?: number): AsyncGenerator<T>[];\nexport declare function concat<T extends Array<any> | string | number | Record<string, any> | any>(first: T, second: T): T;\nexport declare class AsyncGeneratorWithSetup<S = unknown, T = unknown, TReturn = unknown, TNext = unknown> implements AsyncGenerator<T, TReturn, TNext> {\n private generator;\n setup: Promise<S>;\n config?: unknown;\n signal?: AbortSignal;\n private firstResult;\n private firstResultUsed;\n constructor(params: {\n generator: AsyncGenerator<T>;\n startSetup?: () => Promise<S>;\n config?: unknown;\n signal?: AbortSignal;\n });\n next(...args: [] | [TNext]): Promise<IteratorResult<T>>;\n return(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T>>;\n throw(e: Error): Promise<IteratorResult<T>>;\n [Symbol.asyncIterator](): this;\n [Symbol.asyncDispose](): Promise<void>;\n}\nexport declare function pipeGeneratorWithSetup<S, A extends unknown[], T, TReturn, TNext, U, UReturn, UNext>(to: (g: AsyncGenerator<T, TReturn, TNext>, s: S, ...args: A) => AsyncGenerator<U, UReturn, UNext>, generator: AsyncGenerator<T, TReturn, TNext>, startSetup: () => Promise<S>, signal: AbortSignal | undefined, ...args: A): Promise<{\n output: AsyncGenerator<U, UReturn, UNext>;\n setup: Awaited<S>;\n}>;\n//# sourceMappingURL=stream.d.ts.map"],"mappings":";;;cAEqBC,kCAAkCQ,eAAeP,cAAcF,gCAAgCE;EAA/FD,MAAAA,EACTE,2BAD+BD,CACHA,CADG,CAAA;EAA2BA,YAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAA8CA,IAAAA,CAAAA,CAAAA,EAGxGG,OAHwGH,CAGhGE,cAHgGF,CAGjFA,CAHiFA,CAAAA,CAAAA;EAC5EA,MAAAA,CAAAA,CAAAA,EAG1BG,OAH0BH,CAGlBE,cAHkBF,CAGHA,CAHGA,CAAAA,CAAAA;EAA5BC,KAAAA,CAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAIOE,OAJPF,CAIeC,cAJfD,CAI8BD,CAJ9BC,CAAAA,CAAAA;EAEuBD,CAG9BI,MAAAA,CAAOC,aAAAA,GAHuBL,EAAAA,IAAAA;EAAfE,CAIfE,MAAAA,CAAOE,YAAAA,GAJQJ,EAISC,OAJTD,CAAAA,IAAAA,CAAAA;EAARC,OAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,EAK6BI,cAL7BJ,CAK4CH,CAL5CG,CAAAA,CAAAA,EAKiDJ,sBALjDI,CAKwEH,CALxEG,CAAAA;EACyBH,OAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAKOQ,cALPR,CAKsBA,CALtBA,CAAAA,CAAAA,EAK2BD,sBAL3BC,CAKkDA,CALlDA,CAAAA;;AAAvBG,iBAOUM,IAPVN,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAOwBK,cAPxBL,CAOuCH,CAPvCG,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAO6DK,cAP7DL,CAO4EH,CAP5EG,CAAAA,EAAAA;AAC4BH,iBAOlBU,MAPkBV,CAAAA,UAODW,KAPCX,CAAAA,GAAAA,CAAAA,GAAAA,MAAAA,GAAAA,MAAAA,GAO8BY,MAP9BZ,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA,CAAAA,KAAAA,EAOgEA,CAPhEA,EAAAA,MAAAA,EAO2EA,CAP3EA,CAAAA,EAO+EA,CAP/EA;AAAfE,cAQNW,uBARMX,CAAAA,IAAAA,OAAAA,EAAAA,IAAAA,OAAAA,EAAAA,UAAAA,OAAAA,EAAAA,QAAAA,OAAAA,CAAAA,YAQ2FM,cAR3FN,CAQ0GF,CAR1GE,EAQ6Ga,OAR7Gb,EAQsHc,KARtHd,CAAAA,CAAAA;EAARC,QAAAA,SAAAA;EACdC,KAAOC,EASDF,OATCE,CASOS,CATPT,CAAAA;EACiBF,MAAAA,CAAAA,EAAAA,OAAAA;EAAxBC,MAAOE,CAAAA,EAUCW,WAVDX;EAC4CN,QAAAA,WAAAA;EAAfO,QAAAA,eAAAA;EAA2CP,WAAAA,CAAAA,MAAAA,EAAAA;IAAvBD,SAAAA,EAa1CS,cAb0CT,CAa3BC,CAb2BD,CAAAA;IACFC,UAAAA,CAAAA,EAAAA,GAAAA,GAahCG,OAbgCH,CAaxBc,CAbwBd,CAAAA;IAAfQ,MAAAA,CAAAA,EAAAA,OAAAA;IAA2CR,MAAAA,CAAAA,EAetEiB,WAfsEjB;EAAvBD,CAAAA;EATTQ,IAAAA,CAAAA,GAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CA0B/BS,KA1B+BT,CAAAA,CAAAA,EA0BtBJ,OA1BsBI,CA0BdL,cA1BcK,CA0BCP,CA1BDO,CAAAA,CAAAA;EAA6BT,MAAAA,CAAAA,KAAAA,CAAAA,EA2BjEiB,OA3BiEjB,GA2BvDoB,WA3BuDpB,CA2B3CiB,OA3B2CjB,CAAAA,CAAAA,EA2BhCK,OA3BgCL,CA2BxBI,cA3BwBJ,CA2BTE,CA3BSF,CAAAA,CAAAA;EAA+B,KAAA,CAAA,CAAA,EA4BtGqB,KA5BsG,CAAA,EA4B9FhB,OA5B8F,CA4BtFD,cA5BsF,CA4BvEF,CA5BuE,CAAA,CAAA;EAW3FS,CAkBnBL,MAAAA,CAAOC,aAAAA,GAlBgB,EAAA,IAAA;EAAyBL,CAmBhDI,MAAAA,CAAOE,YAAAA,GAnByCN,EAmBxBG,OAnBwBH,CAAAA,IAAAA,CAAAA;;AAAqCA,iBAqBlEoB,sBArBkEpB,CAAAA,CAAAA,EAAAA,UAAAA,OAAAA,EAAAA,EAAAA,CAAAA,EAAAA,OAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,OAAAA,EAAAA,KAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAqB2BQ,cArB3BR,CAqB0CA,CArB1CA,EAqB6Ce,OArB7Cf,EAqBsDgB,KArBtDhB,CAAAA,EAAAA,CAAAA,EAqBiEc,CArBjEd,EAAAA,GAAAA,IAAAA,EAqB6EqB,CArB7ErB,EAAAA,GAqBmFQ,cArBnFR,CAqBkGsB,CArBlGtB,EAqBqGuB,OArBrGvB,EAqB8GwB,KArB9GxB,CAAAA,EAAAA,SAAAA,EAqBiIQ,cArBjIR,CAqBgJA,CArBhJA,EAqBmJe,OArBnJf,EAqB4JgB,KArB5JhB,CAAAA,EAAAA,UAAAA,EAAAA,GAAAA,GAqBsLG,OArBtLH,CAqB8Lc,CArB9Ld,CAAAA,EAAAA,MAAAA,EAqB0MiB,WArB1MjB,GAAAA,SAAAA,EAAAA,GAAAA,IAAAA,EAqB4OqB,CArB5OrB,CAAAA,EAqBgPG,OArBhPH,CAAAA;EAAfQ,MAAAA,EAsB/DA,cAtB+DA,CAsBhDc,CAtBgDd,EAsB7Ce,OAtB6Cf,EAsBpCgB,KAtBoChB,CAAAA;EAAc,KAAA,EAuB9EiB,OAvB8E,CAuBtEX,CAvBsE,CAAA;AACzF,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","names":["IterableReadableStreamInterface","IterableReadableStream","T","ReadableStreamDefaultReader","IteratorResult","Promise","Symbol","asyncIterator","asyncDispose","ReadableStream","AsyncGenerator","atee","concat","Array","Record","AsyncGeneratorWithSetup","S","TReturn","TNext","AbortSignal","PromiseLike","Error","pipeGeneratorWithSetup","A","U","UReturn","UNext","Awaited"],"sources":["../../src/utils/stream.d.ts"],"sourcesContent":["import type { IterableReadableStreamInterface } from \"../types/_internal.js\";\nexport type { IterableReadableStreamInterface };\nexport declare class IterableReadableStream<T> extends ReadableStream<T> implements IterableReadableStreamInterface<T> {\n reader: ReadableStreamDefaultReader<T>;\n ensureReader(): void;\n next(): Promise<IteratorResult<T>>;\n return(): Promise<IteratorResult<T>>;\n throw(e: any): Promise<IteratorResult<T>>;\n [Symbol.asyncIterator](): this;\n [Symbol.asyncDispose](): Promise<void>;\n static fromReadableStream<T>(stream: ReadableStream<T>): IterableReadableStream<T>;\n static fromAsyncGenerator<T>(generator: AsyncGenerator<T>): IterableReadableStream<T>;\n}\nexport declare function atee<T>(iter: AsyncGenerator<T>, length?: number): AsyncGenerator<T>[];\nexport declare function concat<T extends Array<any> | string | number | Record<string, any> | any>(first: T, second: T): T;\nexport declare class AsyncGeneratorWithSetup<S = unknown, T = unknown, TReturn = unknown, TNext = unknown> implements AsyncGenerator<T, TReturn, TNext> {\n private generator;\n setup: Promise<S>;\n config?: unknown;\n signal?: AbortSignal;\n private firstResult;\n private firstResultUsed;\n constructor(params: {\n generator: AsyncGenerator<T>;\n startSetup?: () => Promise<S>;\n config?: unknown;\n signal?: AbortSignal;\n });\n next(...args: [] | [TNext]): Promise<IteratorResult<T>>;\n return(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T>>;\n throw(e: Error): Promise<IteratorResult<T>>;\n [Symbol.asyncIterator](): this;\n [Symbol.asyncDispose](): Promise<void>;\n}\nexport declare function pipeGeneratorWithSetup<S, A extends unknown[], T, TReturn, TNext, U, UReturn, UNext>(to: (g: AsyncGenerator<T, TReturn, TNext>, s: S, ...args: A) => AsyncGenerator<U, UReturn, UNext>, generator: AsyncGenerator<T, TReturn, TNext>, startSetup: () => Promise<S>, signal: AbortSignal | undefined, ...args: A): Promise<{\n output: AsyncGenerator<U, UReturn, UNext>;\n setup: Awaited<S>;\n}>;\n//# sourceMappingURL=stream.d.ts.map"],"mappings":";;;cAEqBC,kCAAkCQ,eAAeP,cAAcF,gCAAgCE;EAA/FD,MAAAA,EACTE,2BAD+BD,CACHA,CADGA,CAAA;EAA2BA,YAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAA8CA,IAAAA,CAAAA,CAAAA,EAGxGG,OAHwGH,CAGhGE,cAHgGF,CAGjFA,CAHiFA,CAAAA,CAAAA;EAC5EA,MAAAA,CAAAA,CAAAA,EAG1BG,OAH0BH,CAGlBE,cAHkBF,CAGHA,CAHGA,CAAAA,CAAAA;EAA5BC,KAAAA,CAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAIOE,OAJPF,CAIeC,cAJfD,CAI8BD,CAJ9BC,CAAAA,CAAAA;EAEuBD,CAG9BI,MAAAA,CAAOC,aAAAA,GAHuBL,EAAAA,IAAAA;EAAfE,CAIfE,MAAAA,CAAOE,YAAAA,GAJQJ,EAISC,OAJTD,CAAAA,IAAAA,CAAAA;EAARC,OAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,EAK6BI,cAL7BJ,CAK4CH,CAL5CG,CAAAA,CAAAA,EAKiDJ,sBALjDI,CAKwEH,CALxEG,CAAAA;EACyBH,OAAAA,kBAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,EAKOQ,cALPR,CAKsBA,CALtBA,CAAAA,CAAAA,EAK2BD,sBAL3BC,CAKkDA,CALlDA,CAAAA;;AAAvBG,iBAOUM,IAPVN,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAOwBK,cAPxBL,CAOuCH,CAPvCG,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAO6DK,cAP7DL,CAO4EH,CAP5EG,CAAAA,EAAAA;AAC4BH,iBAOlBU,MAPkBV,CAAAA,UAODW,KAPCX,CAAAA,GAAAA,CAAAA,GAAAA,MAAAA,GAAAA,MAAAA,GAO8BY,MAP9BZ,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA,CAAAA,KAAAA,EAOgEA,CAPhEA,EAAAA,MAAAA,EAO2EA,CAP3EA,CAAAA,EAO+EA,CAP/EA;AAAfE,cAQNW,uBARMX,CAAAA,IAAAA,OAAAA,EAAAA,IAAAA,OAAAA,EAAAA,UAAAA,OAAAA,EAAAA,QAAAA,OAAAA,CAAAA,YAQ2FM,cAR3FN,CAQ0GF,CAR1GE,EAQ6Ga,OAR7Gb,EAQsHc,KARtHd,CAAAA,CAAAA;EAARC,QAAAA,SAAAA;EACdC,KAAOC,EASDF,OATCE,CASOS,CATPT,CAAAA;EACiBF,MAAAA,CAAAA,EAAAA,OAAAA;EAAxBC,MAAOE,CAAAA,EAUCW,WAVDX;EAC4CN,QAAAA,WAAAA;EAAfO,QAAAA,eAAAA;EAA2CP,WAAAA,CAAAA,MAAAA,EAAAA;IAAvBD,SAAAA,EAa1CS,cAb0CT,CAa3BC,CAb2BD,CAAAA;IACFC,UAAAA,CAAAA,EAAAA,GAAAA,GAahCG,OAbgCH,CAaxBc,CAbwBd,CAAAA;IAAfQ,MAAAA,CAAAA,EAAAA,OAAAA;IAA2CR,MAAAA,CAAAA,EAetEiB,WAfsEjB;EAAvBD,CAAAA;EATTQ,IAAAA,CAAAA,GAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CA0B/BS,KA1B+BT,CAAAA,CAAAA,EA0BtBJ,OA1BsBI,CA0BdL,cA1BcK,CA0BCP,CA1BDO,CAAAA,CAAAA;EAA6BT,MAAAA,CAAAA,KAAAA,CAAAA,EA2BjEiB,OA3BiEjB,GA2BvDoB,WA3BuDpB,CA2B3CiB,OA3B2CjB,CAAAA,CAAAA,EA2BhCK,OA3BgCL,CA2BxBI,cA3BwBJ,CA2BTE,CA3BSF,CAAAA,CAAAA;EAA+B,KAAA,CAAA,CAAA,EA4BtGqB,KA5BsG,CAAA,EA4B9FhB,OA5B8F,CA4BtFD,cA5BsF,CA4BvEF,CA5BuE,CAAA,CAAA;EAW3FS,CAkBnBL,MAAAA,CAAOC,aAAAA,GAlBgB,EAAA,IAAA;EAAyBL,CAmBhDI,MAAAA,CAAOE,YAAAA,GAnByCN,EAmBxBG,OAnBwBH,CAAAA,IAAAA,CAAAA;;AAAqCA,iBAqBlEoB,sBArBkEpB,CAAAA,CAAAA,EAAAA,UAAAA,OAAAA,EAAAA,EAAAA,CAAAA,EAAAA,OAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,OAAAA,EAAAA,KAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAqB2BQ,cArB3BR,CAqB0CA,CArB1CA,EAqB6Ce,OArB7Cf,EAqBsDgB,KArBtDhB,CAAAA,EAAAA,CAAAA,EAqBiEc,CArBjEd,EAAAA,GAAAA,IAAAA,EAqB6EqB,CArB7ErB,EAAAA,GAqBmFQ,cArBnFR,CAqBkGsB,CArBlGtB,EAqBqGuB,OArBrGvB,EAqB8GwB,KArB9GxB,CAAAA,EAAAA,SAAAA,EAqBiIQ,cArBjIR,CAqBgJA,CArBhJA,EAqBmJe,OArBnJf,EAqB4JgB,KArB5JhB,CAAAA,EAAAA,UAAAA,EAAAA,GAAAA,GAqBsLG,OArBtLH,CAqB8Lc,CArB9Ld,CAAAA,EAAAA,MAAAA,EAqB0MiB,WArB1MjB,GAAAA,SAAAA,EAAAA,GAAAA,IAAAA,EAqB4OqB,CArB5OrB,CAAAA,EAqBgPG,OArBhPH,CAAAA;EAAfQ,MAAAA,EAsB/DA,cAtB+DA,CAsBhDc,CAtBgDd,EAsB7Ce,OAtB6Cf,EAsBpCgB,KAtBoChB,CAAAA;EAAc,KAAA,EAuB9EiB,OAvB8E,CAuBtEX,CAvBsE,CAAA;AACzF,CAAA,CAAA"}
@@ -162,12 +162,14 @@ var FakeListChatModel = class extends require_language_models_chat_models.BaseCh
162
162
  i = 0;
163
163
  sleep;
164
164
  emitCustomEvent = false;
165
+ generationInfo;
165
166
  constructor(params) {
166
167
  super(params);
167
- const { responses, sleep, emitCustomEvent } = params;
168
+ const { responses, sleep, emitCustomEvent, generationInfo } = params;
168
169
  this.responses = responses;
169
170
  this.sleep = sleep;
170
171
  this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;
172
+ this.generationInfo = generationInfo;
171
173
  }
172
174
  _combineLLMOutput() {
173
175
  return [];
@@ -199,10 +201,13 @@ var FakeListChatModel = class extends require_language_models_chat_models.BaseCh
199
201
  const response = this._currentResponse();
200
202
  this._incrementResponse();
201
203
  if (this.emitCustomEvent) await runManager?.handleCustomEvent("some_test_event", { someval: true });
202
- for await (const text of response) {
204
+ const responseChars = [...response];
205
+ for (let i = 0; i < responseChars.length; i++) {
206
+ const text = responseChars[i];
207
+ const isLastChunk = i === responseChars.length - 1;
203
208
  await this._sleepIfRequested();
204
209
  if (options?.thrownErrorString) throw new Error(options.thrownErrorString);
205
- const chunk = this._createResponseChunk(text);
210
+ const chunk = this._createResponseChunk(text, isLastChunk ? this.generationInfo : void 0);
206
211
  yield chunk;
207
212
  runManager?.handleLLMNewToken(text);
208
213
  }
@@ -215,10 +220,11 @@ var FakeListChatModel = class extends require_language_models_chat_models.BaseCh
215
220
  setTimeout(() => resolve(), this.sleep);
216
221
  });
217
222
  }
218
- _createResponseChunk(text) {
223
+ _createResponseChunk(text, generationInfo) {
219
224
  return new require_outputs.ChatGenerationChunk({
220
225
  message: new require_ai.AIMessageChunk({ content: text }),
221
- text
226
+ text,
227
+ generationInfo
222
228
  });
223
229
  }
224
230
  _currentResponse() {
@@ -1 +1 @@
1
- {"version":3,"file":"chat_models.cjs","names":["BaseChatModel","messages: BaseMessage[]","options?: this[\"ParsedCallOptions\"]","runManager?: CallbackManagerForLLMRun","AIMessage","tools: (StructuredTool | ToolSpec)[]","toJsonSchema","_options: this[\"ParsedCallOptions\"]","_runManager?: CallbackManagerForLLMRun","generation: ChatResult","_messages: BaseMessage[]","ChatGenerationChunk","AIMessageChunk","params: FakeChatInput","text: string","options: this[\"ParsedCallOptions\"]","_params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>","_config?: StructuredOutputMethodOptions<boolean>","RunnableLambda"],"sources":["../../../src/utils/testing/chat_models.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n BaseChatModelParams,\n} from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport {\n BaseMessage,\n AIMessage,\n AIMessageChunk,\n} from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable, RunnableLambda } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport {\n StructuredOutputMethodParams,\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"../../language_models/base.js\";\n\nimport { toJsonSchema } from \"../json_schema.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>; // Either a Zod schema *or* a plain JSON-Schema object\n}\n\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions\n extends BaseChatModelCallOptions {}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\n\nexport class FakeChatModel extends BaseChatModel {\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake\";\n }\n\n async _generate(\n messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (options?.stop?.length) {\n return {\n generations: [\n {\n message: new AIMessage(options.stop[0]),\n text: options.stop[0],\n },\n ],\n };\n }\n const text = messages\n .map((m) => {\n if (typeof m.content === \"string\") {\n return m.content;\n }\n return JSON.stringify(m.content, null, 2);\n })\n .join(\"\\n\");\n await runManager?.handleLLMNewToken(text);\n return {\n generations: [\n {\n message: new AIMessage(text),\n text,\n },\n ],\n llmOutput: {},\n };\n }\n}\n\nexport class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep = 50;\n\n responses: BaseMessage[] = [];\n\n chunks: AIMessageChunk[] = [];\n\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\" = \"openai\";\n\n thrownErrorString?: string;\n\n private tools: (StructuredTool | ToolSpec)[] = [];\n\n constructor({\n sleep = 50,\n responses = [],\n chunks = [],\n toolStyle = \"openai\",\n thrownErrorString,\n ...rest\n }: FakeStreamingChatModelFields & BaseLLMParams) {\n super(rest);\n this.sleep = sleep;\n this.responses = responses;\n this.chunks = chunks;\n this.toolStyle = toolStyle;\n this.thrownErrorString = thrownErrorString;\n }\n\n _llmType() {\n return \"fake\";\n }\n\n bindTools(tools: (StructuredTool | ToolSpec)[]) {\n const merged = [...this.tools, ...tools];\n\n const toolDicts = merged.map((t) => {\n switch (this.toolStyle) {\n case \"openai\":\n return {\n type: \"function\",\n function: {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n },\n };\n case \"anthropic\":\n return {\n name: t.name,\n description: t.description,\n input_schema: toJsonSchema(t.schema),\n };\n case \"bedrock\":\n return {\n toolSpec: {\n name: t.name,\n description: t.description,\n inputSchema: toJsonSchema(t.schema),\n },\n };\n case \"google\":\n return {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n };\n default:\n throw new Error(`Unsupported tool style: ${this.toolStyle}`);\n }\n });\n\n const wrapped =\n this.toolStyle === \"google\"\n ? [{ functionDeclarations: toolDicts }]\n : toolDicts;\n\n /* creating a *new* instance – mirrors LangChain .bind semantics for type-safety and avoiding noise */\n const next = new FakeStreamingChatModel({\n sleep: this.sleep,\n responses: this.responses,\n chunks: this.chunks,\n toolStyle: this.toolStyle,\n thrownErrorString: this.thrownErrorString,\n });\n next.tools = merged;\n\n return next.withConfig({ tools: wrapped } as BaseChatModelCallOptions);\n }\n\n async _generate(\n messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n _runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n\n const content = this.responses?.[0]?.content ?? messages[0].content ?? \"\";\n\n const generation: ChatResult = {\n generations: [\n {\n text: \"\",\n message: new AIMessage({\n content,\n tool_calls: this.chunks?.[0]?.tool_calls,\n }),\n },\n ],\n };\n\n return generation;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n if (this.chunks?.length) {\n for (const msgChunk of this.chunks) {\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: msgChunk.content,\n tool_calls: msgChunk.tool_calls,\n additional_kwargs: msgChunk.additional_kwargs ?? {},\n }),\n text: msgChunk.content?.toString() ?? \"\",\n });\n\n yield cg;\n await runManager?.handleLLMNewToken(\n msgChunk.content as string,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n return;\n }\n\n const fallback =\n this.responses?.[0] ??\n new AIMessage(\n typeof _messages[0].content === \"string\" ? _messages[0].content : \"\"\n );\n const text = typeof fallback.content === \"string\" ? fallback.content : \"\";\n\n for (const ch of text) {\n await new Promise((r) => setTimeout(r, this.sleep));\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({ content: ch }),\n text: ch,\n });\n yield cg;\n await runManager?.handleLLMNewToken(\n ch,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n }\n}\n\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n\n emitCustomEvent?: boolean;\n}\n\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name() {\n return \"FakeListChatModel\";\n }\n\n lc_serializable = true;\n\n responses: string[];\n\n i = 0;\n\n sleep?: number;\n\n emitCustomEvent = false;\n\n constructor(params: FakeChatInput) {\n super(params);\n const { responses, sleep, emitCustomEvent } = params;\n this.responses = responses;\n this.sleep = sleep;\n this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;\n }\n\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake-list\";\n }\n\n async _generate(\n _messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n if (options?.stop?.length) {\n return {\n generations: [this._formatGeneration(options.stop[0])],\n };\n } else {\n const response = this._currentResponse();\n this._incrementResponse();\n\n return {\n generations: [this._formatGeneration(response)],\n llmOutput: {},\n };\n }\n }\n\n _formatGeneration(text: string) {\n return {\n message: new AIMessage(text),\n text,\n };\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const response = this._currentResponse();\n this._incrementResponse();\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n for await (const text of response) {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n const chunk = this._createResponseChunk(text);\n yield chunk;\n // eslint-disable-next-line no-void\n void runManager?.handleLLMNewToken(text);\n }\n }\n\n async _sleepIfRequested() {\n if (this.sleep !== undefined) {\n await this._sleep();\n }\n }\n\n async _sleep() {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), this.sleep);\n });\n }\n\n _createResponseChunk(text: string): ChatGenerationChunk {\n return new ChatGenerationChunk({\n message: new AIMessageChunk({ content: text }),\n text,\n });\n }\n\n _currentResponse() {\n return this.responses[this.i];\n }\n\n _incrementResponse() {\n if (this.i < this.responses.length - 1) {\n this.i += 1;\n } else {\n this.i = 0;\n }\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, false>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, true>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n _config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n return RunnableLambda.from(async (input) => {\n const message = await this.invoke(input);\n if (message.tool_calls?.[0]?.args) {\n return message.tool_calls[0].args as RunOutput;\n }\n if (typeof message.content === \"string\") {\n return JSON.parse(message.content);\n }\n throw new Error(\"No structured output found\");\n }) as Runnable;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chat_models.cjs","names":["BaseChatModel","messages: BaseMessage[]","options?: this[\"ParsedCallOptions\"]","runManager?: CallbackManagerForLLMRun","AIMessage","tools: (StructuredTool | ToolSpec)[]","toJsonSchema","_options: this[\"ParsedCallOptions\"]","_runManager?: CallbackManagerForLLMRun","generation: ChatResult","_messages: BaseMessage[]","ChatGenerationChunk","AIMessageChunk","params: FakeChatInput","text: string","options: this[\"ParsedCallOptions\"]","generationInfo?: Record<string, any>","_params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>","_config?: StructuredOutputMethodOptions<boolean>","RunnableLambda"],"sources":["../../../src/utils/testing/chat_models.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n BaseChatModelParams,\n} from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport {\n BaseMessage,\n AIMessage,\n AIMessageChunk,\n} from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable, RunnableLambda } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport {\n StructuredOutputMethodParams,\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"../../language_models/base.js\";\n\nimport { toJsonSchema } from \"../json_schema.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>; // Either a Zod schema *or* a plain JSON-Schema object\n}\n\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions\n extends BaseChatModelCallOptions {}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\n\nexport class FakeChatModel extends BaseChatModel {\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake\";\n }\n\n async _generate(\n messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (options?.stop?.length) {\n return {\n generations: [\n {\n message: new AIMessage(options.stop[0]),\n text: options.stop[0],\n },\n ],\n };\n }\n const text = messages\n .map((m) => {\n if (typeof m.content === \"string\") {\n return m.content;\n }\n return JSON.stringify(m.content, null, 2);\n })\n .join(\"\\n\");\n await runManager?.handleLLMNewToken(text);\n return {\n generations: [\n {\n message: new AIMessage(text),\n text,\n },\n ],\n llmOutput: {},\n };\n }\n}\n\nexport class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep = 50;\n\n responses: BaseMessage[] = [];\n\n chunks: AIMessageChunk[] = [];\n\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\" = \"openai\";\n\n thrownErrorString?: string;\n\n private tools: (StructuredTool | ToolSpec)[] = [];\n\n constructor({\n sleep = 50,\n responses = [],\n chunks = [],\n toolStyle = \"openai\",\n thrownErrorString,\n ...rest\n }: FakeStreamingChatModelFields & BaseLLMParams) {\n super(rest);\n this.sleep = sleep;\n this.responses = responses;\n this.chunks = chunks;\n this.toolStyle = toolStyle;\n this.thrownErrorString = thrownErrorString;\n }\n\n _llmType() {\n return \"fake\";\n }\n\n bindTools(tools: (StructuredTool | ToolSpec)[]) {\n const merged = [...this.tools, ...tools];\n\n const toolDicts = merged.map((t) => {\n switch (this.toolStyle) {\n case \"openai\":\n return {\n type: \"function\",\n function: {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n },\n };\n case \"anthropic\":\n return {\n name: t.name,\n description: t.description,\n input_schema: toJsonSchema(t.schema),\n };\n case \"bedrock\":\n return {\n toolSpec: {\n name: t.name,\n description: t.description,\n inputSchema: toJsonSchema(t.schema),\n },\n };\n case \"google\":\n return {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n };\n default:\n throw new Error(`Unsupported tool style: ${this.toolStyle}`);\n }\n });\n\n const wrapped =\n this.toolStyle === \"google\"\n ? [{ functionDeclarations: toolDicts }]\n : toolDicts;\n\n /* creating a *new* instance – mirrors LangChain .bind semantics for type-safety and avoiding noise */\n const next = new FakeStreamingChatModel({\n sleep: this.sleep,\n responses: this.responses,\n chunks: this.chunks,\n toolStyle: this.toolStyle,\n thrownErrorString: this.thrownErrorString,\n });\n next.tools = merged;\n\n return next.withConfig({ tools: wrapped } as BaseChatModelCallOptions);\n }\n\n async _generate(\n messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n _runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n\n const content = this.responses?.[0]?.content ?? messages[0].content ?? \"\";\n\n const generation: ChatResult = {\n generations: [\n {\n text: \"\",\n message: new AIMessage({\n content,\n tool_calls: this.chunks?.[0]?.tool_calls,\n }),\n },\n ],\n };\n\n return generation;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n if (this.chunks?.length) {\n for (const msgChunk of this.chunks) {\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: msgChunk.content,\n tool_calls: msgChunk.tool_calls,\n additional_kwargs: msgChunk.additional_kwargs ?? {},\n }),\n text: msgChunk.content?.toString() ?? \"\",\n });\n\n yield cg;\n await runManager?.handleLLMNewToken(\n msgChunk.content as string,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n return;\n }\n\n const fallback =\n this.responses?.[0] ??\n new AIMessage(\n typeof _messages[0].content === \"string\" ? _messages[0].content : \"\"\n );\n const text = typeof fallback.content === \"string\" ? fallback.content : \"\";\n\n for (const ch of text) {\n await new Promise((r) => setTimeout(r, this.sleep));\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({ content: ch }),\n text: ch,\n });\n yield cg;\n await runManager?.handleLLMNewToken(\n ch,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n }\n}\n\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n\n emitCustomEvent?: boolean;\n\n /**\n * Generation info to include on the last chunk during streaming.\n * This gets merged into response_metadata by the base chat model.\n * Useful for testing response_metadata propagation (e.g., finish_reason).\n */\n generationInfo?: Record<string, unknown>;\n}\n\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name() {\n return \"FakeListChatModel\";\n }\n\n lc_serializable = true;\n\n responses: string[];\n\n i = 0;\n\n sleep?: number;\n\n emitCustomEvent = false;\n\n generationInfo?: Record<string, unknown>;\n\n constructor(params: FakeChatInput) {\n super(params);\n const { responses, sleep, emitCustomEvent, generationInfo } = params;\n this.responses = responses;\n this.sleep = sleep;\n this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;\n this.generationInfo = generationInfo;\n }\n\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake-list\";\n }\n\n async _generate(\n _messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n if (options?.stop?.length) {\n return {\n generations: [this._formatGeneration(options.stop[0])],\n };\n } else {\n const response = this._currentResponse();\n this._incrementResponse();\n\n return {\n generations: [this._formatGeneration(response)],\n llmOutput: {},\n };\n }\n }\n\n _formatGeneration(text: string) {\n return {\n message: new AIMessage(text),\n text,\n };\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const response = this._currentResponse();\n this._incrementResponse();\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n const responseChars = [...response];\n for (let i = 0; i < responseChars.length; i++) {\n const text = responseChars[i];\n const isLastChunk = i === responseChars.length - 1;\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n // Include generationInfo on the last chunk (like real providers do)\n // This gets merged into response_metadata by the base chat model\n const chunk = this._createResponseChunk(\n text,\n isLastChunk ? this.generationInfo : undefined\n );\n yield chunk;\n // eslint-disable-next-line no-void\n void runManager?.handleLLMNewToken(text);\n }\n }\n\n async _sleepIfRequested() {\n if (this.sleep !== undefined) {\n await this._sleep();\n }\n }\n\n async _sleep() {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), this.sleep);\n });\n }\n\n _createResponseChunk(\n text: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>\n ): ChatGenerationChunk {\n return new ChatGenerationChunk({\n message: new AIMessageChunk({ content: text }),\n text,\n generationInfo,\n });\n }\n\n _currentResponse() {\n return this.responses[this.i];\n }\n\n _incrementResponse() {\n if (this.i < this.responses.length - 1) {\n this.i += 1;\n } else {\n this.i = 0;\n }\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, false>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, true>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n _config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n return RunnableLambda.from(async (input) => {\n const message = await this.invoke(input);\n if (message.tool_calls?.[0]?.args) {\n return message.tool_calls[0].args as RunOutput;\n }\n if (typeof message.content === \"string\") {\n return JSON.parse(message.content);\n }\n throw new Error(\"No structured output found\");\n }) as Runnable;\n }\n}\n"],"mappings":"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"}
@@ -70,6 +70,12 @@ interface FakeChatInput extends BaseChatModelParams {
70
70
  /** Time to sleep in milliseconds between responses */
71
71
  sleep?: number;
72
72
  emitCustomEvent?: boolean;
73
+ /**
74
+ * Generation info to include on the last chunk during streaming.
75
+ * This gets merged into response_metadata by the base chat model.
76
+ * Useful for testing response_metadata propagation (e.g., finish_reason).
77
+ */
78
+ generationInfo?: Record<string, unknown>;
73
79
  }
74
80
  interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {
75
81
  thrownErrorString?: string;
@@ -101,6 +107,7 @@ declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptio
101
107
  i: number;
102
108
  sleep?: number;
103
109
  emitCustomEvent: boolean;
110
+ generationInfo?: Record<string, unknown>;
104
111
  constructor(params: FakeChatInput);
105
112
  _combineLLMOutput(): never[];
106
113
  _llmType(): string;
@@ -112,7 +119,7 @@ declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptio
112
119
  _streamResponseChunks(_messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
113
120
  _sleepIfRequested(): Promise<void>;
114
121
  _sleep(): Promise<void>;
115
- _createResponseChunk(text: string): ChatGenerationChunk;
122
+ _createResponseChunk(text: string, generationInfo?: Record<string, any>): ChatGenerationChunk;
116
123
  _currentResponse(): string;
117
124
  _incrementResponse(): void;
118
125
  withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, false> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat_models.d.cts","names":["CallbackManagerForLLMRun","BaseChatModel","BaseChatModelCallOptions","BaseChatModelParams","BaseLLMParams","BaseMessage","AIMessage","AIMessageChunk","ChatResult","ChatGenerationChunk","Runnable","StructuredTool","StructuredOutputMethodParams","BaseLanguageModelInput","StructuredOutputMethodOptions","InteropZodType","ToolSpec","Record","FakeStreamingChatModelCallOptions","FakeStreamingChatModelFields","FakeChatModel","Promise","FakeStreamingChatModel","sleep","responses","chunks","toolStyle","thrownErrorString","______messages_message_js0","MessageStructure","AsyncGenerator","FakeChatInput","FakeListChatModelCallOptions","FakeListChatModel","RunOutput"],"sources":["../../../src/utils/testing/chat_models.d.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams } from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport { BaseMessage, AIMessage, AIMessageChunk } from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport { StructuredOutputMethodParams, BaseLanguageModelInput, StructuredOutputMethodOptions } from \"../../language_models/base.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>;\n}\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions extends BaseChatModelCallOptions {\n}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\nexport declare class FakeChatModel extends BaseChatModel {\n _combineLLMOutput(): never[];\n _llmType(): string;\n _generate(messages: BaseMessage[], options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n}\nexport declare class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep: number;\n responses: BaseMessage[];\n chunks: AIMessageChunk[];\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n thrownErrorString?: string;\n private tools;\n constructor({ sleep, responses, chunks, toolStyle, thrownErrorString, ...rest }: FakeStreamingChatModelFields & BaseLLMParams);\n _llmType(): string;\n bindTools(tools: (StructuredTool | ToolSpec)[]): Runnable<BaseLanguageModelInput, AIMessageChunk<import(\"../../messages/message.js\").MessageStructure>, FakeStreamingChatModelCallOptions>;\n _generate(messages: BaseMessage[], _options: this[\"ParsedCallOptions\"], _runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n _streamResponseChunks(_messages: BaseMessage[], _options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n}\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n emitCustomEvent?: boolean;\n /**\n * Generation info to include on the last chunk during streaming.\n * This gets merged into response_metadata by the base chat model.\n * Useful for testing response_metadata propagation (e.g., finish_reason).\n */\n generationInfo?: Record<string, unknown>;\n}\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name(): string;\n lc_serializable: boolean;\n responses: string[];\n i: number;\n sleep?: number;\n emitCustomEvent: boolean;\n generationInfo?: Record<string, unknown>;\n constructor(params: FakeChatInput);\n _combineLLMOutput(): never[];\n _llmType(): string;\n _generate(_messages: BaseMessage[], options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n _formatGeneration(text: string): {\n message: AIMessage<import(\"../../messages/message.js\").MessageStructure>;\n text: string;\n };\n _streamResponseChunks(_messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n _sleepIfRequested(): Promise<void>;\n _sleep(): Promise<void>;\n _createResponseChunk(text: string, generationInfo?: Record<string, any>): ChatGenerationChunk;\n _currentResponse(): string;\n _incrementResponse(): void;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, false> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, true> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {\n raw: BaseMessage;\n parsed: RunOutput;\n }>;\n}\n//# sourceMappingURL=chat_models.d.ts.map"],"mappings":"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"}
@@ -71,6 +71,12 @@ interface FakeChatInput extends BaseChatModelParams {
71
71
  /** Time to sleep in milliseconds between responses */
72
72
  sleep?: number;
73
73
  emitCustomEvent?: boolean;
74
+ /**
75
+ * Generation info to include on the last chunk during streaming.
76
+ * This gets merged into response_metadata by the base chat model.
77
+ * Useful for testing response_metadata propagation (e.g., finish_reason).
78
+ */
79
+ generationInfo?: Record<string, unknown>;
74
80
  }
75
81
  interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {
76
82
  thrownErrorString?: string;
@@ -102,6 +108,7 @@ declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptio
102
108
  i: number;
103
109
  sleep?: number;
104
110
  emitCustomEvent: boolean;
111
+ generationInfo?: Record<string, unknown>;
105
112
  constructor(params: FakeChatInput);
106
113
  _combineLLMOutput(): never[];
107
114
  _llmType(): string;
@@ -113,7 +120,7 @@ declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptio
113
120
  _streamResponseChunks(_messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
114
121
  _sleepIfRequested(): Promise<void>;
115
122
  _sleep(): Promise<void>;
116
- _createResponseChunk(text: string): ChatGenerationChunk;
123
+ _createResponseChunk(text: string, generationInfo?: Record<string, any>): ChatGenerationChunk;
117
124
  _currentResponse(): string;
118
125
  _incrementResponse(): void;
119
126
  withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, false> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat_models.d.ts","names":["CallbackManagerForLLMRun","BaseChatModel","BaseChatModelCallOptions","BaseChatModelParams","BaseLLMParams","BaseMessage","AIMessage","AIMessageChunk","ChatResult","ChatGenerationChunk","Runnable","StructuredTool","StructuredOutputMethodParams","BaseLanguageModelInput","StructuredOutputMethodOptions","InteropZodType","ToolSpec","Record","FakeStreamingChatModelCallOptions","FakeStreamingChatModelFields","FakeChatModel","Promise","FakeStreamingChatModel","sleep","responses","chunks","toolStyle","thrownErrorString","______messages_message_js0","MessageStructure","AsyncGenerator","FakeChatInput","FakeListChatModelCallOptions","FakeListChatModel","RunOutput"],"sources":["../../../src/utils/testing/chat_models.d.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams } from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport { BaseMessage, AIMessage, AIMessageChunk } from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport { StructuredOutputMethodParams, BaseLanguageModelInput, StructuredOutputMethodOptions } from \"../../language_models/base.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>;\n}\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions extends BaseChatModelCallOptions {\n}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\nexport declare class FakeChatModel extends BaseChatModel {\n _combineLLMOutput(): never[];\n _llmType(): string;\n _generate(messages: BaseMessage[], options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n}\nexport declare class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep: number;\n responses: BaseMessage[];\n chunks: AIMessageChunk[];\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n thrownErrorString?: string;\n private tools;\n constructor({ sleep, responses, chunks, toolStyle, thrownErrorString, ...rest }: FakeStreamingChatModelFields & BaseLLMParams);\n _llmType(): string;\n bindTools(tools: (StructuredTool | ToolSpec)[]): Runnable<BaseLanguageModelInput, AIMessageChunk<import(\"../../messages/message.js\").MessageStructure>, FakeStreamingChatModelCallOptions>;\n _generate(messages: BaseMessage[], _options: this[\"ParsedCallOptions\"], _runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n _streamResponseChunks(_messages: BaseMessage[], _options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n}\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n emitCustomEvent?: boolean;\n /**\n * Generation info to include on the last chunk during streaming.\n * This gets merged into response_metadata by the base chat model.\n * Useful for testing response_metadata propagation (e.g., finish_reason).\n */\n generationInfo?: Record<string, unknown>;\n}\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport declare class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name(): string;\n lc_serializable: boolean;\n responses: string[];\n i: number;\n sleep?: number;\n emitCustomEvent: boolean;\n generationInfo?: Record<string, unknown>;\n constructor(params: FakeChatInput);\n _combineLLMOutput(): never[];\n _llmType(): string;\n _generate(_messages: BaseMessage[], options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;\n _formatGeneration(text: string): {\n message: AIMessage<import(\"../../messages/message.js\").MessageStructure>;\n text: string;\n };\n _streamResponseChunks(_messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n _sleepIfRequested(): Promise<void>;\n _sleep(): Promise<void>;\n _createResponseChunk(text: string, generationInfo?: Record<string, any>): ChatGenerationChunk;\n _currentResponse(): string;\n _incrementResponse(): void;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, false> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(_params: StructuredOutputMethodParams<RunOutput, true> | InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {\n raw: BaseMessage;\n parsed: RunOutput;\n }>;\n}\n//# sourceMappingURL=chat_models.d.ts.map"],"mappings":"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"}
@@ -162,12 +162,14 @@ var FakeListChatModel = class extends BaseChatModel {
162
162
  i = 0;
163
163
  sleep;
164
164
  emitCustomEvent = false;
165
+ generationInfo;
165
166
  constructor(params) {
166
167
  super(params);
167
- const { responses, sleep, emitCustomEvent } = params;
168
+ const { responses, sleep, emitCustomEvent, generationInfo } = params;
168
169
  this.responses = responses;
169
170
  this.sleep = sleep;
170
171
  this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;
172
+ this.generationInfo = generationInfo;
171
173
  }
172
174
  _combineLLMOutput() {
173
175
  return [];
@@ -199,10 +201,13 @@ var FakeListChatModel = class extends BaseChatModel {
199
201
  const response = this._currentResponse();
200
202
  this._incrementResponse();
201
203
  if (this.emitCustomEvent) await runManager?.handleCustomEvent("some_test_event", { someval: true });
202
- for await (const text of response) {
204
+ const responseChars = [...response];
205
+ for (let i = 0; i < responseChars.length; i++) {
206
+ const text = responseChars[i];
207
+ const isLastChunk = i === responseChars.length - 1;
203
208
  await this._sleepIfRequested();
204
209
  if (options?.thrownErrorString) throw new Error(options.thrownErrorString);
205
- const chunk = this._createResponseChunk(text);
210
+ const chunk = this._createResponseChunk(text, isLastChunk ? this.generationInfo : void 0);
206
211
  yield chunk;
207
212
  runManager?.handleLLMNewToken(text);
208
213
  }
@@ -215,10 +220,11 @@ var FakeListChatModel = class extends BaseChatModel {
215
220
  setTimeout(() => resolve(), this.sleep);
216
221
  });
217
222
  }
218
- _createResponseChunk(text) {
223
+ _createResponseChunk(text, generationInfo) {
219
224
  return new ChatGenerationChunk({
220
225
  message: new AIMessageChunk({ content: text }),
221
- text
226
+ text,
227
+ generationInfo
222
228
  });
223
229
  }
224
230
  _currentResponse() {
@@ -1 +1 @@
1
- {"version":3,"file":"chat_models.js","names":["messages: BaseMessage[]","options?: this[\"ParsedCallOptions\"]","runManager?: CallbackManagerForLLMRun","tools: (StructuredTool | ToolSpec)[]","_options: this[\"ParsedCallOptions\"]","_runManager?: CallbackManagerForLLMRun","generation: ChatResult","_messages: BaseMessage[]","params: FakeChatInput","text: string","options: this[\"ParsedCallOptions\"]","_params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>","_config?: StructuredOutputMethodOptions<boolean>"],"sources":["../../../src/utils/testing/chat_models.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n BaseChatModelParams,\n} from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport {\n BaseMessage,\n AIMessage,\n AIMessageChunk,\n} from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable, RunnableLambda } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport {\n StructuredOutputMethodParams,\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"../../language_models/base.js\";\n\nimport { toJsonSchema } from \"../json_schema.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>; // Either a Zod schema *or* a plain JSON-Schema object\n}\n\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions\n extends BaseChatModelCallOptions {}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\n\nexport class FakeChatModel extends BaseChatModel {\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake\";\n }\n\n async _generate(\n messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (options?.stop?.length) {\n return {\n generations: [\n {\n message: new AIMessage(options.stop[0]),\n text: options.stop[0],\n },\n ],\n };\n }\n const text = messages\n .map((m) => {\n if (typeof m.content === \"string\") {\n return m.content;\n }\n return JSON.stringify(m.content, null, 2);\n })\n .join(\"\\n\");\n await runManager?.handleLLMNewToken(text);\n return {\n generations: [\n {\n message: new AIMessage(text),\n text,\n },\n ],\n llmOutput: {},\n };\n }\n}\n\nexport class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep = 50;\n\n responses: BaseMessage[] = [];\n\n chunks: AIMessageChunk[] = [];\n\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\" = \"openai\";\n\n thrownErrorString?: string;\n\n private tools: (StructuredTool | ToolSpec)[] = [];\n\n constructor({\n sleep = 50,\n responses = [],\n chunks = [],\n toolStyle = \"openai\",\n thrownErrorString,\n ...rest\n }: FakeStreamingChatModelFields & BaseLLMParams) {\n super(rest);\n this.sleep = sleep;\n this.responses = responses;\n this.chunks = chunks;\n this.toolStyle = toolStyle;\n this.thrownErrorString = thrownErrorString;\n }\n\n _llmType() {\n return \"fake\";\n }\n\n bindTools(tools: (StructuredTool | ToolSpec)[]) {\n const merged = [...this.tools, ...tools];\n\n const toolDicts = merged.map((t) => {\n switch (this.toolStyle) {\n case \"openai\":\n return {\n type: \"function\",\n function: {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n },\n };\n case \"anthropic\":\n return {\n name: t.name,\n description: t.description,\n input_schema: toJsonSchema(t.schema),\n };\n case \"bedrock\":\n return {\n toolSpec: {\n name: t.name,\n description: t.description,\n inputSchema: toJsonSchema(t.schema),\n },\n };\n case \"google\":\n return {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n };\n default:\n throw new Error(`Unsupported tool style: ${this.toolStyle}`);\n }\n });\n\n const wrapped =\n this.toolStyle === \"google\"\n ? [{ functionDeclarations: toolDicts }]\n : toolDicts;\n\n /* creating a *new* instance – mirrors LangChain .bind semantics for type-safety and avoiding noise */\n const next = new FakeStreamingChatModel({\n sleep: this.sleep,\n responses: this.responses,\n chunks: this.chunks,\n toolStyle: this.toolStyle,\n thrownErrorString: this.thrownErrorString,\n });\n next.tools = merged;\n\n return next.withConfig({ tools: wrapped } as BaseChatModelCallOptions);\n }\n\n async _generate(\n messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n _runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n\n const content = this.responses?.[0]?.content ?? messages[0].content ?? \"\";\n\n const generation: ChatResult = {\n generations: [\n {\n text: \"\",\n message: new AIMessage({\n content,\n tool_calls: this.chunks?.[0]?.tool_calls,\n }),\n },\n ],\n };\n\n return generation;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n if (this.chunks?.length) {\n for (const msgChunk of this.chunks) {\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: msgChunk.content,\n tool_calls: msgChunk.tool_calls,\n additional_kwargs: msgChunk.additional_kwargs ?? {},\n }),\n text: msgChunk.content?.toString() ?? \"\",\n });\n\n yield cg;\n await runManager?.handleLLMNewToken(\n msgChunk.content as string,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n return;\n }\n\n const fallback =\n this.responses?.[0] ??\n new AIMessage(\n typeof _messages[0].content === \"string\" ? _messages[0].content : \"\"\n );\n const text = typeof fallback.content === \"string\" ? fallback.content : \"\";\n\n for (const ch of text) {\n await new Promise((r) => setTimeout(r, this.sleep));\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({ content: ch }),\n text: ch,\n });\n yield cg;\n await runManager?.handleLLMNewToken(\n ch,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n }\n}\n\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n\n emitCustomEvent?: boolean;\n}\n\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name() {\n return \"FakeListChatModel\";\n }\n\n lc_serializable = true;\n\n responses: string[];\n\n i = 0;\n\n sleep?: number;\n\n emitCustomEvent = false;\n\n constructor(params: FakeChatInput) {\n super(params);\n const { responses, sleep, emitCustomEvent } = params;\n this.responses = responses;\n this.sleep = sleep;\n this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;\n }\n\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake-list\";\n }\n\n async _generate(\n _messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n if (options?.stop?.length) {\n return {\n generations: [this._formatGeneration(options.stop[0])],\n };\n } else {\n const response = this._currentResponse();\n this._incrementResponse();\n\n return {\n generations: [this._formatGeneration(response)],\n llmOutput: {},\n };\n }\n }\n\n _formatGeneration(text: string) {\n return {\n message: new AIMessage(text),\n text,\n };\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const response = this._currentResponse();\n this._incrementResponse();\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n for await (const text of response) {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n const chunk = this._createResponseChunk(text);\n yield chunk;\n // eslint-disable-next-line no-void\n void runManager?.handleLLMNewToken(text);\n }\n }\n\n async _sleepIfRequested() {\n if (this.sleep !== undefined) {\n await this._sleep();\n }\n }\n\n async _sleep() {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), this.sleep);\n });\n }\n\n _createResponseChunk(text: string): ChatGenerationChunk {\n return new ChatGenerationChunk({\n message: new AIMessageChunk({ content: text }),\n text,\n });\n }\n\n _currentResponse() {\n return this.responses[this.i];\n }\n\n _incrementResponse() {\n if (this.i < this.responses.length - 1) {\n this.i += 1;\n } else {\n this.i = 0;\n }\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, false>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, true>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n _config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n return RunnableLambda.from(async (input) => {\n const message = await this.invoke(input);\n if (message.tool_calls?.[0]?.args) {\n return message.tool_calls[0].args as RunOutput;\n }\n if (typeof message.content === \"string\") {\n return JSON.parse(message.content);\n }\n throw new Error(\"No structured output found\");\n }) as Runnable;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chat_models.js","names":["messages: BaseMessage[]","options?: this[\"ParsedCallOptions\"]","runManager?: CallbackManagerForLLMRun","tools: (StructuredTool | ToolSpec)[]","_options: this[\"ParsedCallOptions\"]","_runManager?: CallbackManagerForLLMRun","generation: ChatResult","_messages: BaseMessage[]","params: FakeChatInput","text: string","options: this[\"ParsedCallOptions\"]","generationInfo?: Record<string, any>","_params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>","_config?: StructuredOutputMethodOptions<boolean>"],"sources":["../../../src/utils/testing/chat_models.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n BaseChatModelParams,\n} from \"../../language_models/chat_models.js\";\nimport { BaseLLMParams } from \"../../language_models/llms.js\";\nimport {\n BaseMessage,\n AIMessage,\n AIMessageChunk,\n} from \"../../messages/index.js\";\nimport { type ChatResult, ChatGenerationChunk } from \"../../outputs.js\";\nimport { Runnable, RunnableLambda } from \"../../runnables/base.js\";\nimport { StructuredTool } from \"../../tools/index.js\";\nimport {\n StructuredOutputMethodParams,\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"../../language_models/base.js\";\n\nimport { toJsonSchema } from \"../json_schema.js\";\nimport { InteropZodType } from \"../types/zod.js\";\n\n/** Minimal shape actually needed by `bindTools` */\nexport interface ToolSpec {\n name: string;\n description?: string;\n schema: InteropZodType | Record<string, unknown>; // Either a Zod schema *or* a plain JSON-Schema object\n}\n\n/**\n * Interface specific to the Fake Streaming Chat model.\n */\nexport interface FakeStreamingChatModelCallOptions\n extends BaseChatModelCallOptions {}\n/**\n * Interface for the Constructor-field specific to the Fake Streaming Chat model (all optional because we fill in defaults).\n */\nexport interface FakeStreamingChatModelFields extends BaseChatModelParams {\n /** Milliseconds to pause between fallback char-by-char chunks */\n sleep?: number;\n\n /** Full AI messages to fall back to when no `chunks` supplied */\n responses?: BaseMessage[];\n\n /** Exact chunks to emit (can include tool-call deltas) */\n chunks?: AIMessageChunk[];\n\n /** How tool specs are formatted in `bindTools` */\n toolStyle?: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\";\n\n /** Throw this error instead of streaming (useful in tests) */\n thrownErrorString?: string;\n}\n\nexport class FakeChatModel extends BaseChatModel {\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake\";\n }\n\n async _generate(\n messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (options?.stop?.length) {\n return {\n generations: [\n {\n message: new AIMessage(options.stop[0]),\n text: options.stop[0],\n },\n ],\n };\n }\n const text = messages\n .map((m) => {\n if (typeof m.content === \"string\") {\n return m.content;\n }\n return JSON.stringify(m.content, null, 2);\n })\n .join(\"\\n\");\n await runManager?.handleLLMNewToken(text);\n return {\n generations: [\n {\n message: new AIMessage(text),\n text,\n },\n ],\n llmOutput: {},\n };\n }\n}\n\nexport class FakeStreamingChatModel extends BaseChatModel<FakeStreamingChatModelCallOptions> {\n sleep = 50;\n\n responses: BaseMessage[] = [];\n\n chunks: AIMessageChunk[] = [];\n\n toolStyle: \"openai\" | \"anthropic\" | \"bedrock\" | \"google\" = \"openai\";\n\n thrownErrorString?: string;\n\n private tools: (StructuredTool | ToolSpec)[] = [];\n\n constructor({\n sleep = 50,\n responses = [],\n chunks = [],\n toolStyle = \"openai\",\n thrownErrorString,\n ...rest\n }: FakeStreamingChatModelFields & BaseLLMParams) {\n super(rest);\n this.sleep = sleep;\n this.responses = responses;\n this.chunks = chunks;\n this.toolStyle = toolStyle;\n this.thrownErrorString = thrownErrorString;\n }\n\n _llmType() {\n return \"fake\";\n }\n\n bindTools(tools: (StructuredTool | ToolSpec)[]) {\n const merged = [...this.tools, ...tools];\n\n const toolDicts = merged.map((t) => {\n switch (this.toolStyle) {\n case \"openai\":\n return {\n type: \"function\",\n function: {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n },\n };\n case \"anthropic\":\n return {\n name: t.name,\n description: t.description,\n input_schema: toJsonSchema(t.schema),\n };\n case \"bedrock\":\n return {\n toolSpec: {\n name: t.name,\n description: t.description,\n inputSchema: toJsonSchema(t.schema),\n },\n };\n case \"google\":\n return {\n name: t.name,\n description: t.description,\n parameters: toJsonSchema(t.schema),\n };\n default:\n throw new Error(`Unsupported tool style: ${this.toolStyle}`);\n }\n });\n\n const wrapped =\n this.toolStyle === \"google\"\n ? [{ functionDeclarations: toolDicts }]\n : toolDicts;\n\n /* creating a *new* instance – mirrors LangChain .bind semantics for type-safety and avoiding noise */\n const next = new FakeStreamingChatModel({\n sleep: this.sleep,\n responses: this.responses,\n chunks: this.chunks,\n toolStyle: this.toolStyle,\n thrownErrorString: this.thrownErrorString,\n });\n next.tools = merged;\n\n return next.withConfig({ tools: wrapped } as BaseChatModelCallOptions);\n }\n\n async _generate(\n messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n _runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n\n const content = this.responses?.[0]?.content ?? messages[0].content ?? \"\";\n\n const generation: ChatResult = {\n generations: [\n {\n text: \"\",\n message: new AIMessage({\n content,\n tool_calls: this.chunks?.[0]?.tool_calls,\n }),\n },\n ],\n };\n\n return generation;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n _options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n if (this.thrownErrorString) {\n throw new Error(this.thrownErrorString);\n }\n if (this.chunks?.length) {\n for (const msgChunk of this.chunks) {\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: msgChunk.content,\n tool_calls: msgChunk.tool_calls,\n additional_kwargs: msgChunk.additional_kwargs ?? {},\n }),\n text: msgChunk.content?.toString() ?? \"\",\n });\n\n yield cg;\n await runManager?.handleLLMNewToken(\n msgChunk.content as string,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n return;\n }\n\n const fallback =\n this.responses?.[0] ??\n new AIMessage(\n typeof _messages[0].content === \"string\" ? _messages[0].content : \"\"\n );\n const text = typeof fallback.content === \"string\" ? fallback.content : \"\";\n\n for (const ch of text) {\n await new Promise((r) => setTimeout(r, this.sleep));\n const cg = new ChatGenerationChunk({\n message: new AIMessageChunk({ content: ch }),\n text: ch,\n });\n yield cg;\n await runManager?.handleLLMNewToken(\n ch,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: cg }\n );\n }\n }\n}\n\n/**\n * Interface for the input parameters specific to the Fake List Chat model.\n */\nexport interface FakeChatInput extends BaseChatModelParams {\n /** Responses to return */\n responses: string[];\n\n /** Time to sleep in milliseconds between responses */\n sleep?: number;\n\n emitCustomEvent?: boolean;\n\n /**\n * Generation info to include on the last chunk during streaming.\n * This gets merged into response_metadata by the base chat model.\n * Useful for testing response_metadata propagation (e.g., finish_reason).\n */\n generationInfo?: Record<string, unknown>;\n}\n\nexport interface FakeListChatModelCallOptions extends BaseChatModelCallOptions {\n thrownErrorString?: string;\n}\n\n/**\n * A fake Chat Model that returns a predefined list of responses. It can be used\n * for testing purposes.\n * @example\n * ```typescript\n * const chat = new FakeListChatModel({\n * responses: [\"I'll callback later.\", \"You 'console' them!\"]\n * });\n *\n * const firstMessage = new HumanMessage(\"You want to hear a JavaScript joke?\");\n * const secondMessage = new HumanMessage(\"How do you cheer up a JavaScript developer?\");\n *\n * // Call the chat model with a message and log the response\n * const firstResponse = await chat.call([firstMessage]);\n * console.log({ firstResponse });\n *\n * const secondResponse = await chat.call([secondMessage]);\n * console.log({ secondResponse });\n * ```\n */\nexport class FakeListChatModel extends BaseChatModel<FakeListChatModelCallOptions> {\n static lc_name() {\n return \"FakeListChatModel\";\n }\n\n lc_serializable = true;\n\n responses: string[];\n\n i = 0;\n\n sleep?: number;\n\n emitCustomEvent = false;\n\n generationInfo?: Record<string, unknown>;\n\n constructor(params: FakeChatInput) {\n super(params);\n const { responses, sleep, emitCustomEvent, generationInfo } = params;\n this.responses = responses;\n this.sleep = sleep;\n this.emitCustomEvent = emitCustomEvent ?? this.emitCustomEvent;\n this.generationInfo = generationInfo;\n }\n\n _combineLLMOutput() {\n return [];\n }\n\n _llmType(): string {\n return \"fake-list\";\n }\n\n async _generate(\n _messages: BaseMessage[],\n options?: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n if (options?.stop?.length) {\n return {\n generations: [this._formatGeneration(options.stop[0])],\n };\n } else {\n const response = this._currentResponse();\n this._incrementResponse();\n\n return {\n generations: [this._formatGeneration(response)],\n llmOutput: {},\n };\n }\n }\n\n _formatGeneration(text: string) {\n return {\n message: new AIMessage(text),\n text,\n };\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const response = this._currentResponse();\n this._incrementResponse();\n if (this.emitCustomEvent) {\n await runManager?.handleCustomEvent(\"some_test_event\", {\n someval: true,\n });\n }\n\n const responseChars = [...response];\n for (let i = 0; i < responseChars.length; i++) {\n const text = responseChars[i];\n const isLastChunk = i === responseChars.length - 1;\n await this._sleepIfRequested();\n if (options?.thrownErrorString) {\n throw new Error(options.thrownErrorString);\n }\n // Include generationInfo on the last chunk (like real providers do)\n // This gets merged into response_metadata by the base chat model\n const chunk = this._createResponseChunk(\n text,\n isLastChunk ? this.generationInfo : undefined\n );\n yield chunk;\n // eslint-disable-next-line no-void\n void runManager?.handleLLMNewToken(text);\n }\n }\n\n async _sleepIfRequested() {\n if (this.sleep !== undefined) {\n await this._sleep();\n }\n }\n\n async _sleep() {\n return new Promise<void>((resolve) => {\n setTimeout(() => resolve(), this.sleep);\n });\n }\n\n _createResponseChunk(\n text: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generationInfo?: Record<string, any>\n ): ChatGenerationChunk {\n return new ChatGenerationChunk({\n message: new AIMessageChunk({ content: text }),\n text,\n generationInfo,\n });\n }\n\n _currentResponse() {\n return this.responses[this.i];\n }\n\n _incrementResponse() {\n if (this.i < this.responses.length - 1) {\n this.i += 1;\n } else {\n this.i = 0;\n }\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, false>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, true>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>\n >(\n _params:\n | StructuredOutputMethodParams<RunOutput, boolean>\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n _config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n return RunnableLambda.from(async (input) => {\n const message = await this.invoke(input);\n if (message.tool_calls?.[0]?.args) {\n return message.tool_calls[0].args as RunOutput;\n }\n if (typeof message.content === \"string\") {\n return JSON.parse(message.content);\n }\n throw new Error(\"No structured output found\");\n }) as Runnable;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.cts","names":["Embeddings","EmbeddingsParams","SyntheticEmbeddingsParams","SyntheticEmbeddings","Promise","FakeEmbeddings"],"sources":["../../../src/utils/testing/embeddings.d.ts"],"sourcesContent":["import { Embeddings, EmbeddingsParams } from \"../../embeddings.js\";\n/**\n * An interface that defines additional parameters specific to the\n * SyntheticEmbeddings class.\n */\ninterface SyntheticEmbeddingsParams extends EmbeddingsParams {\n vectorSize: number;\n}\n/**\n * A class that provides synthetic embeddings by overriding the\n * embedDocuments and embedQuery methods to generate embeddings based on\n * the input documents. The embeddings are generated by converting each\n * document into chunks, calculating a numerical value for each chunk, and\n * returning an array of these values as the embedding.\n */\nexport declare class SyntheticEmbeddings extends Embeddings implements SyntheticEmbeddingsParams {\n vectorSize: number;\n constructor(params?: SyntheticEmbeddingsParams);\n /**\n * Generates synthetic embeddings for a list of documents.\n * @param documents List of documents to generate embeddings for.\n * @returns A promise that resolves with a list of synthetic embeddings for each document.\n */\n embedDocuments(documents: string[]): Promise<number[][]>;\n /**\n * Generates a synthetic embedding for a document. The document is\n * converted into chunks, a numerical value is calculated for each chunk,\n * and an array of these values is returned as the embedding.\n * @param document The document to generate an embedding for.\n * @returns A promise that resolves with a synthetic embedding for the document.\n */\n embedQuery(document: string): Promise<number[]>;\n}\n/**\n * A class that provides fake embeddings by overriding the embedDocuments\n * and embedQuery methods to return fixed values.\n */\nexport declare class FakeEmbeddings extends Embeddings {\n constructor(params?: EmbeddingsParams);\n /**\n * Generates fixed embeddings for a list of documents.\n * @param documents List of documents to generate embeddings for.\n * @returns A promise that resolves with a list of fixed embeddings for each document.\n */\n embedDocuments(documents: string[]): Promise<number[][]>;\n /**\n * Generates a fixed embedding for a query.\n * @param _ The query to generate an embedding for.\n * @returns A promise that resolves with a fixed embedding for the query.\n */\n embedQuery(_: string): Promise<number[]>;\n}\nexport {};\n//# sourceMappingURL=embeddings.d.ts.map"],"mappings":";;;;;;AAAmE;AAenE;UAVUE,yBAAAA,SAAkCD,gBAYnBC,CAAAA;EAMgBE,UAAAA,EAAAA,MAAAA;;;;AARuD;AAsBhG;;;;AAA4CJ,cAtBvBG,mBAAAA,SAA4BH,UAAAA,YAAsBE,yBAsB3BF,CAAAA;EAAU,UAAA,EAAA,MAAA;uBApB7BE;;;;;;uCAMgBE;;;;;;;;gCAQPA;;;;;;cAMbC,cAAAA,SAAuBL,UAAAA;uBACnBC;;;;;;uCAMgBG;;;;;;yBAMdA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","names":["Embeddings","EmbeddingsParams","SyntheticEmbeddingsParams","SyntheticEmbeddings","Promise","FakeEmbeddings"],"sources":["../../../src/utils/testing/embeddings.d.ts"],"sourcesContent":["import { Embeddings, EmbeddingsParams } from \"../../embeddings.js\";\n/**\n * An interface that defines additional parameters specific to the\n * SyntheticEmbeddings class.\n */\ninterface SyntheticEmbeddingsParams extends EmbeddingsParams {\n vectorSize: number;\n}\n/**\n * A class that provides synthetic embeddings by overriding the\n * embedDocuments and embedQuery methods to generate embeddings based on\n * the input documents. The embeddings are generated by converting each\n * document into chunks, calculating a numerical value for each chunk, and\n * returning an array of these values as the embedding.\n */\nexport declare class SyntheticEmbeddings extends Embeddings implements SyntheticEmbeddingsParams {\n vectorSize: number;\n constructor(params?: SyntheticEmbeddingsParams);\n /**\n * Generates synthetic embeddings for a list of documents.\n * @param documents List of documents to generate embeddings for.\n * @returns A promise that resolves with a list of synthetic embeddings for each document.\n */\n embedDocuments(documents: string[]): Promise<number[][]>;\n /**\n * Generates a synthetic embedding for a document. The document is\n * converted into chunks, a numerical value is calculated for each chunk,\n * and an array of these values is returned as the embedding.\n * @param document The document to generate an embedding for.\n * @returns A promise that resolves with a synthetic embedding for the document.\n */\n embedQuery(document: string): Promise<number[]>;\n}\n/**\n * A class that provides fake embeddings by overriding the embedDocuments\n * and embedQuery methods to return fixed values.\n */\nexport declare class FakeEmbeddings extends Embeddings {\n constructor(params?: EmbeddingsParams);\n /**\n * Generates fixed embeddings for a list of documents.\n * @param documents List of documents to generate embeddings for.\n * @returns A promise that resolves with a list of fixed embeddings for each document.\n */\n embedDocuments(documents: string[]): Promise<number[][]>;\n /**\n * Generates a fixed embedding for a query.\n * @param _ The query to generate an embedding for.\n * @returns A promise that resolves with a fixed embedding for the query.\n */\n embedQuery(_: string): Promise<number[]>;\n}\nexport {};\n//# sourceMappingURL=embeddings.d.ts.map"],"mappings":";;;;;;AAAmE;AAenE;UAVUE,yBAAAA,SAAkCD,gBAYnBC,CAAAA;EAMgBE,UAAAA,EAAAA,MAAAA;;;;AARuD;AAsBhG;;;;AAA4CJ,cAtBvBG,mBAAAA,SAA4BH,UAAAA,YAAsBE,yBAsB3BF,CAAAA;EAAU,UAAA,EAAA,MAAA;uBApB7BE;;;;;;uCAMgBE;;;;;;;;gCAQPA;;;;;;cAMbC,cAAAA,SAAuBL,UAAAA;uBACnBC;;;;;;uCAMgBG;;;;;;yBAMdA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.cts","names":["CallbackManagerForLLMRun","BaseLLMParams","LLM","GenerationChunk","FakeLLM","Promise","FakeStreamingLLM","AsyncGenerator"],"sources":["../../../src/utils/testing/llms.d.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport { BaseLLMParams, LLM } from \"../../language_models/llms.js\";\nimport { GenerationChunk } from \"../../outputs.js\";\nexport declare class FakeLLM extends LLM {\n response?: string;\n thrownErrorString?: string;\n constructor(fields: {\n response?: string;\n thrownErrorString?: string;\n } & BaseLLMParams);\n _llmType(): string;\n _call(prompt: string, _options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<string>;\n}\nexport declare class FakeStreamingLLM extends LLM {\n sleep?: number;\n responses?: string[];\n thrownErrorString?: string;\n constructor(fields: {\n sleep?: number;\n responses?: string[];\n thrownErrorString?: string;\n } & BaseLLMParams);\n _llmType(): string;\n _call(prompt: string): Promise<string>;\n _streamResponseChunks(input: string, _options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<GenerationChunk, void, unknown>;\n}\n//# sourceMappingURL=llms.d.ts.map"],"mappings":";;;;;cAGqBI,OAAAA,SAAgBF,GAAAA;;EAAhBE,iBAAO,CAAA,EAAA,MAAA;EAMpBH,WAAAA,CAAAA,MAAAA,EAAAA;IAEoED,QAAAA,CAAAA,EAAAA,MAAAA;IAA2BK,iBAAAA,CAAAA,EAAAA,MAAAA;EARlEH,CAAAA,GAM7BD,aAN6BC;EAAG,QAAA,CAAA,CAAA,EAAA,MAAA;EAUnBI,KAAAA,CAAAA,MAAAA,EAAAA,MAAgB,EAAA,QAAA,EAAA,IAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,CAAA,EAFuCN,wBAEvC,CAAA,EAFkEK,OAElE,CAAA,MAAA,CAAA;;AAUVA,cAVNC,gBAAAA,SAAyBJ,GAAAA,CAUnBG;EACiEL,KAAAA,CAAAA,EAAAA,MAAAA;EAA0CG,SAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAAfI,iBAAAA,CAAAA,EAAAA,MAAAA;EAXzEL,WAAAA,CAAAA,MAAAA,EAAAA;IAAG,KAAA,CAAA,EAAA,MAAA;;;MAQzCD;;yBAEmBI;0FACiEL,2BAA2BO,eAAeJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.ts","names":["CallbackManagerForLLMRun","BaseLLMParams","LLM","GenerationChunk","FakeLLM","Promise","FakeStreamingLLM","AsyncGenerator"],"sources":["../../../src/utils/testing/llms.d.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"../../callbacks/manager.js\";\nimport { BaseLLMParams, LLM } from \"../../language_models/llms.js\";\nimport { GenerationChunk } from \"../../outputs.js\";\nexport declare class FakeLLM extends LLM {\n response?: string;\n thrownErrorString?: string;\n constructor(fields: {\n response?: string;\n thrownErrorString?: string;\n } & BaseLLMParams);\n _llmType(): string;\n _call(prompt: string, _options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): Promise<string>;\n}\nexport declare class FakeStreamingLLM extends LLM {\n sleep?: number;\n responses?: string[];\n thrownErrorString?: string;\n constructor(fields: {\n sleep?: number;\n responses?: string[];\n thrownErrorString?: string;\n } & BaseLLMParams);\n _llmType(): string;\n _call(prompt: string): Promise<string>;\n _streamResponseChunks(input: string, _options?: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<GenerationChunk, void, unknown>;\n}\n//# sourceMappingURL=llms.d.ts.map"],"mappings":";;;;;cAGqBI,OAAAA,SAAgBF,GAAAA;;EAAhBE,iBAAO,CAAA,EAAA,MAAA;EAMpBH,WAAAA,CAAAA,MAAAA,EAAAA;IAEoED,QAAAA,CAAAA,EAAAA,MAAAA;IAA2BK,iBAAAA,CAAAA,EAAAA,MAAAA;EARlEH,CAAAA,GAM7BD,aAN6BC;EAAG,QAAA,CAAA,CAAA,EAAA,MAAA;EAUnBI,KAAAA,CAAAA,MAAAA,EAAAA,MAAgB,EAAA,QAAA,EAAA,IAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,CAAA,EAFuCN,wBAEvC,CAAA,EAFkEK,OAElE,CAAA,MAAA,CAAA;;AAUVA,cAVNC,gBAAAA,SAAyBJ,GAAAA,CAUnBG;EACiEL,KAAAA,CAAAA,EAAAA,MAAAA;EAA0CG,SAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAAfI,iBAAAA,CAAAA,EAAAA,MAAAA;EAXzEL,WAAAA,CAAAA,MAAAA,EAAAA;IAAG,KAAA,CAAA,EAAA,MAAA;;;MAQzCD;;yBAEmBI;0FACiEL,2BAA2BO,eAAeJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_history.d.cts","names":["BaseChatMessageHistory","BaseListChatMessageHistory","BaseMessage","BaseTracer","Run","FakeChatMessageHistory","Array","Promise","FakeListChatMessageHistory","FakeTracer"],"sources":["../../../src/utils/testing/message_history.d.ts"],"sourcesContent":["import { BaseChatMessageHistory, BaseListChatMessageHistory } from \"../../chat_history.js\";\nimport { BaseMessage } from \"../../messages/index.js\";\nimport { BaseTracer, Run } from \"../../tracers/base.js\";\nexport declare class FakeChatMessageHistory extends BaseChatMessageHistory {\n lc_namespace: string[];\n messages: Array<BaseMessage>;\n constructor();\n getMessages(): Promise<BaseMessage[]>;\n addMessage(message: BaseMessage): Promise<void>;\n addUserMessage(message: string): Promise<void>;\n addAIMessage(message: string): Promise<void>;\n clear(): Promise<void>;\n}\nexport declare class FakeListChatMessageHistory extends BaseListChatMessageHistory {\n lc_namespace: string[];\n messages: Array<BaseMessage>;\n constructor();\n addMessage(message: BaseMessage): Promise<void>;\n getMessages(): Promise<BaseMessage[]>;\n}\nexport declare class FakeTracer extends BaseTracer {\n name: string;\n runs: Run[];\n constructor();\n protected persistRun(run: Run): Promise<void>;\n}\n//# sourceMappingURL=message_history.d.ts.map"],"mappings":";;;;;cAGqBK,sBAAAA,SAA+BL,sBAAAA;;EAA/BK,QAAAA,EAEPC,KAFOD,CAEDH,WAFuB,CAAA;EAEvBA,WAAAA,CAAAA;EAANI,WAAAA,CAAAA,CAAAA,EAEKC,OAFLD,CAEaJ,WAFbI,EAAAA,CAAAA;EAEaJ,UAAAA,CAAAA,OAAAA,EACHA,WADGA,CAAAA,EACWK,OADXL,CAAAA,IAAAA,CAAAA;EAARK,cAAAA,CAAAA,OAAAA,EAAAA,MAAAA,CAAAA,EAEkBA,OAFlBA,CAAAA,IAAAA,CAAAA;EACKL,YAAAA,CAAAA,OAAAA,EAAAA,MAAAA,CAAAA,EAEWK,OAFXL,CAAAA,IAAAA,CAAAA;EAAcK,KAAAA,CAAAA,CAAAA,EAGzBA,OAHyBA,CAAAA,IAAAA,CAAAA;;AAEHA,cAGdC,0BAAAA,SAAmCP,0BAAAA,CAHrBM;EACtBA,YAAAA,EAAAA,MAAAA,EAAAA;EARuCP,QAAAA,EAYtCM,KAZsCN,CAYhCE,WAZgCF,CAAAA;EAAsB,WAAA,CAAA;EAUrDQ,UAAAA,CAAAA,OAAAA,EAIGN,WAJuB,CAAA,EAITK,OAJS,CAAA,IAAA,CAAA;EAE3BL,WAAAA,CAAAA,CAAAA,EAGDK,OAHCL,CAGOA,WAHPA,EAAAA,CAAAA;;AAEIA,cAGHO,UAAAA,SAAmBN,UAAAA,CAHhBD;EAAcK,IAAAA,EAAAA,MAAAA;EACXL,IAAAA,EAIjBE,GAJiBF,EAAAA;EAARK,WAAAA,CAAAA;EALqCN,UAAAA,UAAAA,CAAAA,GAAAA,EAW1BG,GAX0BH,CAAAA,EAWpBM,OAXoBN,CAAAA,IAAAA,CAAAA;AAA0B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_history.d.ts","names":["BaseChatMessageHistory","BaseListChatMessageHistory","BaseMessage","BaseTracer","Run","FakeChatMessageHistory","Array","Promise","FakeListChatMessageHistory","FakeTracer"],"sources":["../../../src/utils/testing/message_history.d.ts"],"sourcesContent":["import { BaseChatMessageHistory, BaseListChatMessageHistory } from \"../../chat_history.js\";\nimport { BaseMessage } from \"../../messages/index.js\";\nimport { BaseTracer, Run } from \"../../tracers/base.js\";\nexport declare class FakeChatMessageHistory extends BaseChatMessageHistory {\n lc_namespace: string[];\n messages: Array<BaseMessage>;\n constructor();\n getMessages(): Promise<BaseMessage[]>;\n addMessage(message: BaseMessage): Promise<void>;\n addUserMessage(message: string): Promise<void>;\n addAIMessage(message: string): Promise<void>;\n clear(): Promise<void>;\n}\nexport declare class FakeListChatMessageHistory extends BaseListChatMessageHistory {\n lc_namespace: string[];\n messages: Array<BaseMessage>;\n constructor();\n addMessage(message: BaseMessage): Promise<void>;\n getMessages(): Promise<BaseMessage[]>;\n}\nexport declare class FakeTracer extends BaseTracer {\n name: string;\n runs: Run[];\n constructor();\n protected persistRun(run: Run): Promise<void>;\n}\n//# sourceMappingURL=message_history.d.ts.map"],"mappings":";;;;;;cAGqBK,sBAAAA,SAA+BL,sBAAAA;;YAEtCM,MAAMJ;EAFCG,WAAAA,CAAAA;EAEDH,WAAAA,CAAAA,CAAAA,EAEDK,OAFCL,CAEOA,WAFPA,EAAAA,CAAAA;EAANI,UAAAA,CAAAA,OAAAA,EAGUJ,WAHVI,CAAAA,EAGwBC,OAHxBD,CAAAA,IAAAA,CAAAA;EAEaJ,cAAAA,CAAAA,OAAAA,EAAAA,MAAAA,CAAAA,EAEUK,OAFVL,CAAAA,IAAAA,CAAAA;EAARK,YAAAA,CAAAA,OAAAA,EAAAA,MAAAA,CAAAA,EAGgBA,OAHhBA,CAAAA,IAAAA,CAAAA;EACKL,KAAAA,CAAAA,CAAAA,EAGXK,OAHWL,CAAAA,IAAAA,CAAAA;;AACaK,cAIhBC,0BAAAA,SAAmCP,0BAAAA,CAJnBM;EACFA,YAAAA,EAAAA,MAAAA,EAAAA;EACtBA,QAAAA,EAICD,KAJDC,CAIOL,WAJPK,CAAAA;EARuCP,WAAAA,CAAAA;EAAsB,UAAA,CAAA,OAAA,EAclDE,WAdkD,CAAA,EAcpCK,OAdoC,CAAA,IAAA,CAAA;EAUrDC,WAAAA,CAAAA,CAAAA,EAKFD,OALEC,CAKMN,WALoB,EAAA,CAAA;;AAEjCI,cAKOG,UAAAA,SAAmBN,UAAAA,CAL1BG;EAEUJ,IAAAA,EAAAA,MAAAA;EAAcK,IAAAA,EAK5BH,GAL4BG,EAAAA;EACXL,WAAAA,CAAAA;EAARK,UAAAA,UAAAA,CAAAA,GAAAA,EAMWH,GANXG,CAAAA,EAMiBA,OANjBA,CAAAA,IAAAA,CAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output_parsers.d.cts","names":["BaseOutputParser","FakeSplitIntoListParser","Promise"],"sources":["../../../src/utils/testing/output_parsers.d.ts"],"sourcesContent":["import { BaseOutputParser } from \"../../output_parsers/base.js\";\n/**\n * Parser for comma-separated values. It splits the input text by commas\n * and trims the resulting values.\n */\nexport declare class FakeSplitIntoListParser extends BaseOutputParser<string[]> {\n lc_namespace: string[];\n getFormatInstructions(): string;\n parse(text: string): Promise<string[]>;\n}\n//# sourceMappingURL=output_parsers.d.ts.map"],"mappings":";;;;;;AAKA;;cAAqBC,uBAAAA,SAAgCD;;;uBAG5BE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output_parsers.d.ts","names":["BaseOutputParser","FakeSplitIntoListParser","Promise"],"sources":["../../../src/utils/testing/output_parsers.d.ts"],"sourcesContent":["import { BaseOutputParser } from \"../../output_parsers/base.js\";\n/**\n * Parser for comma-separated values. It splits the input text by commas\n * and trims the resulting values.\n */\nexport declare class FakeSplitIntoListParser extends BaseOutputParser<string[]> {\n lc_namespace: string[];\n getFormatInstructions(): string;\n parse(text: string): Promise<string[]>;\n}\n//# sourceMappingURL=output_parsers.d.ts.map"],"mappings":";;;;;;AAKA;;cAAqBC,uBAAAA,SAAgCD;;;uBAG5BE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrievers.d.cts","names":["Document","BaseRetriever","FakeRetriever","Record","Promise"],"sources":["../../../src/utils/testing/retrievers.d.ts"],"sourcesContent":["import { Document } from \"../../documents/document.js\";\nimport { BaseRetriever } from \"../../retrievers/index.js\";\nexport declare class FakeRetriever extends BaseRetriever {\n lc_namespace: string[];\n output: Document<Record<string, any>>[];\n constructor(fields?: {\n output: Document[];\n });\n _getRelevantDocuments(_query: string): Promise<Document<Record<string, any>>[]>;\n}\n//# sourceMappingURL=retrievers.d.ts.map"],"mappings":";;;;cAEqBE,aAAAA,SAAsBD,aAAAA;;EAAtBC,MAAAA,EAETF,QAFsB,CAEbG,MAFa,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA;EAEbA,WAAAA,CAAAA,MAELH,CAFKG,EAAAA;IAATH,MAAAA,EAEIA,QAFJA,EAAAA;EAEIA,CAAAA;EAE4CG,qBAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAjBC,OAAiBD,CAATH,QAASG,CAAAA,MAAAA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrievers.d.ts","names":["Document","BaseRetriever","FakeRetriever","Record","Promise"],"sources":["../../../src/utils/testing/retrievers.d.ts"],"sourcesContent":["import { Document } from \"../../documents/document.js\";\nimport { BaseRetriever } from \"../../retrievers/index.js\";\nexport declare class FakeRetriever extends BaseRetriever {\n lc_namespace: string[];\n output: Document<Record<string, any>>[];\n constructor(fields?: {\n output: Document[];\n });\n _getRelevantDocuments(_query: string): Promise<Document<Record<string, any>>[]>;\n}\n//# sourceMappingURL=retrievers.d.ts.map"],"mappings":";;;;cAEqBE,aAAAA,SAAsBD,aAAAA;;EAAtBC,MAAAA,EAETF,QAFsB,CAEbG,MAFa,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA;EAEbA,WAAAA,CAAAA,MAELH,CAFKG,EAAAA;IAATH,MAAAA,EAEIA,QAFJA,EAAAA;EAEIA,CAAAA;EAE4CG,qBAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAjBC,OAAiBD,CAATH,QAASG,CAAAA,MAAAA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runnables.d.cts","names":["BaseCallbackConfig","Runnable","FakeRunnable","Record","Partial","Promise"],"sources":["../../../src/utils/testing/runnables.d.ts"],"sourcesContent":["import { BaseCallbackConfig } from \"../../callbacks/manager.js\";\nimport { Runnable } from \"../../runnables/base.js\";\nexport declare class FakeRunnable extends Runnable<string, Record<string, unknown>> {\n lc_namespace: string[];\n returnOptions?: boolean;\n constructor(fields: {\n returnOptions?: boolean;\n });\n invoke(input: string, options?: Partial<BaseCallbackConfig>): Promise<Record<string, unknown>>;\n}\n//# sourceMappingURL=runnables.d.ts.map"],"mappings":";;;;cAEqBE,YAAAA,SAAqBD,iBAAiBE;;EAAtCD,aAAAA,CAAAA,EAAY,OAAA;EAA0BC,WAAAA,CAAAA,MAAAA,EAAAA;IAMfH,aAAAA,CAAAA,EAAAA,OAAAA;EAARI,CAAAA;EAAsCD,MAAAA,CAAAA,KAAAA,EAAAA,MAAAA,EAAAA,OAAAA,CAAAA,EAAtCC,OAAsCD,CAA9BH,kBAA8BG,CAAAA,CAAAA,EAARE,OAAQF,CAAAA,MAAAA,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA,CAAAA"}