@langchain/core 1.2.4 → 1.2.6

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 (1262) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/agents.d.cts.map +1 -1
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/caches/index.cjs.map +1 -1
  5. package/dist/caches/index.d.cts +0 -1
  6. package/dist/caches/index.d.cts.map +1 -1
  7. package/dist/caches/index.d.ts +0 -1
  8. package/dist/caches/index.d.ts.map +1 -1
  9. package/dist/caches/index.js.map +1 -1
  10. package/dist/callbacks/base.cjs.map +1 -1
  11. package/dist/callbacks/base.d.cts +68 -36
  12. package/dist/callbacks/base.d.cts.map +1 -1
  13. package/dist/callbacks/base.d.ts +68 -36
  14. package/dist/callbacks/base.d.ts.map +1 -1
  15. package/dist/callbacks/base.js.map +1 -1
  16. package/dist/callbacks/dispatch/index.cjs +0 -1
  17. package/dist/callbacks/dispatch/index.cjs.map +1 -1
  18. package/dist/callbacks/dispatch/index.d.cts +1 -0
  19. package/dist/callbacks/dispatch/index.d.cts.map +1 -1
  20. package/dist/callbacks/dispatch/index.d.ts +1 -0
  21. package/dist/callbacks/dispatch/index.d.ts.map +1 -1
  22. package/dist/callbacks/dispatch/index.js.map +1 -1
  23. package/dist/callbacks/dispatch/web.cjs.map +1 -1
  24. package/dist/callbacks/dispatch/web.d.cts +1 -0
  25. package/dist/callbacks/dispatch/web.d.cts.map +1 -1
  26. package/dist/callbacks/dispatch/web.d.ts +1 -0
  27. package/dist/callbacks/dispatch/web.d.ts.map +1 -1
  28. package/dist/callbacks/dispatch/web.js.map +1 -1
  29. package/dist/callbacks/manager.cjs +8 -0
  30. package/dist/callbacks/manager.cjs.map +1 -1
  31. package/dist/callbacks/manager.d.cts +1 -2
  32. package/dist/callbacks/manager.d.cts.map +1 -1
  33. package/dist/callbacks/manager.d.ts +1 -2
  34. package/dist/callbacks/manager.d.ts.map +1 -1
  35. package/dist/callbacks/manager.js +8 -0
  36. package/dist/callbacks/manager.js.map +1 -1
  37. package/dist/chat_history.cjs.map +1 -1
  38. package/dist/chat_history.d.cts +1 -0
  39. package/dist/chat_history.d.cts.map +1 -1
  40. package/dist/chat_history.d.ts +1 -0
  41. package/dist/chat_history.d.ts.map +1 -1
  42. package/dist/chat_history.js.map +1 -1
  43. package/dist/context.cjs +0 -1
  44. package/dist/context.cjs.map +1 -1
  45. package/dist/context.d.cts +0 -1
  46. package/dist/context.d.cts.map +1 -1
  47. package/dist/context.d.ts +0 -1
  48. package/dist/context.d.ts.map +1 -1
  49. package/dist/context.js.map +1 -1
  50. package/dist/document_loaders/base.cjs.map +1 -1
  51. package/dist/document_loaders/base.d.cts +0 -1
  52. package/dist/document_loaders/base.d.cts.map +1 -1
  53. package/dist/document_loaders/base.d.ts +0 -1
  54. package/dist/document_loaders/base.d.ts.map +1 -1
  55. package/dist/document_loaders/base.js.map +1 -1
  56. package/dist/document_loaders/langsmith.cjs.map +1 -1
  57. package/dist/document_loaders/langsmith.d.cts +0 -1
  58. package/dist/document_loaders/langsmith.d.cts.map +1 -1
  59. package/dist/document_loaders/langsmith.d.ts +0 -1
  60. package/dist/document_loaders/langsmith.d.ts.map +1 -1
  61. package/dist/document_loaders/langsmith.js.map +1 -1
  62. package/dist/documents/document.cjs.map +1 -1
  63. package/dist/documents/document.d.cts.map +1 -1
  64. package/dist/documents/document.d.ts.map +1 -1
  65. package/dist/documents/document.js.map +1 -1
  66. package/dist/documents/transformers.cjs.map +1 -1
  67. package/dist/documents/transformers.d.cts +0 -1
  68. package/dist/documents/transformers.d.cts.map +1 -1
  69. package/dist/documents/transformers.d.ts +0 -1
  70. package/dist/documents/transformers.d.ts.map +1 -1
  71. package/dist/documents/transformers.js.map +1 -1
  72. package/dist/embeddings.cjs.map +1 -1
  73. package/dist/embeddings.d.cts +0 -1
  74. package/dist/embeddings.d.cts.map +1 -1
  75. package/dist/embeddings.d.ts +0 -1
  76. package/dist/embeddings.d.ts.map +1 -1
  77. package/dist/embeddings.js.map +1 -1
  78. package/dist/errors/index.cjs.map +1 -1
  79. package/dist/errors/index.d.cts +0 -1
  80. package/dist/errors/index.d.cts.map +1 -1
  81. package/dist/errors/index.d.ts +0 -1
  82. package/dist/errors/index.d.ts.map +1 -1
  83. package/dist/errors/index.js.map +1 -1
  84. package/dist/example_selectors/base.cjs.map +1 -1
  85. package/dist/example_selectors/base.d.cts +0 -1
  86. package/dist/example_selectors/base.d.cts.map +1 -1
  87. package/dist/example_selectors/base.d.ts +0 -1
  88. package/dist/example_selectors/base.d.ts.map +1 -1
  89. package/dist/example_selectors/base.js.map +1 -1
  90. package/dist/example_selectors/conditional.cjs.map +1 -1
  91. package/dist/example_selectors/conditional.d.cts +0 -1
  92. package/dist/example_selectors/conditional.d.cts.map +1 -1
  93. package/dist/example_selectors/conditional.d.ts +0 -1
  94. package/dist/example_selectors/conditional.d.ts.map +1 -1
  95. package/dist/example_selectors/conditional.js.map +1 -1
  96. package/dist/example_selectors/length_based.cjs.map +1 -1
  97. package/dist/example_selectors/length_based.d.cts +0 -1
  98. package/dist/example_selectors/length_based.d.cts.map +1 -1
  99. package/dist/example_selectors/length_based.d.ts +0 -1
  100. package/dist/example_selectors/length_based.d.ts.map +1 -1
  101. package/dist/example_selectors/length_based.js.map +1 -1
  102. package/dist/example_selectors/semantic_similarity.cjs +2 -1
  103. package/dist/example_selectors/semantic_similarity.cjs.map +1 -1
  104. package/dist/example_selectors/semantic_similarity.d.cts +0 -1
  105. package/dist/example_selectors/semantic_similarity.d.cts.map +1 -1
  106. package/dist/example_selectors/semantic_similarity.d.ts +0 -1
  107. package/dist/example_selectors/semantic_similarity.d.ts.map +1 -1
  108. package/dist/example_selectors/semantic_similarity.js +2 -1
  109. package/dist/example_selectors/semantic_similarity.js.map +1 -1
  110. package/dist/index.d.cts +1 -1
  111. package/dist/index.d.ts +1 -1
  112. package/dist/indexing/base.cjs.map +1 -1
  113. package/dist/indexing/base.d.cts +0 -1
  114. package/dist/indexing/base.d.cts.map +1 -1
  115. package/dist/indexing/base.d.ts +0 -1
  116. package/dist/indexing/base.d.ts.map +1 -1
  117. package/dist/indexing/base.js.map +1 -1
  118. package/dist/indexing/record_manager.cjs.map +1 -1
  119. package/dist/indexing/record_manager.d.cts +0 -1
  120. package/dist/indexing/record_manager.d.cts.map +1 -1
  121. package/dist/indexing/record_manager.d.ts +0 -1
  122. package/dist/indexing/record_manager.d.ts.map +1 -1
  123. package/dist/indexing/record_manager.js.map +1 -1
  124. package/dist/language_models/base.cjs +1 -1
  125. package/dist/language_models/base.cjs.map +1 -1
  126. package/dist/language_models/base.d.cts +9 -16
  127. package/dist/language_models/base.d.cts.map +1 -1
  128. package/dist/language_models/base.d.ts +9 -16
  129. package/dist/language_models/base.d.ts.map +1 -1
  130. package/dist/language_models/base.js +1 -1
  131. package/dist/language_models/base.js.map +1 -1
  132. package/dist/language_models/chat_models.cjs +12 -6
  133. package/dist/language_models/chat_models.cjs.map +1 -1
  134. package/dist/language_models/chat_models.d.cts +6 -8
  135. package/dist/language_models/chat_models.d.cts.map +1 -1
  136. package/dist/language_models/chat_models.d.ts +6 -8
  137. package/dist/language_models/chat_models.d.ts.map +1 -1
  138. package/dist/language_models/chat_models.js +12 -6
  139. package/dist/language_models/chat_models.js.map +1 -1
  140. package/dist/language_models/compat.cjs.map +1 -1
  141. package/dist/language_models/compat.d.cts +0 -1
  142. package/dist/language_models/compat.d.cts.map +1 -1
  143. package/dist/language_models/compat.d.ts +0 -1
  144. package/dist/language_models/compat.d.ts.map +1 -1
  145. package/dist/language_models/compat.js.map +1 -1
  146. package/dist/language_models/event.d.cts +0 -1
  147. package/dist/language_models/event.d.cts.map +1 -1
  148. package/dist/language_models/event.d.ts +0 -1
  149. package/dist/language_models/event.d.ts.map +1 -1
  150. package/dist/language_models/llms.cjs.map +1 -1
  151. package/dist/language_models/llms.d.cts +2 -9
  152. package/dist/language_models/llms.d.cts.map +1 -1
  153. package/dist/language_models/llms.d.ts +2 -9
  154. package/dist/language_models/llms.d.ts.map +1 -1
  155. package/dist/language_models/llms.js.map +1 -1
  156. package/dist/language_models/openai_completions_stream.cjs.map +1 -1
  157. package/dist/language_models/openai_completions_stream.d.cts +0 -1
  158. package/dist/language_models/openai_completions_stream.d.cts.map +1 -1
  159. package/dist/language_models/openai_completions_stream.d.ts +0 -1
  160. package/dist/language_models/openai_completions_stream.d.ts.map +1 -1
  161. package/dist/language_models/openai_completions_stream.js.map +1 -1
  162. package/dist/language_models/profile.d.cts.map +1 -1
  163. package/dist/language_models/profile.d.ts.map +1 -1
  164. package/dist/language_models/stream.cjs.map +1 -1
  165. package/dist/language_models/stream.d.cts +2 -1
  166. package/dist/language_models/stream.d.cts.map +1 -1
  167. package/dist/language_models/stream.d.ts +2 -1
  168. package/dist/language_models/stream.d.ts.map +1 -1
  169. package/dist/language_models/stream.js.map +1 -1
  170. package/dist/language_models/structured_output.cjs.map +1 -1
  171. package/dist/language_models/structured_output.d.cts +4 -0
  172. package/dist/language_models/structured_output.d.cts.map +1 -1
  173. package/dist/language_models/structured_output.d.ts +4 -0
  174. package/dist/language_models/structured_output.d.ts.map +1 -1
  175. package/dist/language_models/structured_output.js.map +1 -1
  176. package/dist/language_models/utils.cjs.map +1 -1
  177. package/dist/language_models/utils.js.map +1 -1
  178. package/dist/load/import_constants.cjs.map +1 -1
  179. package/dist/load/import_constants.js.map +1 -1
  180. package/dist/load/import_map.cjs +410 -0
  181. package/dist/load/import_map.cjs.map +1 -1
  182. package/dist/load/import_map.js +3 -1
  183. package/dist/load/import_map.js.map +1 -1
  184. package/dist/load/import_type.d.cts.map +1 -1
  185. package/dist/load/import_type.d.ts.map +1 -1
  186. package/dist/load/index.cjs.map +1 -1
  187. package/dist/load/index.d.cts +0 -1
  188. package/dist/load/index.d.cts.map +1 -1
  189. package/dist/load/index.d.ts +0 -1
  190. package/dist/load/index.d.ts.map +1 -1
  191. package/dist/load/index.js.map +1 -1
  192. package/dist/load/map_keys.cjs.map +1 -1
  193. package/dist/load/map_keys.d.cts.map +1 -1
  194. package/dist/load/map_keys.d.ts.map +1 -1
  195. package/dist/load/map_keys.js.map +1 -1
  196. package/dist/load/serializable.cjs.map +1 -1
  197. package/dist/load/serializable.d.cts +0 -1
  198. package/dist/load/serializable.d.cts.map +1 -1
  199. package/dist/load/serializable.d.ts +0 -1
  200. package/dist/load/serializable.d.ts.map +1 -1
  201. package/dist/load/serializable.js.map +1 -1
  202. package/dist/load/validation.cjs +3 -0
  203. package/dist/load/validation.cjs.map +1 -1
  204. package/dist/load/validation.js +1 -1
  205. package/dist/load/validation.js.map +1 -1
  206. package/dist/memory.cjs +8 -2
  207. package/dist/memory.cjs.map +1 -1
  208. package/dist/memory.d.cts.map +1 -1
  209. package/dist/memory.d.ts.map +1 -1
  210. package/dist/memory.js +8 -2
  211. package/dist/memory.js.map +1 -1
  212. package/dist/messages/ai.cjs +6 -0
  213. package/dist/messages/ai.cjs.map +1 -1
  214. package/dist/messages/ai.d.cts +3 -2
  215. package/dist/messages/ai.d.cts.map +1 -1
  216. package/dist/messages/ai.d.ts +3 -2
  217. package/dist/messages/ai.d.ts.map +1 -1
  218. package/dist/messages/ai.js +6 -0
  219. package/dist/messages/ai.js.map +1 -1
  220. package/dist/messages/base.cjs +6 -0
  221. package/dist/messages/base.cjs.map +1 -1
  222. package/dist/messages/base.d.cts +9 -10
  223. package/dist/messages/base.d.cts.map +1 -1
  224. package/dist/messages/base.d.ts +9 -10
  225. package/dist/messages/base.d.ts.map +1 -1
  226. package/dist/messages/base.js +6 -0
  227. package/dist/messages/base.js.map +1 -1
  228. package/dist/messages/block_translators/anthropic.cjs +2 -0
  229. package/dist/messages/block_translators/anthropic.cjs.map +1 -1
  230. package/dist/messages/block_translators/anthropic.js +1 -1
  231. package/dist/messages/block_translators/anthropic.js.map +1 -1
  232. package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -1
  233. package/dist/messages/block_translators/bedrock_converse.js.map +1 -1
  234. package/dist/messages/block_translators/data.cjs +1 -0
  235. package/dist/messages/block_translators/data.cjs.map +1 -1
  236. package/dist/messages/block_translators/data.js +1 -1
  237. package/dist/messages/block_translators/data.js.map +1 -1
  238. package/dist/messages/block_translators/deepseek.cjs +1 -0
  239. package/dist/messages/block_translators/deepseek.cjs.map +1 -1
  240. package/dist/messages/block_translators/deepseek.js +1 -1
  241. package/dist/messages/block_translators/deepseek.js.map +1 -1
  242. package/dist/messages/block_translators/google.cjs.map +1 -1
  243. package/dist/messages/block_translators/google.js.map +1 -1
  244. package/dist/messages/block_translators/google_genai.cjs.map +1 -1
  245. package/dist/messages/block_translators/google_genai.js.map +1 -1
  246. package/dist/messages/block_translators/google_vertexai.cjs.map +1 -1
  247. package/dist/messages/block_translators/google_vertexai.js.map +1 -1
  248. package/dist/messages/block_translators/groq.cjs +1 -0
  249. package/dist/messages/block_translators/groq.cjs.map +1 -1
  250. package/dist/messages/block_translators/groq.js +1 -1
  251. package/dist/messages/block_translators/groq.js.map +1 -1
  252. package/dist/messages/block_translators/index.cjs +1 -1
  253. package/dist/messages/block_translators/index.cjs.map +1 -1
  254. package/dist/messages/block_translators/index.js +1 -1
  255. package/dist/messages/block_translators/index.js.map +1 -1
  256. package/dist/messages/block_translators/ollama.cjs +1 -0
  257. package/dist/messages/block_translators/ollama.cjs.map +1 -1
  258. package/dist/messages/block_translators/ollama.js +1 -1
  259. package/dist/messages/block_translators/ollama.js.map +1 -1
  260. package/dist/messages/block_translators/openai.cjs +4 -0
  261. package/dist/messages/block_translators/openai.cjs.map +1 -1
  262. package/dist/messages/block_translators/openai.js +1 -1
  263. package/dist/messages/block_translators/openai.js.map +1 -1
  264. package/dist/messages/block_translators/openrouter.cjs +1 -0
  265. package/dist/messages/block_translators/openrouter.cjs.map +1 -1
  266. package/dist/messages/block_translators/openrouter.js +1 -1
  267. package/dist/messages/block_translators/openrouter.js.map +1 -1
  268. package/dist/messages/block_translators/utils.cjs.map +1 -1
  269. package/dist/messages/block_translators/utils.js.map +1 -1
  270. package/dist/messages/block_translators/xai.cjs +1 -0
  271. package/dist/messages/block_translators/xai.cjs.map +1 -1
  272. package/dist/messages/block_translators/xai.js +1 -1
  273. package/dist/messages/block_translators/xai.js.map +1 -1
  274. package/dist/messages/chat.cjs +6 -0
  275. package/dist/messages/chat.cjs.map +1 -1
  276. package/dist/messages/chat.d.cts +3 -2
  277. package/dist/messages/chat.d.cts.map +1 -1
  278. package/dist/messages/chat.d.ts +3 -2
  279. package/dist/messages/chat.d.ts.map +1 -1
  280. package/dist/messages/chat.js +6 -0
  281. package/dist/messages/chat.js.map +1 -1
  282. package/dist/messages/content/base.d.cts.map +1 -1
  283. package/dist/messages/content/base.d.ts.map +1 -1
  284. package/dist/messages/content/data.cjs.map +1 -1
  285. package/dist/messages/content/data.d.cts +2 -9
  286. package/dist/messages/content/data.d.cts.map +1 -1
  287. package/dist/messages/content/data.d.ts +2 -9
  288. package/dist/messages/content/data.d.ts.map +1 -1
  289. package/dist/messages/content/data.js.map +1 -1
  290. package/dist/messages/content/index.cjs.map +1 -1
  291. package/dist/messages/content/index.d.cts +0 -1
  292. package/dist/messages/content/index.d.cts.map +1 -1
  293. package/dist/messages/content/index.d.ts +0 -1
  294. package/dist/messages/content/index.d.ts.map +1 -1
  295. package/dist/messages/content/index.js.map +1 -1
  296. package/dist/messages/content/multimodal.cjs.map +1 -1
  297. package/dist/messages/content/multimodal.d.cts +8 -5
  298. package/dist/messages/content/multimodal.d.cts.map +1 -1
  299. package/dist/messages/content/multimodal.d.ts +8 -5
  300. package/dist/messages/content/multimodal.d.ts.map +1 -1
  301. package/dist/messages/content/multimodal.js.map +1 -1
  302. package/dist/messages/content/tools.cjs.map +1 -1
  303. package/dist/messages/content/tools.d.cts +0 -1
  304. package/dist/messages/content/tools.d.cts.map +1 -1
  305. package/dist/messages/content/tools.d.ts +0 -1
  306. package/dist/messages/content/tools.d.ts.map +1 -1
  307. package/dist/messages/content/tools.js.map +1 -1
  308. package/dist/messages/format.cjs.map +1 -1
  309. package/dist/messages/format.d.cts.map +1 -1
  310. package/dist/messages/format.d.ts.map +1 -1
  311. package/dist/messages/format.js.map +1 -1
  312. package/dist/messages/function.cjs +12 -0
  313. package/dist/messages/function.cjs.map +1 -1
  314. package/dist/messages/function.d.cts +5 -2
  315. package/dist/messages/function.d.cts.map +1 -1
  316. package/dist/messages/function.d.ts +5 -2
  317. package/dist/messages/function.d.ts.map +1 -1
  318. package/dist/messages/function.js +12 -0
  319. package/dist/messages/function.js.map +1 -1
  320. package/dist/messages/human.cjs +6 -0
  321. package/dist/messages/human.cjs.map +1 -1
  322. package/dist/messages/human.d.cts +3 -2
  323. package/dist/messages/human.d.cts.map +1 -1
  324. package/dist/messages/human.d.ts +3 -2
  325. package/dist/messages/human.d.ts.map +1 -1
  326. package/dist/messages/human.js +6 -0
  327. package/dist/messages/human.js.map +1 -1
  328. package/dist/messages/message.cjs.map +1 -1
  329. package/dist/messages/message.d.cts +31 -22
  330. package/dist/messages/message.d.cts.map +1 -1
  331. package/dist/messages/message.d.ts +31 -22
  332. package/dist/messages/message.d.ts.map +1 -1
  333. package/dist/messages/message.js.map +1 -1
  334. package/dist/messages/metadata.cjs.map +1 -1
  335. package/dist/messages/metadata.d.cts +0 -1
  336. package/dist/messages/metadata.d.cts.map +1 -1
  337. package/dist/messages/metadata.d.ts +0 -1
  338. package/dist/messages/metadata.d.ts.map +1 -1
  339. package/dist/messages/metadata.js.map +1 -1
  340. package/dist/messages/modifier.cjs +3 -0
  341. package/dist/messages/modifier.cjs.map +1 -1
  342. package/dist/messages/modifier.d.cts +1 -1
  343. package/dist/messages/modifier.d.cts.map +1 -1
  344. package/dist/messages/modifier.d.ts +1 -1
  345. package/dist/messages/modifier.d.ts.map +1 -1
  346. package/dist/messages/modifier.js +3 -0
  347. package/dist/messages/modifier.js.map +1 -1
  348. package/dist/messages/system.cjs +6 -0
  349. package/dist/messages/system.cjs.map +1 -1
  350. package/dist/messages/system.d.cts +3 -2
  351. package/dist/messages/system.d.cts.map +1 -1
  352. package/dist/messages/system.d.ts +3 -2
  353. package/dist/messages/system.d.ts.map +1 -1
  354. package/dist/messages/system.js +6 -0
  355. package/dist/messages/system.js.map +1 -1
  356. package/dist/messages/tool.cjs +9 -0
  357. package/dist/messages/tool.cjs.map +1 -1
  358. package/dist/messages/tool.d.cts +7 -5
  359. package/dist/messages/tool.d.cts.map +1 -1
  360. package/dist/messages/tool.d.ts +7 -5
  361. package/dist/messages/tool.d.ts.map +1 -1
  362. package/dist/messages/tool.js +9 -0
  363. package/dist/messages/tool.js.map +1 -1
  364. package/dist/messages/transformers.cjs.map +1 -1
  365. package/dist/messages/transformers.d.cts +0 -1
  366. package/dist/messages/transformers.d.cts.map +1 -1
  367. package/dist/messages/transformers.d.ts +0 -1
  368. package/dist/messages/transformers.d.ts.map +1 -1
  369. package/dist/messages/transformers.js.map +1 -1
  370. package/dist/messages/utils.cjs.map +1 -1
  371. package/dist/messages/utils.d.cts +4 -5
  372. package/dist/messages/utils.d.cts.map +1 -1
  373. package/dist/messages/utils.d.ts +4 -5
  374. package/dist/messages/utils.d.ts.map +1 -1
  375. package/dist/messages/utils.js.map +1 -1
  376. package/dist/output_parsers/base.cjs.map +1 -1
  377. package/dist/output_parsers/base.d.cts +3 -0
  378. package/dist/output_parsers/base.d.cts.map +1 -1
  379. package/dist/output_parsers/base.d.ts +3 -0
  380. package/dist/output_parsers/base.d.ts.map +1 -1
  381. package/dist/output_parsers/base.js.map +1 -1
  382. package/dist/output_parsers/bytes.cjs.map +1 -1
  383. package/dist/output_parsers/bytes.d.cts +0 -1
  384. package/dist/output_parsers/bytes.d.cts.map +1 -1
  385. package/dist/output_parsers/bytes.d.ts +0 -1
  386. package/dist/output_parsers/bytes.d.ts.map +1 -1
  387. package/dist/output_parsers/bytes.js.map +1 -1
  388. package/dist/output_parsers/json.cjs +2 -0
  389. package/dist/output_parsers/json.cjs.map +1 -1
  390. package/dist/output_parsers/json.d.cts +2 -2
  391. package/dist/output_parsers/json.d.cts.map +1 -1
  392. package/dist/output_parsers/json.d.ts +2 -2
  393. package/dist/output_parsers/json.d.ts.map +1 -1
  394. package/dist/output_parsers/json.js +2 -2
  395. package/dist/output_parsers/json.js.map +1 -1
  396. package/dist/output_parsers/list.cjs.map +1 -1
  397. package/dist/output_parsers/list.d.cts +2 -5
  398. package/dist/output_parsers/list.d.cts.map +1 -1
  399. package/dist/output_parsers/list.d.ts +2 -5
  400. package/dist/output_parsers/list.d.ts.map +1 -1
  401. package/dist/output_parsers/list.js.map +1 -1
  402. package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs.map +1 -1
  403. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts +1 -1
  404. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts.map +1 -1
  405. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts +1 -1
  406. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts.map +1 -1
  407. package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +1 -1
  408. package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
  409. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts +2 -2
  410. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts.map +1 -1
  411. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts +2 -2
  412. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts.map +1 -1
  413. package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
  414. package/dist/output_parsers/standard_schema.cjs.map +1 -1
  415. package/dist/output_parsers/standard_schema.d.cts +1 -1
  416. package/dist/output_parsers/standard_schema.d.cts.map +1 -1
  417. package/dist/output_parsers/standard_schema.d.ts +1 -1
  418. package/dist/output_parsers/standard_schema.d.ts.map +1 -1
  419. package/dist/output_parsers/standard_schema.js.map +1 -1
  420. package/dist/output_parsers/string.cjs.map +1 -1
  421. package/dist/output_parsers/string.d.cts +1 -1
  422. package/dist/output_parsers/string.d.cts.map +1 -1
  423. package/dist/output_parsers/string.d.ts +1 -1
  424. package/dist/output_parsers/string.d.ts.map +1 -1
  425. package/dist/output_parsers/string.js.map +1 -1
  426. package/dist/output_parsers/structured.cjs +1 -1
  427. package/dist/output_parsers/structured.cjs.map +1 -1
  428. package/dist/output_parsers/structured.d.cts +2 -4
  429. package/dist/output_parsers/structured.d.cts.map +1 -1
  430. package/dist/output_parsers/structured.d.ts +2 -4
  431. package/dist/output_parsers/structured.d.ts.map +1 -1
  432. package/dist/output_parsers/structured.js +1 -0
  433. package/dist/output_parsers/structured.js.map +1 -1
  434. package/dist/output_parsers/transform.cjs +0 -1
  435. package/dist/output_parsers/transform.cjs.map +1 -1
  436. package/dist/output_parsers/transform.d.cts +0 -1
  437. package/dist/output_parsers/transform.d.cts.map +1 -1
  438. package/dist/output_parsers/transform.d.ts +0 -1
  439. package/dist/output_parsers/transform.d.ts.map +1 -1
  440. package/dist/output_parsers/transform.js.map +1 -1
  441. package/dist/output_parsers/xml.cjs.map +1 -1
  442. package/dist/output_parsers/xml.d.cts +0 -1
  443. package/dist/output_parsers/xml.d.cts.map +1 -1
  444. package/dist/output_parsers/xml.d.ts +0 -1
  445. package/dist/output_parsers/xml.d.ts.map +1 -1
  446. package/dist/output_parsers/xml.js.map +1 -1
  447. package/dist/outputs.cjs.map +1 -1
  448. package/dist/outputs.d.cts +0 -1
  449. package/dist/outputs.d.cts.map +1 -1
  450. package/dist/outputs.d.ts +0 -1
  451. package/dist/outputs.d.ts.map +1 -1
  452. package/dist/outputs.js.map +1 -1
  453. package/dist/prompt_values.cjs.map +1 -1
  454. package/dist/prompt_values.d.cts +3 -2
  455. package/dist/prompt_values.d.cts.map +1 -1
  456. package/dist/prompt_values.d.ts +3 -2
  457. package/dist/prompt_values.d.ts.map +1 -1
  458. package/dist/prompt_values.js.map +1 -1
  459. package/dist/prompts/base.cjs.map +1 -1
  460. package/dist/prompts/base.d.cts +1 -0
  461. package/dist/prompts/base.d.cts.map +1 -1
  462. package/dist/prompts/base.d.ts +1 -0
  463. package/dist/prompts/base.d.ts.map +1 -1
  464. package/dist/prompts/base.js.map +1 -1
  465. package/dist/prompts/chat.cjs +3 -2
  466. package/dist/prompts/chat.cjs.map +1 -1
  467. package/dist/prompts/chat.d.cts +3 -3
  468. package/dist/prompts/chat.d.cts.map +1 -1
  469. package/dist/prompts/chat.d.ts +3 -3
  470. package/dist/prompts/chat.d.ts.map +1 -1
  471. package/dist/prompts/chat.js +3 -2
  472. package/dist/prompts/chat.js.map +1 -1
  473. package/dist/prompts/dict.cjs.map +1 -1
  474. package/dist/prompts/dict.d.cts +0 -1
  475. package/dist/prompts/dict.d.cts.map +1 -1
  476. package/dist/prompts/dict.d.ts +0 -1
  477. package/dist/prompts/dict.d.ts.map +1 -1
  478. package/dist/prompts/dict.js.map +1 -1
  479. package/dist/prompts/few_shot.cjs +6 -4
  480. package/dist/prompts/few_shot.cjs.map +1 -1
  481. package/dist/prompts/few_shot.d.cts +1 -1
  482. package/dist/prompts/few_shot.d.cts.map +1 -1
  483. package/dist/prompts/few_shot.d.ts +1 -1
  484. package/dist/prompts/few_shot.d.ts.map +1 -1
  485. package/dist/prompts/few_shot.js +6 -4
  486. package/dist/prompts/few_shot.js.map +1 -1
  487. package/dist/prompts/image.cjs +3 -2
  488. package/dist/prompts/image.cjs.map +1 -1
  489. package/dist/prompts/image.d.cts +1 -1
  490. package/dist/prompts/image.d.cts.map +1 -1
  491. package/dist/prompts/image.d.ts +1 -1
  492. package/dist/prompts/image.d.ts.map +1 -1
  493. package/dist/prompts/image.js +3 -2
  494. package/dist/prompts/image.js.map +1 -1
  495. package/dist/prompts/pipeline.cjs.map +1 -1
  496. package/dist/prompts/pipeline.d.cts +0 -1
  497. package/dist/prompts/pipeline.d.cts.map +1 -1
  498. package/dist/prompts/pipeline.d.ts +0 -1
  499. package/dist/prompts/pipeline.d.ts.map +1 -1
  500. package/dist/prompts/pipeline.js.map +1 -1
  501. package/dist/prompts/prompt.cjs +9 -7
  502. package/dist/prompts/prompt.cjs.map +1 -1
  503. package/dist/prompts/prompt.d.cts +2 -2
  504. package/dist/prompts/prompt.d.cts.map +1 -1
  505. package/dist/prompts/prompt.d.ts +2 -2
  506. package/dist/prompts/prompt.d.ts.map +1 -1
  507. package/dist/prompts/prompt.js +9 -7
  508. package/dist/prompts/prompt.js.map +1 -1
  509. package/dist/prompts/serde.d.cts +1 -1
  510. package/dist/prompts/serde.d.cts.map +1 -1
  511. package/dist/prompts/serde.d.ts +1 -1
  512. package/dist/prompts/serde.d.ts.map +1 -1
  513. package/dist/prompts/string.cjs.map +1 -1
  514. package/dist/prompts/string.d.cts +0 -1
  515. package/dist/prompts/string.d.cts.map +1 -1
  516. package/dist/prompts/string.d.ts +0 -1
  517. package/dist/prompts/string.d.ts.map +1 -1
  518. package/dist/prompts/string.js.map +1 -1
  519. package/dist/prompts/structured.cjs.map +1 -1
  520. package/dist/prompts/structured.d.cts +1 -1
  521. package/dist/prompts/structured.d.cts.map +1 -1
  522. package/dist/prompts/structured.d.ts +1 -1
  523. package/dist/prompts/structured.d.ts.map +1 -1
  524. package/dist/prompts/structured.js.map +1 -1
  525. package/dist/prompts/template.cjs +9 -9
  526. package/dist/prompts/template.cjs.map +1 -1
  527. package/dist/prompts/template.d.cts +1 -0
  528. package/dist/prompts/template.d.cts.map +1 -1
  529. package/dist/prompts/template.d.ts +1 -0
  530. package/dist/prompts/template.d.ts.map +1 -1
  531. package/dist/prompts/template.js +9 -9
  532. package/dist/prompts/template.js.map +1 -1
  533. package/dist/retrievers/document_compressors/index.cjs.map +1 -1
  534. package/dist/retrievers/document_compressors/index.d.cts +0 -1
  535. package/dist/retrievers/document_compressors/index.d.cts.map +1 -1
  536. package/dist/retrievers/document_compressors/index.d.ts +0 -1
  537. package/dist/retrievers/document_compressors/index.d.ts.map +1 -1
  538. package/dist/retrievers/document_compressors/index.js.map +1 -1
  539. package/dist/retrievers/index.cjs.map +1 -1
  540. package/dist/retrievers/index.d.cts +1 -1
  541. package/dist/retrievers/index.d.cts.map +1 -1
  542. package/dist/retrievers/index.d.ts +1 -1
  543. package/dist/retrievers/index.d.ts.map +1 -1
  544. package/dist/retrievers/index.js.map +1 -1
  545. package/dist/runnables/base.cjs +2 -1
  546. package/dist/runnables/base.cjs.map +1 -1
  547. package/dist/runnables/base.d.cts +7 -19
  548. package/dist/runnables/base.d.cts.map +1 -1
  549. package/dist/runnables/base.d.ts +7 -19
  550. package/dist/runnables/base.d.ts.map +1 -1
  551. package/dist/runnables/base.js +1 -1
  552. package/dist/runnables/base.js.map +1 -1
  553. package/dist/runnables/branch.cjs.map +1 -1
  554. package/dist/runnables/branch.d.cts +1 -1
  555. package/dist/runnables/branch.d.cts.map +1 -1
  556. package/dist/runnables/branch.d.ts +1 -1
  557. package/dist/runnables/branch.d.ts.map +1 -1
  558. package/dist/runnables/branch.js.map +1 -1
  559. package/dist/runnables/config.cjs +3 -2
  560. package/dist/runnables/config.cjs.map +1 -1
  561. package/dist/runnables/config.d.cts +2 -10
  562. package/dist/runnables/config.d.cts.map +1 -1
  563. package/dist/runnables/config.d.ts +2 -10
  564. package/dist/runnables/config.d.ts.map +1 -1
  565. package/dist/runnables/config.js +3 -3
  566. package/dist/runnables/config.js.map +1 -1
  567. package/dist/runnables/graph.cjs.map +1 -1
  568. package/dist/runnables/graph.d.cts +1 -2
  569. package/dist/runnables/graph.d.cts.map +1 -1
  570. package/dist/runnables/graph.d.ts +1 -2
  571. package/dist/runnables/graph.d.ts.map +1 -1
  572. package/dist/runnables/graph.js.map +1 -1
  573. package/dist/runnables/graph_mermaid.cjs.map +1 -1
  574. package/dist/runnables/graph_mermaid.js.map +1 -1
  575. package/dist/runnables/history.cjs.map +1 -1
  576. package/dist/runnables/history.d.cts +2 -1
  577. package/dist/runnables/history.d.cts.map +1 -1
  578. package/dist/runnables/history.d.ts +2 -1
  579. package/dist/runnables/history.d.ts.map +1 -1
  580. package/dist/runnables/history.js.map +1 -1
  581. package/dist/runnables/iter.cjs.map +1 -1
  582. package/dist/runnables/iter.js.map +1 -1
  583. package/dist/runnables/passthrough.cjs.map +1 -1
  584. package/dist/runnables/passthrough.d.cts +1 -1
  585. package/dist/runnables/passthrough.d.cts.map +1 -1
  586. package/dist/runnables/passthrough.d.ts +1 -1
  587. package/dist/runnables/passthrough.d.ts.map +1 -1
  588. package/dist/runnables/passthrough.js.map +1 -1
  589. package/dist/runnables/router.cjs.map +1 -1
  590. package/dist/runnables/router.d.cts +1 -1
  591. package/dist/runnables/router.d.cts.map +1 -1
  592. package/dist/runnables/router.d.ts +1 -1
  593. package/dist/runnables/router.d.ts.map +1 -1
  594. package/dist/runnables/router.js.map +1 -1
  595. package/dist/runnables/types.d.cts +2 -2
  596. package/dist/runnables/types.d.cts.map +1 -1
  597. package/dist/runnables/types.d.ts +2 -2
  598. package/dist/runnables/types.d.ts.map +1 -1
  599. package/dist/runnables/utils.cjs.map +1 -1
  600. package/dist/runnables/utils.js.map +1 -1
  601. package/dist/runnables/wrappers.cjs.map +1 -1
  602. package/dist/runnables/wrappers.js.map +1 -1
  603. package/dist/singletons/async_local_storage/context.cjs +0 -1
  604. package/dist/singletons/async_local_storage/context.cjs.map +1 -1
  605. package/dist/singletons/async_local_storage/context.d.cts +0 -1
  606. package/dist/singletons/async_local_storage/context.d.cts.map +1 -1
  607. package/dist/singletons/async_local_storage/context.d.ts +0 -1
  608. package/dist/singletons/async_local_storage/context.d.ts.map +1 -1
  609. package/dist/singletons/async_local_storage/context.js.map +1 -1
  610. package/dist/singletons/async_local_storage/globals.cjs +1 -0
  611. package/dist/singletons/async_local_storage/globals.cjs.map +1 -1
  612. package/dist/singletons/async_local_storage/globals.d.cts.map +1 -1
  613. package/dist/singletons/async_local_storage/globals.d.ts.map +1 -1
  614. package/dist/singletons/async_local_storage/globals.js +1 -1
  615. package/dist/singletons/async_local_storage/globals.js.map +1 -1
  616. package/dist/singletons/async_local_storage/index.cjs +0 -1
  617. package/dist/singletons/async_local_storage/index.cjs.map +1 -1
  618. package/dist/singletons/async_local_storage/index.d.cts +1 -2
  619. package/dist/singletons/async_local_storage/index.d.cts.map +1 -1
  620. package/dist/singletons/async_local_storage/index.d.ts +1 -2
  621. package/dist/singletons/async_local_storage/index.d.ts.map +1 -1
  622. package/dist/singletons/async_local_storage/index.js.map +1 -1
  623. package/dist/singletons/callbacks.cjs +1 -0
  624. package/dist/singletons/callbacks.cjs.map +1 -1
  625. package/dist/singletons/callbacks.d.cts +1 -0
  626. package/dist/singletons/callbacks.d.cts.map +1 -1
  627. package/dist/singletons/callbacks.d.ts +0 -1
  628. package/dist/singletons/callbacks.d.ts.map +1 -1
  629. package/dist/singletons/callbacks.js +1 -1
  630. package/dist/singletons/callbacks.js.map +1 -1
  631. package/dist/singletons/tracer.cjs +0 -1
  632. package/dist/singletons/tracer.cjs.map +1 -1
  633. package/dist/singletons/tracer.js.map +1 -1
  634. package/dist/stores.cjs.map +1 -1
  635. package/dist/stores.d.cts +0 -1
  636. package/dist/stores.d.cts.map +1 -1
  637. package/dist/stores.d.ts +0 -1
  638. package/dist/stores.d.ts.map +1 -1
  639. package/dist/stores.js.map +1 -1
  640. package/dist/structured_query/base.cjs.map +1 -1
  641. package/dist/structured_query/base.d.cts +0 -1
  642. package/dist/structured_query/base.d.cts.map +1 -1
  643. package/dist/structured_query/base.d.ts +0 -1
  644. package/dist/structured_query/base.d.ts.map +1 -1
  645. package/dist/structured_query/base.js.map +1 -1
  646. package/dist/structured_query/functional.cjs.map +1 -1
  647. package/dist/structured_query/functional.d.cts +0 -1
  648. package/dist/structured_query/functional.d.cts.map +1 -1
  649. package/dist/structured_query/functional.d.ts +0 -1
  650. package/dist/structured_query/functional.d.ts.map +1 -1
  651. package/dist/structured_query/functional.js.map +1 -1
  652. package/dist/structured_query/ir.cjs +7 -0
  653. package/dist/structured_query/ir.cjs.map +1 -1
  654. package/dist/structured_query/ir.d.cts +0 -1
  655. package/dist/structured_query/ir.d.cts.map +1 -1
  656. package/dist/structured_query/ir.d.ts +0 -1
  657. package/dist/structured_query/ir.d.ts.map +1 -1
  658. package/dist/structured_query/ir.js +7 -0
  659. package/dist/structured_query/ir.js.map +1 -1
  660. package/dist/structured_query/utils.cjs.map +1 -1
  661. package/dist/structured_query/utils.d.cts.map +1 -1
  662. package/dist/structured_query/utils.d.ts.map +1 -1
  663. package/dist/structured_query/utils.js.map +1 -1
  664. package/dist/testing/fake_model_builder.cjs.map +1 -1
  665. package/dist/testing/fake_model_builder.d.cts +1 -1
  666. package/dist/testing/fake_model_builder.d.cts.map +1 -1
  667. package/dist/testing/fake_model_builder.d.ts +1 -1
  668. package/dist/testing/fake_model_builder.d.ts.map +1 -1
  669. package/dist/testing/fake_model_builder.js.map +1 -1
  670. package/dist/testing/matchers.cjs.map +1 -1
  671. package/dist/testing/matchers.d.cts +0 -1
  672. package/dist/testing/matchers.d.cts.map +1 -1
  673. package/dist/testing/matchers.d.ts +0 -1
  674. package/dist/testing/matchers.d.ts.map +1 -1
  675. package/dist/testing/matchers.js.map +1 -1
  676. package/dist/tools/index.cjs.map +1 -1
  677. package/dist/tools/index.d.cts +8 -7
  678. package/dist/tools/index.d.cts.map +1 -1
  679. package/dist/tools/index.d.ts +8 -7
  680. package/dist/tools/index.d.ts.map +1 -1
  681. package/dist/tools/index.js.map +1 -1
  682. package/dist/tools/types.cjs.map +1 -1
  683. package/dist/tools/types.d.cts +4 -3
  684. package/dist/tools/types.d.cts.map +1 -1
  685. package/dist/tools/types.d.ts +4 -3
  686. package/dist/tools/types.d.ts.map +1 -1
  687. package/dist/tools/types.js.map +1 -1
  688. package/dist/tools/utils.cjs.map +1 -1
  689. package/dist/tools/utils.d.cts.map +1 -1
  690. package/dist/tools/utils.d.ts.map +1 -1
  691. package/dist/tools/utils.js.map +1 -1
  692. package/dist/tracers/base.cjs.map +1 -1
  693. package/dist/tracers/base.d.cts +18 -14
  694. package/dist/tracers/base.d.cts.map +1 -1
  695. package/dist/tracers/base.d.ts +18 -14
  696. package/dist/tracers/base.d.ts.map +1 -1
  697. package/dist/tracers/base.js.map +1 -1
  698. package/dist/tracers/console.cjs.map +1 -1
  699. package/dist/tracers/console.d.cts +0 -1
  700. package/dist/tracers/console.d.cts.map +1 -1
  701. package/dist/tracers/console.d.ts +0 -1
  702. package/dist/tracers/console.d.ts.map +1 -1
  703. package/dist/tracers/console.js.map +1 -1
  704. package/dist/tracers/event_stream.cjs.map +1 -1
  705. package/dist/tracers/event_stream.d.cts +5 -2
  706. package/dist/tracers/event_stream.d.cts.map +1 -1
  707. package/dist/tracers/event_stream.d.ts +5 -2
  708. package/dist/tracers/event_stream.d.ts.map +1 -1
  709. package/dist/tracers/event_stream.js.map +1 -1
  710. package/dist/tracers/log_stream.cjs.map +1 -1
  711. package/dist/tracers/log_stream.d.cts +30 -15
  712. package/dist/tracers/log_stream.d.cts.map +1 -1
  713. package/dist/tracers/log_stream.d.ts +30 -15
  714. package/dist/tracers/log_stream.d.ts.map +1 -1
  715. package/dist/tracers/log_stream.js.map +1 -1
  716. package/dist/tracers/root_listener.cjs.map +1 -1
  717. package/dist/tracers/root_listener.js.map +1 -1
  718. package/dist/tracers/run_collector.cjs.map +1 -1
  719. package/dist/tracers/run_collector.d.cts +1 -4
  720. package/dist/tracers/run_collector.d.cts.map +1 -1
  721. package/dist/tracers/run_collector.d.ts +1 -4
  722. package/dist/tracers/run_collector.d.ts.map +1 -1
  723. package/dist/tracers/run_collector.js.map +1 -1
  724. package/dist/tracers/tracer_langchain.cjs +4 -3
  725. package/dist/tracers/tracer_langchain.cjs.map +1 -1
  726. package/dist/tracers/tracer_langchain.d.cts +1 -5
  727. package/dist/tracers/tracer_langchain.d.cts.map +1 -1
  728. package/dist/tracers/tracer_langchain.d.ts +1 -5
  729. package/dist/tracers/tracer_langchain.d.ts.map +1 -1
  730. package/dist/tracers/tracer_langchain.js +4 -3
  731. package/dist/tracers/tracer_langchain.js.map +1 -1
  732. package/dist/types/_internal.d.cts.map +1 -1
  733. package/dist/types/_internal.d.ts.map +1 -1
  734. package/dist/types/stream.d.cts +1 -1
  735. package/dist/types/stream.d.ts +1 -1
  736. package/dist/types/type-utils.d.cts +1 -1
  737. package/dist/types/type-utils.d.cts.map +1 -1
  738. package/dist/types/type-utils.d.ts +1 -1
  739. package/dist/types/type-utils.d.ts.map +1 -1
  740. package/dist/utils/async_caller.cjs.map +1 -1
  741. package/dist/utils/async_caller.d.cts.map +1 -1
  742. package/dist/utils/async_caller.d.ts.map +1 -1
  743. package/dist/utils/async_caller.js.map +1 -1
  744. package/dist/utils/callbacks.cjs.map +1 -1
  745. package/dist/utils/callbacks.js.map +1 -1
  746. package/dist/utils/chunk_array.cjs.map +1 -1
  747. package/dist/utils/chunk_array.d.cts.map +1 -1
  748. package/dist/utils/chunk_array.d.ts.map +1 -1
  749. package/dist/utils/chunk_array.js.map +1 -1
  750. package/dist/utils/context.cjs.map +1 -1
  751. package/dist/utils/context.d.cts.map +1 -1
  752. package/dist/utils/context.d.ts.map +1 -1
  753. package/dist/utils/context.js.map +1 -1
  754. package/dist/utils/env.cjs.map +1 -1
  755. package/dist/utils/env.d.cts.map +1 -1
  756. package/dist/utils/env.d.ts.map +1 -1
  757. package/dist/utils/env.js.map +1 -1
  758. package/dist/utils/event_source_parse.cjs +2 -2
  759. package/dist/utils/event_source_parse.cjs.map +1 -1
  760. package/dist/utils/event_source_parse.d.cts +0 -1
  761. package/dist/utils/event_source_parse.d.cts.map +1 -1
  762. package/dist/utils/event_source_parse.d.ts +0 -1
  763. package/dist/utils/event_source_parse.d.ts.map +1 -1
  764. package/dist/utils/event_source_parse.js +2 -2
  765. package/dist/utils/event_source_parse.js.map +1 -1
  766. package/dist/utils/fast-json-patch/index.cjs +9 -1
  767. package/dist/utils/fast-json-patch/index.cjs.map +1 -1
  768. package/dist/utils/fast-json-patch/index.js +3 -3
  769. package/dist/utils/fast-json-patch/index.js.map +1 -1
  770. package/dist/utils/fast-json-patch/src/core.cjs +7 -0
  771. package/dist/utils/fast-json-patch/src/core.cjs.map +1 -1
  772. package/dist/utils/fast-json-patch/src/core.d.cts +1 -1
  773. package/dist/utils/fast-json-patch/src/core.d.cts.map +1 -1
  774. package/dist/utils/fast-json-patch/src/core.d.ts +1 -1
  775. package/dist/utils/fast-json-patch/src/core.d.ts.map +1 -1
  776. package/dist/utils/fast-json-patch/src/core.js +6 -1
  777. package/dist/utils/fast-json-patch/src/core.js.map +1 -1
  778. package/dist/utils/fast-json-patch/src/duplex.cjs.map +1 -1
  779. package/dist/utils/fast-json-patch/src/duplex.d.cts +0 -1
  780. package/dist/utils/fast-json-patch/src/duplex.d.cts.map +1 -1
  781. package/dist/utils/fast-json-patch/src/duplex.d.ts +0 -1
  782. package/dist/utils/fast-json-patch/src/duplex.d.ts.map +1 -1
  783. package/dist/utils/fast-json-patch/src/duplex.js.map +1 -1
  784. package/dist/utils/fast-json-patch/src/helpers.cjs +4 -0
  785. package/dist/utils/fast-json-patch/src/helpers.cjs.map +1 -1
  786. package/dist/utils/fast-json-patch/src/helpers.js +4 -0
  787. package/dist/utils/fast-json-patch/src/helpers.js.map +1 -1
  788. package/dist/utils/format.d.cts.map +1 -1
  789. package/dist/utils/format.d.ts.map +1 -1
  790. package/dist/utils/function_calling.cjs.map +1 -1
  791. package/dist/utils/function_calling.d.cts +0 -1
  792. package/dist/utils/function_calling.d.cts.map +1 -1
  793. package/dist/utils/function_calling.d.ts +0 -1
  794. package/dist/utils/function_calling.d.ts.map +1 -1
  795. package/dist/utils/function_calling.js.map +1 -1
  796. package/dist/utils/gateway.cjs +43 -0
  797. package/dist/utils/gateway.cjs.map +1 -0
  798. package/dist/utils/gateway.d.cts +13 -0
  799. package/dist/utils/gateway.d.cts.map +1 -0
  800. package/dist/utils/gateway.d.ts +13 -0
  801. package/dist/utils/gateway.d.ts.map +1 -0
  802. package/dist/utils/gateway.js +36 -0
  803. package/dist/utils/gateway.js.map +1 -0
  804. package/dist/utils/hash.d.cts +0 -1
  805. package/dist/utils/hash.d.cts.map +1 -1
  806. package/dist/utils/hash.d.ts +0 -1
  807. package/dist/utils/hash.d.ts.map +1 -1
  808. package/dist/utils/is-network-error/index.cjs +1 -1
  809. package/dist/utils/is-network-error/index.cjs.map +1 -1
  810. package/dist/utils/is-network-error/index.js +1 -1
  811. package/dist/utils/is-network-error/index.js.map +1 -1
  812. package/dist/utils/js-sha256/hash.cjs.map +1 -1
  813. package/dist/utils/js-sha256/hash.d.cts.map +1 -1
  814. package/dist/utils/js-sha256/hash.d.ts.map +1 -1
  815. package/dist/utils/js-sha256/hash.js.map +1 -1
  816. package/dist/utils/json.cjs +1 -0
  817. package/dist/utils/json.cjs.map +1 -1
  818. package/dist/utils/json.d.cts.map +1 -1
  819. package/dist/utils/json.d.ts.map +1 -1
  820. package/dist/utils/json.js +1 -1
  821. package/dist/utils/json.js.map +1 -1
  822. package/dist/utils/json_schema.cjs.map +1 -1
  823. package/dist/utils/json_schema.d.cts +1 -1
  824. package/dist/utils/json_schema.d.cts.map +1 -1
  825. package/dist/utils/json_schema.d.ts +1 -1
  826. package/dist/utils/json_schema.d.ts.map +1 -1
  827. package/dist/utils/json_schema.js.map +1 -1
  828. package/dist/utils/math.cjs.map +1 -1
  829. package/dist/utils/math.d.cts.map +1 -1
  830. package/dist/utils/math.d.ts.map +1 -1
  831. package/dist/utils/math.js.map +1 -1
  832. package/dist/utils/ml-distance/distances.cjs.map +1 -1
  833. package/dist/utils/ml-distance/distances.js.map +1 -1
  834. package/dist/utils/ml-distance/similarities.cjs.map +1 -1
  835. package/dist/utils/ml-distance/similarities.d.cts.map +1 -1
  836. package/dist/utils/ml-distance/similarities.d.ts.map +1 -1
  837. package/dist/utils/ml-distance/similarities.js.map +1 -1
  838. package/dist/utils/ml-distance-euclidean/euclidean.cjs +1 -0
  839. package/dist/utils/ml-distance-euclidean/euclidean.cjs.map +1 -1
  840. package/dist/utils/ml-distance-euclidean/euclidean.js +1 -1
  841. package/dist/utils/ml-distance-euclidean/euclidean.js.map +1 -1
  842. package/dist/utils/namespace.cjs +4 -0
  843. package/dist/utils/namespace.cjs.map +1 -1
  844. package/dist/utils/namespace.d.cts.map +1 -1
  845. package/dist/utils/namespace.d.ts.map +1 -1
  846. package/dist/utils/namespace.js +4 -1
  847. package/dist/utils/namespace.js.map +1 -1
  848. package/dist/utils/p-retry/index.cjs +1 -0
  849. package/dist/utils/p-retry/index.cjs.map +1 -1
  850. package/dist/utils/p-retry/index.js +1 -1
  851. package/dist/utils/p-retry/index.js.map +1 -1
  852. package/dist/utils/sax-js/sax.cjs.map +1 -1
  853. package/dist/utils/sax-js/sax.js.map +1 -1
  854. package/dist/utils/signal.cjs.map +1 -1
  855. package/dist/utils/signal.d.cts.map +1 -1
  856. package/dist/utils/signal.d.ts.map +1 -1
  857. package/dist/utils/signal.js.map +1 -1
  858. package/dist/utils/ssrf.cjs.map +1 -1
  859. package/dist/utils/ssrf.d.cts.map +1 -1
  860. package/dist/utils/ssrf.d.ts.map +1 -1
  861. package/dist/utils/ssrf.js.map +1 -1
  862. package/dist/utils/standard_schema.cjs.map +1 -1
  863. package/dist/utils/standard_schema.d.cts +0 -1
  864. package/dist/utils/standard_schema.d.cts.map +1 -1
  865. package/dist/utils/standard_schema.d.ts +0 -1
  866. package/dist/utils/standard_schema.d.ts.map +1 -1
  867. package/dist/utils/standard_schema.js.map +1 -1
  868. package/dist/utils/stream.cjs.map +1 -1
  869. package/dist/utils/stream.d.cts +0 -1
  870. package/dist/utils/stream.d.cts.map +1 -1
  871. package/dist/utils/stream.d.ts +0 -1
  872. package/dist/utils/stream.d.ts.map +1 -1
  873. package/dist/utils/stream.js.map +1 -1
  874. package/dist/utils/testing/chat_models.cjs.map +1 -1
  875. package/dist/utils/testing/chat_models.d.cts +2 -9
  876. package/dist/utils/testing/chat_models.d.cts.map +1 -1
  877. package/dist/utils/testing/chat_models.d.ts +2 -9
  878. package/dist/utils/testing/chat_models.d.ts.map +1 -1
  879. package/dist/utils/testing/chat_models.js.map +1 -1
  880. package/dist/utils/testing/embeddings.cjs.map +1 -1
  881. package/dist/utils/testing/embeddings.d.cts +0 -1
  882. package/dist/utils/testing/embeddings.d.cts.map +1 -1
  883. package/dist/utils/testing/embeddings.d.ts +0 -1
  884. package/dist/utils/testing/embeddings.d.ts.map +1 -1
  885. package/dist/utils/testing/embeddings.js.map +1 -1
  886. package/dist/utils/testing/llms.cjs.map +1 -1
  887. package/dist/utils/testing/llms.d.cts +0 -1
  888. package/dist/utils/testing/llms.d.cts.map +1 -1
  889. package/dist/utils/testing/llms.d.ts +0 -1
  890. package/dist/utils/testing/llms.d.ts.map +1 -1
  891. package/dist/utils/testing/llms.js.map +1 -1
  892. package/dist/utils/testing/message_history.cjs.map +1 -1
  893. package/dist/utils/testing/message_history.d.cts +1 -1
  894. package/dist/utils/testing/message_history.d.cts.map +1 -1
  895. package/dist/utils/testing/message_history.d.ts +1 -1
  896. package/dist/utils/testing/message_history.d.ts.map +1 -1
  897. package/dist/utils/testing/message_history.js.map +1 -1
  898. package/dist/utils/testing/openai_stream_fixtures.cjs.map +1 -1
  899. package/dist/utils/testing/openai_stream_fixtures.d.cts +0 -1
  900. package/dist/utils/testing/openai_stream_fixtures.d.cts.map +1 -1
  901. package/dist/utils/testing/openai_stream_fixtures.d.ts +0 -1
  902. package/dist/utils/testing/openai_stream_fixtures.d.ts.map +1 -1
  903. package/dist/utils/testing/openai_stream_fixtures.js.map +1 -1
  904. package/dist/utils/testing/output_parsers.cjs.map +1 -1
  905. package/dist/utils/testing/output_parsers.d.cts +0 -1
  906. package/dist/utils/testing/output_parsers.d.cts.map +1 -1
  907. package/dist/utils/testing/output_parsers.d.ts +0 -1
  908. package/dist/utils/testing/output_parsers.d.ts.map +1 -1
  909. package/dist/utils/testing/output_parsers.js.map +1 -1
  910. package/dist/utils/testing/retrievers.cjs.map +1 -1
  911. package/dist/utils/testing/retrievers.d.cts +0 -1
  912. package/dist/utils/testing/retrievers.d.cts.map +1 -1
  913. package/dist/utils/testing/retrievers.d.ts +0 -1
  914. package/dist/utils/testing/retrievers.d.ts.map +1 -1
  915. package/dist/utils/testing/retrievers.js.map +1 -1
  916. package/dist/utils/testing/runnables.cjs.map +1 -1
  917. package/dist/utils/testing/runnables.d.cts +0 -1
  918. package/dist/utils/testing/runnables.d.cts.map +1 -1
  919. package/dist/utils/testing/runnables.d.ts +0 -1
  920. package/dist/utils/testing/runnables.d.ts.map +1 -1
  921. package/dist/utils/testing/runnables.js.map +1 -1
  922. package/dist/utils/testing/stream.cjs +5 -0
  923. package/dist/utils/testing/stream.cjs.map +1 -1
  924. package/dist/utils/testing/stream.d.cts.map +1 -1
  925. package/dist/utils/testing/stream.d.ts.map +1 -1
  926. package/dist/utils/testing/stream.js +1 -1
  927. package/dist/utils/testing/stream.js.map +1 -1
  928. package/dist/utils/testing/tools.cjs.map +1 -1
  929. package/dist/utils/testing/tools.d.cts +0 -1
  930. package/dist/utils/testing/tools.d.cts.map +1 -1
  931. package/dist/utils/testing/tools.d.ts +0 -1
  932. package/dist/utils/testing/tools.d.ts.map +1 -1
  933. package/dist/utils/testing/tools.js.map +1 -1
  934. package/dist/utils/testing/tracers.cjs.map +1 -1
  935. package/dist/utils/testing/tracers.d.cts +0 -1
  936. package/dist/utils/testing/tracers.d.cts.map +1 -1
  937. package/dist/utils/testing/tracers.d.ts +0 -1
  938. package/dist/utils/testing/tracers.d.ts.map +1 -1
  939. package/dist/utils/testing/tracers.js.map +1 -1
  940. package/dist/utils/testing/vectorstores.cjs.map +1 -1
  941. package/dist/utils/testing/vectorstores.d.cts +1 -5
  942. package/dist/utils/testing/vectorstores.d.cts.map +1 -1
  943. package/dist/utils/testing/vectorstores.d.ts +1 -5
  944. package/dist/utils/testing/vectorstores.d.ts.map +1 -1
  945. package/dist/utils/testing/vectorstores.js.map +1 -1
  946. package/dist/utils/tiktoken.cjs +1 -1
  947. package/dist/utils/tiktoken.cjs.map +1 -1
  948. package/dist/utils/tiktoken.d.cts +0 -1
  949. package/dist/utils/tiktoken.d.cts.map +1 -1
  950. package/dist/utils/tiktoken.d.ts +0 -1
  951. package/dist/utils/tiktoken.d.ts.map +1 -1
  952. package/dist/utils/tiktoken.js +1 -1
  953. package/dist/utils/tiktoken.js.map +1 -1
  954. package/dist/utils/types/index.d.cts +0 -1
  955. package/dist/utils/types/index.d.cts.map +1 -1
  956. package/dist/utils/types/index.d.ts +0 -1
  957. package/dist/utils/types/index.d.ts.map +1 -1
  958. package/dist/utils/types/zod.cjs +0 -1
  959. package/dist/utils/types/zod.cjs.map +1 -1
  960. package/dist/utils/types/zod.d.cts +2 -3
  961. package/dist/utils/types/zod.d.cts.map +1 -1
  962. package/dist/utils/types/zod.d.ts +2 -3
  963. package/dist/utils/types/zod.d.ts.map +1 -1
  964. package/dist/utils/types/zod.js.map +1 -1
  965. package/dist/utils/uuid/index.d.cts +10 -11
  966. package/dist/utils/uuid/index.d.cts.map +1 -1
  967. package/dist/utils/uuid/index.d.ts +10 -11
  968. package/dist/utils/uuid/index.d.ts.map +1 -1
  969. package/dist/utils/uuid/parse.cjs.map +1 -1
  970. package/dist/utils/uuid/parse.d.cts +1 -3
  971. package/dist/utils/uuid/parse.d.cts.map +1 -1
  972. package/dist/utils/uuid/parse.d.ts +1 -2
  973. package/dist/utils/uuid/parse.d.ts.map +1 -1
  974. package/dist/utils/uuid/parse.js.map +1 -1
  975. package/dist/utils/uuid/rng.cjs +1 -1
  976. package/dist/utils/uuid/rng.cjs.map +1 -1
  977. package/dist/utils/uuid/rng.js +1 -1
  978. package/dist/utils/uuid/rng.js.map +1 -1
  979. package/dist/utils/uuid/sha1.cjs +2 -2
  980. package/dist/utils/uuid/sha1.cjs.map +1 -1
  981. package/dist/utils/uuid/sha1.js +2 -2
  982. package/dist/utils/uuid/sha1.js.map +1 -1
  983. package/dist/utils/uuid/stringify.cjs.map +1 -1
  984. package/dist/utils/uuid/stringify.d.cts +1 -2
  985. package/dist/utils/uuid/stringify.d.cts.map +1 -1
  986. package/dist/utils/uuid/stringify.d.ts +1 -1
  987. package/dist/utils/uuid/stringify.d.ts.map +1 -1
  988. package/dist/utils/uuid/stringify.js.map +1 -1
  989. package/dist/utils/uuid/types.d.cts.map +1 -1
  990. package/dist/utils/uuid/types.d.ts.map +1 -1
  991. package/dist/utils/uuid/v1.cjs +2 -1
  992. package/dist/utils/uuid/v1.cjs.map +1 -1
  993. package/dist/utils/uuid/v1.d.cts +1 -3
  994. package/dist/utils/uuid/v1.d.cts.map +1 -1
  995. package/dist/utils/uuid/v1.d.ts +1 -2
  996. package/dist/utils/uuid/v1.d.ts.map +1 -1
  997. package/dist/utils/uuid/v1.js +2 -2
  998. package/dist/utils/uuid/v1.js.map +1 -1
  999. package/dist/utils/uuid/v1ToV6.cjs.map +1 -1
  1000. package/dist/utils/uuid/v1ToV6.js.map +1 -1
  1001. package/dist/utils/uuid/v35.cjs +1 -0
  1002. package/dist/utils/uuid/v35.cjs.map +1 -1
  1003. package/dist/utils/uuid/v35.d.cts +6 -0
  1004. package/dist/utils/uuid/v35.d.cts.map +1 -0
  1005. package/dist/utils/uuid/v35.d.ts +6 -0
  1006. package/dist/utils/uuid/v35.d.ts.map +1 -0
  1007. package/dist/utils/uuid/v35.js +1 -1
  1008. package/dist/utils/uuid/v35.js.map +1 -1
  1009. package/dist/utils/uuid/v4.cjs.map +1 -1
  1010. package/dist/utils/uuid/v4.d.cts +1 -3
  1011. package/dist/utils/uuid/v4.d.cts.map +1 -1
  1012. package/dist/utils/uuid/v4.d.ts +1 -2
  1013. package/dist/utils/uuid/v4.d.ts.map +1 -1
  1014. package/dist/utils/uuid/v4.js.map +1 -1
  1015. package/dist/utils/uuid/v5.cjs.map +1 -1
  1016. package/dist/utils/uuid/v5.d.cts +5 -8
  1017. package/dist/utils/uuid/v5.d.cts.map +1 -1
  1018. package/dist/utils/uuid/v5.d.ts +5 -7
  1019. package/dist/utils/uuid/v5.d.ts.map +1 -1
  1020. package/dist/utils/uuid/v5.js.map +1 -1
  1021. package/dist/utils/uuid/v6.cjs +1 -1
  1022. package/dist/utils/uuid/v6.cjs.map +1 -1
  1023. package/dist/utils/uuid/v6.d.cts +1 -3
  1024. package/dist/utils/uuid/v6.d.cts.map +1 -1
  1025. package/dist/utils/uuid/v6.d.ts +1 -2
  1026. package/dist/utils/uuid/v6.d.ts.map +1 -1
  1027. package/dist/utils/uuid/v6.js +1 -1
  1028. package/dist/utils/uuid/v6.js.map +1 -1
  1029. package/dist/utils/uuid/v7.cjs +2 -1
  1030. package/dist/utils/uuid/v7.cjs.map +1 -1
  1031. package/dist/utils/uuid/v7.d.cts +1 -3
  1032. package/dist/utils/uuid/v7.d.cts.map +1 -1
  1033. package/dist/utils/uuid/v7.d.ts +1 -2
  1034. package/dist/utils/uuid/v7.d.ts.map +1 -1
  1035. package/dist/utils/uuid/v7.js +2 -2
  1036. package/dist/utils/uuid/v7.js.map +1 -1
  1037. package/dist/utils/uuid/validate.cjs.map +1 -1
  1038. package/dist/utils/uuid/validate.d.cts +1 -2
  1039. package/dist/utils/uuid/validate.d.cts.map +1 -1
  1040. package/dist/utils/uuid/validate.d.ts +1 -1
  1041. package/dist/utils/uuid/validate.d.ts.map +1 -1
  1042. package/dist/utils/uuid/validate.js.map +1 -1
  1043. package/dist/utils/uuid/version.cjs.map +1 -1
  1044. package/dist/utils/uuid/version.d.cts +1 -2
  1045. package/dist/utils/uuid/version.d.cts.map +1 -1
  1046. package/dist/utils/uuid/version.d.ts +1 -1
  1047. package/dist/utils/uuid/version.d.ts.map +1 -1
  1048. package/dist/utils/uuid/version.js.map +1 -1
  1049. package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -1
  1050. package/dist/utils/zod-to-json-schema/Options.d.cts +3 -1
  1051. package/dist/utils/zod-to-json-schema/Options.d.ts +3 -1
  1052. package/dist/utils/zod-to-json-schema/Options.js.map +1 -1
  1053. package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -1
  1054. package/dist/utils/zod-to-json-schema/Refs.d.cts +3 -1
  1055. package/dist/utils/zod-to-json-schema/Refs.d.ts +3 -1
  1056. package/dist/utils/zod-to-json-schema/Refs.js.map +1 -1
  1057. package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -1
  1058. package/dist/utils/zod-to-json-schema/errorMessages.d.cts +2 -1
  1059. package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -1
  1060. package/dist/utils/zod-to-json-schema/errorMessages.d.ts +2 -1
  1061. package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -1
  1062. package/dist/utils/zod-to-json-schema/errorMessages.js.map +1 -1
  1063. package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -1
  1064. package/dist/utils/zod-to-json-schema/getRelativePath.js.map +1 -1
  1065. package/dist/utils/zod-to-json-schema/index.cjs +79 -37
  1066. package/dist/utils/zod-to-json-schema/index.d.cts +15 -1
  1067. package/dist/utils/zod-to-json-schema/index.d.ts +15 -1
  1068. package/dist/utils/zod-to-json-schema/index.js +38 -38
  1069. package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -1
  1070. package/dist/utils/zod-to-json-schema/parseDef.d.cts +3 -1
  1071. package/dist/utils/zod-to-json-schema/parseDef.d.ts +3 -1
  1072. package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -1
  1073. package/dist/utils/zod-to-json-schema/parseTypes.d.cts +0 -1
  1074. package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -1
  1075. package/dist/utils/zod-to-json-schema/parseTypes.d.ts +0 -1
  1076. package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -1
  1077. package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -1
  1078. package/dist/utils/zod-to-json-schema/parsers/any.d.cts +1 -0
  1079. package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -1
  1080. package/dist/utils/zod-to-json-schema/parsers/any.d.ts +1 -0
  1081. package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -1
  1082. package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -1
  1083. package/dist/utils/zod-to-json-schema/parsers/array.cjs +0 -1
  1084. package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -1
  1085. package/dist/utils/zod-to-json-schema/parsers/array.d.cts +2 -0
  1086. package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -1
  1087. package/dist/utils/zod-to-json-schema/parsers/array.d.ts +2 -0
  1088. package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -1
  1089. package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -1
  1090. package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -1
  1091. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts +2 -0
  1092. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -1
  1093. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts +2 -0
  1094. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
  1095. package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -1
  1096. package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -1
  1097. package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -1
  1098. package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -1
  1099. package/dist/utils/zod-to-json-schema/parsers/boolean.js.map +1 -1
  1100. package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -1
  1101. package/dist/utils/zod-to-json-schema/parsers/branded.d.cts +3 -1
  1102. package/dist/utils/zod-to-json-schema/parsers/branded.d.ts +3 -1
  1103. package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -1
  1104. package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -1
  1105. package/dist/utils/zod-to-json-schema/parsers/catch.d.cts +3 -1
  1106. package/dist/utils/zod-to-json-schema/parsers/catch.d.ts +3 -1
  1107. package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -1
  1108. package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -1
  1109. package/dist/utils/zod-to-json-schema/parsers/date.d.cts +3 -0
  1110. package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -1
  1111. package/dist/utils/zod-to-json-schema/parsers/date.d.ts +3 -0
  1112. package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -1
  1113. package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -1
  1114. package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -1
  1115. package/dist/utils/zod-to-json-schema/parsers/default.d.cts +3 -1
  1116. package/dist/utils/zod-to-json-schema/parsers/default.d.ts +3 -1
  1117. package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -1
  1118. package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -1
  1119. package/dist/utils/zod-to-json-schema/parsers/effects.d.cts +3 -1
  1120. package/dist/utils/zod-to-json-schema/parsers/effects.d.ts +3 -1
  1121. package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -1
  1122. package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -1
  1123. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts +1 -0
  1124. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -1
  1125. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts +1 -0
  1126. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -1
  1127. package/dist/utils/zod-to-json-schema/parsers/enum.js.map +1 -1
  1128. package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -1
  1129. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts +2 -0
  1130. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -1
  1131. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts +2 -0
  1132. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -1
  1133. package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -1
  1134. package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -1
  1135. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts +2 -0
  1136. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -1
  1137. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts +2 -0
  1138. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
  1139. package/dist/utils/zod-to-json-schema/parsers/literal.js.map +1 -1
  1140. package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -1
  1141. package/dist/utils/zod-to-json-schema/parsers/map.d.cts +3 -0
  1142. package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -1
  1143. package/dist/utils/zod-to-json-schema/parsers/map.d.ts +3 -0
  1144. package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -1
  1145. package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -1
  1146. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -1
  1147. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts +1 -0
  1148. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -1
  1149. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts +1 -0
  1150. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -1
  1151. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -1
  1152. package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -1
  1153. package/dist/utils/zod-to-json-schema/parsers/never.d.cts +1 -0
  1154. package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -1
  1155. package/dist/utils/zod-to-json-schema/parsers/never.d.ts +1 -0
  1156. package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -1
  1157. package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -1
  1158. package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -1
  1159. package/dist/utils/zod-to-json-schema/parsers/null.d.cts +1 -0
  1160. package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -1
  1161. package/dist/utils/zod-to-json-schema/parsers/null.d.ts +1 -0
  1162. package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -1
  1163. package/dist/utils/zod-to-json-schema/parsers/null.js.map +1 -1
  1164. package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -1
  1165. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts +2 -0
  1166. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -1
  1167. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts +2 -0
  1168. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  1169. package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -1
  1170. package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -1
  1171. package/dist/utils/zod-to-json-schema/parsers/number.d.cts +2 -0
  1172. package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -1
  1173. package/dist/utils/zod-to-json-schema/parsers/number.d.ts +2 -0
  1174. package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -1
  1175. package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -1
  1176. package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -1
  1177. package/dist/utils/zod-to-json-schema/parsers/object.d.cts +2 -0
  1178. package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -1
  1179. package/dist/utils/zod-to-json-schema/parsers/object.d.ts +2 -0
  1180. package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -1
  1181. package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -1
  1182. package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -1
  1183. package/dist/utils/zod-to-json-schema/parsers/optional.d.cts +3 -1
  1184. package/dist/utils/zod-to-json-schema/parsers/optional.d.ts +3 -1
  1185. package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -1
  1186. package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -1
  1187. package/dist/utils/zod-to-json-schema/parsers/pipeline.d.cts +4 -1
  1188. package/dist/utils/zod-to-json-schema/parsers/pipeline.d.ts +4 -1
  1189. package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -1
  1190. package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -1
  1191. package/dist/utils/zod-to-json-schema/parsers/promise.d.cts +3 -1
  1192. package/dist/utils/zod-to-json-schema/parsers/promise.d.ts +3 -1
  1193. package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -1
  1194. package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -1
  1195. package/dist/utils/zod-to-json-schema/parsers/readonly.d.cts +3 -1
  1196. package/dist/utils/zod-to-json-schema/parsers/readonly.d.ts +3 -1
  1197. package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -1
  1198. package/dist/utils/zod-to-json-schema/parsers/record.cjs +0 -1
  1199. package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -1
  1200. package/dist/utils/zod-to-json-schema/parsers/record.d.cts +2 -0
  1201. package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -1
  1202. package/dist/utils/zod-to-json-schema/parsers/record.d.ts +2 -0
  1203. package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -1
  1204. package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -1
  1205. package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -1
  1206. package/dist/utils/zod-to-json-schema/parsers/set.d.cts +2 -0
  1207. package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -1
  1208. package/dist/utils/zod-to-json-schema/parsers/set.d.ts +2 -0
  1209. package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -1
  1210. package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -1
  1211. package/dist/utils/zod-to-json-schema/parsers/string.cjs +0 -2
  1212. package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -1
  1213. package/dist/utils/zod-to-json-schema/parsers/string.d.cts +2 -0
  1214. package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -1
  1215. package/dist/utils/zod-to-json-schema/parsers/string.d.ts +2 -0
  1216. package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -1
  1217. package/dist/utils/zod-to-json-schema/parsers/string.js +0 -2
  1218. package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -1
  1219. package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -1
  1220. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts +2 -0
  1221. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -1
  1222. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts +2 -0
  1223. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
  1224. package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -1
  1225. package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -1
  1226. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts +1 -0
  1227. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -1
  1228. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts +1 -0
  1229. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -1
  1230. package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -1
  1231. package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -1
  1232. package/dist/utils/zod-to-json-schema/parsers/union.d.cts +2 -0
  1233. package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -1
  1234. package/dist/utils/zod-to-json-schema/parsers/union.d.ts +2 -0
  1235. package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -1
  1236. package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -1
  1237. package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -1
  1238. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts +1 -0
  1239. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -1
  1240. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts +1 -0
  1241. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -1
  1242. package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -1
  1243. package/dist/utils/zod-to-json-schema/selectParser.cjs +0 -1
  1244. package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -1
  1245. package/dist/utils/zod-to-json-schema/selectParser.d.cts +3 -1
  1246. package/dist/utils/zod-to-json-schema/selectParser.d.ts +2 -0
  1247. package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -1
  1248. package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -1
  1249. package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.cts +3 -1
  1250. package/dist/utils/zod-to-json-schema/zodToJsonSchema.d.ts +3 -1
  1251. package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  1252. package/dist/vectorstores.cjs.map +1 -1
  1253. package/dist/vectorstores.d.cts +0 -1
  1254. package/dist/vectorstores.d.cts.map +1 -1
  1255. package/dist/vectorstores.d.ts +0 -1
  1256. package/dist/vectorstores.d.ts.map +1 -1
  1257. package/dist/vectorstores.js.map +1 -1
  1258. package/package.json +15 -4
  1259. package/utils/gateway.cjs +1 -0
  1260. package/utils/gateway.d.cts +1 -0
  1261. package/utils/gateway.d.ts +1 -0
  1262. package/utils/gateway.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"run_collector.d.ts","names":[],"sources":["../../src/tracers/run_collector.ts"],"mappings":";;;;;;AAOA;;cAAa,2BAAA,SAAoC,UAAA;EAQnC;EANZ,IAAA;EAsBgC;EAnBhC,SAAA;EAL+C;EAQ/C,UAAA,EAAY,GAAA;EAR6C;;;;EAczD,WAAA,CAAA;IAAc;EAAA;IAAe,SAAA;EAAA;EAAf;;;;EAAA,UAUE,UAAA,CAAW,GAAA,EAAK,OAAA,GAAU,OAAA;AAAA"}
1
+ {"version":3,"file":"run_collector.d.ts","names":[],"sources":["../../src/tracers/run_collector.ts"],"mappings":";;;;;;;cAOa,oCAAoC;;EAE/C;;EAGA;;EAGA,YAAY;;;;;EAMZ,cAAc;IAAe;;;;;;YAUb,WAAW,KAAK,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"run_collector.js","names":[],"sources":["../../src/tracers/run_collector.ts"],"sourcesContent":["import { BaseRun, Run } from \"langsmith/schemas\";\nimport { BaseTracer } from \"./base.js\";\n\n/**\n * A callback handler that collects traced runs and makes it easy to fetch the traced run object from calls through any langchain object.\n * For instance, it makes it easy to fetch the run ID and then do things with that, such as log feedback.\n */\nexport class RunCollectorCallbackHandler extends BaseTracer {\n /** The name of the callback handler. */\n name = \"run_collector\";\n\n /** The ID of the example. */\n exampleId?: string;\n\n /** An array of traced runs. */\n tracedRuns: Run[];\n\n /**\n * Creates a new instance of the RunCollectorCallbackHandler class.\n * @param exampleId The ID of the example.\n */\n constructor({ exampleId }: { exampleId?: string } = {}) {\n super({ _awaitHandler: true });\n this.exampleId = exampleId;\n this.tracedRuns = [];\n }\n\n /**\n * Persists the given run object.\n * @param run The run object to persist.\n */\n protected async persistRun(run: BaseRun): Promise<void> {\n const run_ = { ...run } as Run;\n run_.reference_example_id = this.exampleId;\n this.tracedRuns.push(run_);\n }\n}\n"],"mappings":";;;;;;;;AAOA,IAAa,8BAAb,cAAiD,WAAW;;CAE1D,OAAO;;CAGP;;CAGA;;;;;CAMA,YAAY,EAAE,cAAsC,EAAE,EAAE;AACtD,QAAM,EAAE,eAAe,MAAM,CAAC;AAC9B,OAAK,YAAY;AACjB,OAAK,aAAa,EAAE;;;;;;CAOtB,MAAgB,WAAW,KAA6B;EACtD,MAAM,OAAO,EAAE,GAAG,KAAK;AACvB,OAAK,uBAAuB,KAAK;AACjC,OAAK,WAAW,KAAK,KAAK"}
1
+ {"version":3,"file":"run_collector.js","names":[],"sources":["../../src/tracers/run_collector.ts"],"sourcesContent":["import { BaseRun, Run } from \"langsmith/schemas\";\nimport { BaseTracer } from \"./base.js\";\n\n/**\n * A callback handler that collects traced runs and makes it easy to fetch the traced run object from calls through any langchain object.\n * For instance, it makes it easy to fetch the run ID and then do things with that, such as log feedback.\n */\nexport class RunCollectorCallbackHandler extends BaseTracer {\n /** The name of the callback handler. */\n name = \"run_collector\";\n\n /** The ID of the example. */\n exampleId?: string;\n\n /** An array of traced runs. */\n tracedRuns: Run[];\n\n /**\n * Creates a new instance of the RunCollectorCallbackHandler class.\n * @param exampleId The ID of the example.\n */\n constructor({ exampleId }: { exampleId?: string } = {}) {\n super({ _awaitHandler: true });\n this.exampleId = exampleId;\n this.tracedRuns = [];\n }\n\n /**\n * Persists the given run object.\n * @param run The run object to persist.\n */\n protected async persistRun(run: BaseRun): Promise<void> {\n const run_ = { ...run } as Run;\n run_.reference_example_id = this.exampleId;\n this.tracedRuns.push(run_);\n }\n}\n"],"mappings":";;;;;;;;AAOA,IAAa,8BAAb,cAAiD,WAAW;;CAE1D,OAAO;;CAGP;;CAGA;;;;;CAMA,YAAY,EAAE,cAAsC,CAAC,GAAG;EACtD,MAAM,EAAE,eAAe,KAAK,CAAC;EAC7B,KAAK,YAAY;EACjB,KAAK,aAAa,CAAC;CACrB;;;;;CAMA,MAAgB,WAAW,KAA6B;EACtD,MAAM,OAAO,EAAE,GAAG,IAAI;EACtB,KAAK,uBAAuB,KAAK;EACjC,KAAK,WAAW,KAAK,IAAI;CAC3B;AACF"}
@@ -23,7 +23,7 @@ var tracer_langchain_exports = /* @__PURE__ */ require_runtime.__exportAll({
23
23
  * enclosing tracer config. Only keys that are strictly for LangSmith
24
24
  * tracing bookkeeping should be added.
25
25
  */
26
- const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set(["ls_agent_type"]);
26
+ const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = /* @__PURE__ */ new Set(["ls_agent_type"]);
27
27
  /**
28
28
  * Extract usage_metadata from chat generations.
29
29
  *
@@ -36,6 +36,7 @@ function _getUsageMetadataFromGenerations(generations) {
36
36
  return output;
37
37
  }
38
38
  var LangChainTracer = class LangChainTracer extends require_tracers_base.BaseTracer {
39
+ fields;
39
40
  name = "langchain_tracer";
40
41
  projectName;
41
42
  exampleId;
@@ -88,7 +89,7 @@ var LangChainTracer = class LangChainTracer extends require_tracers_base.BaseTra
88
89
  mergedMetadata = { ...this.tracingMetadata };
89
90
  for (const [key, value] of Object.entries(metadata)) if (!Object.prototype.hasOwnProperty.call(mergedMetadata, key) || OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)) mergedMetadata[key] = value;
90
91
  }
91
- const mergedTags = tags ? Array.from(new Set([...this.tracingTags, ...tags])) : [...this.tracingTags];
92
+ const mergedTags = tags ? Array.from(/* @__PURE__ */ new Set([...this.tracingTags, ...tags])) : [...this.tracingTags];
92
93
  const copied = new LangChainTracer({
93
94
  ...this.fields,
94
95
  metadata: mergedMetadata,
@@ -174,7 +175,7 @@ function _patchMissingTracingDefaults(tracer, run) {
174
175
  }
175
176
  if (didPatchMetadata) run.extra.metadata = metadata;
176
177
  }
177
- if (tracer.tracingTags.length > 0) run.tags = Array.from(new Set([...run.tags ?? [], ...tracer.tracingTags]));
178
+ if (tracer.tracingTags.length > 0) run.tags = Array.from(/* @__PURE__ */ new Set([...run.tags ?? [], ...tracer.tracingTags]));
178
179
  }
179
180
  //#endregion
180
181
  exports.LangChainTracer = LangChainTracer;
@@ -1 +1 @@
1
- {"version":3,"file":"tracer_langchain.cjs","names":["AIMessage","mergeUsageMetadata","BaseTracer","getDefaultLangChainClientSingleton","RunTree"],"sources":["../../src/tracers/tracer_langchain.ts"],"sourcesContent":["import {\n type Client,\n type LangSmithTracingClientInterface,\n getDefaultProjectName,\n} from \"langsmith\";\nimport { RunTree, type RunTreeConfig } from \"langsmith/run_trees\";\nimport { getCurrentRunTree } from \"langsmith/singletons/traceable\";\n\nimport {\n BaseRun,\n RunCreate,\n RunUpdate as BaseRunUpdate,\n KVMap,\n} from \"langsmith/schemas\";\nimport { BaseTracer, Run as BaseTracerRun } from \"./base.js\";\nimport { BaseCallbackHandlerInput } from \"../callbacks/base.js\";\nimport { getDefaultLangChainClientSingleton } from \"../singletons/tracer.js\";\nimport { ChatGeneration } from \"../outputs.js\";\nimport { AIMessage } from \"../messages/ai.js\";\nimport { mergeUsageMetadata, UsageMetadata } from \"../messages/metadata.js\";\n\nexport interface Run extends BaseRun {\n id: string;\n child_runs: this[];\n child_execution_order: number;\n dotted_order?: string;\n trace_id?: string;\n}\n\nexport interface RunCreate2 extends RunCreate {\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface RunUpdate extends BaseRunUpdate {\n events: BaseRun[\"events\"];\n inputs: KVMap;\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface LangChainTracerFields extends BaseCallbackHandlerInput {\n exampleId?: string;\n projectName?: string;\n client?: LangSmithTracingClientInterface;\n replicas?: RunTreeConfig[\"replicas\"];\n metadata?: Record<string, unknown>;\n tags?: string[];\n}\n\n/**\n * Keys that should be inherited from `tracerInheritableMetadata` even when\n * the run already has a value for them. This lets nested contexts\n * (e.g. a subagent invoked from inside a parent agent) override a\n * LangSmith-only tracing metadata value that was set by an ancestor.\n *\n * Keep this list very small: every key here loses the default\n * \"first wins\" protection and is always clobbered by the nearest\n * enclosing tracer config. Only keys that are strictly for LangSmith\n * tracing bookkeeping should be added.\n */\nexport const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set<string>([\n \"ls_agent_type\",\n]);\n\n/**\n * Extract usage_metadata from chat generations.\n *\n * Iterates through generations to find and aggregates all usage_metadata\n * found in chat messages. This is typically present in chat model outputs.\n */\nfunction _getUsageMetadataFromGenerations(\n generations: ChatGeneration[][]\n): UsageMetadata | undefined {\n let output: UsageMetadata | undefined = undefined;\n for (const generationBatch of generations) {\n for (const generation of generationBatch) {\n if (\n AIMessage.isInstance(generation.message) &&\n generation.message.usage_metadata !== undefined\n ) {\n output = mergeUsageMetadata(output, generation.message.usage_metadata);\n }\n }\n }\n return output;\n}\n\nexport class LangChainTracer\n extends BaseTracer\n implements LangChainTracerFields\n{\n name = \"langchain_tracer\";\n\n projectName?: string;\n\n exampleId?: string;\n\n client: LangSmithTracingClientInterface;\n\n replicas?: RunTreeConfig[\"replicas\"];\n\n usesRunTreeMap = true;\n\n tracingMetadata?: Record<string, unknown>;\n\n tracingTags: string[] = [];\n\n constructor(protected fields: LangChainTracerFields = {}) {\n super(fields);\n const { exampleId, projectName, client, replicas, metadata, tags } = fields;\n\n this.projectName = projectName ?? getDefaultProjectName();\n this.replicas = replicas;\n this.exampleId = exampleId;\n this.client = client ?? getDefaultLangChainClientSingleton();\n this.tracingMetadata = metadata ? { ...metadata } : undefined;\n this.tracingTags = tags ?? [];\n\n const traceableTree = LangChainTracer.getTraceableRunTree();\n if (traceableTree) {\n this.updateFromRunTree(traceableTree);\n }\n }\n\n protected async persistRun(_run: Run): Promise<void> {\n // empty\n }\n\n async onRunCreate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n if (!run.extra?.lc_defers_inputs) {\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n await runTree?.postRun();\n }\n }\n\n async onRunUpdate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n if (run.extra?.lc_defers_inputs) {\n await runTree?.postRun();\n } else {\n await runTree?.patchRun();\n }\n }\n\n onLLMEnd(run: BaseTracerRun): void {\n // Extract usage_metadata from outputs and store in extra.metadata\n const outputs = run.outputs as\n | { generations?: ChatGeneration[][] }\n | undefined;\n if (outputs?.generations) {\n const usageMetadata = _getUsageMetadataFromGenerations(\n outputs.generations\n );\n if (usageMetadata !== undefined) {\n run.extra = run.extra ?? {};\n const metadata =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n metadata.usage_metadata = usageMetadata;\n run.extra.metadata = metadata;\n }\n }\n }\n\n copyWithTracingConfig({\n metadata,\n tags,\n }: {\n metadata?: Record<string, unknown>;\n tags?: string[];\n }): LangChainTracer {\n let mergedMetadata: Record<string, unknown> | undefined;\n if (metadata === undefined) {\n mergedMetadata = this.tracingMetadata\n ? { ...this.tracingMetadata }\n : undefined;\n } else if (this.tracingMetadata === undefined) {\n mergedMetadata = { ...metadata };\n } else {\n mergedMetadata = { ...this.tracingMetadata };\n for (const [key, value] of Object.entries(metadata)) {\n // For allowlisted LangSmith-only inheritable metadata keys (e.g.\n // `ls_agent_type`), nested callers are allowed to OVERRIDE the\n // value inherited from an ancestor. For all other keys we keep\n // the existing \"first wins\" behavior so that ancestor-provided\n // tracing metadata is not accidentally clobbered by child runs.\n if (\n !Object.prototype.hasOwnProperty.call(mergedMetadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n mergedMetadata[key] = value;\n }\n }\n }\n\n const mergedTags = tags\n ? Array.from(new Set([...this.tracingTags, ...tags]))\n : [...this.tracingTags];\n\n const copied = new LangChainTracer({\n ...this.fields,\n metadata: mergedMetadata,\n tags: mergedTags,\n });\n copied.runMap = this.runMap;\n copied.runTreeMap = this.runTreeMap;\n return copied;\n }\n\n /** @internal */\n _getRunStoreKey(): object {\n return this.runTreeMap;\n }\n\n getRun(id: string): Run | undefined {\n return this.runTreeMap.get(id);\n }\n\n updateFromRunTree(runTree: RunTree) {\n this.runTreeMap.set(runTree.id, runTree);\n let rootRun: RunTree = runTree;\n const visited = new Set<string>();\n while (rootRun.parent_run) {\n if (visited.has(rootRun.id)) break;\n visited.add(rootRun.id);\n\n if (!rootRun.parent_run) break;\n rootRun = rootRun.parent_run as RunTree;\n }\n visited.clear();\n\n const queue = [rootRun];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current || visited.has(current.id)) continue;\n visited.add(current.id);\n\n this.runTreeMap.set(current.id, current);\n if (current.child_runs) {\n queue.push(...current.child_runs);\n }\n }\n\n this.client = runTree.client ?? this.client;\n this.replicas = runTree.replicas ?? this.replicas;\n this.projectName = runTree.project_name ?? this.projectName;\n this.exampleId = runTree.reference_example_id ?? this.exampleId;\n this.fields = {\n ...this.fields,\n client: this.client,\n replicas: this.replicas,\n projectName: this.projectName,\n exampleId: this.exampleId,\n };\n }\n\n getRunTreeWithTracingConfig(id: string): RunTree | undefined {\n const runTree = this.runTreeMap.get(id);\n if (!runTree) return undefined;\n\n return new RunTree({\n ...runTree,\n client: this.client as Client,\n project_name: this.projectName,\n replicas: this.replicas,\n reference_example_id: this.exampleId,\n tracingEnabled: true,\n });\n }\n\n static getTraceableRunTree(): RunTree | undefined {\n try {\n return (\n // The type cast here provides forward compatibility. Old versions of LangSmith will just\n // ignore the permitAbsentRunTree arg.\n (\n getCurrentRunTree as (\n permitAbsentRunTree: boolean\n ) => ReturnType<typeof getCurrentRunTree> | undefined\n )(true)\n );\n } catch {\n return undefined;\n }\n }\n\n static [Symbol.hasInstance](instance: unknown): boolean {\n if (typeof instance !== \"object\" || instance === null) {\n return false;\n }\n const candidate = instance as Record<string, unknown>;\n return (\n \"name\" in candidate &&\n candidate.name === \"langchain_tracer\" &&\n \"copyWithTracingConfig\" in candidate &&\n typeof candidate.copyWithTracingConfig === \"function\" &&\n \"getRunTreeWithTracingConfig\" in candidate &&\n typeof candidate.getRunTreeWithTracingConfig === \"function\"\n );\n }\n}\n\nfunction _patchMissingTracingDefaults(tracer: LangChainTracer, run: Run): void {\n if (tracer.tracingMetadata) {\n run.extra ??= {};\n const metadata: Record<string, unknown> =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n let didPatchMetadata = false;\n for (const [key, value] of Object.entries(tracer.tracingMetadata)) {\n // `OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS` are a small, LangSmith-only\n // allowlist that bypasses the \"first wins\" merge so a nested caller\n // (e.g. a subagent) can override a parent-set value.\n if (\n !Object.prototype.hasOwnProperty.call(metadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n if (metadata[key] !== value) {\n metadata[key] = value;\n didPatchMetadata = true;\n }\n }\n }\n if (didPatchMetadata) {\n run.extra.metadata = metadata;\n }\n }\n\n if (tracer.tracingTags.length > 0) {\n run.tags = Array.from(\n new Set([...(run.tags ?? []), ...tracer.tracingTags])\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tracer_langchain.cjs","names":["AIMessage","mergeUsageMetadata","BaseTracer","getDefaultLangChainClientSingleton","RunTree"],"sources":["../../src/tracers/tracer_langchain.ts"],"sourcesContent":["import {\n type Client,\n type LangSmithTracingClientInterface,\n getDefaultProjectName,\n} from \"langsmith\";\nimport { RunTree, type RunTreeConfig } from \"langsmith/run_trees\";\nimport { getCurrentRunTree } from \"langsmith/singletons/traceable\";\n\nimport {\n BaseRun,\n RunCreate,\n RunUpdate as BaseRunUpdate,\n KVMap,\n} from \"langsmith/schemas\";\nimport { BaseTracer, Run as BaseTracerRun } from \"./base.js\";\nimport { BaseCallbackHandlerInput } from \"../callbacks/base.js\";\nimport { getDefaultLangChainClientSingleton } from \"../singletons/tracer.js\";\nimport { ChatGeneration } from \"../outputs.js\";\nimport { AIMessage } from \"../messages/ai.js\";\nimport { mergeUsageMetadata, UsageMetadata } from \"../messages/metadata.js\";\n\nexport interface Run extends BaseRun {\n id: string;\n child_runs: this[];\n child_execution_order: number;\n dotted_order?: string;\n trace_id?: string;\n}\n\nexport interface RunCreate2 extends RunCreate {\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface RunUpdate extends BaseRunUpdate {\n events: BaseRun[\"events\"];\n inputs: KVMap;\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface LangChainTracerFields extends BaseCallbackHandlerInput {\n exampleId?: string;\n projectName?: string;\n client?: LangSmithTracingClientInterface;\n replicas?: RunTreeConfig[\"replicas\"];\n metadata?: Record<string, unknown>;\n tags?: string[];\n}\n\n/**\n * Keys that should be inherited from `tracerInheritableMetadata` even when\n * the run already has a value for them. This lets nested contexts\n * (e.g. a subagent invoked from inside a parent agent) override a\n * LangSmith-only tracing metadata value that was set by an ancestor.\n *\n * Keep this list very small: every key here loses the default\n * \"first wins\" protection and is always clobbered by the nearest\n * enclosing tracer config. Only keys that are strictly for LangSmith\n * tracing bookkeeping should be added.\n */\nexport const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set<string>([\n \"ls_agent_type\",\n]);\n\n/**\n * Extract usage_metadata from chat generations.\n *\n * Iterates through generations to find and aggregates all usage_metadata\n * found in chat messages. This is typically present in chat model outputs.\n */\nfunction _getUsageMetadataFromGenerations(\n generations: ChatGeneration[][]\n): UsageMetadata | undefined {\n let output: UsageMetadata | undefined = undefined;\n for (const generationBatch of generations) {\n for (const generation of generationBatch) {\n if (\n AIMessage.isInstance(generation.message) &&\n generation.message.usage_metadata !== undefined\n ) {\n output = mergeUsageMetadata(output, generation.message.usage_metadata);\n }\n }\n }\n return output;\n}\n\nexport class LangChainTracer\n extends BaseTracer\n implements LangChainTracerFields\n{\n name = \"langchain_tracer\";\n\n projectName?: string;\n\n exampleId?: string;\n\n client: LangSmithTracingClientInterface;\n\n replicas?: RunTreeConfig[\"replicas\"];\n\n usesRunTreeMap = true;\n\n tracingMetadata?: Record<string, unknown>;\n\n tracingTags: string[] = [];\n\n constructor(protected fields: LangChainTracerFields = {}) {\n super(fields);\n const { exampleId, projectName, client, replicas, metadata, tags } = fields;\n\n this.projectName = projectName ?? getDefaultProjectName();\n this.replicas = replicas;\n this.exampleId = exampleId;\n this.client = client ?? getDefaultLangChainClientSingleton();\n this.tracingMetadata = metadata ? { ...metadata } : undefined;\n this.tracingTags = tags ?? [];\n\n const traceableTree = LangChainTracer.getTraceableRunTree();\n if (traceableTree) {\n this.updateFromRunTree(traceableTree);\n }\n }\n\n protected async persistRun(_run: Run): Promise<void> {\n // empty\n }\n\n async onRunCreate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n if (!run.extra?.lc_defers_inputs) {\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n await runTree?.postRun();\n }\n }\n\n async onRunUpdate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n if (run.extra?.lc_defers_inputs) {\n await runTree?.postRun();\n } else {\n await runTree?.patchRun();\n }\n }\n\n onLLMEnd(run: BaseTracerRun): void {\n // Extract usage_metadata from outputs and store in extra.metadata\n const outputs = run.outputs as\n | { generations?: ChatGeneration[][] }\n | undefined;\n if (outputs?.generations) {\n const usageMetadata = _getUsageMetadataFromGenerations(\n outputs.generations\n );\n if (usageMetadata !== undefined) {\n run.extra = run.extra ?? {};\n const metadata =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n metadata.usage_metadata = usageMetadata;\n run.extra.metadata = metadata;\n }\n }\n }\n\n copyWithTracingConfig({\n metadata,\n tags,\n }: {\n metadata?: Record<string, unknown>;\n tags?: string[];\n }): LangChainTracer {\n let mergedMetadata: Record<string, unknown> | undefined;\n if (metadata === undefined) {\n mergedMetadata = this.tracingMetadata\n ? { ...this.tracingMetadata }\n : undefined;\n } else if (this.tracingMetadata === undefined) {\n mergedMetadata = { ...metadata };\n } else {\n mergedMetadata = { ...this.tracingMetadata };\n for (const [key, value] of Object.entries(metadata)) {\n // For allowlisted LangSmith-only inheritable metadata keys (e.g.\n // `ls_agent_type`), nested callers are allowed to OVERRIDE the\n // value inherited from an ancestor. For all other keys we keep\n // the existing \"first wins\" behavior so that ancestor-provided\n // tracing metadata is not accidentally clobbered by child runs.\n if (\n !Object.prototype.hasOwnProperty.call(mergedMetadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n mergedMetadata[key] = value;\n }\n }\n }\n\n const mergedTags = tags\n ? Array.from(new Set([...this.tracingTags, ...tags]))\n : [...this.tracingTags];\n\n const copied = new LangChainTracer({\n ...this.fields,\n metadata: mergedMetadata,\n tags: mergedTags,\n });\n copied.runMap = this.runMap;\n copied.runTreeMap = this.runTreeMap;\n return copied;\n }\n\n /** @internal */\n _getRunStoreKey(): object {\n return this.runTreeMap;\n }\n\n getRun(id: string): Run | undefined {\n return this.runTreeMap.get(id);\n }\n\n updateFromRunTree(runTree: RunTree) {\n this.runTreeMap.set(runTree.id, runTree);\n let rootRun: RunTree = runTree;\n const visited = new Set<string>();\n while (rootRun.parent_run) {\n if (visited.has(rootRun.id)) break;\n visited.add(rootRun.id);\n\n if (!rootRun.parent_run) break;\n rootRun = rootRun.parent_run as RunTree;\n }\n visited.clear();\n\n const queue = [rootRun];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current || visited.has(current.id)) continue;\n visited.add(current.id);\n\n this.runTreeMap.set(current.id, current);\n if (current.child_runs) {\n queue.push(...current.child_runs);\n }\n }\n\n this.client = runTree.client ?? this.client;\n this.replicas = runTree.replicas ?? this.replicas;\n this.projectName = runTree.project_name ?? this.projectName;\n this.exampleId = runTree.reference_example_id ?? this.exampleId;\n this.fields = {\n ...this.fields,\n client: this.client,\n replicas: this.replicas,\n projectName: this.projectName,\n exampleId: this.exampleId,\n };\n }\n\n getRunTreeWithTracingConfig(id: string): RunTree | undefined {\n const runTree = this.runTreeMap.get(id);\n if (!runTree) return undefined;\n\n return new RunTree({\n ...runTree,\n client: this.client as Client,\n project_name: this.projectName,\n replicas: this.replicas,\n reference_example_id: this.exampleId,\n tracingEnabled: true,\n });\n }\n\n static getTraceableRunTree(): RunTree | undefined {\n try {\n return (\n // The type cast here provides forward compatibility. Old versions of LangSmith will just\n // ignore the permitAbsentRunTree arg.\n (\n getCurrentRunTree as (\n permitAbsentRunTree: boolean\n ) => ReturnType<typeof getCurrentRunTree> | undefined\n )(true)\n );\n } catch {\n return undefined;\n }\n }\n\n static [Symbol.hasInstance](instance: unknown): boolean {\n if (typeof instance !== \"object\" || instance === null) {\n return false;\n }\n const candidate = instance as Record<string, unknown>;\n return (\n \"name\" in candidate &&\n candidate.name === \"langchain_tracer\" &&\n \"copyWithTracingConfig\" in candidate &&\n typeof candidate.copyWithTracingConfig === \"function\" &&\n \"getRunTreeWithTracingConfig\" in candidate &&\n typeof candidate.getRunTreeWithTracingConfig === \"function\"\n );\n }\n}\n\nfunction _patchMissingTracingDefaults(tracer: LangChainTracer, run: Run): void {\n if (tracer.tracingMetadata) {\n run.extra ??= {};\n const metadata: Record<string, unknown> =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n let didPatchMetadata = false;\n for (const [key, value] of Object.entries(tracer.tracingMetadata)) {\n // `OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS` are a small, LangSmith-only\n // allowlist that bypasses the \"first wins\" merge so a nested caller\n // (e.g. a subagent) can override a parent-set value.\n if (\n !Object.prototype.hasOwnProperty.call(metadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n if (metadata[key] !== value) {\n metadata[key] = value;\n didPatchMetadata = true;\n }\n }\n }\n if (didPatchMetadata) {\n run.extra.metadata = metadata;\n }\n }\n\n if (tracer.tracingTags.length > 0) {\n run.tags = Array.from(\n new Set([...(run.tags ?? []), ...tracer.tracingTags])\n );\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { BaseTracer, Run as Run$2 } from "./base.cjs";
3
3
  import { BaseRun, KVMap, RunCreate, RunUpdate as RunUpdate$1 } from "langsmith/schemas";
4
4
  import { RunTree, RunTreeConfig } from "langsmith/run_trees";
5
5
  import { LangSmithTracingClientInterface } from "langsmith";
6
-
7
6
  //#region src/tracers/tracer_langchain.d.ts
8
7
  interface Run extends BaseRun {
9
8
  id: string;
@@ -57,10 +56,7 @@ declare class LangChainTracer extends BaseTracer implements LangChainTracerField
57
56
  onRunCreate(run: Run): Promise<void>;
58
57
  onRunUpdate(run: Run): Promise<void>;
59
58
  onLLMEnd(run: Run$2): void;
60
- copyWithTracingConfig({
61
- metadata,
62
- tags
63
- }: {
59
+ copyWithTracingConfig({ metadata, tags }: {
64
60
  metadata?: Record<string, unknown>;
65
61
  tags?: string[];
66
62
  }): LangChainTracer;
@@ -1 +1 @@
1
- {"version":3,"file":"tracer_langchain.d.cts","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"mappings":";;;;;;;UAqBiB,GAAA,SAAY,OAAA;EAC3B,EAAA;EACA,UAAA;EACA,qBAAA;EACA,YAAA;EACA,QAAA;AAAA;AAAA,UAGe,UAAA,SAAmB,SAAA;EAClC,QAAA;EACA,YAAA;AAAA;AAAA,UAGe,SAAA,SAAkB,WAAA;EACjC,MAAA,EAAQ,OAAA;EACR,MAAA,EAAQ,KAAA;EACR,QAAA;EACA,YAAA;AAAA;AAAA,UAGe,qBAAA,SAA8B,wBAAA;EAC7C,SAAA;EACA,WAAA;EACA,MAAA,GAAS,+BAAA;EACT,QAAA,GAAW,aAAA;EACX,QAAA,GAAW,MAAA;EACX,IAAA;AAAA;;;;;;;;;;;;cAcW,+CAAA,EAA+C,GAAA;AAAA,cA2B/C,eAAA,SACH,UAAA,YACG,qBAAA;EAAA,UAkBW,MAAA,EAAQ,qBAAA;EAhB9B,IAAA;EAEA,WAAA;EAEA,SAAA;EAEA,MAAA,EAAQ,+BAAA;EAER,QAAA,GAAW,aAAA;EAEX,cAAA;EAEA,eAAA,GAAkB,MAAA;EAElB,WAAA;EAEA,WAAA,CAAsB,MAAA,GAAQ,qBAAA;EAAA,UAiBd,UAAA,CAAW,IAAA,EAAM,GAAA,GAAM,OAAA;EAIjC,WAAA,CAAY,GAAA,EAAK,GAAA,GAAM,OAAA;EAQvB,WAAA,CAAY,GAAA,EAAK,GAAA,GAAM,OAAA;EAU7B,QAAA,CAAS,GAAA,EAAK,KAAA;EAmBd,qBAAA,CAAA;IACE,QAAA;IACA;EAAA;IAEA,QAAA,GAAW,MAAA;IACX,IAAA;EAAA,IACE,eAAA;EA9HJ;EAsKA,eAAA,CAAA;EAIA,MAAA,CAAO,EAAA,WAAa,GAAA;EAIpB,iBAAA,CAAkB,OAAA,EAAS,OAAA;EAsC3B,2BAAA,CAA4B,EAAA,WAAa,OAAA;EAAA,OAclC,mBAAA,CAAA,GAAuB,OAAA;EAAA,QAgBtB,MAAA,CAAO,WAAA,EAAa,QAAA;AAAA"}
1
+ {"version":3,"file":"tracer_langchain.d.cts","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"mappings":";;;;;;UAqBiB,YAAY;EAC3B;EACA;EACA;EACA;EACA;;UAGe,mBAAmB;EAClC;EACA;;UAGe,kBAAkB;EACjC,QAAQ;EACR,QAAQ;EACR;EACA;;UAGe,8BAA8B;EAC7C;EACA;EACA,SAAS;EACT,WAAW;EACX,WAAW;EACX;;;;;;;;;;;;;cAcW,iDAA+C;cA2B/C,wBACH,sBACG;YAkBW,QAAQ;EAhB9B;EAEA;EAEA;EAEA,QAAQ;EAER,WAAW;EAEX;EAEA,kBAAkB;EAElB;EAEA,YAAsB,SAAQ;YAiBd,WAAW,MAAM,MAAM;EAIjC,YAAY,KAAK,MAAM;EAQvB,YAAY,KAAK,MAAM;EAU7B,SAAS,KAAK;EAmBd,wBACE,UACA;IAEA,WAAW;IACX;MACE;;EAwCJ;EAIA,OAAO,aAAa;EAIpB,kBAAkB,SAAS;EAsC3B,4BAA4B,aAAa;SAclC,uBAAuB;UAgBtB,OAAO,aAAa"}
@@ -3,7 +3,6 @@ import { BaseTracer, Run as Run$2 } from "./base.js";
3
3
  import { RunTree, RunTreeConfig } from "langsmith/run_trees";
4
4
  import { LangSmithTracingClientInterface } from "langsmith";
5
5
  import { BaseRun, KVMap, RunCreate, RunUpdate as RunUpdate$1 } from "langsmith/schemas";
6
-
7
6
  //#region src/tracers/tracer_langchain.d.ts
8
7
  interface Run extends BaseRun {
9
8
  id: string;
@@ -57,10 +56,7 @@ declare class LangChainTracer extends BaseTracer implements LangChainTracerField
57
56
  onRunCreate(run: Run): Promise<void>;
58
57
  onRunUpdate(run: Run): Promise<void>;
59
58
  onLLMEnd(run: Run$2): void;
60
- copyWithTracingConfig({
61
- metadata,
62
- tags
63
- }: {
59
+ copyWithTracingConfig({ metadata, tags }: {
64
60
  metadata?: Record<string, unknown>;
65
61
  tags?: string[];
66
62
  }): LangChainTracer;
@@ -1 +1 @@
1
- {"version":3,"file":"tracer_langchain.d.ts","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"mappings":";;;;;;;UAqBiB,GAAA,SAAY,OAAA;EAC3B,EAAA;EACA,UAAA;EACA,qBAAA;EACA,YAAA;EACA,QAAA;AAAA;AAAA,UAGe,UAAA,SAAmB,SAAA;EAClC,QAAA;EACA,YAAA;AAAA;AAAA,UAGe,SAAA,SAAkB,WAAA;EACjC,MAAA,EAAQ,OAAA;EACR,MAAA,EAAQ,KAAA;EACR,QAAA;EACA,YAAA;AAAA;AAAA,UAGe,qBAAA,SAA8B,wBAAA;EAC7C,SAAA;EACA,WAAA;EACA,MAAA,GAAS,+BAAA;EACT,QAAA,GAAW,aAAA;EACX,QAAA,GAAW,MAAA;EACX,IAAA;AAAA;;;;;;;;;;;;cAcW,+CAAA,EAA+C,GAAA;AAAA,cA2B/C,eAAA,SACH,UAAA,YACG,qBAAA;EAAA,UAkBW,MAAA,EAAQ,qBAAA;EAhB9B,IAAA;EAEA,WAAA;EAEA,SAAA;EAEA,MAAA,EAAQ,+BAAA;EAER,QAAA,GAAW,aAAA;EAEX,cAAA;EAEA,eAAA,GAAkB,MAAA;EAElB,WAAA;EAEA,WAAA,CAAsB,MAAA,GAAQ,qBAAA;EAAA,UAiBd,UAAA,CAAW,IAAA,EAAM,GAAA,GAAM,OAAA;EAIjC,WAAA,CAAY,GAAA,EAAK,GAAA,GAAM,OAAA;EAQvB,WAAA,CAAY,GAAA,EAAK,GAAA,GAAM,OAAA;EAU7B,QAAA,CAAS,GAAA,EAAK,KAAA;EAmBd,qBAAA,CAAA;IACE,QAAA;IACA;EAAA;IAEA,QAAA,GAAW,MAAA;IACX,IAAA;EAAA,IACE,eAAA;EA9HJ;EAsKA,eAAA,CAAA;EAIA,MAAA,CAAO,EAAA,WAAa,GAAA;EAIpB,iBAAA,CAAkB,OAAA,EAAS,OAAA;EAsC3B,2BAAA,CAA4B,EAAA,WAAa,OAAA;EAAA,OAclC,mBAAA,CAAA,GAAuB,OAAA;EAAA,QAgBtB,MAAA,CAAO,WAAA,EAAa,QAAA;AAAA"}
1
+ {"version":3,"file":"tracer_langchain.d.ts","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"mappings":";;;;;;UAqBiB,YAAY;EAC3B;EACA;EACA;EACA;EACA;;UAGe,mBAAmB;EAClC;EACA;;UAGe,kBAAkB;EACjC,QAAQ;EACR,QAAQ;EACR;EACA;;UAGe,8BAA8B;EAC7C;EACA;EACA,SAAS;EACT,WAAW;EACX,WAAW;EACX;;;;;;;;;;;;;cAcW,iDAA+C;cA2B/C,wBACH,sBACG;YAkBW,QAAQ;EAhB9B;EAEA;EAEA;EAEA,QAAQ;EAER,WAAW;EAEX;EAEA,kBAAkB;EAElB;EAEA,YAAsB,SAAQ;YAiBd,WAAW,MAAM,MAAM;EAIjC,YAAY,KAAK,MAAM;EAQvB,YAAY,KAAK,MAAM;EAU7B,SAAS,KAAK;EAmBd,wBACE,UACA;IAEA,WAAW;IACX;MACE;;EAwCJ;EAIA,OAAO,aAAa;EAIpB,kBAAkB,SAAS;EAsC3B,4BAA4B,aAAa;SAclC,uBAAuB;UAgBtB,OAAO,aAAa"}
@@ -22,7 +22,7 @@ var tracer_langchain_exports = /* @__PURE__ */ __exportAll({
22
22
  * enclosing tracer config. Only keys that are strictly for LangSmith
23
23
  * tracing bookkeeping should be added.
24
24
  */
25
- const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set(["ls_agent_type"]);
25
+ const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = /* @__PURE__ */ new Set(["ls_agent_type"]);
26
26
  /**
27
27
  * Extract usage_metadata from chat generations.
28
28
  *
@@ -35,6 +35,7 @@ function _getUsageMetadataFromGenerations(generations) {
35
35
  return output;
36
36
  }
37
37
  var LangChainTracer = class LangChainTracer extends BaseTracer {
38
+ fields;
38
39
  name = "langchain_tracer";
39
40
  projectName;
40
41
  exampleId;
@@ -87,7 +88,7 @@ var LangChainTracer = class LangChainTracer extends BaseTracer {
87
88
  mergedMetadata = { ...this.tracingMetadata };
88
89
  for (const [key, value] of Object.entries(metadata)) if (!Object.prototype.hasOwnProperty.call(mergedMetadata, key) || OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)) mergedMetadata[key] = value;
89
90
  }
90
- const mergedTags = tags ? Array.from(new Set([...this.tracingTags, ...tags])) : [...this.tracingTags];
91
+ const mergedTags = tags ? Array.from(/* @__PURE__ */ new Set([...this.tracingTags, ...tags])) : [...this.tracingTags];
91
92
  const copied = new LangChainTracer({
92
93
  ...this.fields,
93
94
  metadata: mergedMetadata,
@@ -173,7 +174,7 @@ function _patchMissingTracingDefaults(tracer, run) {
173
174
  }
174
175
  if (didPatchMetadata) run.extra.metadata = metadata;
175
176
  }
176
- if (tracer.tracingTags.length > 0) run.tags = Array.from(new Set([...run.tags ?? [], ...tracer.tracingTags]));
177
+ if (tracer.tracingTags.length > 0) run.tags = Array.from(/* @__PURE__ */ new Set([...run.tags ?? [], ...tracer.tracingTags]));
177
178
  }
178
179
  //#endregion
179
180
  export { LangChainTracer, OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS, tracer_langchain_exports };
@@ -1 +1 @@
1
- {"version":3,"file":"tracer_langchain.js","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"sourcesContent":["import {\n type Client,\n type LangSmithTracingClientInterface,\n getDefaultProjectName,\n} from \"langsmith\";\nimport { RunTree, type RunTreeConfig } from \"langsmith/run_trees\";\nimport { getCurrentRunTree } from \"langsmith/singletons/traceable\";\n\nimport {\n BaseRun,\n RunCreate,\n RunUpdate as BaseRunUpdate,\n KVMap,\n} from \"langsmith/schemas\";\nimport { BaseTracer, Run as BaseTracerRun } from \"./base.js\";\nimport { BaseCallbackHandlerInput } from \"../callbacks/base.js\";\nimport { getDefaultLangChainClientSingleton } from \"../singletons/tracer.js\";\nimport { ChatGeneration } from \"../outputs.js\";\nimport { AIMessage } from \"../messages/ai.js\";\nimport { mergeUsageMetadata, UsageMetadata } from \"../messages/metadata.js\";\n\nexport interface Run extends BaseRun {\n id: string;\n child_runs: this[];\n child_execution_order: number;\n dotted_order?: string;\n trace_id?: string;\n}\n\nexport interface RunCreate2 extends RunCreate {\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface RunUpdate extends BaseRunUpdate {\n events: BaseRun[\"events\"];\n inputs: KVMap;\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface LangChainTracerFields extends BaseCallbackHandlerInput {\n exampleId?: string;\n projectName?: string;\n client?: LangSmithTracingClientInterface;\n replicas?: RunTreeConfig[\"replicas\"];\n metadata?: Record<string, unknown>;\n tags?: string[];\n}\n\n/**\n * Keys that should be inherited from `tracerInheritableMetadata` even when\n * the run already has a value for them. This lets nested contexts\n * (e.g. a subagent invoked from inside a parent agent) override a\n * LangSmith-only tracing metadata value that was set by an ancestor.\n *\n * Keep this list very small: every key here loses the default\n * \"first wins\" protection and is always clobbered by the nearest\n * enclosing tracer config. Only keys that are strictly for LangSmith\n * tracing bookkeeping should be added.\n */\nexport const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set<string>([\n \"ls_agent_type\",\n]);\n\n/**\n * Extract usage_metadata from chat generations.\n *\n * Iterates through generations to find and aggregates all usage_metadata\n * found in chat messages. This is typically present in chat model outputs.\n */\nfunction _getUsageMetadataFromGenerations(\n generations: ChatGeneration[][]\n): UsageMetadata | undefined {\n let output: UsageMetadata | undefined = undefined;\n for (const generationBatch of generations) {\n for (const generation of generationBatch) {\n if (\n AIMessage.isInstance(generation.message) &&\n generation.message.usage_metadata !== undefined\n ) {\n output = mergeUsageMetadata(output, generation.message.usage_metadata);\n }\n }\n }\n return output;\n}\n\nexport class LangChainTracer\n extends BaseTracer\n implements LangChainTracerFields\n{\n name = \"langchain_tracer\";\n\n projectName?: string;\n\n exampleId?: string;\n\n client: LangSmithTracingClientInterface;\n\n replicas?: RunTreeConfig[\"replicas\"];\n\n usesRunTreeMap = true;\n\n tracingMetadata?: Record<string, unknown>;\n\n tracingTags: string[] = [];\n\n constructor(protected fields: LangChainTracerFields = {}) {\n super(fields);\n const { exampleId, projectName, client, replicas, metadata, tags } = fields;\n\n this.projectName = projectName ?? getDefaultProjectName();\n this.replicas = replicas;\n this.exampleId = exampleId;\n this.client = client ?? getDefaultLangChainClientSingleton();\n this.tracingMetadata = metadata ? { ...metadata } : undefined;\n this.tracingTags = tags ?? [];\n\n const traceableTree = LangChainTracer.getTraceableRunTree();\n if (traceableTree) {\n this.updateFromRunTree(traceableTree);\n }\n }\n\n protected async persistRun(_run: Run): Promise<void> {\n // empty\n }\n\n async onRunCreate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n if (!run.extra?.lc_defers_inputs) {\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n await runTree?.postRun();\n }\n }\n\n async onRunUpdate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n if (run.extra?.lc_defers_inputs) {\n await runTree?.postRun();\n } else {\n await runTree?.patchRun();\n }\n }\n\n onLLMEnd(run: BaseTracerRun): void {\n // Extract usage_metadata from outputs and store in extra.metadata\n const outputs = run.outputs as\n | { generations?: ChatGeneration[][] }\n | undefined;\n if (outputs?.generations) {\n const usageMetadata = _getUsageMetadataFromGenerations(\n outputs.generations\n );\n if (usageMetadata !== undefined) {\n run.extra = run.extra ?? {};\n const metadata =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n metadata.usage_metadata = usageMetadata;\n run.extra.metadata = metadata;\n }\n }\n }\n\n copyWithTracingConfig({\n metadata,\n tags,\n }: {\n metadata?: Record<string, unknown>;\n tags?: string[];\n }): LangChainTracer {\n let mergedMetadata: Record<string, unknown> | undefined;\n if (metadata === undefined) {\n mergedMetadata = this.tracingMetadata\n ? { ...this.tracingMetadata }\n : undefined;\n } else if (this.tracingMetadata === undefined) {\n mergedMetadata = { ...metadata };\n } else {\n mergedMetadata = { ...this.tracingMetadata };\n for (const [key, value] of Object.entries(metadata)) {\n // For allowlisted LangSmith-only inheritable metadata keys (e.g.\n // `ls_agent_type`), nested callers are allowed to OVERRIDE the\n // value inherited from an ancestor. For all other keys we keep\n // the existing \"first wins\" behavior so that ancestor-provided\n // tracing metadata is not accidentally clobbered by child runs.\n if (\n !Object.prototype.hasOwnProperty.call(mergedMetadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n mergedMetadata[key] = value;\n }\n }\n }\n\n const mergedTags = tags\n ? Array.from(new Set([...this.tracingTags, ...tags]))\n : [...this.tracingTags];\n\n const copied = new LangChainTracer({\n ...this.fields,\n metadata: mergedMetadata,\n tags: mergedTags,\n });\n copied.runMap = this.runMap;\n copied.runTreeMap = this.runTreeMap;\n return copied;\n }\n\n /** @internal */\n _getRunStoreKey(): object {\n return this.runTreeMap;\n }\n\n getRun(id: string): Run | undefined {\n return this.runTreeMap.get(id);\n }\n\n updateFromRunTree(runTree: RunTree) {\n this.runTreeMap.set(runTree.id, runTree);\n let rootRun: RunTree = runTree;\n const visited = new Set<string>();\n while (rootRun.parent_run) {\n if (visited.has(rootRun.id)) break;\n visited.add(rootRun.id);\n\n if (!rootRun.parent_run) break;\n rootRun = rootRun.parent_run as RunTree;\n }\n visited.clear();\n\n const queue = [rootRun];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current || visited.has(current.id)) continue;\n visited.add(current.id);\n\n this.runTreeMap.set(current.id, current);\n if (current.child_runs) {\n queue.push(...current.child_runs);\n }\n }\n\n this.client = runTree.client ?? this.client;\n this.replicas = runTree.replicas ?? this.replicas;\n this.projectName = runTree.project_name ?? this.projectName;\n this.exampleId = runTree.reference_example_id ?? this.exampleId;\n this.fields = {\n ...this.fields,\n client: this.client,\n replicas: this.replicas,\n projectName: this.projectName,\n exampleId: this.exampleId,\n };\n }\n\n getRunTreeWithTracingConfig(id: string): RunTree | undefined {\n const runTree = this.runTreeMap.get(id);\n if (!runTree) return undefined;\n\n return new RunTree({\n ...runTree,\n client: this.client as Client,\n project_name: this.projectName,\n replicas: this.replicas,\n reference_example_id: this.exampleId,\n tracingEnabled: true,\n });\n }\n\n static getTraceableRunTree(): RunTree | undefined {\n try {\n return (\n // The type cast here provides forward compatibility. Old versions of LangSmith will just\n // ignore the permitAbsentRunTree arg.\n (\n getCurrentRunTree as (\n permitAbsentRunTree: boolean\n ) => ReturnType<typeof getCurrentRunTree> | undefined\n )(true)\n );\n } catch {\n return undefined;\n }\n }\n\n static [Symbol.hasInstance](instance: unknown): boolean {\n if (typeof instance !== \"object\" || instance === null) {\n return false;\n }\n const candidate = instance as Record<string, unknown>;\n return (\n \"name\" in candidate &&\n candidate.name === \"langchain_tracer\" &&\n \"copyWithTracingConfig\" in candidate &&\n typeof candidate.copyWithTracingConfig === \"function\" &&\n \"getRunTreeWithTracingConfig\" in candidate &&\n typeof candidate.getRunTreeWithTracingConfig === \"function\"\n );\n }\n}\n\nfunction _patchMissingTracingDefaults(tracer: LangChainTracer, run: Run): void {\n if (tracer.tracingMetadata) {\n run.extra ??= {};\n const metadata: Record<string, unknown> =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n let didPatchMetadata = false;\n for (const [key, value] of Object.entries(tracer.tracingMetadata)) {\n // `OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS` are a small, LangSmith-only\n // allowlist that bypasses the \"first wins\" merge so a nested caller\n // (e.g. a subagent) can override a parent-set value.\n if (\n !Object.prototype.hasOwnProperty.call(metadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n if (metadata[key] !== value) {\n metadata[key] = value;\n didPatchMetadata = true;\n }\n }\n }\n if (didPatchMetadata) {\n run.extra.metadata = metadata;\n }\n }\n\n if (tracer.tracingTags.length > 0) {\n run.tags = Array.from(\n new Set([...(run.tags ?? []), ...tracer.tracingTags])\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tracer_langchain.js","names":[],"sources":["../../src/tracers/tracer_langchain.ts"],"sourcesContent":["import {\n type Client,\n type LangSmithTracingClientInterface,\n getDefaultProjectName,\n} from \"langsmith\";\nimport { RunTree, type RunTreeConfig } from \"langsmith/run_trees\";\nimport { getCurrentRunTree } from \"langsmith/singletons/traceable\";\n\nimport {\n BaseRun,\n RunCreate,\n RunUpdate as BaseRunUpdate,\n KVMap,\n} from \"langsmith/schemas\";\nimport { BaseTracer, Run as BaseTracerRun } from \"./base.js\";\nimport { BaseCallbackHandlerInput } from \"../callbacks/base.js\";\nimport { getDefaultLangChainClientSingleton } from \"../singletons/tracer.js\";\nimport { ChatGeneration } from \"../outputs.js\";\nimport { AIMessage } from \"../messages/ai.js\";\nimport { mergeUsageMetadata, UsageMetadata } from \"../messages/metadata.js\";\n\nexport interface Run extends BaseRun {\n id: string;\n child_runs: this[];\n child_execution_order: number;\n dotted_order?: string;\n trace_id?: string;\n}\n\nexport interface RunCreate2 extends RunCreate {\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface RunUpdate extends BaseRunUpdate {\n events: BaseRun[\"events\"];\n inputs: KVMap;\n trace_id?: string;\n dotted_order?: string;\n}\n\nexport interface LangChainTracerFields extends BaseCallbackHandlerInput {\n exampleId?: string;\n projectName?: string;\n client?: LangSmithTracingClientInterface;\n replicas?: RunTreeConfig[\"replicas\"];\n metadata?: Record<string, unknown>;\n tags?: string[];\n}\n\n/**\n * Keys that should be inherited from `tracerInheritableMetadata` even when\n * the run already has a value for them. This lets nested contexts\n * (e.g. a subagent invoked from inside a parent agent) override a\n * LangSmith-only tracing metadata value that was set by an ancestor.\n *\n * Keep this list very small: every key here loses the default\n * \"first wins\" protection and is always clobbered by the nearest\n * enclosing tracer config. Only keys that are strictly for LangSmith\n * tracing bookkeeping should be added.\n */\nexport const OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS = new Set<string>([\n \"ls_agent_type\",\n]);\n\n/**\n * Extract usage_metadata from chat generations.\n *\n * Iterates through generations to find and aggregates all usage_metadata\n * found in chat messages. This is typically present in chat model outputs.\n */\nfunction _getUsageMetadataFromGenerations(\n generations: ChatGeneration[][]\n): UsageMetadata | undefined {\n let output: UsageMetadata | undefined = undefined;\n for (const generationBatch of generations) {\n for (const generation of generationBatch) {\n if (\n AIMessage.isInstance(generation.message) &&\n generation.message.usage_metadata !== undefined\n ) {\n output = mergeUsageMetadata(output, generation.message.usage_metadata);\n }\n }\n }\n return output;\n}\n\nexport class LangChainTracer\n extends BaseTracer\n implements LangChainTracerFields\n{\n name = \"langchain_tracer\";\n\n projectName?: string;\n\n exampleId?: string;\n\n client: LangSmithTracingClientInterface;\n\n replicas?: RunTreeConfig[\"replicas\"];\n\n usesRunTreeMap = true;\n\n tracingMetadata?: Record<string, unknown>;\n\n tracingTags: string[] = [];\n\n constructor(protected fields: LangChainTracerFields = {}) {\n super(fields);\n const { exampleId, projectName, client, replicas, metadata, tags } = fields;\n\n this.projectName = projectName ?? getDefaultProjectName();\n this.replicas = replicas;\n this.exampleId = exampleId;\n this.client = client ?? getDefaultLangChainClientSingleton();\n this.tracingMetadata = metadata ? { ...metadata } : undefined;\n this.tracingTags = tags ?? [];\n\n const traceableTree = LangChainTracer.getTraceableRunTree();\n if (traceableTree) {\n this.updateFromRunTree(traceableTree);\n }\n }\n\n protected async persistRun(_run: Run): Promise<void> {\n // empty\n }\n\n async onRunCreate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n if (!run.extra?.lc_defers_inputs) {\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n await runTree?.postRun();\n }\n }\n\n async onRunUpdate(run: Run): Promise<void> {\n _patchMissingTracingDefaults(this, run);\n const runTree = this.getRunTreeWithTracingConfig(run.id);\n if (run.extra?.lc_defers_inputs) {\n await runTree?.postRun();\n } else {\n await runTree?.patchRun();\n }\n }\n\n onLLMEnd(run: BaseTracerRun): void {\n // Extract usage_metadata from outputs and store in extra.metadata\n const outputs = run.outputs as\n | { generations?: ChatGeneration[][] }\n | undefined;\n if (outputs?.generations) {\n const usageMetadata = _getUsageMetadataFromGenerations(\n outputs.generations\n );\n if (usageMetadata !== undefined) {\n run.extra = run.extra ?? {};\n const metadata =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n metadata.usage_metadata = usageMetadata;\n run.extra.metadata = metadata;\n }\n }\n }\n\n copyWithTracingConfig({\n metadata,\n tags,\n }: {\n metadata?: Record<string, unknown>;\n tags?: string[];\n }): LangChainTracer {\n let mergedMetadata: Record<string, unknown> | undefined;\n if (metadata === undefined) {\n mergedMetadata = this.tracingMetadata\n ? { ...this.tracingMetadata }\n : undefined;\n } else if (this.tracingMetadata === undefined) {\n mergedMetadata = { ...metadata };\n } else {\n mergedMetadata = { ...this.tracingMetadata };\n for (const [key, value] of Object.entries(metadata)) {\n // For allowlisted LangSmith-only inheritable metadata keys (e.g.\n // `ls_agent_type`), nested callers are allowed to OVERRIDE the\n // value inherited from an ancestor. For all other keys we keep\n // the existing \"first wins\" behavior so that ancestor-provided\n // tracing metadata is not accidentally clobbered by child runs.\n if (\n !Object.prototype.hasOwnProperty.call(mergedMetadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n mergedMetadata[key] = value;\n }\n }\n }\n\n const mergedTags = tags\n ? Array.from(new Set([...this.tracingTags, ...tags]))\n : [...this.tracingTags];\n\n const copied = new LangChainTracer({\n ...this.fields,\n metadata: mergedMetadata,\n tags: mergedTags,\n });\n copied.runMap = this.runMap;\n copied.runTreeMap = this.runTreeMap;\n return copied;\n }\n\n /** @internal */\n _getRunStoreKey(): object {\n return this.runTreeMap;\n }\n\n getRun(id: string): Run | undefined {\n return this.runTreeMap.get(id);\n }\n\n updateFromRunTree(runTree: RunTree) {\n this.runTreeMap.set(runTree.id, runTree);\n let rootRun: RunTree = runTree;\n const visited = new Set<string>();\n while (rootRun.parent_run) {\n if (visited.has(rootRun.id)) break;\n visited.add(rootRun.id);\n\n if (!rootRun.parent_run) break;\n rootRun = rootRun.parent_run as RunTree;\n }\n visited.clear();\n\n const queue = [rootRun];\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current || visited.has(current.id)) continue;\n visited.add(current.id);\n\n this.runTreeMap.set(current.id, current);\n if (current.child_runs) {\n queue.push(...current.child_runs);\n }\n }\n\n this.client = runTree.client ?? this.client;\n this.replicas = runTree.replicas ?? this.replicas;\n this.projectName = runTree.project_name ?? this.projectName;\n this.exampleId = runTree.reference_example_id ?? this.exampleId;\n this.fields = {\n ...this.fields,\n client: this.client,\n replicas: this.replicas,\n projectName: this.projectName,\n exampleId: this.exampleId,\n };\n }\n\n getRunTreeWithTracingConfig(id: string): RunTree | undefined {\n const runTree = this.runTreeMap.get(id);\n if (!runTree) return undefined;\n\n return new RunTree({\n ...runTree,\n client: this.client as Client,\n project_name: this.projectName,\n replicas: this.replicas,\n reference_example_id: this.exampleId,\n tracingEnabled: true,\n });\n }\n\n static getTraceableRunTree(): RunTree | undefined {\n try {\n return (\n // The type cast here provides forward compatibility. Old versions of LangSmith will just\n // ignore the permitAbsentRunTree arg.\n (\n getCurrentRunTree as (\n permitAbsentRunTree: boolean\n ) => ReturnType<typeof getCurrentRunTree> | undefined\n )(true)\n );\n } catch {\n return undefined;\n }\n }\n\n static [Symbol.hasInstance](instance: unknown): boolean {\n if (typeof instance !== \"object\" || instance === null) {\n return false;\n }\n const candidate = instance as Record<string, unknown>;\n return (\n \"name\" in candidate &&\n candidate.name === \"langchain_tracer\" &&\n \"copyWithTracingConfig\" in candidate &&\n typeof candidate.copyWithTracingConfig === \"function\" &&\n \"getRunTreeWithTracingConfig\" in candidate &&\n typeof candidate.getRunTreeWithTracingConfig === \"function\"\n );\n }\n}\n\nfunction _patchMissingTracingDefaults(tracer: LangChainTracer, run: Run): void {\n if (tracer.tracingMetadata) {\n run.extra ??= {};\n const metadata: Record<string, unknown> =\n (run.extra.metadata as Record<string, unknown> | undefined) ?? {};\n let didPatchMetadata = false;\n for (const [key, value] of Object.entries(tracer.tracingMetadata)) {\n // `OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS` are a small, LangSmith-only\n // allowlist that bypasses the \"first wins\" merge so a nested caller\n // (e.g. a subagent) can override a parent-set value.\n if (\n !Object.prototype.hasOwnProperty.call(metadata, key) ||\n OVERRIDABLE_LANGSMITH_INHERITABLE_METADATA_KEYS.has(key)\n ) {\n if (metadata[key] !== value) {\n metadata[key] = value;\n didPatchMetadata = true;\n }\n }\n }\n if (didPatchMetadata) {\n run.extra.metadata = metadata;\n }\n }\n\n if (tracer.tracingTags.length > 0) {\n run.tags = Array.from(\n new Set([...(run.tags ?? []), ...tracer.tracingTags])\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_internal.d.cts","names":[],"sources":["../../src/types/_internal.ts"],"mappings":";KAGY,+BAAA,MAAqC,cAAA,CAAe,CAAA,IAC9D,aAAA,CAAc,CAAA"}
1
+ {"version":3,"file":"_internal.d.cts","names":[],"sources":["../../src/types/_internal.ts"],"mappings":";KAGY,gCAAgC,KAAK,eAAe,KAC9D,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"_internal.d.ts","names":[],"sources":["../../src/types/_internal.ts"],"mappings":";KAGY,+BAAA,MAAqC,cAAA,CAAe,CAAA,IAC9D,aAAA,CAAc,CAAA"}
1
+ {"version":3,"file":"_internal.d.ts","names":[],"sources":["../../src/types/_internal.ts"],"mappings":";KAGY,gCAAgC,KAAK,eAAe,KAC9D,cAAc"}
@@ -1,3 +1,3 @@
1
1
  import { IterableReadableStreamInterface } from "./_internal.cjs";
2
2
  import { StreamEvent, StreamEventData } from "../tracers/event_stream.cjs";
3
- export { type IterableReadableStreamInterface, type StreamEvent, type StreamEventData };
3
+ export type { IterableReadableStreamInterface, StreamEvent, StreamEventData };
@@ -1,3 +1,3 @@
1
1
  import { IterableReadableStreamInterface } from "./_internal.js";
2
2
  import { StreamEvent, StreamEventData } from "../tracers/event_stream.js";
3
- export { type IterableReadableStreamInterface, type StreamEvent, type StreamEventData };
3
+ export type { IterableReadableStreamInterface, StreamEvent, StreamEventData };
@@ -1,6 +1,6 @@
1
1
  //#region src/types/type-utils.d.ts
2
2
  type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
- type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] };
3
+ type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]; };
4
4
  //#endregion
5
5
  export { DeepPartial, Optional };
6
6
  //# sourceMappingURL=type-utils.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.d.cts","names":[],"sources":["../../src/types/type-utils.ts"],"mappings":";KAEY,QAAA,oBAA4B,CAAA,IAAK,IAAA,CAAK,CAAA,EAAG,CAAA,IAAK,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG,CAAA;AAAA,KAG9D,WAAA,oBACE,CAAA,IAAK,CAAA,CAAE,CAAA,mBAAoB,WAAA,CAAY,CAAA,CAAE,CAAA,KAAM,CAAA,CAAE,CAAA"}
1
+ {"version":3,"file":"type-utils.d.cts","names":[],"sources":["../../src/types/type-utils.ts"],"mappings":";KAEY,SAAS,GAAG,gBAAgB,KAAK,KAAK,GAAG,KAAK,QAAQ,KAAK,GAAG;KAG9D,YAAY,QACrB,WAAW,KAAK,EAAE,oBAAoB,YAAY,EAAE,MAAM,EAAE"}
@@ -1,6 +1,6 @@
1
1
  //#region src/types/type-utils.d.ts
2
2
  type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
- type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P] };
3
+ type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]; };
4
4
  //#endregion
5
5
  export { DeepPartial, Optional };
6
6
  //# sourceMappingURL=type-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.d.ts","names":[],"sources":["../../src/types/type-utils.ts"],"mappings":";KAEY,QAAA,oBAA4B,CAAA,IAAK,IAAA,CAAK,CAAA,EAAG,CAAA,IAAK,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG,CAAA;AAAA,KAG9D,WAAA,oBACE,CAAA,IAAK,CAAA,CAAE,CAAA,mBAAoB,WAAA,CAAY,CAAA,CAAE,CAAA,KAAM,CAAA,CAAE,CAAA"}
1
+ {"version":3,"file":"type-utils.d.ts","names":[],"sources":["../../src/types/type-utils.ts"],"mappings":";KAEY,SAAS,GAAG,gBAAgB,KAAK,KAAK,GAAG,KAAK,QAAQ,KAAK,GAAG;KAG9D,YAAY,QACrB,WAAW,KAAK,EAAE,oBAAoB,YAAY,EAAE,MAAM,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"async_caller.cjs","names":["PQueueMod","pRetry","getAbortSignalError"],"sources":["../../src/utils/async_caller.ts"],"sourcesContent":["import PQueueMod from \"p-queue\";\n\nimport { getAbortSignalError } from \"./signal.js\";\nimport pRetry from \"./p-retry/index.js\";\n\nconst STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\nconst RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS = 60_000;\n\nconst QUOTA_EXHAUSTED_MESSAGE_PATTERNS = [\n /insufficient[_ -]?quota/i,\n /exceeded (?:your|the current|the available).+quota/i,\n /usage quota/i,\n /quota (?:has been )?exhausted/i,\n /billing/i,\n /credit balance/i,\n /out of credits/i,\n /will reset at/i,\n];\n\nconst RETRY_AFTER_MESSAGE_PATTERN =\n /(?:try again in|retry after)\\s+(\\d+(?:\\.\\d+)?)\\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\\b/i;\n\ntype RateLimitAction = \"wait\" | \"capacity\" | \"stop\";\n\ntype RateLimitClassification = {\n action: RateLimitAction;\n retryAfterMs?: number;\n reason: string;\n};\n\nfunction getResponseStatus(error: unknown): number | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"response\" in error &&\n typeof error.response === \"object\" &&\n error.response !== null &&\n \"status\" in error.response &&\n typeof error.response.status === \"number\"\n ? error.response.status\n : undefined;\n}\n\nfunction getDirectStatus(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"status\" in error && typeof error.status === \"number\") {\n return error.status;\n }\n\n if (\"statusCode\" in error && typeof error.statusCode === \"number\") {\n return error.statusCode;\n }\n\n return undefined;\n}\n\nfunction getErrorMessage(error: unknown): string | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof error.message === \"string\"\n ? error.message\n : undefined;\n}\n\nfunction getErrorCode(error: unknown): string | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"code\" in error && typeof error.code === \"string\") {\n return error.code;\n }\n\n return \"error\" in error &&\n typeof error.error === \"object\" &&\n error.error !== null &&\n \"code\" in error.error &&\n typeof error.error.code === \"string\"\n ? error.error.code\n : undefined;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getRetryAfterHeader(error: any): string | null | undefined {\n if (error?.headers) {\n if (typeof error.headers.get === \"function\") {\n return error.headers.get(\"retry-after\");\n }\n return error.headers[\"retry-after\"] ?? error.headers[\"Retry-After\"];\n }\n\n if (error?.response?.headers) {\n if (typeof error.response.headers.get === \"function\") {\n return error.response.headers.get(\"retry-after\");\n }\n return (\n error.response.headers[\"retry-after\"] ??\n error.response.headers[\"Retry-After\"]\n );\n }\n\n return undefined;\n}\n\nfunction parseRetryAfterFromMessageMs(\n message: string | undefined\n): number | undefined {\n if (message == null) {\n return undefined;\n }\n\n const match = RETRY_AFTER_MESSAGE_PATTERN.exec(message);\n if (!match) {\n return undefined;\n }\n\n const rawValue = Number(match[1]);\n const unit = match[2]?.toLowerCase();\n if (Number.isNaN(rawValue) || !unit) {\n return undefined;\n }\n\n if (unit === \"ms\" || unit.startsWith(\"millisecond\")) {\n return rawValue;\n }\n\n if (unit === \"m\" || unit.startsWith(\"min\")) {\n return rawValue * 60_000;\n }\n\n if (unit === \"h\" || unit.startsWith(\"hr\") || unit.startsWith(\"hour\")) {\n return rawValue * 3_600_000;\n }\n\n return rawValue * 1000;\n}\n\nfunction coerceError(error: unknown, fallbackMessage: string): Error {\n if (error instanceof Error) {\n return error;\n }\n\n const coerced = new Error(fallbackMessage);\n if (typeof error === \"object\" && error !== null) {\n Object.assign(coerced, error);\n }\n return coerced;\n}\n\nfunction setRateLimitMetadata(\n error: unknown,\n classification: RateLimitClassification\n) {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n const mutableError = error as Record<string, unknown>;\n mutableError.rateLimitType = classification.action;\n mutableError.rateLimitReason = classification.reason;\n\n if (classification.retryAfterMs !== undefined) {\n mutableError.retryAfterMs = classification.retryAfterMs;\n }\n}\n\nexport function parseRetryAfterMs(\n headerValue: string | null | undefined\n): number | undefined {\n if (headerValue == null) {\n return undefined;\n }\n\n const trimmed = headerValue.trim();\n if (!trimmed) {\n return undefined;\n }\n\n const seconds = Number(trimmed);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n\n const date = Date.parse(trimmed);\n if (!Number.isNaN(date)) {\n const delayMs = date - Date.now();\n return delayMs > 0 ? delayMs : 0;\n }\n\n return undefined;\n}\n\nexport function classifyRateLimitError(\n error: unknown\n): RateLimitClassification | undefined {\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status !== 429) {\n return undefined;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n return { action: \"stop\", reason: \"insufficient_quota\" };\n }\n\n const message = getErrorMessage(error);\n if (\n message &&\n QUOTA_EXHAUSTED_MESSAGE_PATTERNS.some((pattern) => pattern.test(message))\n ) {\n return { action: \"stop\", reason: \"quota_message\" };\n }\n\n const retryAfterMs =\n parseRetryAfterMs(_getRetryAfterHeader(error)) ??\n parseRetryAfterFromMessageMs(message);\n\n if (retryAfterMs !== undefined) {\n if (retryAfterMs <= RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS) {\n return {\n action: \"wait\",\n retryAfterMs,\n reason: \"retry_after_hint\",\n };\n }\n\n return {\n action: \"capacity\",\n retryAfterMs,\n reason: \"retry_after_too_large\",\n };\n }\n\n return { action: \"capacity\", reason: \"headerless_429\" };\n}\n\n/**\n * The default failed attempt handler for the AsyncCaller.\n * @param error - The error to handle.\n * @returns void\n */\nconst defaultFailedAttemptHandler = (error: unknown) => {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n if (\n (\"message\" in error &&\n typeof error.message === \"string\" &&\n (error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\"))) ||\n (\"name\" in error &&\n typeof error.name === \"string\" &&\n error.name === \"AbortError\")\n ) {\n throw error;\n }\n if (\n \"code\" in error &&\n typeof error.code === \"string\" &&\n error.code === \"ECONNABORTED\"\n ) {\n throw error;\n }\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status && STATUS_NO_RETRY.includes(+status)) {\n throw error;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Insufficient quota\"\n );\n err.name = \"InsufficientQuotaError\";\n setRateLimitMetadata(err, {\n action: \"stop\",\n reason: \"insufficient_quota\",\n });\n throw err;\n }\n\n const rateLimitClassification = classifyRateLimitError(error);\n if (rateLimitClassification) {\n if (rateLimitClassification.action === \"wait\") {\n setRateLimitMetadata(error, rateLimitClassification);\n return;\n }\n\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Rate limit exceeded\"\n );\n if (err.name === \"Error\") {\n err.name =\n rateLimitClassification.action === \"stop\"\n ? \"RateLimitQuotaExhaustedError\"\n : \"RateLimitCapacityError\";\n }\n setRateLimitMetadata(err, rateLimitClassification);\n throw err;\n }\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FailedAttemptHandler = (error: any) => any;\n\nexport interface AsyncCallerParams {\n /**\n * The maximum number of concurrent calls that can be made.\n * Defaults to `Infinity`, which means no limit.\n */\n maxConcurrency?: number;\n /**\n * The maximum number of retries that can be made for a single call,\n * with an exponential backoff between each attempt. Defaults to 6.\n */\n maxRetries?: number;\n /**\n * Custom handler to handle failed attempts. Takes the originally thrown\n * error object as input, and should itself throw an error if the input\n * error is not retryable.\n */\n onFailedAttempt?: FailedAttemptHandler;\n}\n\nexport interface AsyncCallerCallOptions {\n signal?: AbortSignal;\n}\n\n/**\n * A class that can be used to make async calls with concurrency and retry logic.\n *\n * This is useful for making calls to any kind of \"expensive\" external resource,\n * be it because it's rate-limited, subject to network issues, etc.\n *\n * Concurrent calls are limited by the `maxConcurrency` parameter, which defaults\n * to `Infinity`. This means that by default, all calls will be made in parallel.\n *\n * Retries are limited by the `maxRetries` parameter, which defaults to 6. This\n * means that by default, each call will be retried up to 6 times, with an\n * exponential backoff between each attempt.\n */\nexport class AsyncCaller {\n protected maxConcurrency: AsyncCallerParams[\"maxConcurrency\"];\n\n protected maxRetries: AsyncCallerParams[\"maxRetries\"];\n\n protected onFailedAttempt: AsyncCallerParams[\"onFailedAttempt\"];\n\n private queue: (typeof import(\"p-queue\"))[\"default\"][\"prototype\"];\n\n constructor(params: AsyncCallerParams) {\n this.maxConcurrency = params.maxConcurrency ?? Infinity;\n this.maxRetries = params.maxRetries ?? 6;\n this.onFailedAttempt =\n params.onFailedAttempt ?? defaultFailedAttemptHandler;\n\n const PQueue = (\n \"default\" in PQueueMod ? PQueueMod.default : PQueueMod\n ) as typeof PQueueMod;\n this.queue = new PQueue({ concurrency: this.maxConcurrency });\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n async call<A extends any[], T extends (...args: A) => Promise<any>>(\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n return this.queue.add(\n () =>\n pRetry(\n () =>\n callable(...args).catch((error) => {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error);\n }\n }),\n {\n onFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),\n retries: this.maxRetries,\n randomize: true,\n // If needed we can change some of the defaults here,\n // but they're quite sensible.\n }\n ),\n { throwOnTimeout: true }\n );\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callWithOptions<A extends any[], T extends (...args: A) => Promise<any>>(\n options: AsyncCallerCallOptions,\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n // Note this doesn't cancel the underlying request,\n // when available prefer to use the signal option of the underlying call\n if (options.signal) {\n let listener: (() => void) | undefined;\n return Promise.race([\n this.call<A, T>(callable, ...args),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(getAbortSignalError(options.signal));\n };\n options.signal?.addEventListener(\"abort\", listener, { once: true });\n }),\n ]).finally(() => {\n if (options.signal && listener) {\n options.signal.removeEventListener(\"abort\", listener);\n }\n });\n }\n return this.call<A, T>(callable, ...args);\n }\n\n fetch(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {\n return this.call(() =>\n fetch(...args).then((res) => (res.ok ? res : Promise.reject(res)))\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"async_caller.cjs","names":["PQueueMod","pRetry","getAbortSignalError"],"sources":["../../src/utils/async_caller.ts"],"sourcesContent":["import PQueueMod from \"p-queue\";\n\nimport { getAbortSignalError } from \"./signal.js\";\nimport pRetry from \"./p-retry/index.js\";\n\nconst STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\nconst RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS = 60_000;\n\nconst QUOTA_EXHAUSTED_MESSAGE_PATTERNS = [\n /insufficient[_ -]?quota/i,\n /exceeded (?:your|the current|the available).+quota/i,\n /usage quota/i,\n /quota (?:has been )?exhausted/i,\n /billing/i,\n /credit balance/i,\n /out of credits/i,\n /will reset at/i,\n];\n\nconst RETRY_AFTER_MESSAGE_PATTERN =\n /(?:try again in|retry after)\\s+(\\d+(?:\\.\\d+)?)\\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\\b/i;\n\ntype RateLimitAction = \"wait\" | \"capacity\" | \"stop\";\n\ntype RateLimitClassification = {\n action: RateLimitAction;\n retryAfterMs?: number;\n reason: string;\n};\n\nfunction getResponseStatus(error: unknown): number | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"response\" in error &&\n typeof error.response === \"object\" &&\n error.response !== null &&\n \"status\" in error.response &&\n typeof error.response.status === \"number\"\n ? error.response.status\n : undefined;\n}\n\nfunction getDirectStatus(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"status\" in error && typeof error.status === \"number\") {\n return error.status;\n }\n\n if (\"statusCode\" in error && typeof error.statusCode === \"number\") {\n return error.statusCode;\n }\n\n return undefined;\n}\n\nfunction getErrorMessage(error: unknown): string | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof error.message === \"string\"\n ? error.message\n : undefined;\n}\n\nfunction getErrorCode(error: unknown): string | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"code\" in error && typeof error.code === \"string\") {\n return error.code;\n }\n\n return \"error\" in error &&\n typeof error.error === \"object\" &&\n error.error !== null &&\n \"code\" in error.error &&\n typeof error.error.code === \"string\"\n ? error.error.code\n : undefined;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getRetryAfterHeader(error: any): string | null | undefined {\n if (error?.headers) {\n if (typeof error.headers.get === \"function\") {\n return error.headers.get(\"retry-after\");\n }\n return error.headers[\"retry-after\"] ?? error.headers[\"Retry-After\"];\n }\n\n if (error?.response?.headers) {\n if (typeof error.response.headers.get === \"function\") {\n return error.response.headers.get(\"retry-after\");\n }\n return (\n error.response.headers[\"retry-after\"] ??\n error.response.headers[\"Retry-After\"]\n );\n }\n\n return undefined;\n}\n\nfunction parseRetryAfterFromMessageMs(\n message: string | undefined\n): number | undefined {\n if (message == null) {\n return undefined;\n }\n\n const match = RETRY_AFTER_MESSAGE_PATTERN.exec(message);\n if (!match) {\n return undefined;\n }\n\n const rawValue = Number(match[1]);\n const unit = match[2]?.toLowerCase();\n if (Number.isNaN(rawValue) || !unit) {\n return undefined;\n }\n\n if (unit === \"ms\" || unit.startsWith(\"millisecond\")) {\n return rawValue;\n }\n\n if (unit === \"m\" || unit.startsWith(\"min\")) {\n return rawValue * 60_000;\n }\n\n if (unit === \"h\" || unit.startsWith(\"hr\") || unit.startsWith(\"hour\")) {\n return rawValue * 3_600_000;\n }\n\n return rawValue * 1000;\n}\n\nfunction coerceError(error: unknown, fallbackMessage: string): Error {\n if (error instanceof Error) {\n return error;\n }\n\n const coerced = new Error(fallbackMessage);\n if (typeof error === \"object\" && error !== null) {\n Object.assign(coerced, error);\n }\n return coerced;\n}\n\nfunction setRateLimitMetadata(\n error: unknown,\n classification: RateLimitClassification\n) {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n const mutableError = error as Record<string, unknown>;\n mutableError.rateLimitType = classification.action;\n mutableError.rateLimitReason = classification.reason;\n\n if (classification.retryAfterMs !== undefined) {\n mutableError.retryAfterMs = classification.retryAfterMs;\n }\n}\n\nexport function parseRetryAfterMs(\n headerValue: string | null | undefined\n): number | undefined {\n if (headerValue == null) {\n return undefined;\n }\n\n const trimmed = headerValue.trim();\n if (!trimmed) {\n return undefined;\n }\n\n const seconds = Number(trimmed);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n\n const date = Date.parse(trimmed);\n if (!Number.isNaN(date)) {\n const delayMs = date - Date.now();\n return delayMs > 0 ? delayMs : 0;\n }\n\n return undefined;\n}\n\nexport function classifyRateLimitError(\n error: unknown\n): RateLimitClassification | undefined {\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status !== 429) {\n return undefined;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n return { action: \"stop\", reason: \"insufficient_quota\" };\n }\n\n const message = getErrorMessage(error);\n if (\n message &&\n QUOTA_EXHAUSTED_MESSAGE_PATTERNS.some((pattern) => pattern.test(message))\n ) {\n return { action: \"stop\", reason: \"quota_message\" };\n }\n\n const retryAfterMs =\n parseRetryAfterMs(_getRetryAfterHeader(error)) ??\n parseRetryAfterFromMessageMs(message);\n\n if (retryAfterMs !== undefined) {\n if (retryAfterMs <= RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS) {\n return {\n action: \"wait\",\n retryAfterMs,\n reason: \"retry_after_hint\",\n };\n }\n\n return {\n action: \"capacity\",\n retryAfterMs,\n reason: \"retry_after_too_large\",\n };\n }\n\n return { action: \"capacity\", reason: \"headerless_429\" };\n}\n\n/**\n * The default failed attempt handler for the AsyncCaller.\n * @param error - The error to handle.\n * @returns void\n */\nconst defaultFailedAttemptHandler = (error: unknown) => {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n if (\n (\"message\" in error &&\n typeof error.message === \"string\" &&\n (error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\"))) ||\n (\"name\" in error &&\n typeof error.name === \"string\" &&\n error.name === \"AbortError\")\n ) {\n throw error;\n }\n if (\n \"code\" in error &&\n typeof error.code === \"string\" &&\n error.code === \"ECONNABORTED\"\n ) {\n throw error;\n }\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status && STATUS_NO_RETRY.includes(+status)) {\n throw error;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Insufficient quota\"\n );\n err.name = \"InsufficientQuotaError\";\n setRateLimitMetadata(err, {\n action: \"stop\",\n reason: \"insufficient_quota\",\n });\n throw err;\n }\n\n const rateLimitClassification = classifyRateLimitError(error);\n if (rateLimitClassification) {\n if (rateLimitClassification.action === \"wait\") {\n setRateLimitMetadata(error, rateLimitClassification);\n return;\n }\n\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Rate limit exceeded\"\n );\n if (err.name === \"Error\") {\n err.name =\n rateLimitClassification.action === \"stop\"\n ? \"RateLimitQuotaExhaustedError\"\n : \"RateLimitCapacityError\";\n }\n setRateLimitMetadata(err, rateLimitClassification);\n throw err;\n }\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FailedAttemptHandler = (error: any) => any;\n\nexport interface AsyncCallerParams {\n /**\n * The maximum number of concurrent calls that can be made.\n * Defaults to `Infinity`, which means no limit.\n */\n maxConcurrency?: number;\n /**\n * The maximum number of retries that can be made for a single call,\n * with an exponential backoff between each attempt. Defaults to 6.\n */\n maxRetries?: number;\n /**\n * Custom handler to handle failed attempts. Takes the originally thrown\n * error object as input, and should itself throw an error if the input\n * error is not retryable.\n */\n onFailedAttempt?: FailedAttemptHandler;\n}\n\nexport interface AsyncCallerCallOptions {\n signal?: AbortSignal;\n}\n\n/**\n * A class that can be used to make async calls with concurrency and retry logic.\n *\n * This is useful for making calls to any kind of \"expensive\" external resource,\n * be it because it's rate-limited, subject to network issues, etc.\n *\n * Concurrent calls are limited by the `maxConcurrency` parameter, which defaults\n * to `Infinity`. This means that by default, all calls will be made in parallel.\n *\n * Retries are limited by the `maxRetries` parameter, which defaults to 6. This\n * means that by default, each call will be retried up to 6 times, with an\n * exponential backoff between each attempt.\n */\nexport class AsyncCaller {\n protected maxConcurrency: AsyncCallerParams[\"maxConcurrency\"];\n\n protected maxRetries: AsyncCallerParams[\"maxRetries\"];\n\n protected onFailedAttempt: AsyncCallerParams[\"onFailedAttempt\"];\n\n private queue: (typeof import(\"p-queue\"))[\"default\"][\"prototype\"];\n\n constructor(params: AsyncCallerParams) {\n this.maxConcurrency = params.maxConcurrency ?? Infinity;\n this.maxRetries = params.maxRetries ?? 6;\n this.onFailedAttempt =\n params.onFailedAttempt ?? defaultFailedAttemptHandler;\n\n const PQueue = (\n \"default\" in PQueueMod ? PQueueMod.default : PQueueMod\n ) as typeof PQueueMod;\n this.queue = new PQueue({ concurrency: this.maxConcurrency });\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n async call<A extends any[], T extends (...args: A) => Promise<any>>(\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n return this.queue.add(\n () =>\n pRetry(\n () =>\n callable(...args).catch((error) => {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error);\n }\n }),\n {\n onFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),\n retries: this.maxRetries,\n randomize: true,\n // If needed we can change some of the defaults here,\n // but they're quite sensible.\n }\n ),\n { throwOnTimeout: true }\n );\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callWithOptions<A extends any[], T extends (...args: A) => Promise<any>>(\n options: AsyncCallerCallOptions,\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n // Note this doesn't cancel the underlying request,\n // when available prefer to use the signal option of the underlying call\n if (options.signal) {\n let listener: (() => void) | undefined;\n return Promise.race([\n this.call<A, T>(callable, ...args),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(getAbortSignalError(options.signal));\n };\n options.signal?.addEventListener(\"abort\", listener, { once: true });\n }),\n ]).finally(() => {\n if (options.signal && listener) {\n options.signal.removeEventListener(\"abort\", listener);\n }\n });\n }\n return this.call<A, T>(callable, ...args);\n }\n\n fetch(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {\n return this.call(() =>\n fetch(...args).then((res) => (res.ok ? res : Promise.reject(res)))\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"async_caller.d.cts","names":[],"sources":["../../src/utils/async_caller.ts"],"mappings":";KAiCK,eAAA;AAAA,KAEA,uBAAA;EACH,MAAA,EAAQ,eAAA;EACR,YAAA;EACA,MAAA;AAAA;AAAA,iBA8Ic,iBAAA,CACd,WAAA;AAAA,iBAyBc,sBAAA,CACd,KAAA,YACC,uBAAA;AAAA,KAgHS,oBAAA,IAAwB,KAAA;AAAA,UAEnB,iBAAA;EA9Rf;;;;EAmSA,cAAA;EAjSM;AA8IR;;;EAwJE,UAAA;EAvJsC;AAyBxC;;;;EAoIE,eAAA,GAAkB,oBAAA;AAAA;AAAA,UAGH,sBAAA;EACf,MAAA,GAAS,WAAA;AAAA;;AApBX;;;;;;;;;;AAmBA;;cAiBa,WAAA;EAAA,UACD,cAAA,EAAgB,iBAAA;EAAA,UAEhB,UAAA,EAAY,iBAAA;EAAA,UAEZ,eAAA,EAAiB,iBAAA;EAAA,QAEnB,KAAA;EAER,WAAA,CAAY,MAAA,EAAQ,iBAAA;EAad,IAAA,gCAAoC,IAAA,EAAM,CAAA,KAAM,OAAA,MAAA,CACpD,QAAA,EAAU,CAAA,KACP,IAAA,EAAM,UAAA,CAAW,CAAA,IACnB,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EA0B9B,eAAA,gCAA+C,IAAA,EAAM,CAAA,KAAM,OAAA,MAAA,CACzD,OAAA,EAAS,sBAAA,EACT,QAAA,EAAU,CAAA,KACP,IAAA,EAAM,UAAA,CAAW,CAAA,IACnB,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EAsB9B,KAAA,CAAA,GAAS,IAAA,EAAM,UAAA,QAAkB,KAAA,IAAS,UAAA,QAAkB,KAAA;AAAA"}
1
+ {"version":3,"file":"async_caller.d.cts","names":[],"sources":["../../src/utils/async_caller.ts"],"mappings":";KAiCK;KAEA;EACH,QAAQ;EACR;EACA;;iBA8Ic,kBACd;iBAyBc,uBACd,iBACC;KAgHS,wBAAwB;UAEnB;;;;;EAKf;;;;;EAKA;;;;;;EAMA,kBAAkB;;UAGH;EACf,SAAS;;;;;;;;;;;;;;;cAgBE;YACD,gBAAgB;YAEhB,YAAY;YAEZ,iBAAiB;UAEnB;EAER,YAAY,QAAQ;EAad,KAAK,iBAAiB,cAAc,MAAM,MAAM,cACpD,UAAU,MACP,MAAM,WAAW,KACnB,QAAQ,QAAQ,WAAW;EA0B9B,gBAAgB,iBAAiB,cAAc,MAAM,MAAM,cACzD,SAAS,wBACT,UAAU,MACP,MAAM,WAAW,KACnB,QAAQ,QAAQ,WAAW;EAsB9B,SAAS,MAAM,kBAAkB,SAAS,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"async_caller.d.ts","names":[],"sources":["../../src/utils/async_caller.ts"],"mappings":";KAiCK,eAAA;AAAA,KAEA,uBAAA;EACH,MAAA,EAAQ,eAAA;EACR,YAAA;EACA,MAAA;AAAA;AAAA,iBA8Ic,iBAAA,CACd,WAAA;AAAA,iBAyBc,sBAAA,CACd,KAAA,YACC,uBAAA;AAAA,KAgHS,oBAAA,IAAwB,KAAA;AAAA,UAEnB,iBAAA;EA9Rf;;;;EAmSA,cAAA;EAjSM;AA8IR;;;EAwJE,UAAA;EAvJsC;AAyBxC;;;;EAoIE,eAAA,GAAkB,oBAAA;AAAA;AAAA,UAGH,sBAAA;EACf,MAAA,GAAS,WAAA;AAAA;;AApBX;;;;;;;;;;AAmBA;;cAiBa,WAAA;EAAA,UACD,cAAA,EAAgB,iBAAA;EAAA,UAEhB,UAAA,EAAY,iBAAA;EAAA,UAEZ,eAAA,EAAiB,iBAAA;EAAA,QAEnB,KAAA;EAER,WAAA,CAAY,MAAA,EAAQ,iBAAA;EAad,IAAA,gCAAoC,IAAA,EAAM,CAAA,KAAM,OAAA,MAAA,CACpD,QAAA,EAAU,CAAA,KACP,IAAA,EAAM,UAAA,CAAW,CAAA,IACnB,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EA0B9B,eAAA,gCAA+C,IAAA,EAAM,CAAA,KAAM,OAAA,MAAA,CACzD,OAAA,EAAS,sBAAA,EACT,QAAA,EAAU,CAAA,KACP,IAAA,EAAM,UAAA,CAAW,CAAA,IACnB,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EAsB9B,KAAA,CAAA,GAAS,IAAA,EAAM,UAAA,QAAkB,KAAA,IAAS,UAAA,QAAkB,KAAA;AAAA"}
1
+ {"version":3,"file":"async_caller.d.ts","names":[],"sources":["../../src/utils/async_caller.ts"],"mappings":";KAiCK;KAEA;EACH,QAAQ;EACR;EACA;;iBA8Ic,kBACd;iBAyBc,uBACd,iBACC;KAgHS,wBAAwB;UAEnB;;;;;EAKf;;;;;EAKA;;;;;;EAMA,kBAAkB;;UAGH;EACf,SAAS;;;;;;;;;;;;;;;cAgBE;YACD,gBAAgB;YAEhB,YAAY;YAEZ,iBAAiB;UAEnB;EAER,YAAY,QAAQ;EAad,KAAK,iBAAiB,cAAc,MAAM,MAAM,cACpD,UAAU,MACP,MAAM,WAAW,KACnB,QAAQ,QAAQ,WAAW;EA0B9B,gBAAgB,iBAAiB,cAAc,MAAM,MAAM,cACzD,SAAS,wBACT,UAAU,MACP,MAAM,WAAW,KACnB,QAAQ,QAAQ,WAAW;EAsB9B,SAAS,MAAM,kBAAkB,SAAS,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"async_caller.js","names":[],"sources":["../../src/utils/async_caller.ts"],"sourcesContent":["import PQueueMod from \"p-queue\";\n\nimport { getAbortSignalError } from \"./signal.js\";\nimport pRetry from \"./p-retry/index.js\";\n\nconst STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\nconst RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS = 60_000;\n\nconst QUOTA_EXHAUSTED_MESSAGE_PATTERNS = [\n /insufficient[_ -]?quota/i,\n /exceeded (?:your|the current|the available).+quota/i,\n /usage quota/i,\n /quota (?:has been )?exhausted/i,\n /billing/i,\n /credit balance/i,\n /out of credits/i,\n /will reset at/i,\n];\n\nconst RETRY_AFTER_MESSAGE_PATTERN =\n /(?:try again in|retry after)\\s+(\\d+(?:\\.\\d+)?)\\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\\b/i;\n\ntype RateLimitAction = \"wait\" | \"capacity\" | \"stop\";\n\ntype RateLimitClassification = {\n action: RateLimitAction;\n retryAfterMs?: number;\n reason: string;\n};\n\nfunction getResponseStatus(error: unknown): number | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"response\" in error &&\n typeof error.response === \"object\" &&\n error.response !== null &&\n \"status\" in error.response &&\n typeof error.response.status === \"number\"\n ? error.response.status\n : undefined;\n}\n\nfunction getDirectStatus(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"status\" in error && typeof error.status === \"number\") {\n return error.status;\n }\n\n if (\"statusCode\" in error && typeof error.statusCode === \"number\") {\n return error.statusCode;\n }\n\n return undefined;\n}\n\nfunction getErrorMessage(error: unknown): string | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof error.message === \"string\"\n ? error.message\n : undefined;\n}\n\nfunction getErrorCode(error: unknown): string | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"code\" in error && typeof error.code === \"string\") {\n return error.code;\n }\n\n return \"error\" in error &&\n typeof error.error === \"object\" &&\n error.error !== null &&\n \"code\" in error.error &&\n typeof error.error.code === \"string\"\n ? error.error.code\n : undefined;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getRetryAfterHeader(error: any): string | null | undefined {\n if (error?.headers) {\n if (typeof error.headers.get === \"function\") {\n return error.headers.get(\"retry-after\");\n }\n return error.headers[\"retry-after\"] ?? error.headers[\"Retry-After\"];\n }\n\n if (error?.response?.headers) {\n if (typeof error.response.headers.get === \"function\") {\n return error.response.headers.get(\"retry-after\");\n }\n return (\n error.response.headers[\"retry-after\"] ??\n error.response.headers[\"Retry-After\"]\n );\n }\n\n return undefined;\n}\n\nfunction parseRetryAfterFromMessageMs(\n message: string | undefined\n): number | undefined {\n if (message == null) {\n return undefined;\n }\n\n const match = RETRY_AFTER_MESSAGE_PATTERN.exec(message);\n if (!match) {\n return undefined;\n }\n\n const rawValue = Number(match[1]);\n const unit = match[2]?.toLowerCase();\n if (Number.isNaN(rawValue) || !unit) {\n return undefined;\n }\n\n if (unit === \"ms\" || unit.startsWith(\"millisecond\")) {\n return rawValue;\n }\n\n if (unit === \"m\" || unit.startsWith(\"min\")) {\n return rawValue * 60_000;\n }\n\n if (unit === \"h\" || unit.startsWith(\"hr\") || unit.startsWith(\"hour\")) {\n return rawValue * 3_600_000;\n }\n\n return rawValue * 1000;\n}\n\nfunction coerceError(error: unknown, fallbackMessage: string): Error {\n if (error instanceof Error) {\n return error;\n }\n\n const coerced = new Error(fallbackMessage);\n if (typeof error === \"object\" && error !== null) {\n Object.assign(coerced, error);\n }\n return coerced;\n}\n\nfunction setRateLimitMetadata(\n error: unknown,\n classification: RateLimitClassification\n) {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n const mutableError = error as Record<string, unknown>;\n mutableError.rateLimitType = classification.action;\n mutableError.rateLimitReason = classification.reason;\n\n if (classification.retryAfterMs !== undefined) {\n mutableError.retryAfterMs = classification.retryAfterMs;\n }\n}\n\nexport function parseRetryAfterMs(\n headerValue: string | null | undefined\n): number | undefined {\n if (headerValue == null) {\n return undefined;\n }\n\n const trimmed = headerValue.trim();\n if (!trimmed) {\n return undefined;\n }\n\n const seconds = Number(trimmed);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n\n const date = Date.parse(trimmed);\n if (!Number.isNaN(date)) {\n const delayMs = date - Date.now();\n return delayMs > 0 ? delayMs : 0;\n }\n\n return undefined;\n}\n\nexport function classifyRateLimitError(\n error: unknown\n): RateLimitClassification | undefined {\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status !== 429) {\n return undefined;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n return { action: \"stop\", reason: \"insufficient_quota\" };\n }\n\n const message = getErrorMessage(error);\n if (\n message &&\n QUOTA_EXHAUSTED_MESSAGE_PATTERNS.some((pattern) => pattern.test(message))\n ) {\n return { action: \"stop\", reason: \"quota_message\" };\n }\n\n const retryAfterMs =\n parseRetryAfterMs(_getRetryAfterHeader(error)) ??\n parseRetryAfterFromMessageMs(message);\n\n if (retryAfterMs !== undefined) {\n if (retryAfterMs <= RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS) {\n return {\n action: \"wait\",\n retryAfterMs,\n reason: \"retry_after_hint\",\n };\n }\n\n return {\n action: \"capacity\",\n retryAfterMs,\n reason: \"retry_after_too_large\",\n };\n }\n\n return { action: \"capacity\", reason: \"headerless_429\" };\n}\n\n/**\n * The default failed attempt handler for the AsyncCaller.\n * @param error - The error to handle.\n * @returns void\n */\nconst defaultFailedAttemptHandler = (error: unknown) => {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n if (\n (\"message\" in error &&\n typeof error.message === \"string\" &&\n (error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\"))) ||\n (\"name\" in error &&\n typeof error.name === \"string\" &&\n error.name === \"AbortError\")\n ) {\n throw error;\n }\n if (\n \"code\" in error &&\n typeof error.code === \"string\" &&\n error.code === \"ECONNABORTED\"\n ) {\n throw error;\n }\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status && STATUS_NO_RETRY.includes(+status)) {\n throw error;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Insufficient quota\"\n );\n err.name = \"InsufficientQuotaError\";\n setRateLimitMetadata(err, {\n action: \"stop\",\n reason: \"insufficient_quota\",\n });\n throw err;\n }\n\n const rateLimitClassification = classifyRateLimitError(error);\n if (rateLimitClassification) {\n if (rateLimitClassification.action === \"wait\") {\n setRateLimitMetadata(error, rateLimitClassification);\n return;\n }\n\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Rate limit exceeded\"\n );\n if (err.name === \"Error\") {\n err.name =\n rateLimitClassification.action === \"stop\"\n ? \"RateLimitQuotaExhaustedError\"\n : \"RateLimitCapacityError\";\n }\n setRateLimitMetadata(err, rateLimitClassification);\n throw err;\n }\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FailedAttemptHandler = (error: any) => any;\n\nexport interface AsyncCallerParams {\n /**\n * The maximum number of concurrent calls that can be made.\n * Defaults to `Infinity`, which means no limit.\n */\n maxConcurrency?: number;\n /**\n * The maximum number of retries that can be made for a single call,\n * with an exponential backoff between each attempt. Defaults to 6.\n */\n maxRetries?: number;\n /**\n * Custom handler to handle failed attempts. Takes the originally thrown\n * error object as input, and should itself throw an error if the input\n * error is not retryable.\n */\n onFailedAttempt?: FailedAttemptHandler;\n}\n\nexport interface AsyncCallerCallOptions {\n signal?: AbortSignal;\n}\n\n/**\n * A class that can be used to make async calls with concurrency and retry logic.\n *\n * This is useful for making calls to any kind of \"expensive\" external resource,\n * be it because it's rate-limited, subject to network issues, etc.\n *\n * Concurrent calls are limited by the `maxConcurrency` parameter, which defaults\n * to `Infinity`. This means that by default, all calls will be made in parallel.\n *\n * Retries are limited by the `maxRetries` parameter, which defaults to 6. This\n * means that by default, each call will be retried up to 6 times, with an\n * exponential backoff between each attempt.\n */\nexport class AsyncCaller {\n protected maxConcurrency: AsyncCallerParams[\"maxConcurrency\"];\n\n protected maxRetries: AsyncCallerParams[\"maxRetries\"];\n\n protected onFailedAttempt: AsyncCallerParams[\"onFailedAttempt\"];\n\n private queue: (typeof import(\"p-queue\"))[\"default\"][\"prototype\"];\n\n constructor(params: AsyncCallerParams) {\n this.maxConcurrency = params.maxConcurrency ?? Infinity;\n this.maxRetries = params.maxRetries ?? 6;\n this.onFailedAttempt =\n params.onFailedAttempt ?? defaultFailedAttemptHandler;\n\n const PQueue = (\n \"default\" in PQueueMod ? PQueueMod.default : PQueueMod\n ) as typeof PQueueMod;\n this.queue = new PQueue({ concurrency: this.maxConcurrency });\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n async call<A extends any[], T extends (...args: A) => Promise<any>>(\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n return this.queue.add(\n () =>\n pRetry(\n () =>\n callable(...args).catch((error) => {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error);\n }\n }),\n {\n onFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),\n retries: this.maxRetries,\n randomize: true,\n // If needed we can change some of the defaults here,\n // but they're quite sensible.\n }\n ),\n { throwOnTimeout: true }\n );\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callWithOptions<A extends any[], T extends (...args: A) => Promise<any>>(\n options: AsyncCallerCallOptions,\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n // Note this doesn't cancel the underlying request,\n // when available prefer to use the signal option of the underlying call\n if (options.signal) {\n let listener: (() => void) | undefined;\n return Promise.race([\n this.call<A, T>(callable, ...args),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(getAbortSignalError(options.signal));\n };\n options.signal?.addEventListener(\"abort\", listener, { once: true });\n }),\n ]).finally(() => {\n if (options.signal && listener) {\n options.signal.removeEventListener(\"abort\", listener);\n }\n });\n }\n return this.call<A, T>(callable, ...args);\n }\n\n fetch(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {\n return this.call(() =>\n fetch(...args).then((res) => (res.ok ? res : Promise.reject(res)))\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"async_caller.js","names":[],"sources":["../../src/utils/async_caller.ts"],"sourcesContent":["import PQueueMod from \"p-queue\";\n\nimport { getAbortSignalError } from \"./signal.js\";\nimport pRetry from \"./p-retry/index.js\";\n\nconst STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\nconst RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS = 60_000;\n\nconst QUOTA_EXHAUSTED_MESSAGE_PATTERNS = [\n /insufficient[_ -]?quota/i,\n /exceeded (?:your|the current|the available).+quota/i,\n /usage quota/i,\n /quota (?:has been )?exhausted/i,\n /billing/i,\n /credit balance/i,\n /out of credits/i,\n /will reset at/i,\n];\n\nconst RETRY_AFTER_MESSAGE_PATTERN =\n /(?:try again in|retry after)\\s+(\\d+(?:\\.\\d+)?)\\s*(milliseconds?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h)\\b/i;\n\ntype RateLimitAction = \"wait\" | \"capacity\" | \"stop\";\n\ntype RateLimitClassification = {\n action: RateLimitAction;\n retryAfterMs?: number;\n reason: string;\n};\n\nfunction getResponseStatus(error: unknown): number | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"response\" in error &&\n typeof error.response === \"object\" &&\n error.response !== null &&\n \"status\" in error.response &&\n typeof error.response.status === \"number\"\n ? error.response.status\n : undefined;\n}\n\nfunction getDirectStatus(error: unknown): number | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"status\" in error && typeof error.status === \"number\") {\n return error.status;\n }\n\n if (\"statusCode\" in error && typeof error.statusCode === \"number\") {\n return error.statusCode;\n }\n\n return undefined;\n}\n\nfunction getErrorMessage(error: unknown): string | undefined {\n return typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof error.message === \"string\"\n ? error.message\n : undefined;\n}\n\nfunction getErrorCode(error: unknown): string | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n if (\"code\" in error && typeof error.code === \"string\") {\n return error.code;\n }\n\n return \"error\" in error &&\n typeof error.error === \"object\" &&\n error.error !== null &&\n \"code\" in error.error &&\n typeof error.error.code === \"string\"\n ? error.error.code\n : undefined;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getRetryAfterHeader(error: any): string | null | undefined {\n if (error?.headers) {\n if (typeof error.headers.get === \"function\") {\n return error.headers.get(\"retry-after\");\n }\n return error.headers[\"retry-after\"] ?? error.headers[\"Retry-After\"];\n }\n\n if (error?.response?.headers) {\n if (typeof error.response.headers.get === \"function\") {\n return error.response.headers.get(\"retry-after\");\n }\n return (\n error.response.headers[\"retry-after\"] ??\n error.response.headers[\"Retry-After\"]\n );\n }\n\n return undefined;\n}\n\nfunction parseRetryAfterFromMessageMs(\n message: string | undefined\n): number | undefined {\n if (message == null) {\n return undefined;\n }\n\n const match = RETRY_AFTER_MESSAGE_PATTERN.exec(message);\n if (!match) {\n return undefined;\n }\n\n const rawValue = Number(match[1]);\n const unit = match[2]?.toLowerCase();\n if (Number.isNaN(rawValue) || !unit) {\n return undefined;\n }\n\n if (unit === \"ms\" || unit.startsWith(\"millisecond\")) {\n return rawValue;\n }\n\n if (unit === \"m\" || unit.startsWith(\"min\")) {\n return rawValue * 60_000;\n }\n\n if (unit === \"h\" || unit.startsWith(\"hr\") || unit.startsWith(\"hour\")) {\n return rawValue * 3_600_000;\n }\n\n return rawValue * 1000;\n}\n\nfunction coerceError(error: unknown, fallbackMessage: string): Error {\n if (error instanceof Error) {\n return error;\n }\n\n const coerced = new Error(fallbackMessage);\n if (typeof error === \"object\" && error !== null) {\n Object.assign(coerced, error);\n }\n return coerced;\n}\n\nfunction setRateLimitMetadata(\n error: unknown,\n classification: RateLimitClassification\n) {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n const mutableError = error as Record<string, unknown>;\n mutableError.rateLimitType = classification.action;\n mutableError.rateLimitReason = classification.reason;\n\n if (classification.retryAfterMs !== undefined) {\n mutableError.retryAfterMs = classification.retryAfterMs;\n }\n}\n\nexport function parseRetryAfterMs(\n headerValue: string | null | undefined\n): number | undefined {\n if (headerValue == null) {\n return undefined;\n }\n\n const trimmed = headerValue.trim();\n if (!trimmed) {\n return undefined;\n }\n\n const seconds = Number(trimmed);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n return seconds * 1000;\n }\n\n const date = Date.parse(trimmed);\n if (!Number.isNaN(date)) {\n const delayMs = date - Date.now();\n return delayMs > 0 ? delayMs : 0;\n }\n\n return undefined;\n}\n\nexport function classifyRateLimitError(\n error: unknown\n): RateLimitClassification | undefined {\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status !== 429) {\n return undefined;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n return { action: \"stop\", reason: \"insufficient_quota\" };\n }\n\n const message = getErrorMessage(error);\n if (\n message &&\n QUOTA_EXHAUSTED_MESSAGE_PATTERNS.some((pattern) => pattern.test(message))\n ) {\n return { action: \"stop\", reason: \"quota_message\" };\n }\n\n const retryAfterMs =\n parseRetryAfterMs(_getRetryAfterHeader(error)) ??\n parseRetryAfterFromMessageMs(message);\n\n if (retryAfterMs !== undefined) {\n if (retryAfterMs <= RETRY_AFTER_AUTO_RETRY_THRESHOLD_MS) {\n return {\n action: \"wait\",\n retryAfterMs,\n reason: \"retry_after_hint\",\n };\n }\n\n return {\n action: \"capacity\",\n retryAfterMs,\n reason: \"retry_after_too_large\",\n };\n }\n\n return { action: \"capacity\", reason: \"headerless_429\" };\n}\n\n/**\n * The default failed attempt handler for the AsyncCaller.\n * @param error - The error to handle.\n * @returns void\n */\nconst defaultFailedAttemptHandler = (error: unknown) => {\n if (typeof error !== \"object\" || error === null) {\n return;\n }\n\n if (\n (\"message\" in error &&\n typeof error.message === \"string\" &&\n (error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\"))) ||\n (\"name\" in error &&\n typeof error.name === \"string\" &&\n error.name === \"AbortError\")\n ) {\n throw error;\n }\n if (\n \"code\" in error &&\n typeof error.code === \"string\" &&\n error.code === \"ECONNABORTED\"\n ) {\n throw error;\n }\n const status = getResponseStatus(error) ?? getDirectStatus(error);\n if (status && STATUS_NO_RETRY.includes(+status)) {\n throw error;\n }\n\n const code = getErrorCode(error);\n if (code === \"insufficient_quota\") {\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Insufficient quota\"\n );\n err.name = \"InsufficientQuotaError\";\n setRateLimitMetadata(err, {\n action: \"stop\",\n reason: \"insufficient_quota\",\n });\n throw err;\n }\n\n const rateLimitClassification = classifyRateLimitError(error);\n if (rateLimitClassification) {\n if (rateLimitClassification.action === \"wait\") {\n setRateLimitMetadata(error, rateLimitClassification);\n return;\n }\n\n const err = coerceError(\n error,\n getErrorMessage(error) ?? \"Rate limit exceeded\"\n );\n if (err.name === \"Error\") {\n err.name =\n rateLimitClassification.action === \"stop\"\n ? \"RateLimitQuotaExhaustedError\"\n : \"RateLimitCapacityError\";\n }\n setRateLimitMetadata(err, rateLimitClassification);\n throw err;\n }\n};\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FailedAttemptHandler = (error: any) => any;\n\nexport interface AsyncCallerParams {\n /**\n * The maximum number of concurrent calls that can be made.\n * Defaults to `Infinity`, which means no limit.\n */\n maxConcurrency?: number;\n /**\n * The maximum number of retries that can be made for a single call,\n * with an exponential backoff between each attempt. Defaults to 6.\n */\n maxRetries?: number;\n /**\n * Custom handler to handle failed attempts. Takes the originally thrown\n * error object as input, and should itself throw an error if the input\n * error is not retryable.\n */\n onFailedAttempt?: FailedAttemptHandler;\n}\n\nexport interface AsyncCallerCallOptions {\n signal?: AbortSignal;\n}\n\n/**\n * A class that can be used to make async calls with concurrency and retry logic.\n *\n * This is useful for making calls to any kind of \"expensive\" external resource,\n * be it because it's rate-limited, subject to network issues, etc.\n *\n * Concurrent calls are limited by the `maxConcurrency` parameter, which defaults\n * to `Infinity`. This means that by default, all calls will be made in parallel.\n *\n * Retries are limited by the `maxRetries` parameter, which defaults to 6. This\n * means that by default, each call will be retried up to 6 times, with an\n * exponential backoff between each attempt.\n */\nexport class AsyncCaller {\n protected maxConcurrency: AsyncCallerParams[\"maxConcurrency\"];\n\n protected maxRetries: AsyncCallerParams[\"maxRetries\"];\n\n protected onFailedAttempt: AsyncCallerParams[\"onFailedAttempt\"];\n\n private queue: (typeof import(\"p-queue\"))[\"default\"][\"prototype\"];\n\n constructor(params: AsyncCallerParams) {\n this.maxConcurrency = params.maxConcurrency ?? Infinity;\n this.maxRetries = params.maxRetries ?? 6;\n this.onFailedAttempt =\n params.onFailedAttempt ?? defaultFailedAttemptHandler;\n\n const PQueue = (\n \"default\" in PQueueMod ? PQueueMod.default : PQueueMod\n ) as typeof PQueueMod;\n this.queue = new PQueue({ concurrency: this.maxConcurrency });\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n async call<A extends any[], T extends (...args: A) => Promise<any>>(\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n return this.queue.add(\n () =>\n pRetry(\n () =>\n callable(...args).catch((error) => {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error);\n }\n }),\n {\n onFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),\n retries: this.maxRetries,\n randomize: true,\n // If needed we can change some of the defaults here,\n // but they're quite sensible.\n }\n ),\n { throwOnTimeout: true }\n );\n }\n\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callWithOptions<A extends any[], T extends (...args: A) => Promise<any>>(\n options: AsyncCallerCallOptions,\n callable: T,\n ...args: Parameters<T>\n ): Promise<Awaited<ReturnType<T>>> {\n // Note this doesn't cancel the underlying request,\n // when available prefer to use the signal option of the underlying call\n if (options.signal) {\n let listener: (() => void) | undefined;\n return Promise.race([\n this.call<A, T>(callable, ...args),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(getAbortSignalError(options.signal));\n };\n options.signal?.addEventListener(\"abort\", listener, { once: true });\n }),\n ]).finally(() => {\n if (options.signal && listener) {\n options.signal.removeEventListener(\"abort\", listener);\n }\n });\n }\n return this.call<A, T>(callable, ...args);\n }\n\n fetch(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {\n return this.call(() =>\n fetch(...args).then((res) => (res.ok ? res : Promise.reject(res)))\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"callbacks.cjs","names":["getEnvironmentVariable"],"sources":["../../src/utils/callbacks.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"./env.js\";\n\nexport const isTracingEnabled = (tracingEnabled?: boolean): boolean => {\n if (tracingEnabled !== undefined) {\n return tracingEnabled;\n }\n const envVars = [\n \"LANGSMITH_TRACING_V2\",\n \"LANGCHAIN_TRACING_V2\",\n \"LANGSMITH_TRACING\",\n \"LANGCHAIN_TRACING\",\n ];\n return !!envVars.find((envVar) => getEnvironmentVariable(envVar) === \"true\");\n};\n"],"mappings":";;AAEA,MAAa,oBAAoB,mBAAsC;AACrE,KAAI,mBAAmB,KAAA,EACrB,QAAO;AAQT,QAAO,CAAC,CAAC;EALP;EACA;EACA;EACA;EAEc,CAAC,MAAM,WAAWA,kBAAAA,uBAAuB,OAAO,KAAK,OAAO"}
1
+ {"version":3,"file":"callbacks.cjs","names":["getEnvironmentVariable"],"sources":["../../src/utils/callbacks.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"./env.js\";\n\nexport const isTracingEnabled = (tracingEnabled?: boolean): boolean => {\n if (tracingEnabled !== undefined) {\n return tracingEnabled;\n }\n const envVars = [\n \"LANGSMITH_TRACING_V2\",\n \"LANGCHAIN_TRACING_V2\",\n \"LANGSMITH_TRACING\",\n \"LANGCHAIN_TRACING\",\n ];\n return !!envVars.find((envVar) => getEnvironmentVariable(envVar) === \"true\");\n};\n"],"mappings":";;AAEA,MAAa,oBAAoB,mBAAsC;CACrE,IAAI,mBAAmB,KAAA,GACrB,OAAO;CAQT,OAAO,CAAC,CAAC;EALP;EACA;EACA;EACA;CAEa,CAAC,CAAC,MAAM,WAAWA,kBAAAA,uBAAuB,MAAM,MAAM,MAAM;AAC7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"callbacks.js","names":[],"sources":["../../src/utils/callbacks.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"./env.js\";\n\nexport const isTracingEnabled = (tracingEnabled?: boolean): boolean => {\n if (tracingEnabled !== undefined) {\n return tracingEnabled;\n }\n const envVars = [\n \"LANGSMITH_TRACING_V2\",\n \"LANGCHAIN_TRACING_V2\",\n \"LANGSMITH_TRACING\",\n \"LANGCHAIN_TRACING\",\n ];\n return !!envVars.find((envVar) => getEnvironmentVariable(envVar) === \"true\");\n};\n"],"mappings":";;AAEA,MAAa,oBAAoB,mBAAsC;AACrE,KAAI,mBAAmB,KAAA,EACrB,QAAO;AAQT,QAAO,CAAC,CAAC;EALP;EACA;EACA;EACA;EAEc,CAAC,MAAM,WAAW,uBAAuB,OAAO,KAAK,OAAO"}
1
+ {"version":3,"file":"callbacks.js","names":[],"sources":["../../src/utils/callbacks.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"./env.js\";\n\nexport const isTracingEnabled = (tracingEnabled?: boolean): boolean => {\n if (tracingEnabled !== undefined) {\n return tracingEnabled;\n }\n const envVars = [\n \"LANGSMITH_TRACING_V2\",\n \"LANGCHAIN_TRACING_V2\",\n \"LANGSMITH_TRACING\",\n \"LANGCHAIN_TRACING\",\n ];\n return !!envVars.find((envVar) => getEnvironmentVariable(envVar) === \"true\");\n};\n"],"mappings":";;AAEA,MAAa,oBAAoB,mBAAsC;CACrE,IAAI,mBAAmB,KAAA,GACrB,OAAO;CAQT,OAAO,CAAC,CAAC;EALP;EACA;EACA;EACA;CAEa,CAAC,CAAC,MAAM,WAAW,uBAAuB,MAAM,MAAM,MAAM;AAC7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_array.cjs","names":[],"sources":["../../src/utils/chunk_array.ts"],"sourcesContent":["export const chunkArray = <T>(arr: T[], chunkSize: number) =>\n arr.reduce((chunks, elem, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n const chunk = chunks[chunkIndex] || [];\n chunks[chunkIndex] = chunk.concat([elem]);\n return chunks;\n }, [] as T[][]);\n"],"mappings":";;;AAAA,MAAa,cAAiB,KAAU,cACtC,IAAI,QAAQ,QAAQ,MAAM,UAAU;CAClC,MAAM,aAAa,KAAK,MAAM,QAAQ,UAAU;AAEhD,QAAO,eADO,OAAO,eAAe,EAAE,EACX,OAAO,CAAC,KAAK,CAAC;AACzC,QAAO;GACN,EAAE,CAAU"}
1
+ {"version":3,"file":"chunk_array.cjs","names":[],"sources":["../../src/utils/chunk_array.ts"],"sourcesContent":["export const chunkArray = <T>(arr: T[], chunkSize: number) =>\n arr.reduce((chunks, elem, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n const chunk = chunks[chunkIndex] || [];\n chunks[chunkIndex] = chunk.concat([elem]);\n return chunks;\n }, [] as T[][]);\n"],"mappings":";;;AAAA,MAAa,cAAiB,KAAU,cACtC,IAAI,QAAQ,QAAQ,MAAM,UAAU;CAClC,MAAM,aAAa,KAAK,MAAM,QAAQ,SAAS;CAE/C,OAAO,eADO,OAAO,eAAe,CAAC,EAAA,CACV,OAAO,CAAC,IAAI,CAAC;CACxC,OAAO;AACT,GAAG,CAAC,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_array.d.cts","names":[],"sources":["../../src/utils/chunk_array.ts"],"mappings":";cAAa,UAAA,MAAe,GAAA,EAAO,CAAA,IAAG,SAAA,aAAmB,CAAA"}
1
+ {"version":3,"file":"chunk_array.d.cts","names":[],"sources":["../../src/utils/chunk_array.ts"],"mappings":";cAAa,aAAc,GAAC,KAAO,KAAG,sBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_array.d.ts","names":[],"sources":["../../src/utils/chunk_array.ts"],"mappings":";cAAa,UAAA,MAAe,GAAA,EAAO,CAAA,IAAG,SAAA,aAAmB,CAAA"}
1
+ {"version":3,"file":"chunk_array.d.ts","names":[],"sources":["../../src/utils/chunk_array.ts"],"mappings":";cAAa,aAAc,GAAC,KAAO,KAAG,sBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_array.js","names":[],"sources":["../../src/utils/chunk_array.ts"],"sourcesContent":["export const chunkArray = <T>(arr: T[], chunkSize: number) =>\n arr.reduce((chunks, elem, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n const chunk = chunks[chunkIndex] || [];\n chunks[chunkIndex] = chunk.concat([elem]);\n return chunks;\n }, [] as T[][]);\n"],"mappings":";;;AAAA,MAAa,cAAiB,KAAU,cACtC,IAAI,QAAQ,QAAQ,MAAM,UAAU;CAClC,MAAM,aAAa,KAAK,MAAM,QAAQ,UAAU;AAEhD,QAAO,eADO,OAAO,eAAe,EAAE,EACX,OAAO,CAAC,KAAK,CAAC;AACzC,QAAO;GACN,EAAE,CAAU"}
1
+ {"version":3,"file":"chunk_array.js","names":[],"sources":["../../src/utils/chunk_array.ts"],"sourcesContent":["export const chunkArray = <T>(arr: T[], chunkSize: number) =>\n arr.reduce((chunks, elem, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n const chunk = chunks[chunkIndex] || [];\n chunks[chunkIndex] = chunk.concat([elem]);\n return chunks;\n }, [] as T[][]);\n"],"mappings":";;;AAAA,MAAa,cAAiB,KAAU,cACtC,IAAI,QAAQ,QAAQ,MAAM,UAAU;CAClC,MAAM,aAAa,KAAK,MAAM,QAAQ,SAAS;CAE/C,OAAO,eADO,OAAO,eAAe,CAAC,EAAA,CACV,OAAO,CAAC,IAAI,CAAC;CACxC,OAAO;AACT,GAAG,CAAC,CAAU"}