langchain 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (1451) hide show
  1. package/dist/agents/ReactAgent.cjs +2 -2
  2. package/dist/agents/ReactAgent.cjs.map +1 -1
  3. package/dist/agents/ReactAgent.d.cts +1 -2
  4. package/dist/agents/ReactAgent.d.cts.map +1 -1
  5. package/dist/agents/ReactAgent.d.ts +1 -2
  6. package/dist/agents/ReactAgent.d.ts.map +1 -1
  7. package/dist/agents/ReactAgent.js +2 -2
  8. package/dist/agents/ReactAgent.js.map +1 -1
  9. package/dist/agents/RunnableCallable.cjs +10 -0
  10. package/dist/agents/RunnableCallable.cjs.map +1 -1
  11. package/dist/agents/RunnableCallable.d.cts +5 -0
  12. package/dist/agents/RunnableCallable.d.cts.map +1 -1
  13. package/dist/agents/RunnableCallable.d.ts +5 -0
  14. package/dist/agents/RunnableCallable.d.ts.map +1 -1
  15. package/dist/agents/RunnableCallable.js +10 -0
  16. package/dist/agents/RunnableCallable.js.map +1 -1
  17. package/dist/agents/annotation.cjs +14 -0
  18. package/dist/agents/annotation.cjs.map +1 -1
  19. package/dist/agents/annotation.d.cts +17 -5
  20. package/dist/agents/annotation.d.cts.map +1 -1
  21. package/dist/agents/annotation.d.ts +16 -4
  22. package/dist/agents/annotation.d.ts.map +1 -1
  23. package/dist/agents/annotation.js +12 -1
  24. package/dist/agents/annotation.js.map +1 -1
  25. package/dist/agents/createAgent.cjs.map +1 -1
  26. package/dist/agents/createAgent.js.map +1 -1
  27. package/dist/agents/errors.d.cts +9 -2
  28. package/dist/agents/errors.d.cts.map +1 -1
  29. package/dist/agents/errors.d.ts +9 -2
  30. package/dist/agents/errors.d.ts.map +1 -1
  31. package/dist/agents/index.cjs +3 -0
  32. package/dist/agents/index.cjs.map +1 -1
  33. package/dist/agents/index.d.cts +7 -6
  34. package/dist/agents/index.d.cts.map +1 -1
  35. package/dist/agents/index.d.ts +7 -6
  36. package/dist/agents/index.d.ts.map +1 -1
  37. package/dist/agents/index.js +4 -1
  38. package/dist/agents/index.js.map +1 -1
  39. package/dist/agents/interrupt.d.cts +18 -16
  40. package/dist/agents/interrupt.d.cts.map +1 -1
  41. package/dist/agents/interrupt.d.ts +16 -17
  42. package/dist/agents/interrupt.d.ts.map +1 -1
  43. package/dist/agents/interrupt.js +3 -1
  44. package/dist/agents/middlewareAgent/ReactAgent.cjs +394 -70
  45. package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -1
  46. package/dist/agents/middlewareAgent/ReactAgent.d.cts +178 -11
  47. package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -1
  48. package/dist/agents/middlewareAgent/ReactAgent.d.ts +178 -11
  49. package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -1
  50. package/dist/agents/middlewareAgent/ReactAgent.js +395 -71
  51. package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -1
  52. package/dist/agents/middlewareAgent/annotation.cjs +10 -4
  53. package/dist/agents/middlewareAgent/annotation.cjs.map +1 -1
  54. package/dist/agents/middlewareAgent/annotation.js +10 -4
  55. package/dist/agents/middlewareAgent/annotation.js.map +1 -1
  56. package/dist/agents/middlewareAgent/constants.d.cts +5 -0
  57. package/dist/agents/middlewareAgent/constants.d.cts.map +1 -0
  58. package/dist/agents/middlewareAgent/constants.d.ts +5 -0
  59. package/dist/agents/middlewareAgent/constants.d.ts.map +1 -0
  60. package/dist/agents/middlewareAgent/index.cjs.map +1 -1
  61. package/dist/agents/middlewareAgent/index.js.map +1 -1
  62. package/dist/agents/middlewareAgent/middleware/callLimit.cjs +128 -0
  63. package/dist/agents/middlewareAgent/middleware/callLimit.cjs.map +1 -0
  64. package/dist/agents/middlewareAgent/middleware/callLimit.d.cts +119 -0
  65. package/dist/agents/middlewareAgent/middleware/callLimit.d.cts.map +1 -0
  66. package/dist/agents/middlewareAgent/middleware/callLimit.d.ts +119 -0
  67. package/dist/agents/middlewareAgent/middleware/callLimit.d.ts.map +1 -0
  68. package/dist/agents/middlewareAgent/middleware/callLimit.js +127 -0
  69. package/dist/agents/middlewareAgent/middleware/callLimit.js.map +1 -0
  70. package/dist/agents/middlewareAgent/middleware/contextEditing.cjs +278 -0
  71. package/dist/agents/middlewareAgent/middleware/contextEditing.cjs.map +1 -0
  72. package/dist/agents/middlewareAgent/middleware/contextEditing.d.cts +239 -0
  73. package/dist/agents/middlewareAgent/middleware/contextEditing.d.cts.map +1 -0
  74. package/dist/agents/middlewareAgent/middleware/contextEditing.d.ts +239 -0
  75. package/dist/agents/middlewareAgent/middleware/contextEditing.d.ts.map +1 -0
  76. package/dist/agents/middlewareAgent/middleware/contextEditing.js +276 -0
  77. package/dist/agents/middlewareAgent/middleware/contextEditing.js.map +1 -0
  78. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs +58 -0
  79. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs.map +1 -0
  80. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts +46 -0
  81. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts.map +1 -0
  82. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts +46 -0
  83. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts.map +1 -0
  84. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js +58 -0
  85. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js.map +1 -0
  86. package/dist/agents/middlewareAgent/middleware/hitl.cjs +192 -86
  87. package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +1 -1
  88. package/dist/agents/middlewareAgent/middleware/hitl.d.cts +387 -62
  89. package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +1 -1
  90. package/dist/agents/middlewareAgent/middleware/hitl.d.ts +387 -62
  91. package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +1 -1
  92. package/dist/agents/middlewareAgent/middleware/hitl.js +193 -87
  93. package/dist/agents/middlewareAgent/middleware/hitl.js.map +1 -1
  94. package/dist/agents/middlewareAgent/middleware/index.cjs +29 -3
  95. package/dist/agents/middlewareAgent/middleware/index.cjs.map +1 -1
  96. package/dist/agents/middlewareAgent/middleware/index.d.cts +13 -4
  97. package/dist/agents/middlewareAgent/middleware/index.d.ts +13 -4
  98. package/dist/agents/middlewareAgent/middleware/index.js +20 -3
  99. package/dist/agents/middlewareAgent/middleware/index.js.map +1 -1
  100. package/dist/agents/middlewareAgent/middleware/llmToolSelector.cjs +193 -0
  101. package/dist/agents/middlewareAgent/middleware/llmToolSelector.cjs.map +1 -0
  102. package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.cts +83 -0
  103. package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.cts.map +1 -0
  104. package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.ts +83 -0
  105. package/dist/agents/middlewareAgent/middleware/llmToolSelector.d.ts.map +1 -0
  106. package/dist/agents/middlewareAgent/middleware/llmToolSelector.js +192 -0
  107. package/dist/agents/middlewareAgent/middleware/llmToolSelector.js.map +1 -0
  108. package/dist/agents/middlewareAgent/middleware/modelFallback.cjs +67 -0
  109. package/dist/agents/middlewareAgent/middleware/modelFallback.cjs.map +1 -0
  110. package/dist/agents/middlewareAgent/middleware/modelFallback.d.cts +45 -0
  111. package/dist/agents/middlewareAgent/middleware/modelFallback.d.cts.map +1 -0
  112. package/dist/agents/middlewareAgent/middleware/modelFallback.d.ts +45 -0
  113. package/dist/agents/middlewareAgent/middleware/modelFallback.d.ts.map +1 -0
  114. package/dist/agents/middlewareAgent/middleware/modelFallback.js +67 -0
  115. package/dist/agents/middlewareAgent/middleware/modelFallback.js.map +1 -0
  116. package/dist/agents/middlewareAgent/middleware/piiRedaction.cjs +333 -0
  117. package/dist/agents/middlewareAgent/middleware/piiRedaction.cjs.map +1 -0
  118. package/dist/agents/middlewareAgent/middleware/piiRedaction.d.cts +155 -0
  119. package/dist/agents/middlewareAgent/middleware/piiRedaction.d.cts.map +1 -0
  120. package/dist/agents/middlewareAgent/middleware/piiRedaction.d.ts +155 -0
  121. package/dist/agents/middlewareAgent/middleware/piiRedaction.d.ts.map +1 -0
  122. package/dist/agents/middlewareAgent/middleware/piiRedaction.js +332 -0
  123. package/dist/agents/middlewareAgent/middleware/piiRedaction.js.map +1 -0
  124. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs +64 -36
  125. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +1 -1
  126. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts +64 -19
  127. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +1 -1
  128. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts +64 -19
  129. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +1 -1
  130. package/dist/agents/middlewareAgent/middleware/promptCaching.js +64 -36
  131. package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +1 -1
  132. package/dist/agents/middlewareAgent/middleware/summarization.cjs +27 -35
  133. package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +1 -1
  134. package/dist/agents/middlewareAgent/middleware/summarization.d.cts +12 -17
  135. package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +1 -1
  136. package/dist/agents/middlewareAgent/middleware/summarization.d.ts +12 -17
  137. package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +1 -1
  138. package/dist/agents/middlewareAgent/middleware/summarization.js +28 -35
  139. package/dist/agents/middlewareAgent/middleware/summarization.js.map +1 -1
  140. package/dist/agents/middlewareAgent/middleware/toolCallLimit.cjs +242 -0
  141. package/dist/agents/middlewareAgent/middleware/toolCallLimit.cjs.map +1 -0
  142. package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.cts +158 -0
  143. package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.cts.map +1 -0
  144. package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.ts +158 -0
  145. package/dist/agents/middlewareAgent/middleware/toolCallLimit.d.ts.map +1 -0
  146. package/dist/agents/middlewareAgent/middleware/toolCallLimit.js +240 -0
  147. package/dist/agents/middlewareAgent/middleware/toolCallLimit.js.map +1 -0
  148. package/dist/agents/middlewareAgent/middleware/utils.cjs +26 -0
  149. package/dist/agents/middlewareAgent/middleware/utils.cjs.map +1 -0
  150. package/dist/agents/middlewareAgent/middleware/utils.d.cts +13 -0
  151. package/dist/agents/middlewareAgent/middleware/utils.d.cts.map +1 -0
  152. package/dist/agents/middlewareAgent/middleware/utils.d.ts +13 -0
  153. package/dist/agents/middlewareAgent/middleware/utils.d.ts.map +1 -0
  154. package/dist/agents/middlewareAgent/middleware/utils.js +25 -0
  155. package/dist/agents/middlewareAgent/middleware/utils.js.map +1 -0
  156. package/dist/agents/middlewareAgent/middleware.cjs +9 -5
  157. package/dist/agents/middlewareAgent/middleware.cjs.map +1 -1
  158. package/dist/agents/middlewareAgent/middleware.d.cts +78 -7
  159. package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -1
  160. package/dist/agents/middlewareAgent/middleware.d.ts +78 -7
  161. package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -1
  162. package/dist/agents/middlewareAgent/middleware.js +9 -5
  163. package/dist/agents/middlewareAgent/middleware.js.map +1 -1
  164. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +4 -4
  165. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -1
  166. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +4 -4
  167. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -1
  168. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +260 -117
  169. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -1
  170. package/dist/agents/middlewareAgent/nodes/AgentNode.js +263 -120
  171. package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -1
  172. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +4 -4
  173. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -1
  174. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +4 -4
  175. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -1
  176. package/dist/agents/middlewareAgent/nodes/middleware.cjs +51 -25
  177. package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -1
  178. package/dist/agents/middlewareAgent/nodes/middleware.js +51 -26
  179. package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -1
  180. package/dist/agents/middlewareAgent/nodes/utils.cjs +20 -28
  181. package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -1
  182. package/dist/agents/middlewareAgent/nodes/utils.js +20 -27
  183. package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -1
  184. package/dist/agents/middlewareAgent/types.d.cts +182 -90
  185. package/dist/agents/middlewareAgent/types.d.cts.map +1 -1
  186. package/dist/agents/middlewareAgent/types.d.ts +182 -90
  187. package/dist/agents/middlewareAgent/types.d.ts.map +1 -1
  188. package/dist/agents/model.cjs +13 -0
  189. package/dist/agents/model.cjs.map +1 -0
  190. package/dist/agents/model.js +11 -0
  191. package/dist/agents/model.js.map +1 -0
  192. package/dist/agents/nodes/AgentNode.cjs +56 -28
  193. package/dist/agents/nodes/AgentNode.cjs.map +1 -1
  194. package/dist/agents/nodes/AgentNode.js +57 -29
  195. package/dist/agents/nodes/AgentNode.js.map +1 -1
  196. package/dist/agents/nodes/ToolNode.cjs +1 -1
  197. package/dist/agents/nodes/ToolNode.cjs.map +1 -1
  198. package/dist/agents/nodes/ToolNode.d.cts +2 -2
  199. package/dist/agents/nodes/ToolNode.js +1 -1
  200. package/dist/agents/nodes/ToolNode.js.map +1 -1
  201. package/dist/agents/responses.cjs +52 -10
  202. package/dist/agents/responses.cjs.map +1 -1
  203. package/dist/agents/responses.d.cts +12 -20
  204. package/dist/agents/responses.d.cts.map +1 -1
  205. package/dist/agents/responses.d.ts +12 -20
  206. package/dist/agents/responses.d.ts.map +1 -1
  207. package/dist/agents/responses.js +52 -11
  208. package/dist/agents/responses.js.map +1 -1
  209. package/dist/agents/tests/utils.cjs +77 -0
  210. package/dist/agents/tests/utils.cjs.map +1 -0
  211. package/dist/agents/tests/utils.d.cts +53 -0
  212. package/dist/agents/tests/utils.d.cts.map +1 -0
  213. package/dist/agents/tests/utils.d.ts +53 -0
  214. package/dist/agents/tests/utils.d.ts.map +1 -0
  215. package/dist/agents/tests/utils.js +76 -0
  216. package/dist/agents/tests/utils.js.map +1 -0
  217. package/dist/agents/types.cjs +7 -0
  218. package/dist/agents/types.cjs.map +1 -0
  219. package/dist/agents/types.d.cts +40 -7
  220. package/dist/agents/types.d.cts.map +1 -1
  221. package/dist/agents/types.d.ts +40 -7
  222. package/dist/agents/types.d.ts.map +1 -1
  223. package/dist/agents/types.js +6 -0
  224. package/dist/agents/types.js.map +1 -0
  225. package/dist/agents/utils.cjs +5 -23
  226. package/dist/agents/utils.cjs.map +1 -1
  227. package/dist/agents/utils.js +2 -19
  228. package/dist/agents/utils.js.map +1 -1
  229. package/dist/chat_models/universal.cjs +7 -0
  230. package/dist/chat_models/universal.cjs.map +1 -1
  231. package/dist/chat_models/universal.d.cts +7 -2
  232. package/dist/chat_models/universal.d.cts.map +1 -1
  233. package/dist/chat_models/universal.d.ts +7 -2
  234. package/dist/chat_models/universal.d.ts.map +1 -1
  235. package/dist/chat_models/universal.js +7 -0
  236. package/dist/chat_models/universal.js.map +1 -1
  237. package/dist/embeddings/cache_backed.d.ts +1 -1
  238. package/dist/hub/base.cjs +4 -1
  239. package/dist/hub/base.cjs.map +1 -1
  240. package/dist/hub/base.js +4 -1
  241. package/dist/hub/base.js.map +1 -1
  242. package/dist/index.cjs +97 -7
  243. package/dist/index.cjs.map +1 -1
  244. package/dist/index.d.cts +24 -8
  245. package/dist/index.d.ts +24 -8
  246. package/dist/index.js +52 -6
  247. package/dist/index.js.map +1 -1
  248. package/dist/load/import_constants.cjs +0 -19
  249. package/dist/load/import_constants.cjs.map +1 -1
  250. package/dist/load/import_constants.js +0 -19
  251. package/dist/load/import_constants.js.map +1 -1
  252. package/dist/load/import_map.cjs +3 -114
  253. package/dist/load/import_map.cjs.map +1 -1
  254. package/dist/load/import_map.js +4 -115
  255. package/dist/load/import_map.js.map +1 -1
  256. package/dist/load/serializable.d.cts +1 -10
  257. package/dist/load/serializable.d.ts +1 -10
  258. package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/async_caller.cjs +5 -4
  259. package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/async_caller.cjs.map +1 -1
  260. package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/async_caller.js +3 -2
  261. package/dist/node_modules/.pnpm/langsmith@0.3.64_@opentelemetry_api@1.9.0_openai@5.11.0_ws@8.18.3_bufferutil@4.0.9_utf-8-validate@6.0.5__zod@3.25.76_/node_modules/langsmith/dist/utils/async_caller.js.map +1 -1
  262. package/dist/node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.cjs +83 -0
  263. package/dist/node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.cjs.map +1 -0
  264. package/dist/node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.js +79 -0
  265. package/dist/node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.js.map +1 -0
  266. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.cjs +16 -0
  267. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.cjs.map +1 -0
  268. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js +13 -0
  269. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js.map +1 -0
  270. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.cjs +77 -0
  271. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.cjs.map +1 -0
  272. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js +74 -0
  273. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js.map +1 -0
  274. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.cjs +115 -0
  275. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.cjs.map +1 -0
  276. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js +112 -0
  277. package/dist/node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js.map +1 -0
  278. package/dist/storage/encoder_backed.cjs +1 -1
  279. package/dist/storage/encoder_backed.d.cts +1 -1
  280. package/dist/storage/encoder_backed.d.ts +1 -1
  281. package/dist/storage/encoder_backed.js +1 -1
  282. package/dist/storage/file_system.cjs +1 -1
  283. package/dist/storage/file_system.js +1 -1
  284. package/package.json +39 -652
  285. package/dist/chains/analyze_documents_chain.cjs +0 -83
  286. package/dist/chains/analyze_documents_chain.cjs.map +0 -1
  287. package/dist/chains/analyze_documents_chain.d.cts +0 -58
  288. package/dist/chains/analyze_documents_chain.d.cts.map +0 -1
  289. package/dist/chains/analyze_documents_chain.d.ts +0 -58
  290. package/dist/chains/analyze_documents_chain.d.ts.map +0 -1
  291. package/dist/chains/analyze_documents_chain.js +0 -82
  292. package/dist/chains/analyze_documents_chain.js.map +0 -1
  293. package/dist/chains/api/api_chain.cjs +0 -100
  294. package/dist/chains/api/api_chain.cjs.map +0 -1
  295. package/dist/chains/api/api_chain.d.cts +0 -63
  296. package/dist/chains/api/api_chain.d.cts.map +0 -1
  297. package/dist/chains/api/api_chain.d.ts +0 -63
  298. package/dist/chains/api/api_chain.d.ts.map +0 -1
  299. package/dist/chains/api/api_chain.js +0 -100
  300. package/dist/chains/api/api_chain.js.map +0 -1
  301. package/dist/chains/api/prompts.cjs +0 -38
  302. package/dist/chains/api/prompts.cjs.map +0 -1
  303. package/dist/chains/api/prompts.js +0 -36
  304. package/dist/chains/api/prompts.js.map +0 -1
  305. package/dist/chains/base.cjs +0 -180
  306. package/dist/chains/base.cjs.map +0 -1
  307. package/dist/chains/base.d.cts +0 -88
  308. package/dist/chains/base.d.cts.map +0 -1
  309. package/dist/chains/base.d.ts +0 -88
  310. package/dist/chains/base.d.ts.map +0 -1
  311. package/dist/chains/base.js +0 -179
  312. package/dist/chains/base.js.map +0 -1
  313. package/dist/chains/chat_vector_db_chain.cjs +0 -130
  314. package/dist/chains/chat_vector_db_chain.cjs.map +0 -1
  315. package/dist/chains/chat_vector_db_chain.d.cts +0 -62
  316. package/dist/chains/chat_vector_db_chain.d.cts.map +0 -1
  317. package/dist/chains/chat_vector_db_chain.d.ts +0 -62
  318. package/dist/chains/chat_vector_db_chain.d.ts.map +0 -1
  319. package/dist/chains/chat_vector_db_chain.js +0 -129
  320. package/dist/chains/chat_vector_db_chain.js.map +0 -1
  321. package/dist/chains/combine_docs_chain.cjs +0 -275
  322. package/dist/chains/combine_docs_chain.cjs.map +0 -1
  323. package/dist/chains/combine_docs_chain.d.cts +0 -126
  324. package/dist/chains/combine_docs_chain.d.cts.map +0 -1
  325. package/dist/chains/combine_docs_chain.d.ts +0 -126
  326. package/dist/chains/combine_docs_chain.d.ts.map +0 -1
  327. package/dist/chains/combine_docs_chain.js +0 -272
  328. package/dist/chains/combine_docs_chain.js.map +0 -1
  329. package/dist/chains/combine_documents/base.cjs +0 -22
  330. package/dist/chains/combine_documents/base.cjs.map +0 -1
  331. package/dist/chains/combine_documents/base.js +0 -18
  332. package/dist/chains/combine_documents/base.js.map +0 -1
  333. package/dist/chains/combine_documents/index.cjs +0 -16
  334. package/dist/chains/combine_documents/index.cjs.map +0 -1
  335. package/dist/chains/combine_documents/index.d.cts +0 -2
  336. package/dist/chains/combine_documents/index.d.ts +0 -2
  337. package/dist/chains/combine_documents/index.js +0 -10
  338. package/dist/chains/combine_documents/index.js.map +0 -1
  339. package/dist/chains/combine_documents/reduce.cjs +0 -73
  340. package/dist/chains/combine_documents/reduce.cjs.map +0 -1
  341. package/dist/chains/combine_documents/reduce.d.cts +0 -36
  342. package/dist/chains/combine_documents/reduce.d.cts.map +0 -1
  343. package/dist/chains/combine_documents/reduce.d.ts +0 -36
  344. package/dist/chains/combine_documents/reduce.d.ts.map +0 -1
  345. package/dist/chains/combine_documents/reduce.js +0 -66
  346. package/dist/chains/combine_documents/reduce.js.map +0 -1
  347. package/dist/chains/combine_documents/stuff.cjs +0 -41
  348. package/dist/chains/combine_documents/stuff.cjs.map +0 -1
  349. package/dist/chains/combine_documents/stuff.d.cts +0 -40
  350. package/dist/chains/combine_documents/stuff.d.cts.map +0 -1
  351. package/dist/chains/combine_documents/stuff.d.ts +0 -40
  352. package/dist/chains/combine_documents/stuff.d.ts.map +0 -1
  353. package/dist/chains/combine_documents/stuff.js +0 -40
  354. package/dist/chains/combine_documents/stuff.js.map +0 -1
  355. package/dist/chains/constitutional_ai/constitutional_chain.cjs +0 -131
  356. package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +0 -1
  357. package/dist/chains/constitutional_ai/constitutional_chain.d.cts +0 -79
  358. package/dist/chains/constitutional_ai/constitutional_chain.d.cts.map +0 -1
  359. package/dist/chains/constitutional_ai/constitutional_chain.d.ts +0 -79
  360. package/dist/chains/constitutional_ai/constitutional_chain.d.ts.map +0 -1
  361. package/dist/chains/constitutional_ai/constitutional_chain.js +0 -131
  362. package/dist/chains/constitutional_ai/constitutional_chain.js.map +0 -1
  363. package/dist/chains/constitutional_ai/constitutional_principle.cjs +0 -322
  364. package/dist/chains/constitutional_ai/constitutional_principle.cjs.map +0 -1
  365. package/dist/chains/constitutional_ai/constitutional_principle.d.cts +0 -50
  366. package/dist/chains/constitutional_ai/constitutional_principle.d.cts.map +0 -1
  367. package/dist/chains/constitutional_ai/constitutional_principle.d.ts +0 -50
  368. package/dist/chains/constitutional_ai/constitutional_principle.d.ts.map +0 -1
  369. package/dist/chains/constitutional_ai/constitutional_principle.js +0 -320
  370. package/dist/chains/constitutional_ai/constitutional_principle.js.map +0 -1
  371. package/dist/chains/constitutional_ai/constitutional_prompts.cjs +0 -96
  372. package/dist/chains/constitutional_ai/constitutional_prompts.cjs.map +0 -1
  373. package/dist/chains/constitutional_ai/constitutional_prompts.js +0 -94
  374. package/dist/chains/constitutional_ai/constitutional_prompts.js.map +0 -1
  375. package/dist/chains/conversation.cjs +0 -50
  376. package/dist/chains/conversation.cjs.map +0 -1
  377. package/dist/chains/conversation.d.cts +0 -34
  378. package/dist/chains/conversation.d.cts.map +0 -1
  379. package/dist/chains/conversation.d.ts +0 -34
  380. package/dist/chains/conversation.d.ts.map +0 -1
  381. package/dist/chains/conversation.js +0 -48
  382. package/dist/chains/conversation.js.map +0 -1
  383. package/dist/chains/conversational_retrieval_chain.cjs +0 -218
  384. package/dist/chains/conversational_retrieval_chain.cjs.map +0 -1
  385. package/dist/chains/conversational_retrieval_chain.d.cts +0 -152
  386. package/dist/chains/conversational_retrieval_chain.d.cts.map +0 -1
  387. package/dist/chains/conversational_retrieval_chain.d.ts +0 -152
  388. package/dist/chains/conversational_retrieval_chain.d.ts.map +0 -1
  389. package/dist/chains/conversational_retrieval_chain.js +0 -217
  390. package/dist/chains/conversational_retrieval_chain.js.map +0 -1
  391. package/dist/chains/graph_qa/cypher.cjs +0 -133
  392. package/dist/chains/graph_qa/cypher.cjs.map +0 -1
  393. package/dist/chains/graph_qa/cypher.d.cts +0 -76
  394. package/dist/chains/graph_qa/cypher.d.cts.map +0 -1
  395. package/dist/chains/graph_qa/cypher.d.ts +0 -76
  396. package/dist/chains/graph_qa/cypher.d.ts.map +0 -1
  397. package/dist/chains/graph_qa/cypher.js +0 -126
  398. package/dist/chains/graph_qa/cypher.js.map +0 -1
  399. package/dist/chains/graph_qa/prompts.cjs +0 -46
  400. package/dist/chains/graph_qa/prompts.cjs.map +0 -1
  401. package/dist/chains/graph_qa/prompts.js +0 -44
  402. package/dist/chains/graph_qa/prompts.js.map +0 -1
  403. package/dist/chains/history_aware_retriever.cjs +0 -55
  404. package/dist/chains/history_aware_retriever.cjs.map +0 -1
  405. package/dist/chains/history_aware_retriever.d.cts +0 -64
  406. package/dist/chains/history_aware_retriever.d.cts.map +0 -1
  407. package/dist/chains/history_aware_retriever.d.ts +0 -64
  408. package/dist/chains/history_aware_retriever.d.ts.map +0 -1
  409. package/dist/chains/history_aware_retriever.js +0 -49
  410. package/dist/chains/history_aware_retriever.js.map +0 -1
  411. package/dist/chains/index.cjs +0 -106
  412. package/dist/chains/index.cjs.map +0 -1
  413. package/dist/chains/index.d.cts +0 -25
  414. package/dist/chains/index.d.ts +0 -25
  415. package/dist/chains/index.js +0 -67
  416. package/dist/chains/index.js.map +0 -1
  417. package/dist/chains/llm_chain.cjs +0 -155
  418. package/dist/chains/llm_chain.cjs.map +0 -1
  419. package/dist/chains/llm_chain.d.cts +0 -97
  420. package/dist/chains/llm_chain.d.cts.map +0 -1
  421. package/dist/chains/llm_chain.d.ts +0 -97
  422. package/dist/chains/llm_chain.d.ts.map +0 -1
  423. package/dist/chains/llm_chain.js +0 -154
  424. package/dist/chains/llm_chain.js.map +0 -1
  425. package/dist/chains/load.cjs +0 -48
  426. package/dist/chains/load.cjs.map +0 -1
  427. package/dist/chains/load.d.cts +0 -30
  428. package/dist/chains/load.d.cts.map +0 -1
  429. package/dist/chains/load.d.ts +0 -30
  430. package/dist/chains/load.d.ts.map +0 -1
  431. package/dist/chains/load.js +0 -42
  432. package/dist/chains/load.js.map +0 -1
  433. package/dist/chains/openai_functions/base.cjs +0 -139
  434. package/dist/chains/openai_functions/base.cjs.map +0 -1
  435. package/dist/chains/openai_functions/base.d.cts +0 -172
  436. package/dist/chains/openai_functions/base.d.cts.map +0 -1
  437. package/dist/chains/openai_functions/base.d.ts +0 -172
  438. package/dist/chains/openai_functions/base.d.ts.map +0 -1
  439. package/dist/chains/openai_functions/base.js +0 -137
  440. package/dist/chains/openai_functions/base.js.map +0 -1
  441. package/dist/chains/openai_functions/extraction.cjs +0 -71
  442. package/dist/chains/openai_functions/extraction.cjs.map +0 -1
  443. package/dist/chains/openai_functions/extraction.d.cts +0 -29
  444. package/dist/chains/openai_functions/extraction.d.cts.map +0 -1
  445. package/dist/chains/openai_functions/extraction.d.ts +0 -29
  446. package/dist/chains/openai_functions/extraction.d.ts.map +0 -1
  447. package/dist/chains/openai_functions/extraction.js +0 -69
  448. package/dist/chains/openai_functions/extraction.js.map +0 -1
  449. package/dist/chains/openai_functions/index.cjs +0 -33
  450. package/dist/chains/openai_functions/index.cjs.map +0 -1
  451. package/dist/chains/openai_functions/index.d.cts +0 -5
  452. package/dist/chains/openai_functions/index.d.ts +0 -5
  453. package/dist/chains/openai_functions/index.js +0 -21
  454. package/dist/chains/openai_functions/index.js.map +0 -1
  455. package/dist/chains/openai_functions/openapi.cjs +0 -287
  456. package/dist/chains/openai_functions/openapi.cjs.map +0 -1
  457. package/dist/chains/openai_functions/openapi.d.cts +0 -61
  458. package/dist/chains/openai_functions/openapi.d.cts.map +0 -1
  459. package/dist/chains/openai_functions/openapi.d.ts +0 -61
  460. package/dist/chains/openai_functions/openapi.d.ts.map +0 -1
  461. package/dist/chains/openai_functions/openapi.js +0 -285
  462. package/dist/chains/openai_functions/openapi.js.map +0 -1
  463. package/dist/chains/openai_functions/tagging.cjs +0 -72
  464. package/dist/chains/openai_functions/tagging.cjs.map +0 -1
  465. package/dist/chains/openai_functions/tagging.d.cts +0 -47
  466. package/dist/chains/openai_functions/tagging.d.cts.map +0 -1
  467. package/dist/chains/openai_functions/tagging.d.ts +0 -47
  468. package/dist/chains/openai_functions/tagging.d.ts.map +0 -1
  469. package/dist/chains/openai_functions/tagging.js +0 -70
  470. package/dist/chains/openai_functions/tagging.js.map +0 -1
  471. package/dist/chains/query_constructor/index.cjs +0 -145
  472. package/dist/chains/query_constructor/index.cjs.map +0 -1
  473. package/dist/chains/query_constructor/index.d.cts +0 -82
  474. package/dist/chains/query_constructor/index.d.cts.map +0 -1
  475. package/dist/chains/query_constructor/index.d.ts +0 -82
  476. package/dist/chains/query_constructor/index.d.ts.map +0 -1
  477. package/dist/chains/query_constructor/index.js +0 -130
  478. package/dist/chains/query_constructor/index.js.map +0 -1
  479. package/dist/chains/query_constructor/ir.cjs +0 -22
  480. package/dist/chains/query_constructor/ir.cjs.map +0 -1
  481. package/dist/chains/query_constructor/ir.d.cts +0 -1
  482. package/dist/chains/query_constructor/ir.d.ts +0 -1
  483. package/dist/chains/query_constructor/ir.js +0 -12
  484. package/dist/chains/query_constructor/ir.js.map +0 -1
  485. package/dist/chains/query_constructor/parser.cjs +0 -80
  486. package/dist/chains/query_constructor/parser.cjs.map +0 -1
  487. package/dist/chains/query_constructor/parser.d.cts +0 -43
  488. package/dist/chains/query_constructor/parser.d.cts.map +0 -1
  489. package/dist/chains/query_constructor/parser.d.ts +0 -43
  490. package/dist/chains/query_constructor/parser.d.ts.map +0 -1
  491. package/dist/chains/query_constructor/parser.js +0 -79
  492. package/dist/chains/query_constructor/parser.js.map +0 -1
  493. package/dist/chains/query_constructor/prompt.cjs +0 -137
  494. package/dist/chains/query_constructor/prompt.cjs.map +0 -1
  495. package/dist/chains/query_constructor/prompt.d.cts +0 -22
  496. package/dist/chains/query_constructor/prompt.d.cts.map +0 -1
  497. package/dist/chains/query_constructor/prompt.d.ts +0 -22
  498. package/dist/chains/query_constructor/prompt.d.ts.map +0 -1
  499. package/dist/chains/query_constructor/prompt.js +0 -132
  500. package/dist/chains/query_constructor/prompt.js.map +0 -1
  501. package/dist/chains/question_answering/load.cjs +0 -99
  502. package/dist/chains/question_answering/load.cjs.map +0 -1
  503. package/dist/chains/question_answering/load.d.cts +0 -72
  504. package/dist/chains/question_answering/load.d.cts.map +0 -1
  505. package/dist/chains/question_answering/load.d.ts +0 -72
  506. package/dist/chains/question_answering/load.d.ts.map +0 -1
  507. package/dist/chains/question_answering/load.js +0 -96
  508. package/dist/chains/question_answering/load.js.map +0 -1
  509. package/dist/chains/question_answering/map_reduce_prompts.cjs +0 -61
  510. package/dist/chains/question_answering/map_reduce_prompts.cjs.map +0 -1
  511. package/dist/chains/question_answering/map_reduce_prompts.js +0 -59
  512. package/dist/chains/question_answering/map_reduce_prompts.js.map +0 -1
  513. package/dist/chains/question_answering/refine_prompts.cjs +0 -60
  514. package/dist/chains/question_answering/refine_prompts.cjs.map +0 -1
  515. package/dist/chains/question_answering/refine_prompts.js +0 -58
  516. package/dist/chains/question_answering/refine_prompts.js.map +0 -1
  517. package/dist/chains/question_answering/stuff_prompts.cjs +0 -20
  518. package/dist/chains/question_answering/stuff_prompts.cjs.map +0 -1
  519. package/dist/chains/question_answering/stuff_prompts.js +0 -19
  520. package/dist/chains/question_answering/stuff_prompts.js.map +0 -1
  521. package/dist/chains/retrieval.cjs +0 -55
  522. package/dist/chains/retrieval.cjs.map +0 -1
  523. package/dist/chains/retrieval.d.cts +0 -77
  524. package/dist/chains/retrieval.d.cts.map +0 -1
  525. package/dist/chains/retrieval.d.ts +0 -77
  526. package/dist/chains/retrieval.d.ts.map +0 -1
  527. package/dist/chains/retrieval.js +0 -49
  528. package/dist/chains/retrieval.js.map +0 -1
  529. package/dist/chains/retrieval_qa.cjs +0 -106
  530. package/dist/chains/retrieval_qa.cjs.map +0 -1
  531. package/dist/chains/retrieval_qa.d.cts +0 -81
  532. package/dist/chains/retrieval_qa.d.cts.map +0 -1
  533. package/dist/chains/retrieval_qa.d.ts +0 -81
  534. package/dist/chains/retrieval_qa.d.ts.map +0 -1
  535. package/dist/chains/retrieval_qa.js +0 -106
  536. package/dist/chains/retrieval_qa.js.map +0 -1
  537. package/dist/chains/router/llm_router.cjs +0 -50
  538. package/dist/chains/router/llm_router.cjs.map +0 -1
  539. package/dist/chains/router/llm_router.d.cts +0 -54
  540. package/dist/chains/router/llm_router.d.cts.map +0 -1
  541. package/dist/chains/router/llm_router.d.ts +0 -54
  542. package/dist/chains/router/llm_router.d.ts.map +0 -1
  543. package/dist/chains/router/llm_router.js +0 -50
  544. package/dist/chains/router/llm_router.js.map +0 -1
  545. package/dist/chains/router/multi_prompt.cjs +0 -116
  546. package/dist/chains/router/multi_prompt.cjs.map +0 -1
  547. package/dist/chains/router/multi_prompt.d.cts +0 -76
  548. package/dist/chains/router/multi_prompt.d.cts.map +0 -1
  549. package/dist/chains/router/multi_prompt.d.ts +0 -76
  550. package/dist/chains/router/multi_prompt.d.ts.map +0 -1
  551. package/dist/chains/router/multi_prompt.js +0 -115
  552. package/dist/chains/router/multi_prompt.js.map +0 -1
  553. package/dist/chains/router/multi_prompt_prompt.cjs +0 -22
  554. package/dist/chains/router/multi_prompt_prompt.cjs.map +0 -1
  555. package/dist/chains/router/multi_prompt_prompt.js +0 -21
  556. package/dist/chains/router/multi_prompt_prompt.js.map +0 -1
  557. package/dist/chains/router/multi_retrieval_prompt.cjs +0 -22
  558. package/dist/chains/router/multi_retrieval_prompt.cjs.map +0 -1
  559. package/dist/chains/router/multi_retrieval_prompt.js +0 -21
  560. package/dist/chains/router/multi_retrieval_prompt.js.map +0 -1
  561. package/dist/chains/router/multi_retrieval_qa.cjs +0 -137
  562. package/dist/chains/router/multi_retrieval_qa.cjs.map +0 -1
  563. package/dist/chains/router/multi_retrieval_qa.d.cts +0 -100
  564. package/dist/chains/router/multi_retrieval_qa.d.cts.map +0 -1
  565. package/dist/chains/router/multi_retrieval_qa.d.ts +0 -100
  566. package/dist/chains/router/multi_retrieval_qa.d.ts.map +0 -1
  567. package/dist/chains/router/multi_retrieval_qa.js +0 -136
  568. package/dist/chains/router/multi_retrieval_qa.js.map +0 -1
  569. package/dist/chains/router/multi_route.cjs +0 -69
  570. package/dist/chains/router/multi_route.cjs.map +0 -1
  571. package/dist/chains/router/multi_route.d.cts +0 -69
  572. package/dist/chains/router/multi_route.d.cts.map +0 -1
  573. package/dist/chains/router/multi_route.d.ts +0 -69
  574. package/dist/chains/router/multi_route.d.ts.map +0 -1
  575. package/dist/chains/router/multi_route.js +0 -68
  576. package/dist/chains/router/multi_route.js.map +0 -1
  577. package/dist/chains/router/utils.cjs +0 -18
  578. package/dist/chains/router/utils.cjs.map +0 -1
  579. package/dist/chains/router/utils.js +0 -17
  580. package/dist/chains/router/utils.js.map +0 -1
  581. package/dist/chains/sequential_chain.cjs +0 -255
  582. package/dist/chains/sequential_chain.cjs.map +0 -1
  583. package/dist/chains/sequential_chain.d.cts +0 -158
  584. package/dist/chains/sequential_chain.d.cts.map +0 -1
  585. package/dist/chains/sequential_chain.d.ts +0 -158
  586. package/dist/chains/sequential_chain.d.ts.map +0 -1
  587. package/dist/chains/sequential_chain.js +0 -254
  588. package/dist/chains/sequential_chain.js.map +0 -1
  589. package/dist/chains/serde.d.cts +0 -156
  590. package/dist/chains/serde.d.cts.map +0 -1
  591. package/dist/chains/serde.d.ts +0 -156
  592. package/dist/chains/serde.d.ts.map +0 -1
  593. package/dist/chains/sql_db/index.cjs +0 -35
  594. package/dist/chains/sql_db/index.cjs.map +0 -1
  595. package/dist/chains/sql_db/index.d.cts +0 -3
  596. package/dist/chains/sql_db/index.d.ts +0 -3
  597. package/dist/chains/sql_db/index.js +0 -21
  598. package/dist/chains/sql_db/index.js.map +0 -1
  599. package/dist/chains/sql_db/sql_db_chain.cjs +0 -196
  600. package/dist/chains/sql_db/sql_db_chain.cjs.map +0 -1
  601. package/dist/chains/sql_db/sql_db_chain.d.cts +0 -124
  602. package/dist/chains/sql_db/sql_db_chain.d.cts.map +0 -1
  603. package/dist/chains/sql_db/sql_db_chain.d.ts +0 -124
  604. package/dist/chains/sql_db/sql_db_chain.d.ts.map +0 -1
  605. package/dist/chains/sql_db/sql_db_chain.js +0 -194
  606. package/dist/chains/sql_db/sql_db_chain.js.map +0 -1
  607. package/dist/chains/sql_db/sql_db_prompt.cjs +0 -194
  608. package/dist/chains/sql_db/sql_db_prompt.cjs.map +0 -1
  609. package/dist/chains/sql_db/sql_db_prompt.d.cts +0 -44
  610. package/dist/chains/sql_db/sql_db_prompt.d.cts.map +0 -1
  611. package/dist/chains/sql_db/sql_db_prompt.d.ts +0 -44
  612. package/dist/chains/sql_db/sql_db_prompt.d.ts.map +0 -1
  613. package/dist/chains/sql_db/sql_db_prompt.js +0 -186
  614. package/dist/chains/sql_db/sql_db_prompt.js.map +0 -1
  615. package/dist/chains/summarization/load.cjs +0 -74
  616. package/dist/chains/summarization/load.cjs.map +0 -1
  617. package/dist/chains/summarization/load.d.cts +0 -33
  618. package/dist/chains/summarization/load.d.cts.map +0 -1
  619. package/dist/chains/summarization/load.d.ts +0 -33
  620. package/dist/chains/summarization/load.d.ts.map +0 -1
  621. package/dist/chains/summarization/load.js +0 -74
  622. package/dist/chains/summarization/load.js.map +0 -1
  623. package/dist/chains/summarization/refine_prompts.cjs +0 -24
  624. package/dist/chains/summarization/refine_prompts.cjs.map +0 -1
  625. package/dist/chains/summarization/refine_prompts.js +0 -23
  626. package/dist/chains/summarization/refine_prompts.js.map +0 -1
  627. package/dist/chains/summarization/stuff_prompts.cjs +0 -19
  628. package/dist/chains/summarization/stuff_prompts.cjs.map +0 -1
  629. package/dist/chains/summarization/stuff_prompts.js +0 -18
  630. package/dist/chains/summarization/stuff_prompts.js.map +0 -1
  631. package/dist/chains/transform.cjs +0 -43
  632. package/dist/chains/transform.cjs.map +0 -1
  633. package/dist/chains/transform.d.cts +0 -44
  634. package/dist/chains/transform.d.cts.map +0 -1
  635. package/dist/chains/transform.d.ts +0 -44
  636. package/dist/chains/transform.d.ts.map +0 -1
  637. package/dist/chains/transform.js +0 -43
  638. package/dist/chains/transform.js.map +0 -1
  639. package/dist/chains/vector_db_qa.cjs +0 -95
  640. package/dist/chains/vector_db_qa.cjs.map +0 -1
  641. package/dist/chains/vector_db_qa.d.cts +0 -66
  642. package/dist/chains/vector_db_qa.d.cts.map +0 -1
  643. package/dist/chains/vector_db_qa.d.ts +0 -66
  644. package/dist/chains/vector_db_qa.d.ts.map +0 -1
  645. package/dist/chains/vector_db_qa.js +0 -95
  646. package/dist/chains/vector_db_qa.js.map +0 -1
  647. package/dist/document.cjs +0 -21
  648. package/dist/document.cjs.map +0 -1
  649. package/dist/document.d.cts +0 -2
  650. package/dist/document.d.ts +0 -2
  651. package/dist/document.js +0 -10
  652. package/dist/document.js.map +0 -1
  653. package/dist/document_loaders/base.cjs +0 -22
  654. package/dist/document_loaders/base.cjs.map +0 -1
  655. package/dist/document_loaders/base.d.cts +0 -1
  656. package/dist/document_loaders/base.d.ts +0 -1
  657. package/dist/document_loaders/base.js +0 -12
  658. package/dist/document_loaders/base.js.map +0 -1
  659. package/dist/document_loaders/fs/buffer.cjs +0 -69
  660. package/dist/document_loaders/fs/buffer.cjs.map +0 -1
  661. package/dist/document_loaders/fs/buffer.d.cts +0 -46
  662. package/dist/document_loaders/fs/buffer.d.cts.map +0 -1
  663. package/dist/document_loaders/fs/buffer.d.ts +0 -46
  664. package/dist/document_loaders/fs/buffer.d.ts.map +0 -1
  665. package/dist/document_loaders/fs/buffer.js +0 -63
  666. package/dist/document_loaders/fs/buffer.js.map +0 -1
  667. package/dist/document_loaders/fs/directory.cjs +0 -116
  668. package/dist/document_loaders/fs/directory.cjs.map +0 -1
  669. package/dist/document_loaders/fs/directory.d.cts +0 -76
  670. package/dist/document_loaders/fs/directory.d.cts.map +0 -1
  671. package/dist/document_loaders/fs/directory.d.ts +0 -76
  672. package/dist/document_loaders/fs/directory.d.ts.map +0 -1
  673. package/dist/document_loaders/fs/directory.js +0 -109
  674. package/dist/document_loaders/fs/directory.js.map +0 -1
  675. package/dist/document_loaders/fs/json.cjs +0 -128
  676. package/dist/document_loaders/fs/json.cjs.map +0 -1
  677. package/dist/document_loaders/fs/json.d.cts +0 -65
  678. package/dist/document_loaders/fs/json.d.cts.map +0 -1
  679. package/dist/document_loaders/fs/json.d.ts +0 -65
  680. package/dist/document_loaders/fs/json.d.ts.map +0 -1
  681. package/dist/document_loaders/fs/json.js +0 -121
  682. package/dist/document_loaders/fs/json.js.map +0 -1
  683. package/dist/document_loaders/fs/multi_file.cjs +0 -82
  684. package/dist/document_loaders/fs/multi_file.cjs.map +0 -1
  685. package/dist/document_loaders/fs/multi_file.d.cts +0 -43
  686. package/dist/document_loaders/fs/multi_file.d.cts.map +0 -1
  687. package/dist/document_loaders/fs/multi_file.d.ts +0 -43
  688. package/dist/document_loaders/fs/multi_file.d.ts.map +0 -1
  689. package/dist/document_loaders/fs/multi_file.js +0 -76
  690. package/dist/document_loaders/fs/multi_file.js.map +0 -1
  691. package/dist/document_loaders/fs/text.cjs +0 -101
  692. package/dist/document_loaders/fs/text.cjs.map +0 -1
  693. package/dist/document_loaders/fs/text.d.cts +0 -57
  694. package/dist/document_loaders/fs/text.d.cts.map +0 -1
  695. package/dist/document_loaders/fs/text.d.ts +0 -57
  696. package/dist/document_loaders/fs/text.d.ts.map +0 -1
  697. package/dist/document_loaders/fs/text.js +0 -95
  698. package/dist/document_loaders/fs/text.js.map +0 -1
  699. package/dist/evaluation/agents/index.cjs +0 -1
  700. package/dist/evaluation/agents/index.js +0 -1
  701. package/dist/evaluation/agents/prompt.cjs +0 -132
  702. package/dist/evaluation/agents/prompt.cjs.map +0 -1
  703. package/dist/evaluation/agents/prompt.js +0 -130
  704. package/dist/evaluation/agents/prompt.js.map +0 -1
  705. package/dist/evaluation/agents/trajectory.cjs +0 -132
  706. package/dist/evaluation/agents/trajectory.cjs.map +0 -1
  707. package/dist/evaluation/agents/trajectory.d.cts +0 -61
  708. package/dist/evaluation/agents/trajectory.d.cts.map +0 -1
  709. package/dist/evaluation/agents/trajectory.d.ts +0 -61
  710. package/dist/evaluation/agents/trajectory.d.ts.map +0 -1
  711. package/dist/evaluation/agents/trajectory.js +0 -130
  712. package/dist/evaluation/agents/trajectory.js.map +0 -1
  713. package/dist/evaluation/base.cjs +0 -169
  714. package/dist/evaluation/base.cjs.map +0 -1
  715. package/dist/evaluation/base.d.cts +0 -240
  716. package/dist/evaluation/base.d.cts.map +0 -1
  717. package/dist/evaluation/base.d.ts +0 -240
  718. package/dist/evaluation/base.d.ts.map +0 -1
  719. package/dist/evaluation/base.js +0 -164
  720. package/dist/evaluation/base.js.map +0 -1
  721. package/dist/evaluation/comparison/index.cjs +0 -1
  722. package/dist/evaluation/comparison/index.js +0 -1
  723. package/dist/evaluation/comparison/pairwise.cjs +0 -178
  724. package/dist/evaluation/comparison/pairwise.cjs.map +0 -1
  725. package/dist/evaluation/comparison/pairwise.d.cts +0 -56
  726. package/dist/evaluation/comparison/pairwise.d.cts.map +0 -1
  727. package/dist/evaluation/comparison/pairwise.d.ts +0 -56
  728. package/dist/evaluation/comparison/pairwise.d.ts.map +0 -1
  729. package/dist/evaluation/comparison/pairwise.js +0 -175
  730. package/dist/evaluation/comparison/pairwise.js.map +0 -1
  731. package/dist/evaluation/comparison/prompt.cjs +0 -77
  732. package/dist/evaluation/comparison/prompt.cjs.map +0 -1
  733. package/dist/evaluation/comparison/prompt.js +0 -75
  734. package/dist/evaluation/comparison/prompt.js.map +0 -1
  735. package/dist/evaluation/criteria/criteria.cjs +0 -164
  736. package/dist/evaluation/criteria/criteria.cjs.map +0 -1
  737. package/dist/evaluation/criteria/criteria.d.cts +0 -85
  738. package/dist/evaluation/criteria/criteria.d.cts.map +0 -1
  739. package/dist/evaluation/criteria/criteria.d.ts +0 -85
  740. package/dist/evaluation/criteria/criteria.d.ts.map +0 -1
  741. package/dist/evaluation/criteria/criteria.js +0 -161
  742. package/dist/evaluation/criteria/criteria.js.map +0 -1
  743. package/dist/evaluation/criteria/index.cjs +0 -1
  744. package/dist/evaluation/criteria/index.js +0 -1
  745. package/dist/evaluation/criteria/prompt.cjs +0 -50
  746. package/dist/evaluation/criteria/prompt.cjs.map +0 -1
  747. package/dist/evaluation/criteria/prompt.js +0 -48
  748. package/dist/evaluation/criteria/prompt.js.map +0 -1
  749. package/dist/evaluation/embedding_distance/base.cjs +0 -108
  750. package/dist/evaluation/embedding_distance/base.cjs.map +0 -1
  751. package/dist/evaluation/embedding_distance/base.d.cts +0 -82
  752. package/dist/evaluation/embedding_distance/base.d.cts.map +0 -1
  753. package/dist/evaluation/embedding_distance/base.d.ts +0 -82
  754. package/dist/evaluation/embedding_distance/base.d.ts.map +0 -1
  755. package/dist/evaluation/embedding_distance/base.js +0 -105
  756. package/dist/evaluation/embedding_distance/base.js.map +0 -1
  757. package/dist/evaluation/embedding_distance/index.cjs +0 -1
  758. package/dist/evaluation/embedding_distance/index.js +0 -1
  759. package/dist/evaluation/index.cjs +0 -54
  760. package/dist/evaluation/index.cjs.map +0 -1
  761. package/dist/evaluation/index.d.cts +0 -8
  762. package/dist/evaluation/index.d.ts +0 -8
  763. package/dist/evaluation/index.js +0 -35
  764. package/dist/evaluation/index.js.map +0 -1
  765. package/dist/evaluation/loader.cjs +0 -57
  766. package/dist/evaluation/loader.cjs.map +0 -1
  767. package/dist/evaluation/loader.d.cts +0 -38
  768. package/dist/evaluation/loader.d.cts.map +0 -1
  769. package/dist/evaluation/loader.d.ts +0 -38
  770. package/dist/evaluation/loader.d.ts.map +0 -1
  771. package/dist/evaluation/loader.js +0 -56
  772. package/dist/evaluation/loader.js.map +0 -1
  773. package/dist/evaluation/qa/eval_chain.cjs +0 -41
  774. package/dist/evaluation/qa/eval_chain.cjs.map +0 -1
  775. package/dist/evaluation/qa/eval_chain.d.cts +0 -22
  776. package/dist/evaluation/qa/eval_chain.d.cts.map +0 -1
  777. package/dist/evaluation/qa/eval_chain.d.ts +0 -22
  778. package/dist/evaluation/qa/eval_chain.d.ts.map +0 -1
  779. package/dist/evaluation/qa/eval_chain.js +0 -41
  780. package/dist/evaluation/qa/eval_chain.js.map +0 -1
  781. package/dist/evaluation/qa/index.cjs +0 -1
  782. package/dist/evaluation/qa/index.js +0 -1
  783. package/dist/evaluation/qa/prompt.cjs +0 -31
  784. package/dist/evaluation/qa/prompt.cjs.map +0 -1
  785. package/dist/evaluation/qa/prompt.js +0 -30
  786. package/dist/evaluation/qa/prompt.js.map +0 -1
  787. package/dist/evaluation/types.d.cts +0 -40
  788. package/dist/evaluation/types.d.cts.map +0 -1
  789. package/dist/evaluation/types.d.ts +0 -40
  790. package/dist/evaluation/types.d.ts.map +0 -1
  791. package/dist/langchain-core/dist/load/map_keys.d.cts +0 -10
  792. package/dist/langchain-core/dist/load/map_keys.d.cts.map +0 -1
  793. package/dist/langchain-core/dist/load/serializable.d.cts +0 -82
  794. package/dist/langchain-core/dist/load/serializable.d.cts.map +0 -1
  795. package/dist/langchain-core/dist/messages/base.d.cts +0 -125
  796. package/dist/langchain-core/dist/messages/base.d.cts.map +0 -1
  797. package/dist/langchain-core/dist/messages/content/base.d.cts +0 -22
  798. package/dist/langchain-core/dist/messages/content/base.d.cts.map +0 -1
  799. package/dist/langchain-core/dist/messages/content/data.d.cts +0 -96
  800. package/dist/langchain-core/dist/messages/content/data.d.cts.map +0 -1
  801. package/dist/langchain-core/dist/messages/content/index.d.cts +0 -102
  802. package/dist/langchain-core/dist/messages/content/index.d.cts.map +0 -1
  803. package/dist/langchain-core/dist/messages/content/multimodal.d.cts +0 -110
  804. package/dist/langchain-core/dist/messages/content/multimodal.d.cts.map +0 -1
  805. package/dist/langchain-core/dist/messages/content/tools.d.cts +0 -153
  806. package/dist/langchain-core/dist/messages/content/tools.d.cts.map +0 -1
  807. package/dist/langchain-core/dist/messages/message.d.cts +0 -598
  808. package/dist/langchain-core/dist/messages/message.d.cts.map +0 -1
  809. package/dist/langchain-core/dist/messages/metadata.d.cts +0 -97
  810. package/dist/langchain-core/dist/messages/metadata.d.cts.map +0 -1
  811. package/dist/langchain-core/dist/messages/utils.d.cts +0 -75
  812. package/dist/langchain-core/dist/messages/utils.d.cts.map +0 -1
  813. package/dist/langchain-core/dist/prompt_values.d.cts +0 -13
  814. package/dist/langchain-core/dist/prompt_values.d.cts.map +0 -1
  815. package/dist/langchain-core/dist/utils/types/index.d.cts +0 -8
  816. package/dist/langchain-core/dist/utils/types/index.d.cts.map +0 -1
  817. package/dist/libs/langchain-core/dist/load/map_keys.d.ts +0 -10
  818. package/dist/libs/langchain-core/dist/load/map_keys.d.ts.map +0 -1
  819. package/dist/libs/langchain-core/dist/load/serializable.d.ts +0 -82
  820. package/dist/libs/langchain-core/dist/load/serializable.d.ts.map +0 -1
  821. package/dist/libs/langchain-core/dist/messages/base.d.ts +0 -125
  822. package/dist/libs/langchain-core/dist/messages/base.d.ts.map +0 -1
  823. package/dist/libs/langchain-core/dist/messages/content/base.d.ts +0 -22
  824. package/dist/libs/langchain-core/dist/messages/content/base.d.ts.map +0 -1
  825. package/dist/libs/langchain-core/dist/messages/content/data.d.ts +0 -96
  826. package/dist/libs/langchain-core/dist/messages/content/data.d.ts.map +0 -1
  827. package/dist/libs/langchain-core/dist/messages/content/index.d.ts +0 -102
  828. package/dist/libs/langchain-core/dist/messages/content/index.d.ts.map +0 -1
  829. package/dist/libs/langchain-core/dist/messages/content/multimodal.d.ts +0 -110
  830. package/dist/libs/langchain-core/dist/messages/content/multimodal.d.ts.map +0 -1
  831. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts +0 -153
  832. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts.map +0 -1
  833. package/dist/libs/langchain-core/dist/messages/message.d.ts +0 -598
  834. package/dist/libs/langchain-core/dist/messages/message.d.ts.map +0 -1
  835. package/dist/libs/langchain-core/dist/messages/metadata.d.ts +0 -97
  836. package/dist/libs/langchain-core/dist/messages/metadata.d.ts.map +0 -1
  837. package/dist/libs/langchain-core/dist/messages/utils.d.ts +0 -75
  838. package/dist/libs/langchain-core/dist/messages/utils.d.ts.map +0 -1
  839. package/dist/libs/langchain-core/dist/prompt_values.d.ts +0 -13
  840. package/dist/libs/langchain-core/dist/prompt_values.d.ts.map +0 -1
  841. package/dist/libs/langchain-core/dist/utils/types/index.d.ts +0 -10
  842. package/dist/libs/langchain-core/dist/utils/types/index.d.ts.map +0 -1
  843. package/dist/libs/langchain-core/dist/utils/types/zod.d.ts +0 -1
  844. package/dist/load/map_keys.d.cts +0 -8
  845. package/dist/load/map_keys.d.cts.map +0 -1
  846. package/dist/load/map_keys.d.ts +0 -8
  847. package/dist/load/map_keys.d.ts.map +0 -1
  848. package/dist/load/serializable.d.cts.map +0 -1
  849. package/dist/load/serializable.d.ts.map +0 -1
  850. package/dist/memory/buffer_memory.cjs +0 -80
  851. package/dist/memory/buffer_memory.cjs.map +0 -1
  852. package/dist/memory/buffer_memory.d.cts +0 -67
  853. package/dist/memory/buffer_memory.d.cts.map +0 -1
  854. package/dist/memory/buffer_memory.d.ts +0 -67
  855. package/dist/memory/buffer_memory.d.ts.map +0 -1
  856. package/dist/memory/buffer_memory.js +0 -79
  857. package/dist/memory/buffer_memory.js.map +0 -1
  858. package/dist/memory/buffer_token_memory.cjs +0 -80
  859. package/dist/memory/buffer_token_memory.cjs.map +0 -1
  860. package/dist/memory/buffer_token_memory.d.cts +0 -67
  861. package/dist/memory/buffer_token_memory.d.cts.map +0 -1
  862. package/dist/memory/buffer_token_memory.d.ts +0 -67
  863. package/dist/memory/buffer_token_memory.d.ts.map +0 -1
  864. package/dist/memory/buffer_token_memory.js +0 -79
  865. package/dist/memory/buffer_token_memory.js.map +0 -1
  866. package/dist/memory/buffer_window_memory.cjs +0 -77
  867. package/dist/memory/buffer_window_memory.cjs.map +0 -1
  868. package/dist/memory/buffer_window_memory.d.cts +0 -64
  869. package/dist/memory/buffer_window_memory.d.cts.map +0 -1
  870. package/dist/memory/buffer_window_memory.d.ts +0 -64
  871. package/dist/memory/buffer_window_memory.d.ts.map +0 -1
  872. package/dist/memory/buffer_window_memory.js +0 -76
  873. package/dist/memory/buffer_window_memory.js.map +0 -1
  874. package/dist/memory/chat_memory.cjs +0 -53
  875. package/dist/memory/chat_memory.cjs.map +0 -1
  876. package/dist/memory/chat_memory.d.cts +0 -42
  877. package/dist/memory/chat_memory.d.cts.map +0 -1
  878. package/dist/memory/chat_memory.d.ts +0 -42
  879. package/dist/memory/chat_memory.d.ts.map +0 -1
  880. package/dist/memory/chat_memory.js +0 -47
  881. package/dist/memory/chat_memory.js.map +0 -1
  882. package/dist/memory/combined_memory.cjs +0 -88
  883. package/dist/memory/combined_memory.cjs.map +0 -1
  884. package/dist/memory/combined_memory.d.cts +0 -60
  885. package/dist/memory/combined_memory.d.cts.map +0 -1
  886. package/dist/memory/combined_memory.d.ts +0 -60
  887. package/dist/memory/combined_memory.d.ts.map +0 -1
  888. package/dist/memory/combined_memory.js +0 -88
  889. package/dist/memory/combined_memory.js.map +0 -1
  890. package/dist/memory/entity_memory.cjs +0 -144
  891. package/dist/memory/entity_memory.cjs.map +0 -1
  892. package/dist/memory/entity_memory.d.cts +0 -99
  893. package/dist/memory/entity_memory.d.cts.map +0 -1
  894. package/dist/memory/entity_memory.d.ts +0 -99
  895. package/dist/memory/entity_memory.d.ts.map +0 -1
  896. package/dist/memory/entity_memory.js +0 -143
  897. package/dist/memory/entity_memory.js.map +0 -1
  898. package/dist/memory/index.cjs +0 -85
  899. package/dist/memory/index.cjs.map +0 -1
  900. package/dist/memory/index.d.cts +0 -14
  901. package/dist/memory/index.d.ts +0 -14
  902. package/dist/memory/index.js +0 -39
  903. package/dist/memory/index.js.map +0 -1
  904. package/dist/memory/prompt.cjs +0 -124
  905. package/dist/memory/prompt.cjs.map +0 -1
  906. package/dist/memory/prompt.d.cts +0 -12
  907. package/dist/memory/prompt.d.cts.map +0 -1
  908. package/dist/memory/prompt.d.ts +0 -12
  909. package/dist/memory/prompt.d.ts.map +0 -1
  910. package/dist/memory/prompt.js +0 -120
  911. package/dist/memory/prompt.js.map +0 -1
  912. package/dist/memory/stores/entity/base.cjs +0 -13
  913. package/dist/memory/stores/entity/base.cjs.map +0 -1
  914. package/dist/memory/stores/entity/base.d.cts +0 -18
  915. package/dist/memory/stores/entity/base.d.cts.map +0 -1
  916. package/dist/memory/stores/entity/base.d.ts +0 -18
  917. package/dist/memory/stores/entity/base.d.ts.map +0 -1
  918. package/dist/memory/stores/entity/base.js +0 -12
  919. package/dist/memory/stores/entity/base.js.map +0 -1
  920. package/dist/memory/stores/entity/in_memory.cjs +0 -64
  921. package/dist/memory/stores/entity/in_memory.cjs.map +0 -1
  922. package/dist/memory/stores/entity/in_memory.js +0 -64
  923. package/dist/memory/stores/entity/in_memory.js.map +0 -1
  924. package/dist/memory/summary.cjs +0 -127
  925. package/dist/memory/summary.cjs.map +0 -1
  926. package/dist/memory/summary.d.cts +0 -101
  927. package/dist/memory/summary.d.cts.map +0 -1
  928. package/dist/memory/summary.d.ts +0 -101
  929. package/dist/memory/summary.d.ts.map +0 -1
  930. package/dist/memory/summary.js +0 -125
  931. package/dist/memory/summary.js.map +0 -1
  932. package/dist/memory/summary_buffer.cjs +0 -117
  933. package/dist/memory/summary_buffer.cjs.map +0 -1
  934. package/dist/memory/summary_buffer.d.cts +0 -90
  935. package/dist/memory/summary_buffer.d.cts.map +0 -1
  936. package/dist/memory/summary_buffer.d.ts +0 -90
  937. package/dist/memory/summary_buffer.d.ts.map +0 -1
  938. package/dist/memory/summary_buffer.js +0 -116
  939. package/dist/memory/summary_buffer.js.map +0 -1
  940. package/dist/memory/vector_store.cjs +0 -87
  941. package/dist/memory/vector_store.cjs.map +0 -1
  942. package/dist/memory/vector_store.d.cts +0 -81
  943. package/dist/memory/vector_store.d.cts.map +0 -1
  944. package/dist/memory/vector_store.d.ts +0 -81
  945. package/dist/memory/vector_store.d.ts.map +0 -1
  946. package/dist/memory/vector_store.js +0 -86
  947. package/dist/memory/vector_store.js.map +0 -1
  948. package/dist/output_parsers/combining.cjs +0 -61
  949. package/dist/output_parsers/combining.cjs.map +0 -1
  950. package/dist/output_parsers/combining.d.cts +0 -46
  951. package/dist/output_parsers/combining.d.cts.map +0 -1
  952. package/dist/output_parsers/combining.d.ts +0 -46
  953. package/dist/output_parsers/combining.d.ts.map +0 -1
  954. package/dist/output_parsers/combining.js +0 -60
  955. package/dist/output_parsers/combining.js.map +0 -1
  956. package/dist/output_parsers/datetime.cjs +0 -46
  957. package/dist/output_parsers/datetime.cjs.map +0 -1
  958. package/dist/output_parsers/datetime.d.cts +0 -33
  959. package/dist/output_parsers/datetime.d.cts.map +0 -1
  960. package/dist/output_parsers/datetime.d.ts +0 -33
  961. package/dist/output_parsers/datetime.d.ts.map +0 -1
  962. package/dist/output_parsers/datetime.js +0 -45
  963. package/dist/output_parsers/datetime.js.map +0 -1
  964. package/dist/output_parsers/expression.cjs +0 -86
  965. package/dist/output_parsers/expression.cjs.map +0 -1
  966. package/dist/output_parsers/expression.d.cts +0 -53
  967. package/dist/output_parsers/expression.d.cts.map +0 -1
  968. package/dist/output_parsers/expression.d.ts +0 -53
  969. package/dist/output_parsers/expression.d.ts.map +0 -1
  970. package/dist/output_parsers/expression.js +0 -79
  971. package/dist/output_parsers/expression.js.map +0 -1
  972. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs +0 -38
  973. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +0 -1
  974. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js +0 -38
  975. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +0 -1
  976. package/dist/output_parsers/expression_type_handlers/base.cjs +0 -130
  977. package/dist/output_parsers/expression_type_handlers/base.cjs.map +0 -1
  978. package/dist/output_parsers/expression_type_handlers/base.d.cts +0 -108
  979. package/dist/output_parsers/expression_type_handlers/base.d.cts.map +0 -1
  980. package/dist/output_parsers/expression_type_handlers/base.d.ts +0 -108
  981. package/dist/output_parsers/expression_type_handlers/base.d.ts.map +0 -1
  982. package/dist/output_parsers/expression_type_handlers/base.js +0 -129
  983. package/dist/output_parsers/expression_type_handlers/base.js.map +0 -1
  984. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs +0 -38
  985. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs.map +0 -1
  986. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js +0 -38
  987. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js.map +0 -1
  988. package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs +0 -64
  989. package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs.map +0 -1
  990. package/dist/output_parsers/expression_type_handlers/call_expression_handler.js +0 -64
  991. package/dist/output_parsers/expression_type_handlers/call_expression_handler.js.map +0 -1
  992. package/dist/output_parsers/expression_type_handlers/factory.cjs +0 -68
  993. package/dist/output_parsers/expression_type_handlers/factory.cjs.map +0 -1
  994. package/dist/output_parsers/expression_type_handlers/factory.d.cts +0 -35
  995. package/dist/output_parsers/expression_type_handlers/factory.d.cts.map +0 -1
  996. package/dist/output_parsers/expression_type_handlers/factory.d.ts +0 -35
  997. package/dist/output_parsers/expression_type_handlers/factory.d.ts.map +0 -1
  998. package/dist/output_parsers/expression_type_handlers/factory.js +0 -68
  999. package/dist/output_parsers/expression_type_handlers/factory.js.map +0 -1
  1000. package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs +0 -299
  1001. package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs.map +0 -1
  1002. package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.js +0 -298
  1003. package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.js.map +0 -1
  1004. package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs +0 -40
  1005. package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs.map +0 -1
  1006. package/dist/output_parsers/expression_type_handlers/identifier_handler.js +0 -40
  1007. package/dist/output_parsers/expression_type_handlers/identifier_handler.js.map +0 -1
  1008. package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs +0 -48
  1009. package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs.map +0 -1
  1010. package/dist/output_parsers/expression_type_handlers/member_expression_handler.js +0 -48
  1011. package/dist/output_parsers/expression_type_handlers/member_expression_handler.js.map +0 -1
  1012. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs +0 -36
  1013. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs.map +0 -1
  1014. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js +0 -36
  1015. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js.map +0 -1
  1016. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs +0 -40
  1017. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs.map +0 -1
  1018. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js +0 -40
  1019. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js.map +0 -1
  1020. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs +0 -45
  1021. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs.map +0 -1
  1022. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js +0 -45
  1023. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js.map +0 -1
  1024. package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs +0 -37
  1025. package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs.map +0 -1
  1026. package/dist/output_parsers/expression_type_handlers/string_literal_handler.js +0 -37
  1027. package/dist/output_parsers/expression_type_handlers/string_literal_handler.js.map +0 -1
  1028. package/dist/output_parsers/expression_type_handlers/types.d.cts +0 -95
  1029. package/dist/output_parsers/expression_type_handlers/types.d.cts.map +0 -1
  1030. package/dist/output_parsers/expression_type_handlers/types.d.ts +0 -95
  1031. package/dist/output_parsers/expression_type_handlers/types.d.ts.map +0 -1
  1032. package/dist/output_parsers/fix.cjs +0 -92
  1033. package/dist/output_parsers/fix.cjs.map +0 -1
  1034. package/dist/output_parsers/fix.d.cts +0 -60
  1035. package/dist/output_parsers/fix.d.cts.map +0 -1
  1036. package/dist/output_parsers/fix.d.ts +0 -60
  1037. package/dist/output_parsers/fix.d.ts.map +0 -1
  1038. package/dist/output_parsers/fix.js +0 -91
  1039. package/dist/output_parsers/fix.js.map +0 -1
  1040. package/dist/output_parsers/http_response.cjs +0 -53
  1041. package/dist/output_parsers/http_response.cjs.map +0 -1
  1042. package/dist/output_parsers/http_response.d.cts +0 -33
  1043. package/dist/output_parsers/http_response.d.cts.map +0 -1
  1044. package/dist/output_parsers/http_response.d.ts +0 -33
  1045. package/dist/output_parsers/http_response.d.ts.map +0 -1
  1046. package/dist/output_parsers/http_response.js +0 -52
  1047. package/dist/output_parsers/http_response.js.map +0 -1
  1048. package/dist/output_parsers/index.cjs +0 -74
  1049. package/dist/output_parsers/index.cjs.map +0 -1
  1050. package/dist/output_parsers/index.d.cts +0 -11
  1051. package/dist/output_parsers/index.d.ts +0 -11
  1052. package/dist/output_parsers/index.js +0 -37
  1053. package/dist/output_parsers/index.js.map +0 -1
  1054. package/dist/output_parsers/noop.cjs +0 -43
  1055. package/dist/output_parsers/noop.cjs.map +0 -1
  1056. package/dist/output_parsers/noop.js +0 -42
  1057. package/dist/output_parsers/noop.js.map +0 -1
  1058. package/dist/output_parsers/openai_functions.cjs +0 -145
  1059. package/dist/output_parsers/openai_functions.cjs.map +0 -1
  1060. package/dist/output_parsers/openai_functions.d.cts +0 -85
  1061. package/dist/output_parsers/openai_functions.d.cts.map +0 -1
  1062. package/dist/output_parsers/openai_functions.d.ts +0 -85
  1063. package/dist/output_parsers/openai_functions.d.ts.map +0 -1
  1064. package/dist/output_parsers/openai_functions.js +0 -142
  1065. package/dist/output_parsers/openai_functions.js.map +0 -1
  1066. package/dist/output_parsers/openai_tools.cjs +0 -89
  1067. package/dist/output_parsers/openai_tools.cjs.map +0 -1
  1068. package/dist/output_parsers/openai_tools.d.cts +0 -69
  1069. package/dist/output_parsers/openai_tools.d.cts.map +0 -1
  1070. package/dist/output_parsers/openai_tools.d.ts +0 -69
  1071. package/dist/output_parsers/openai_tools.d.ts.map +0 -1
  1072. package/dist/output_parsers/openai_tools.js +0 -87
  1073. package/dist/output_parsers/openai_tools.js.map +0 -1
  1074. package/dist/output_parsers/prompts.cjs +0 -25
  1075. package/dist/output_parsers/prompts.cjs.map +0 -1
  1076. package/dist/output_parsers/prompts.js +0 -24
  1077. package/dist/output_parsers/prompts.js.map +0 -1
  1078. package/dist/output_parsers/regex.cjs +0 -74
  1079. package/dist/output_parsers/regex.cjs.map +0 -1
  1080. package/dist/output_parsers/regex.d.cts +0 -49
  1081. package/dist/output_parsers/regex.d.cts.map +0 -1
  1082. package/dist/output_parsers/regex.d.ts +0 -49
  1083. package/dist/output_parsers/regex.d.ts.map +0 -1
  1084. package/dist/output_parsers/regex.js +0 -73
  1085. package/dist/output_parsers/regex.js.map +0 -1
  1086. package/dist/output_parsers/router.cjs +0 -40
  1087. package/dist/output_parsers/router.cjs.map +0 -1
  1088. package/dist/output_parsers/router.d.cts +0 -36
  1089. package/dist/output_parsers/router.d.cts.map +0 -1
  1090. package/dist/output_parsers/router.d.ts +0 -36
  1091. package/dist/output_parsers/router.d.ts.map +0 -1
  1092. package/dist/output_parsers/router.js +0 -39
  1093. package/dist/output_parsers/router.js.map +0 -1
  1094. package/dist/output_parsers/structured.cjs +0 -164
  1095. package/dist/output_parsers/structured.cjs.map +0 -1
  1096. package/dist/output_parsers/structured.d.cts +0 -97
  1097. package/dist/output_parsers/structured.d.cts.map +0 -1
  1098. package/dist/output_parsers/structured.d.ts +0 -97
  1099. package/dist/output_parsers/structured.d.ts.map +0 -1
  1100. package/dist/output_parsers/structured.js +0 -161
  1101. package/dist/output_parsers/structured.js.map +0 -1
  1102. package/dist/retrievers/contextual_compression.cjs +0 -53
  1103. package/dist/retrievers/contextual_compression.cjs.map +0 -1
  1104. package/dist/retrievers/contextual_compression.d.cts +0 -42
  1105. package/dist/retrievers/contextual_compression.d.cts.map +0 -1
  1106. package/dist/retrievers/contextual_compression.d.ts +0 -42
  1107. package/dist/retrievers/contextual_compression.d.ts.map +0 -1
  1108. package/dist/retrievers/contextual_compression.js +0 -47
  1109. package/dist/retrievers/contextual_compression.js.map +0 -1
  1110. package/dist/retrievers/document_compressors/chain_extract.cjs +0 -103
  1111. package/dist/retrievers/document_compressors/chain_extract.cjs.map +0 -1
  1112. package/dist/retrievers/document_compressors/chain_extract.d.cts +0 -47
  1113. package/dist/retrievers/document_compressors/chain_extract.d.cts.map +0 -1
  1114. package/dist/retrievers/document_compressors/chain_extract.d.ts +0 -47
  1115. package/dist/retrievers/document_compressors/chain_extract.d.ts.map +0 -1
  1116. package/dist/retrievers/document_compressors/chain_extract.js +0 -97
  1117. package/dist/retrievers/document_compressors/chain_extract.js.map +0 -1
  1118. package/dist/retrievers/document_compressors/chain_extract_prompt.cjs +0 -16
  1119. package/dist/retrievers/document_compressors/chain_extract_prompt.cjs.map +0 -1
  1120. package/dist/retrievers/document_compressors/chain_extract_prompt.js +0 -15
  1121. package/dist/retrievers/document_compressors/chain_extract_prompt.js.map +0 -1
  1122. package/dist/retrievers/document_compressors/embeddings_filter.cjs +0 -74
  1123. package/dist/retrievers/document_compressors/embeddings_filter.cjs.map +0 -1
  1124. package/dist/retrievers/document_compressors/embeddings_filter.d.cts +0 -58
  1125. package/dist/retrievers/document_compressors/embeddings_filter.d.cts.map +0 -1
  1126. package/dist/retrievers/document_compressors/embeddings_filter.d.ts +0 -58
  1127. package/dist/retrievers/document_compressors/embeddings_filter.d.ts.map +0 -1
  1128. package/dist/retrievers/document_compressors/embeddings_filter.js +0 -68
  1129. package/dist/retrievers/document_compressors/embeddings_filter.js.map +0 -1
  1130. package/dist/retrievers/document_compressors/index.cjs +0 -69
  1131. package/dist/retrievers/document_compressors/index.cjs.map +0 -1
  1132. package/dist/retrievers/document_compressors/index.d.cts +0 -61
  1133. package/dist/retrievers/document_compressors/index.d.cts.map +0 -1
  1134. package/dist/retrievers/document_compressors/index.d.ts +0 -61
  1135. package/dist/retrievers/document_compressors/index.d.ts.map +0 -1
  1136. package/dist/retrievers/document_compressors/index.js +0 -62
  1137. package/dist/retrievers/document_compressors/index.js.map +0 -1
  1138. package/dist/retrievers/ensemble.cjs +0 -76
  1139. package/dist/retrievers/ensemble.cjs.map +0 -1
  1140. package/dist/retrievers/ensemble.d.cts +0 -39
  1141. package/dist/retrievers/ensemble.d.cts.map +0 -1
  1142. package/dist/retrievers/ensemble.d.ts +0 -39
  1143. package/dist/retrievers/ensemble.d.ts.map +0 -1
  1144. package/dist/retrievers/ensemble.js +0 -70
  1145. package/dist/retrievers/ensemble.js.map +0 -1
  1146. package/dist/retrievers/hyde.cjs +0 -128
  1147. package/dist/retrievers/hyde.cjs.map +0 -1
  1148. package/dist/retrievers/hyde.d.cts +0 -61
  1149. package/dist/retrievers/hyde.d.cts.map +0 -1
  1150. package/dist/retrievers/hyde.d.ts +0 -61
  1151. package/dist/retrievers/hyde.d.ts.map +0 -1
  1152. package/dist/retrievers/hyde.js +0 -121
  1153. package/dist/retrievers/hyde.js.map +0 -1
  1154. package/dist/retrievers/matryoshka_retriever.cjs +0 -116
  1155. package/dist/retrievers/matryoshka_retriever.cjs.map +0 -1
  1156. package/dist/retrievers/matryoshka_retriever.d.cts +0 -99
  1157. package/dist/retrievers/matryoshka_retriever.d.cts.map +0 -1
  1158. package/dist/retrievers/matryoshka_retriever.d.ts +0 -99
  1159. package/dist/retrievers/matryoshka_retriever.d.ts.map +0 -1
  1160. package/dist/retrievers/matryoshka_retriever.js +0 -110
  1161. package/dist/retrievers/matryoshka_retriever.js.map +0 -1
  1162. package/dist/retrievers/multi_query.cjs +0 -150
  1163. package/dist/retrievers/multi_query.cjs.map +0 -1
  1164. package/dist/retrievers/multi_query.d.cts +0 -59
  1165. package/dist/retrievers/multi_query.d.cts.map +0 -1
  1166. package/dist/retrievers/multi_query.d.ts +0 -59
  1167. package/dist/retrievers/multi_query.d.ts.map +0 -1
  1168. package/dist/retrievers/multi_query.js +0 -144
  1169. package/dist/retrievers/multi_query.js.map +0 -1
  1170. package/dist/retrievers/multi_vector.cjs +0 -67
  1171. package/dist/retrievers/multi_vector.cjs.map +0 -1
  1172. package/dist/retrievers/multi_vector.d.cts +0 -51
  1173. package/dist/retrievers/multi_vector.d.cts.map +0 -1
  1174. package/dist/retrievers/multi_vector.d.ts +0 -51
  1175. package/dist/retrievers/multi_vector.d.ts.map +0 -1
  1176. package/dist/retrievers/multi_vector.js +0 -61
  1177. package/dist/retrievers/multi_vector.js.map +0 -1
  1178. package/dist/retrievers/parent_document.cjs +0 -137
  1179. package/dist/retrievers/parent_document.cjs.map +0 -1
  1180. package/dist/retrievers/parent_document.d.cts +0 -92
  1181. package/dist/retrievers/parent_document.d.cts.map +0 -1
  1182. package/dist/retrievers/parent_document.d.ts +0 -92
  1183. package/dist/retrievers/parent_document.d.ts.map +0 -1
  1184. package/dist/retrievers/parent_document.js +0 -131
  1185. package/dist/retrievers/parent_document.js.map +0 -1
  1186. package/dist/retrievers/score_threshold.cjs +0 -43
  1187. package/dist/retrievers/score_threshold.cjs.map +0 -1
  1188. package/dist/retrievers/score_threshold.d.cts +0 -20
  1189. package/dist/retrievers/score_threshold.d.cts.map +0 -1
  1190. package/dist/retrievers/score_threshold.d.ts +0 -20
  1191. package/dist/retrievers/score_threshold.d.ts.map +0 -1
  1192. package/dist/retrievers/score_threshold.js +0 -37
  1193. package/dist/retrievers/score_threshold.js.map +0 -1
  1194. package/dist/retrievers/self_query/functional.cjs +0 -21
  1195. package/dist/retrievers/self_query/functional.cjs.map +0 -1
  1196. package/dist/retrievers/self_query/functional.d.cts +0 -2
  1197. package/dist/retrievers/self_query/functional.d.ts +0 -2
  1198. package/dist/retrievers/self_query/functional.js +0 -10
  1199. package/dist/retrievers/self_query/functional.js.map +0 -1
  1200. package/dist/retrievers/self_query/index.cjs +0 -130
  1201. package/dist/retrievers/self_query/index.cjs.map +0 -1
  1202. package/dist/retrievers/self_query/index.d.cts +0 -79
  1203. package/dist/retrievers/self_query/index.d.cts.map +0 -1
  1204. package/dist/retrievers/self_query/index.d.ts +0 -79
  1205. package/dist/retrievers/self_query/index.d.ts.map +0 -1
  1206. package/dist/retrievers/self_query/index.js +0 -106
  1207. package/dist/retrievers/self_query/index.js.map +0 -1
  1208. package/dist/retrievers/time_weighted.cjs +0 -236
  1209. package/dist/retrievers/time_weighted.cjs.map +0 -1
  1210. package/dist/retrievers/time_weighted.d.cts +0 -142
  1211. package/dist/retrievers/time_weighted.d.cts.map +0 -1
  1212. package/dist/retrievers/time_weighted.d.ts +0 -142
  1213. package/dist/retrievers/time_weighted.d.ts.map +0 -1
  1214. package/dist/retrievers/time_weighted.js +0 -228
  1215. package/dist/retrievers/time_weighted.js.map +0 -1
  1216. package/dist/sql_db.cjs +0 -119
  1217. package/dist/sql_db.cjs.map +0 -1
  1218. package/dist/sql_db.d.cts +0 -60
  1219. package/dist/sql_db.d.cts.map +0 -1
  1220. package/dist/sql_db.d.ts +0 -60
  1221. package/dist/sql_db.d.ts.map +0 -1
  1222. package/dist/sql_db.js +0 -113
  1223. package/dist/sql_db.js.map +0 -1
  1224. package/dist/stores/doc/base.cjs +0 -20
  1225. package/dist/stores/doc/base.cjs.map +0 -1
  1226. package/dist/stores/doc/base.d.cts +0 -15
  1227. package/dist/stores/doc/base.d.cts.map +0 -1
  1228. package/dist/stores/doc/base.d.ts +0 -15
  1229. package/dist/stores/doc/base.d.ts.map +0 -1
  1230. package/dist/stores/doc/base.js +0 -14
  1231. package/dist/stores/doc/base.js.map +0 -1
  1232. package/dist/stores/doc/in_memory.cjs +0 -94
  1233. package/dist/stores/doc/in_memory.cjs.map +0 -1
  1234. package/dist/stores/doc/in_memory.d.cts +0 -53
  1235. package/dist/stores/doc/in_memory.d.cts.map +0 -1
  1236. package/dist/stores/doc/in_memory.d.ts +0 -53
  1237. package/dist/stores/doc/in_memory.d.ts.map +0 -1
  1238. package/dist/stores/doc/in_memory.js +0 -87
  1239. package/dist/stores/doc/in_memory.js.map +0 -1
  1240. package/dist/stores/file/base.cjs +0 -13
  1241. package/dist/stores/file/base.cjs.map +0 -1
  1242. package/dist/stores/file/base.d.cts +0 -15
  1243. package/dist/stores/file/base.d.cts.map +0 -1
  1244. package/dist/stores/file/base.d.ts +0 -15
  1245. package/dist/stores/file/base.d.ts.map +0 -1
  1246. package/dist/stores/file/base.js +0 -12
  1247. package/dist/stores/file/base.js.map +0 -1
  1248. package/dist/stores/file/in_memory.cjs +0 -53
  1249. package/dist/stores/file/in_memory.cjs.map +0 -1
  1250. package/dist/stores/file/in_memory.d.cts +0 -33
  1251. package/dist/stores/file/in_memory.d.cts.map +0 -1
  1252. package/dist/stores/file/in_memory.d.ts +0 -33
  1253. package/dist/stores/file/in_memory.d.ts.map +0 -1
  1254. package/dist/stores/file/in_memory.js +0 -47
  1255. package/dist/stores/file/in_memory.js.map +0 -1
  1256. package/dist/stores/file/node.cjs +0 -52
  1257. package/dist/stores/file/node.cjs.map +0 -1
  1258. package/dist/stores/file/node.d.cts +0 -29
  1259. package/dist/stores/file/node.d.cts.map +0 -1
  1260. package/dist/stores/file/node.d.ts +0 -29
  1261. package/dist/stores/file/node.d.ts.map +0 -1
  1262. package/dist/stores/file/node.js +0 -46
  1263. package/dist/stores/file/node.js.map +0 -1
  1264. package/dist/stores/message/in_memory.cjs +0 -21
  1265. package/dist/stores/message/in_memory.cjs.map +0 -1
  1266. package/dist/stores/message/in_memory.d.cts +0 -2
  1267. package/dist/stores/message/in_memory.d.ts +0 -2
  1268. package/dist/stores/message/in_memory.js +0 -10
  1269. package/dist/stores/message/in_memory.js.map +0 -1
  1270. package/dist/text_splitter.cjs +0 -22
  1271. package/dist/text_splitter.cjs.map +0 -1
  1272. package/dist/text_splitter.d.cts +0 -1
  1273. package/dist/text_splitter.d.ts +0 -1
  1274. package/dist/text_splitter.js +0 -12
  1275. package/dist/text_splitter.js.map +0 -1
  1276. package/dist/tools/chain.cjs +0 -36
  1277. package/dist/tools/chain.cjs.map +0 -1
  1278. package/dist/tools/chain.d.cts +0 -32
  1279. package/dist/tools/chain.d.cts.map +0 -1
  1280. package/dist/tools/chain.d.ts +0 -32
  1281. package/dist/tools/chain.d.ts.map +0 -1
  1282. package/dist/tools/chain.js +0 -30
  1283. package/dist/tools/chain.js.map +0 -1
  1284. package/dist/tools/fs.cjs +0 -56
  1285. package/dist/tools/fs.cjs.map +0 -1
  1286. package/dist/tools/fs.d.cts +0 -92
  1287. package/dist/tools/fs.d.cts.map +0 -1
  1288. package/dist/tools/fs.d.ts +0 -92
  1289. package/dist/tools/fs.d.ts.map +0 -1
  1290. package/dist/tools/fs.js +0 -54
  1291. package/dist/tools/fs.js.map +0 -1
  1292. package/dist/tools/index.cjs +0 -68
  1293. package/dist/tools/index.cjs.map +0 -1
  1294. package/dist/tools/index.d.cts +0 -8
  1295. package/dist/tools/index.d.ts +0 -8
  1296. package/dist/tools/index.js +0 -30
  1297. package/dist/tools/index.js.map +0 -1
  1298. package/dist/tools/json.cjs +0 -107
  1299. package/dist/tools/json.cjs.map +0 -1
  1300. package/dist/tools/json.d.cts +0 -65
  1301. package/dist/tools/json.d.cts.map +0 -1
  1302. package/dist/tools/json.d.ts +0 -65
  1303. package/dist/tools/json.d.ts.map +0 -1
  1304. package/dist/tools/json.js +0 -104
  1305. package/dist/tools/json.js.map +0 -1
  1306. package/dist/tools/render.cjs +0 -55
  1307. package/dist/tools/render.cjs.map +0 -1
  1308. package/dist/tools/render.d.cts +0 -32
  1309. package/dist/tools/render.d.cts.map +0 -1
  1310. package/dist/tools/render.d.ts +0 -32
  1311. package/dist/tools/render.d.ts.map +0 -1
  1312. package/dist/tools/render.js +0 -48
  1313. package/dist/tools/render.js.map +0 -1
  1314. package/dist/tools/requests.cjs +0 -73
  1315. package/dist/tools/requests.cjs.map +0 -1
  1316. package/dist/tools/requests.d.cts +0 -56
  1317. package/dist/tools/requests.d.cts.map +0 -1
  1318. package/dist/tools/requests.d.ts +0 -56
  1319. package/dist/tools/requests.d.ts.map +0 -1
  1320. package/dist/tools/requests.js +0 -71
  1321. package/dist/tools/requests.js.map +0 -1
  1322. package/dist/tools/retriever.cjs +0 -30
  1323. package/dist/tools/retriever.cjs.map +0 -1
  1324. package/dist/tools/retriever.d.cts +0 -19
  1325. package/dist/tools/retriever.d.cts.map +0 -1
  1326. package/dist/tools/retriever.d.ts +0 -19
  1327. package/dist/tools/retriever.d.ts.map +0 -1
  1328. package/dist/tools/retriever.js +0 -24
  1329. package/dist/tools/retriever.js.map +0 -1
  1330. package/dist/tools/sql.cjs +0 -165
  1331. package/dist/tools/sql.cjs.map +0 -1
  1332. package/dist/tools/sql.d.cts +0 -86
  1333. package/dist/tools/sql.d.cts.map +0 -1
  1334. package/dist/tools/sql.d.ts +0 -86
  1335. package/dist/tools/sql.d.ts.map +0 -1
  1336. package/dist/tools/sql.js +0 -156
  1337. package/dist/tools/sql.js.map +0 -1
  1338. package/dist/tools/vectorstore.cjs +0 -45
  1339. package/dist/tools/vectorstore.cjs.map +0 -1
  1340. package/dist/tools/vectorstore.d.cts +0 -40
  1341. package/dist/tools/vectorstore.d.cts.map +0 -1
  1342. package/dist/tools/vectorstore.d.ts +0 -40
  1343. package/dist/tools/vectorstore.d.ts.map +0 -1
  1344. package/dist/tools/vectorstore.js +0 -44
  1345. package/dist/tools/vectorstore.js.map +0 -1
  1346. package/dist/tools/webbrowser.cjs +0 -176
  1347. package/dist/tools/webbrowser.cjs.map +0 -1
  1348. package/dist/tools/webbrowser.d.cts +0 -69
  1349. package/dist/tools/webbrowser.d.cts.map +0 -1
  1350. package/dist/tools/webbrowser.d.ts +0 -69
  1351. package/dist/tools/webbrowser.d.ts.map +0 -1
  1352. package/dist/tools/webbrowser.js +0 -168
  1353. package/dist/tools/webbrowser.js.map +0 -1
  1354. package/dist/types/expression-parser.d.cts +0 -91
  1355. package/dist/types/expression-parser.d.cts.map +0 -1
  1356. package/dist/types/expression-parser.d.ts +0 -91
  1357. package/dist/types/expression-parser.d.ts.map +0 -1
  1358. package/dist/types/type-utils.d.cts +0 -7
  1359. package/dist/types/type-utils.d.cts.map +0 -1
  1360. package/dist/types/type-utils.d.ts +0 -7
  1361. package/dist/types/type-utils.d.ts.map +0 -1
  1362. package/dist/util/document.cjs +0 -23
  1363. package/dist/util/document.cjs.map +0 -1
  1364. package/dist/util/document.d.cts +0 -15
  1365. package/dist/util/document.d.cts.map +0 -1
  1366. package/dist/util/document.d.ts +0 -15
  1367. package/dist/util/document.d.ts.map +0 -1
  1368. package/dist/util/document.js +0 -17
  1369. package/dist/util/document.js.map +0 -1
  1370. package/dist/util/entrypoint_deprecation.cjs +0 -1
  1371. package/dist/util/entrypoint_deprecation.js +0 -1
  1372. package/dist/util/env.cjs +0 -2
  1373. package/dist/util/env.js +0 -1
  1374. package/dist/util/extname.cjs +0 -7
  1375. package/dist/util/extname.cjs.map +0 -1
  1376. package/dist/util/extname.js +0 -6
  1377. package/dist/util/extname.js.map +0 -1
  1378. package/dist/util/hub.cjs +0 -39
  1379. package/dist/util/hub.cjs.map +0 -1
  1380. package/dist/util/hub.js +0 -38
  1381. package/dist/util/hub.js.map +0 -1
  1382. package/dist/util/load.cjs +0 -15
  1383. package/dist/util/load.cjs.map +0 -1
  1384. package/dist/util/load.d.cts +0 -6
  1385. package/dist/util/load.d.cts.map +0 -1
  1386. package/dist/util/load.d.ts +0 -6
  1387. package/dist/util/load.d.ts.map +0 -1
  1388. package/dist/util/load.js +0 -14
  1389. package/dist/util/load.js.map +0 -1
  1390. package/dist/util/math.cjs +0 -22
  1391. package/dist/util/math.cjs.map +0 -1
  1392. package/dist/util/math.d.cts +0 -1
  1393. package/dist/util/math.d.ts +0 -1
  1394. package/dist/util/math.js +0 -12
  1395. package/dist/util/math.js.map +0 -1
  1396. package/dist/util/ml-distance/distances.cjs +0 -35
  1397. package/dist/util/ml-distance/distances.cjs.map +0 -1
  1398. package/dist/util/ml-distance/distances.js +0 -33
  1399. package/dist/util/ml-distance/distances.js.map +0 -1
  1400. package/dist/util/ml-distance/similarities.cjs +0 -23
  1401. package/dist/util/ml-distance/similarities.cjs.map +0 -1
  1402. package/dist/util/ml-distance/similarities.d.cts +0 -11
  1403. package/dist/util/ml-distance/similarities.d.cts.map +0 -1
  1404. package/dist/util/ml-distance/similarities.d.ts +0 -11
  1405. package/dist/util/ml-distance/similarities.d.ts.map +0 -1
  1406. package/dist/util/ml-distance/similarities.js +0 -22
  1407. package/dist/util/ml-distance/similarities.js.map +0 -1
  1408. package/dist/util/ml-distance-euclidean/euclidean.cjs +0 -14
  1409. package/dist/util/ml-distance-euclidean/euclidean.cjs.map +0 -1
  1410. package/dist/util/ml-distance-euclidean/euclidean.js +0 -13
  1411. package/dist/util/ml-distance-euclidean/euclidean.js.map +0 -1
  1412. package/dist/util/openapi.cjs +0 -149
  1413. package/dist/util/openapi.cjs.map +0 -1
  1414. package/dist/util/openapi.d.cts +0 -83
  1415. package/dist/util/openapi.d.cts.map +0 -1
  1416. package/dist/util/openapi.d.ts +0 -83
  1417. package/dist/util/openapi.d.ts.map +0 -1
  1418. package/dist/util/openapi.js +0 -148
  1419. package/dist/util/openapi.js.map +0 -1
  1420. package/dist/util/parse.cjs +0 -22
  1421. package/dist/util/parse.cjs.map +0 -1
  1422. package/dist/util/parse.js +0 -21
  1423. package/dist/util/parse.js.map +0 -1
  1424. package/dist/util/set.cjs +0 -35
  1425. package/dist/util/set.cjs.map +0 -1
  1426. package/dist/util/set.js +0 -32
  1427. package/dist/util/set.js.map +0 -1
  1428. package/dist/util/sql_utils.cjs +0 -178
  1429. package/dist/util/sql_utils.cjs.map +0 -1
  1430. package/dist/util/sql_utils.d.cts +0 -31
  1431. package/dist/util/sql_utils.d.cts.map +0 -1
  1432. package/dist/util/sql_utils.d.ts +0 -31
  1433. package/dist/util/sql_utils.d.ts.map +0 -1
  1434. package/dist/util/sql_utils.js +0 -173
  1435. package/dist/util/sql_utils.js.map +0 -1
  1436. package/dist/util/time.cjs +0 -25
  1437. package/dist/util/time.cjs.map +0 -1
  1438. package/dist/util/time.d.cts +0 -10
  1439. package/dist/util/time.d.cts.map +0 -1
  1440. package/dist/util/time.d.ts +0 -10
  1441. package/dist/util/time.d.ts.map +0 -1
  1442. package/dist/util/time.js +0 -19
  1443. package/dist/util/time.js.map +0 -1
  1444. package/dist/vectorstores/memory.cjs +0 -265
  1445. package/dist/vectorstores/memory.cjs.map +0 -1
  1446. package/dist/vectorstores/memory.d.cts +0 -216
  1447. package/dist/vectorstores/memory.d.cts.map +0 -1
  1448. package/dist/vectorstores/memory.d.ts +0 -216
  1449. package/dist/vectorstores/memory.d.ts.map +0 -1
  1450. package/dist/vectorstores/memory.js +0 -259
  1451. package/dist/vectorstores/memory.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { initChatModel } from "../../chat_models/universal.js";
2
2
  import { MultipleStructuredOutputsError } from "../errors.js";
3
- import { bindTools, getPromptRunnable, hasSupportForJsonSchemaOutput, hasToolCalls, validateLLMHasNoBoundTools } from "../utils.js";
3
+ import { bindTools, getPromptRunnable, hasToolCalls, validateLLMHasNoBoundTools } from "../utils.js";
4
4
  import { RunnableCallable } from "../RunnableCallable.js";
5
5
  import { mergeAbortSignals } from "./utils.js";
6
6
  import { withAgentName } from "../withAgentName.js";
7
- import { ProviderStrategy, ToolStrategy, transformResponseFormat } from "../responses.js";
7
+ import { ProviderStrategy, ToolStrategy, hasSupportForJsonSchemaOutput, transformResponseFormat } from "../responses.js";
8
8
  import { AIMessage, ToolMessage } from "@langchain/core/messages";
9
9
  import { Command } from "@langchain/langgraph";
10
10
  import { getSchemaDescription } from "@langchain/core/utils/types";
@@ -12,20 +12,46 @@ import { getSchemaDescription } from "@langchain/core/utils/types";
12
12
  //#region src/agents/nodes/AgentNode.ts
13
13
  var AgentNode = class extends RunnableCallable {
14
14
  #options;
15
- #structuredToolInfo = {};
16
15
  constructor(options) {
17
16
  super({
18
17
  name: options.name ?? "model",
19
18
  func: (input, config) => this.#run(input, config)
20
19
  });
21
20
  this.#options = options;
21
+ }
22
+ /**
23
+ * Returns response format primtivies based on given model and response format provided by the user.
24
+ *
25
+ * If the the user selects a tool output:
26
+ * - return a record of tools to extract structured output from the model's response
27
+ *
28
+ * if the the user selects a native schema output or if the model supports JSON schema output:
29
+ * - return a provider strategy to extract structured output from the model's response
30
+ *
31
+ * @param model - The model to get the response format for.
32
+ * @returns The response format.
33
+ */
34
+ #getResponseFormat(model) {
35
+ if (!this.#options.responseFormat) return void 0;
36
+ const strategies = transformResponseFormat(this.#options.responseFormat, void 0, model);
37
+ /**
38
+ * we either define a list of provider strategies or a list of tool strategies
39
+ */
40
+ const isProviderStrategy = strategies.every((format) => format instanceof ProviderStrategy);
22
41
  /**
23
42
  * Populate a list of structured tool info.
24
43
  */
25
- this.#structuredToolInfo = transformResponseFormat(this.#options.responseFormat).filter((format) => format instanceof ToolStrategy).reduce((acc, format) => {
26
- acc[format.name] = format;
27
- return acc;
28
- }, {});
44
+ if (!isProviderStrategy) return {
45
+ type: "tool",
46
+ tools: strategies.filter((format) => format instanceof ToolStrategy).reduce((acc, format) => {
47
+ acc[format.name] = format;
48
+ return acc;
49
+ }, {})
50
+ };
51
+ return {
52
+ type: "native",
53
+ strategy: strategies[0]
54
+ };
29
55
  }
30
56
  async #run(state, config) {
31
57
  /**
@@ -84,7 +110,8 @@ var AgentNode = class extends RunnableCallable {
84
110
  * Check if the LLM already has bound tools and throw if it does.
85
111
  */
86
112
  validateLLMHasNoBoundTools(model);
87
- const modelWithTools = await this.#bindTools(model);
113
+ const structuredResponseFormat = this.#getResponseFormat(model);
114
+ const modelWithTools = await this.#bindTools(model, structuredResponseFormat);
88
115
  const modelInput = this.#getModelInputState(state);
89
116
  const signal = mergeAbortSignals(this.#options.signal, config.signal);
90
117
  const invokeConfig = {
@@ -96,15 +123,16 @@ var AgentNode = class extends RunnableCallable {
96
123
  * if the user requests a native schema output, try to parse the response
97
124
  * and return the structured response if it is valid
98
125
  */
99
- if (this.#options.responseFormat instanceof ProviderStrategy) {
100
- const structuredResponse = this.#options.responseFormat.parse(response);
126
+ if (structuredResponseFormat?.type === "native") {
127
+ const structuredResponse = structuredResponseFormat.strategy.parse(response);
101
128
  if (structuredResponse) return {
102
129
  structuredResponse,
103
130
  messages: [response]
104
131
  };
132
+ return response;
105
133
  }
106
- if (!response.tool_calls) return response;
107
- const toolCalls = response.tool_calls.filter((call) => call.name in this.#structuredToolInfo);
134
+ if (!structuredResponseFormat || !response.tool_calls) return response;
135
+ const toolCalls = response.tool_calls.filter((call) => call.name in structuredResponseFormat.tools);
108
136
  /**
109
137
  * if there were not structured tool calls, we can return the response
110
138
  */
@@ -113,10 +141,10 @@ var AgentNode = class extends RunnableCallable {
113
141
  * if there were multiple structured tool calls, we should throw an error as this
114
142
  * scenario is not defined/supported.
115
143
  */
116
- if (toolCalls.length > 1) return this.#handleMultipleStructuredOutputs(response, toolCalls);
117
- const toolStrategy = this.#structuredToolInfo[toolCalls[0].name];
144
+ if (toolCalls.length > 1) return this.#handleMultipleStructuredOutputs(response, toolCalls, structuredResponseFormat);
145
+ const toolStrategy = structuredResponseFormat.tools[toolCalls[0].name];
118
146
  const toolMessageContent = toolStrategy?.options?.toolMessageContent;
119
- return this.#handleSingleStructuredOutput(response, toolCalls[0], toolMessageContent ?? options.lastMessage);
147
+ return this.#handleSingleStructuredOutput(response, toolCalls[0], structuredResponseFormat, toolMessageContent ?? options.lastMessage);
120
148
  }
121
149
  /**
122
150
  * If the model returns multiple structured outputs, we need to handle it.
@@ -124,21 +152,21 @@ var AgentNode = class extends RunnableCallable {
124
152
  * @param toolCalls - The tool calls that were made
125
153
  * @returns The response from the model
126
154
  */
127
- #handleMultipleStructuredOutputs(response, toolCalls) {
155
+ #handleMultipleStructuredOutputs(response, toolCalls, structuredResponseFormat) {
128
156
  /**
129
157
  * the following should never happen, let's throw an error if it does
130
158
  */
131
159
  if (this.#options.responseFormat instanceof ProviderStrategy) throw new Error("Multiple structured outputs should not apply to native structured output responses");
132
160
  const multipleStructuredOutputsError = new MultipleStructuredOutputsError(toolCalls.map((call) => call.name));
133
- return this.#handleToolStrategyError(multipleStructuredOutputsError, response, toolCalls[0]);
161
+ return this.#handleToolStrategyError(multipleStructuredOutputsError, response, toolCalls[0], structuredResponseFormat);
134
162
  }
135
163
  /**
136
164
  * If the model returns a single structured output, we need to handle it.
137
165
  * @param toolCall - The tool call that was made
138
166
  * @returns The structured response and a message to the LLM if needed
139
167
  */
140
- #handleSingleStructuredOutput(response, toolCall, lastMessage) {
141
- const tool = this.#structuredToolInfo[toolCall.name];
168
+ #handleSingleStructuredOutput(response, toolCall, structuredResponseFormat, lastMessage) {
169
+ const tool = structuredResponseFormat.tools[toolCall.name];
142
170
  try {
143
171
  const structuredResponse = tool.parse(toolCall.args);
144
172
  return {
@@ -146,10 +174,10 @@ var AgentNode = class extends RunnableCallable {
146
174
  messages: [response, new AIMessage(lastMessage ?? `Returning structured response: ${JSON.stringify(structuredResponse)}`)]
147
175
  };
148
176
  } catch (error) {
149
- return this.#handleToolStrategyError(error, response, toolCall);
177
+ return this.#handleToolStrategyError(error, response, toolCall, structuredResponseFormat);
150
178
  }
151
179
  }
152
- async #handleToolStrategyError(error, response, toolCall) {
180
+ async #handleToolStrategyError(error, response, toolCall, structuredResponseFormat) {
153
181
  /**
154
182
  * Using the `errorHandler` option of the first `ToolStrategy` entry is sufficient here.
155
183
  * There is technically only one `ToolStrategy` entry in `structuredToolInfo` if the user
@@ -157,7 +185,7 @@ var AgentNode = class extends RunnableCallable {
157
185
  * schema objects, these will be transformed into multiple `ToolStrategy` entries but all
158
186
  * with the same `handleError` option.
159
187
  */
160
- const errorHandler = Object.values(this.#structuredToolInfo).at(0)?.options?.handleError;
188
+ const errorHandler = Object.values(structuredResponseFormat.tools).at(0)?.options?.handleError;
161
189
  const toolCallId = toolCall.id;
162
190
  if (!toolCallId) throw new Error("Tool call ID is required to handle tool output errors. Please provide a tool call ID.");
163
191
  /**
@@ -215,9 +243,9 @@ var AgentNode = class extends RunnableCallable {
215
243
  ...rest
216
244
  };
217
245
  }
218
- async #bindTools(model) {
246
+ async #bindTools(model, structuredResponseFormat) {
219
247
  const options = {};
220
- const structuredTools = Object.values(this.#structuredToolInfo);
248
+ const structuredTools = structuredResponseFormat?.type === "tool" ? Object.values(structuredResponseFormat.tools) : [];
221
249
  const allTools = this.#options.toolClasses.concat(...structuredTools.map((toolStrategy) => toolStrategy.tool));
222
250
  /**
223
251
  * If there are structured tools, we need to set the tool choice to "any"
@@ -227,15 +255,15 @@ var AgentNode = class extends RunnableCallable {
227
255
  /**
228
256
  * check if the user requests a native schema output
229
257
  */
230
- if (this.#options.responseFormat instanceof ProviderStrategy) {
258
+ if (structuredResponseFormat?.type === "native") {
231
259
  /**
232
260
  * if the model does not support JSON schema output, throw an error
233
261
  */
234
262
  if (!hasSupportForJsonSchemaOutput(model)) throw new Error("Model does not support native structured output responses. Please use a model that supports native structured output responses or use a tool output.");
235
263
  const jsonSchemaParams = {
236
- name: this.#options.responseFormat.schema?.name ?? "extract",
237
- description: getSchemaDescription(this.#options.responseFormat.schema),
238
- schema: this.#options.responseFormat.schema,
264
+ name: structuredResponseFormat.strategy.schema?.name ?? "extract",
265
+ description: getSchemaDescription(structuredResponseFormat.strategy.schema),
266
+ schema: structuredResponseFormat.strategy.schema,
239
267
  strict: true
240
268
  };
241
269
  Object.assign(options, {
@@ -245,7 +273,7 @@ var AgentNode = class extends RunnableCallable {
245
273
  },
246
274
  ls_structured_output_format: {
247
275
  kwargs: { method: "json_schema" },
248
- schema: this.#options.responseFormat.schema
276
+ schema: structuredResponseFormat.strategy.schema
249
277
  },
250
278
  strict: true
251
279
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AgentNode.js","names":["options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >","#run","#options","#structuredToolInfo","state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"]","config: RunnableConfig","#invokeModel","#areMoreStepsNeeded","options: {\n lastMessage?: string;\n }","#deriveModel","#bindTools","#getModelInputState","#handleMultipleStructuredOutputs","#handleSingleStructuredOutput","response: AIMessage","toolCalls: ToolCall[]","#handleToolStrategyError","toolCall: ToolCall","lastMessage?: string","error: ToolStrategyError","response: BaseMessage","model: LanguageModelLike","options: Partial<BaseChatModelCallOptions>"],"sources":["../../../src/agents/nodes/AgentNode.ts"],"sourcesContent":["/* eslint-disable no-instanceof/no-instanceof */\nimport { Runnable, RunnableConfig } from \"@langchain/core/runnables\";\nimport { BaseMessage, AIMessage, ToolMessage } from \"@langchain/core/messages\";\nimport { Command } from \"@langchain/langgraph\";\nimport { type LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { type BaseChatModelCallOptions } from \"@langchain/core/language_models/chat_models\";\nimport {\n InteropZodObject,\n getSchemaDescription,\n} from \"@langchain/core/utils/types\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\n\nimport { initChatModel } from \"../../chat_models/universal.js\";\nimport { MultipleStructuredOutputsError } from \"../errors.js\";\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport { PreHookAnnotation, AnyAnnotationRoot } from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport {\n bindTools,\n getPromptRunnable,\n validateLLMHasNoBoundTools,\n hasToolCalls,\n hasSupportForJsonSchemaOutput,\n} from \"../utils.js\";\nimport {\n InternalAgentState,\n ClientTool,\n ServerTool,\n CreateAgentParams,\n} from \"../types.js\";\nimport { withAgentName } from \"../withAgentName.js\";\nimport {\n ToolStrategy,\n ProviderStrategy,\n transformResponseFormat,\n ToolStrategyError,\n} from \"../responses.js\";\n\ntype ResponseHandlerResult<StructuredResponseFormat> =\n | {\n structuredResponse: StructuredResponseFormat;\n messages: BaseMessage[];\n }\n | Promise<Command>;\n\nexport interface AgentNodeOptions<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot,\n StructuredResponseFormat extends Record<string, unknown> = Record<\n string,\n unknown\n >,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot\n> extends Pick<\n CreateAgentParams<StateSchema, StructuredResponseFormat, ContextSchema>,\n \"llm\" | \"model\" | \"prompt\" | \"includeAgentName\" | \"name\" | \"responseFormat\"\n > {\n toolClasses: (ClientTool | ServerTool)[];\n shouldReturnDirect: Set<string>;\n signal?: AbortSignal;\n}\n\nexport class AgentNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot,\n StructuredResponseFormat extends Record<string, unknown> = Record<\n string,\n unknown\n >,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot\n> extends RunnableCallable<\n InternalAgentState<StructuredResponseFormat> & PreHookAnnotation[\"State\"],\n { messages: BaseMessage[] } | { structuredResponse: StructuredResponseFormat }\n> {\n #options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >;\n\n #structuredToolInfo: Record<string, ToolStrategy> = {};\n\n constructor(\n options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >\n ) {\n super({\n name: options.name ?? \"model\",\n func: (input, config) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.#run(input, config as RunnableConfig) as any,\n });\n\n this.#options = options;\n\n /**\n * Populate a list of structured tool info.\n */\n this.#structuredToolInfo = (\n transformResponseFormat(this.#options.responseFormat).filter(\n (format) => format instanceof ToolStrategy\n ) as ToolStrategy[]\n ).reduce((acc, format) => {\n acc[format.name] = format;\n return acc;\n }, {} as Record<string, ToolStrategy>);\n }\n\n async #run(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ) {\n /**\n * Check if we just executed a returnDirect tool\n * If so, we should generate structured response (if needed) and stop\n */\n const lastMessage = state.messages[state.messages.length - 1];\n if (\n ToolMessage.isInstance(lastMessage) &&\n lastMessage.name &&\n this.#options.shouldReturnDirect.has(lastMessage.name)\n ) {\n /**\n * return directly without invoking the model again\n */\n return { messages: [] };\n }\n\n const response = await this.#invokeModel(state, config);\n\n /**\n * if we were able to generate a structured response, return it\n */\n if (\"structuredResponse\" in response) {\n return {\n messages: [...state.messages, ...(response.messages || [])],\n structuredResponse: response.structuredResponse,\n };\n }\n\n /**\n * if we need to direct the agent to the model, return the update\n */\n if (response instanceof Command) {\n return response;\n }\n\n response.name = this.name;\n response.lc_kwargs.name = this.name;\n\n if (this.#areMoreStepsNeeded(state, response)) {\n return {\n messages: [\n new AIMessage({\n content: \"Sorry, need more steps to process this request.\",\n name: this.name,\n id: response.id,\n }),\n ],\n };\n }\n\n return { messages: [response] };\n }\n\n /**\n * Derive the model from the options.\n * @param state - The state of the agent.\n * @param config - The config of the agent.\n * @returns The model.\n */\n #deriveModel(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ) {\n if (this.#options.model) {\n if (typeof this.#options.model === \"string\") {\n return initChatModel(this.#options.model);\n }\n\n throw new Error(\"`model` option must be a string.\");\n }\n\n const model = this.#options.llm;\n\n /**\n * If the model is a function, call it to get the model.\n */\n if (typeof model === \"function\") {\n return model(state, config);\n }\n\n if (model) {\n return model;\n }\n\n throw new Error(\n \"No model option was provided, either via `model` or via `llm` option.\"\n );\n }\n\n async #invokeModel(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig,\n options: {\n lastMessage?: string;\n } = {}\n ): Promise<AIMessage | ResponseHandlerResult<StructuredResponseFormat>> {\n const model = await this.#deriveModel(state, config);\n\n /**\n * Check if the LLM already has bound tools and throw if it does.\n */\n validateLLMHasNoBoundTools(model);\n\n const modelWithTools = await this.#bindTools(model);\n const modelInput = this.#getModelInputState(state);\n const signal = mergeAbortSignals(this.#options.signal, config.signal);\n const invokeConfig = {\n ...config,\n signal,\n };\n\n const response = (await modelWithTools.invoke(\n modelInput,\n invokeConfig\n )) as AIMessage;\n\n /**\n * if the user requests a native schema output, try to parse the response\n * and return the structured response if it is valid\n */\n if (this.#options.responseFormat instanceof ProviderStrategy) {\n const structuredResponse = this.#options.responseFormat.parse(response);\n if (structuredResponse) {\n return { structuredResponse, messages: [response] };\n }\n }\n\n if (!response.tool_calls) {\n return response;\n }\n\n const toolCalls = response.tool_calls.filter(\n (call) => call.name in this.#structuredToolInfo\n );\n\n /**\n * if there were not structured tool calls, we can return the response\n */\n if (toolCalls.length === 0) {\n return response;\n }\n\n /**\n * if there were multiple structured tool calls, we should throw an error as this\n * scenario is not defined/supported.\n */\n if (toolCalls.length > 1) {\n return this.#handleMultipleStructuredOutputs(response, toolCalls);\n }\n\n const toolStrategy = this.#structuredToolInfo[toolCalls[0].name];\n const toolMessageContent = toolStrategy?.options?.toolMessageContent;\n return this.#handleSingleStructuredOutput(\n response,\n toolCalls[0],\n toolMessageContent ?? options.lastMessage\n );\n }\n\n /**\n * If the model returns multiple structured outputs, we need to handle it.\n * @param response - The response from the model\n * @param toolCalls - The tool calls that were made\n * @returns The response from the model\n */\n #handleMultipleStructuredOutputs(\n response: AIMessage,\n toolCalls: ToolCall[]\n ): Promise<Command> {\n /**\n * the following should never happen, let's throw an error if it does\n */\n if (this.#options.responseFormat instanceof ProviderStrategy) {\n throw new Error(\n \"Multiple structured outputs should not apply to native structured output responses\"\n );\n }\n\n const multipleStructuredOutputsError = new MultipleStructuredOutputsError(\n toolCalls.map((call) => call.name)\n );\n\n return this.#handleToolStrategyError(\n multipleStructuredOutputsError,\n response,\n toolCalls[0]\n );\n }\n\n /**\n * If the model returns a single structured output, we need to handle it.\n * @param toolCall - The tool call that was made\n * @returns The structured response and a message to the LLM if needed\n */\n #handleSingleStructuredOutput(\n response: AIMessage,\n toolCall: ToolCall,\n lastMessage?: string\n ): ResponseHandlerResult<StructuredResponseFormat> {\n const tool = this.#structuredToolInfo[toolCall.name];\n\n try {\n const structuredResponse = tool.parse(\n toolCall.args\n ) as StructuredResponseFormat;\n\n return {\n structuredResponse,\n messages: [\n response,\n new AIMessage(\n lastMessage ??\n `Returning structured response: ${JSON.stringify(\n structuredResponse\n )}`\n ),\n ],\n };\n } catch (error) {\n return this.#handleToolStrategyError(\n error as ToolStrategyError,\n response,\n toolCall\n );\n }\n }\n\n async #handleToolStrategyError(\n error: ToolStrategyError,\n response: AIMessage,\n toolCall: ToolCall\n ): Promise<Command> {\n /**\n * Using the `errorHandler` option of the first `ToolStrategy` entry is sufficient here.\n * There is technically only one `ToolStrategy` entry in `structuredToolInfo` if the user\n * uses `toolStrategy` to define the response format. If the user applies a list of json\n * schema objects, these will be transformed into multiple `ToolStrategy` entries but all\n * with the same `handleError` option.\n */\n const errorHandler = Object.values(this.#structuredToolInfo).at(0)?.options\n ?.handleError;\n\n const toolCallId = toolCall.id;\n if (!toolCallId) {\n throw new Error(\n \"Tool call ID is required to handle tool output errors. Please provide a tool call ID.\"\n );\n }\n\n /**\n * retry if:\n */\n if (\n /**\n * if the user has provided `true` as the `errorHandler` option, return a new AIMessage\n * with the error message and retry the tool call.\n */\n (typeof errorHandler === \"boolean\" && errorHandler) ||\n /**\n * if `errorHandler` is an array and contains MultipleStructuredOutputsError\n */\n (Array.isArray(errorHandler) &&\n errorHandler.some((h) => h instanceof MultipleStructuredOutputsError))\n ) {\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content: error.message,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * if `errorHandler` is a string, retry the tool call with given string\n */\n if (typeof errorHandler === \"string\") {\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content: errorHandler,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * if `errorHandler` is a function, retry the tool call with the function\n */\n if (typeof errorHandler === \"function\") {\n const content = await errorHandler(error);\n if (typeof content !== \"string\") {\n throw new Error(\"Error handler must return a string.\");\n }\n\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * throw otherwise, e.g. if `errorHandler` is not defined or set to `false`\n */\n throw error;\n }\n\n #areMoreStepsNeeded(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n response: BaseMessage\n ): boolean {\n const allToolsReturnDirect =\n AIMessage.isInstance(response) &&\n response.tool_calls?.every((call) =>\n this.#options.shouldReturnDirect.has(call.name)\n );\n const remainingSteps =\n \"remainingSteps\" in state ? (state.remainingSteps as number) : undefined;\n return Boolean(\n remainingSteps &&\n ((remainingSteps < 1 && allToolsReturnDirect) ||\n (remainingSteps < 2 && hasToolCalls(state.messages)))\n );\n }\n\n #getModelInputState(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"]\n ): Omit<InternalAgentState<StructuredResponseFormat>, \"llmInputMessages\"> {\n const { messages, llmInputMessages, ...rest } = state;\n if (llmInputMessages && llmInputMessages.length > 0) {\n return { messages: llmInputMessages, ...rest } as Omit<\n InternalAgentState<StructuredResponseFormat>,\n \"llmInputMessages\"\n >;\n }\n return { messages, ...rest } as Omit<\n InternalAgentState<StructuredResponseFormat>,\n \"llmInputMessages\"\n >;\n }\n\n async #bindTools(model: LanguageModelLike): Promise<Runnable> {\n const options: Partial<BaseChatModelCallOptions> = {};\n const structuredTools = Object.values(this.#structuredToolInfo);\n const allTools = this.#options.toolClasses.concat(\n ...structuredTools.map((toolStrategy) => toolStrategy.tool)\n );\n\n /**\n * If there are structured tools, we need to set the tool choice to \"any\"\n * so that the model can choose to use a structured tool or not.\n */\n const toolChoice = structuredTools.length > 0 ? \"any\" : undefined;\n\n /**\n * check if the user requests a native schema output\n */\n if (this.#options.responseFormat instanceof ProviderStrategy) {\n /**\n * if the model does not support JSON schema output, throw an error\n */\n if (!hasSupportForJsonSchemaOutput(model)) {\n throw new Error(\n \"Model does not support native structured output responses. Please use a model that supports native structured output responses or use a tool output.\"\n );\n }\n\n const jsonSchemaParams = {\n name: this.#options.responseFormat.schema?.name ?? \"extract\",\n description: getSchemaDescription(this.#options.responseFormat.schema),\n schema: this.#options.responseFormat.schema,\n strict: true,\n };\n\n Object.assign(options, {\n response_format: {\n type: \"json_schema\",\n json_schema: jsonSchemaParams,\n },\n ls_structured_output_format: {\n kwargs: { method: \"json_schema\" },\n schema: this.#options.responseFormat.schema,\n },\n strict: true,\n });\n }\n\n /**\n * Bind tools to the model if they are not already bound.\n */\n const modelWithTools = await bindTools(model, allTools, {\n ...options,\n tool_choice: toolChoice,\n });\n\n /**\n * Create a model runnable with the prompt and agent name\n */\n const modelRunnable = getPromptRunnable(this.#options.prompt).pipe(\n this.#options.includeAgentName === \"inline\"\n ? withAgentName(modelWithTools, this.#options.includeAgentName)\n : modelWithTools\n );\n\n return modelRunnable;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AgentNode.js","names":["options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >","#run","#options","model: string | LanguageModelLike","state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"]","config: RunnableConfig","#invokeModel","#areMoreStepsNeeded","options: {\n lastMessage?: string;\n }","#deriveModel","#getResponseFormat","#bindTools","#getModelInputState","#handleMultipleStructuredOutputs","#handleSingleStructuredOutput","response: AIMessage","toolCalls: ToolCall[]","structuredResponseFormat: ToolResponseFormat","#handleToolStrategyError","toolCall: ToolCall","lastMessage?: string","error: ToolStrategyError","response: BaseMessage","model: LanguageModelLike","structuredResponseFormat: ResponseFormat | undefined","options: Partial<BaseChatModelCallOptions>"],"sources":["../../../src/agents/nodes/AgentNode.ts"],"sourcesContent":["/* eslint-disable no-instanceof/no-instanceof */\nimport { Runnable, RunnableConfig } from \"@langchain/core/runnables\";\nimport { BaseMessage, AIMessage, ToolMessage } from \"@langchain/core/messages\";\nimport { Command } from \"@langchain/langgraph\";\nimport { type LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { type BaseChatModelCallOptions } from \"@langchain/core/language_models/chat_models\";\nimport {\n InteropZodObject,\n getSchemaDescription,\n} from \"@langchain/core/utils/types\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\n\nimport { initChatModel } from \"../../chat_models/universal.js\";\nimport { MultipleStructuredOutputsError } from \"../errors.js\";\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport { PreHookAnnotation, AnyAnnotationRoot } from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport {\n bindTools,\n getPromptRunnable,\n validateLLMHasNoBoundTools,\n hasToolCalls,\n} from \"../utils.js\";\nimport {\n InternalAgentState,\n ClientTool,\n ServerTool,\n CreateAgentParams,\n} from \"../types.js\";\nimport { withAgentName } from \"../withAgentName.js\";\nimport {\n ToolStrategy,\n ProviderStrategy,\n transformResponseFormat,\n ToolStrategyError,\n hasSupportForJsonSchemaOutput,\n} from \"../responses.js\";\n\ntype ResponseHandlerResult<StructuredResponseFormat> =\n | {\n structuredResponse: StructuredResponseFormat;\n messages: BaseMessage[];\n }\n | Promise<Command>;\n\nexport interface AgentNodeOptions<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot,\n StructuredResponseFormat extends Record<string, unknown> = Record<\n string,\n unknown\n >,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot\n> extends Pick<\n CreateAgentParams<StateSchema, StructuredResponseFormat, ContextSchema>,\n \"llm\" | \"model\" | \"prompt\" | \"includeAgentName\" | \"name\" | \"responseFormat\"\n > {\n toolClasses: (ClientTool | ServerTool)[];\n shouldReturnDirect: Set<string>;\n signal?: AbortSignal;\n}\n\ninterface NativeResponseFormat {\n type: \"native\";\n strategy: ProviderStrategy;\n}\n\ninterface ToolResponseFormat {\n type: \"tool\";\n tools: Record<string, ToolStrategy>;\n}\n\ntype ResponseFormat = NativeResponseFormat | ToolResponseFormat;\n\nexport class AgentNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot,\n StructuredResponseFormat extends Record<string, unknown> = Record<\n string,\n unknown\n >,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = AnyAnnotationRoot\n> extends RunnableCallable<\n InternalAgentState<StructuredResponseFormat> & PreHookAnnotation[\"State\"],\n { messages: BaseMessage[] } | { structuredResponse: StructuredResponseFormat }\n> {\n #options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >;\n\n constructor(\n options: AgentNodeOptions<\n StateSchema,\n StructuredResponseFormat,\n ContextSchema\n >\n ) {\n super({\n name: options.name ?? \"model\",\n func: (input, config) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.#run(input, config as RunnableConfig) as any,\n });\n\n this.#options = options;\n }\n\n /**\n * Returns response format primtivies based on given model and response format provided by the user.\n *\n * If the the user selects a tool output:\n * - return a record of tools to extract structured output from the model's response\n *\n * if the the user selects a native schema output or if the model supports JSON schema output:\n * - return a provider strategy to extract structured output from the model's response\n *\n * @param model - The model to get the response format for.\n * @returns The response format.\n */\n #getResponseFormat(\n model: string | LanguageModelLike\n ): ResponseFormat | undefined {\n if (!this.#options.responseFormat) {\n return undefined;\n }\n\n const strategies = transformResponseFormat(\n this.#options.responseFormat,\n undefined,\n model\n );\n\n /**\n * we either define a list of provider strategies or a list of tool strategies\n */\n const isProviderStrategy = strategies.every(\n (format) => format instanceof ProviderStrategy\n );\n\n /**\n * Populate a list of structured tool info.\n */\n if (!isProviderStrategy) {\n return {\n type: \"tool\",\n tools: (\n strategies.filter(\n (format) => format instanceof ToolStrategy\n ) as ToolStrategy[]\n ).reduce((acc, format) => {\n acc[format.name] = format;\n return acc;\n }, {} as Record<string, ToolStrategy>),\n };\n }\n\n return {\n type: \"native\",\n /**\n * there can only be one provider strategy\n */\n strategy: strategies[0],\n };\n }\n\n async #run(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ) {\n /**\n * Check if we just executed a returnDirect tool\n * If so, we should generate structured response (if needed) and stop\n */\n const lastMessage = state.messages[state.messages.length - 1];\n if (\n ToolMessage.isInstance(lastMessage) &&\n lastMessage.name &&\n this.#options.shouldReturnDirect.has(lastMessage.name)\n ) {\n /**\n * return directly without invoking the model again\n */\n return { messages: [] };\n }\n\n const response = await this.#invokeModel(state, config);\n\n /**\n * if we were able to generate a structured response, return it\n */\n if (\"structuredResponse\" in response) {\n return {\n messages: [...state.messages, ...(response.messages || [])],\n structuredResponse: response.structuredResponse,\n };\n }\n\n /**\n * if we need to direct the agent to the model, return the update\n */\n if (response instanceof Command) {\n return response;\n }\n\n response.name = this.name;\n response.lc_kwargs.name = this.name;\n\n if (this.#areMoreStepsNeeded(state, response)) {\n return {\n messages: [\n new AIMessage({\n content: \"Sorry, need more steps to process this request.\",\n name: this.name,\n id: response.id,\n }),\n ],\n };\n }\n\n return { messages: [response] };\n }\n\n /**\n * Derive the model from the options.\n * @param state - The state of the agent.\n * @param config - The config of the agent.\n * @returns The model.\n */\n #deriveModel(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ) {\n if (this.#options.model) {\n if (typeof this.#options.model === \"string\") {\n return initChatModel(this.#options.model);\n }\n\n throw new Error(\"`model` option must be a string.\");\n }\n\n const model = this.#options.llm;\n\n /**\n * If the model is a function, call it to get the model.\n */\n if (typeof model === \"function\") {\n return model(state, config);\n }\n\n if (model) {\n return model;\n }\n\n throw new Error(\n \"No model option was provided, either via `model` or via `llm` option.\"\n );\n }\n\n async #invokeModel(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n config: RunnableConfig,\n options: {\n lastMessage?: string;\n } = {}\n ): Promise<AIMessage | ResponseHandlerResult<StructuredResponseFormat>> {\n const model = await this.#deriveModel(state, config);\n\n /**\n * Check if the LLM already has bound tools and throw if it does.\n */\n validateLLMHasNoBoundTools(model);\n\n const structuredResponseFormat = this.#getResponseFormat(model);\n const modelWithTools = await this.#bindTools(\n model,\n structuredResponseFormat\n );\n const modelInput = this.#getModelInputState(state);\n const signal = mergeAbortSignals(this.#options.signal, config.signal);\n const invokeConfig = {\n ...config,\n signal,\n };\n\n const response = (await modelWithTools.invoke(\n modelInput,\n invokeConfig\n )) as AIMessage;\n\n /**\n * if the user requests a native schema output, try to parse the response\n * and return the structured response if it is valid\n */\n if (structuredResponseFormat?.type === \"native\") {\n const structuredResponse =\n structuredResponseFormat.strategy.parse(response);\n if (structuredResponse) {\n return { structuredResponse, messages: [response] };\n }\n\n return response;\n }\n\n if (!structuredResponseFormat || !response.tool_calls) {\n return response;\n }\n\n const toolCalls = response.tool_calls.filter(\n (call) => call.name in structuredResponseFormat.tools\n );\n\n /**\n * if there were not structured tool calls, we can return the response\n */\n if (toolCalls.length === 0) {\n return response;\n }\n\n /**\n * if there were multiple structured tool calls, we should throw an error as this\n * scenario is not defined/supported.\n */\n if (toolCalls.length > 1) {\n return this.#handleMultipleStructuredOutputs(\n response,\n toolCalls,\n structuredResponseFormat\n );\n }\n\n const toolStrategy = structuredResponseFormat.tools[toolCalls[0].name];\n const toolMessageContent = toolStrategy?.options?.toolMessageContent;\n return this.#handleSingleStructuredOutput(\n response,\n toolCalls[0],\n structuredResponseFormat,\n toolMessageContent ?? options.lastMessage\n );\n }\n\n /**\n * If the model returns multiple structured outputs, we need to handle it.\n * @param response - The response from the model\n * @param toolCalls - The tool calls that were made\n * @returns The response from the model\n */\n #handleMultipleStructuredOutputs(\n response: AIMessage,\n toolCalls: ToolCall[],\n structuredResponseFormat: ToolResponseFormat\n ): Promise<Command> {\n /**\n * the following should never happen, let's throw an error if it does\n */\n if (this.#options.responseFormat instanceof ProviderStrategy) {\n throw new Error(\n \"Multiple structured outputs should not apply to native structured output responses\"\n );\n }\n\n const multipleStructuredOutputsError = new MultipleStructuredOutputsError(\n toolCalls.map((call) => call.name)\n );\n\n return this.#handleToolStrategyError(\n multipleStructuredOutputsError,\n response,\n toolCalls[0],\n structuredResponseFormat\n );\n }\n\n /**\n * If the model returns a single structured output, we need to handle it.\n * @param toolCall - The tool call that was made\n * @returns The structured response and a message to the LLM if needed\n */\n #handleSingleStructuredOutput(\n response: AIMessage,\n toolCall: ToolCall,\n structuredResponseFormat: ToolResponseFormat,\n lastMessage?: string\n ): ResponseHandlerResult<StructuredResponseFormat> {\n const tool = structuredResponseFormat.tools[toolCall.name];\n\n try {\n const structuredResponse = tool.parse(\n toolCall.args\n ) as StructuredResponseFormat;\n\n return {\n structuredResponse,\n messages: [\n response,\n new AIMessage(\n lastMessage ??\n `Returning structured response: ${JSON.stringify(\n structuredResponse\n )}`\n ),\n ],\n };\n } catch (error) {\n return this.#handleToolStrategyError(\n error as ToolStrategyError,\n response,\n toolCall,\n structuredResponseFormat\n );\n }\n }\n\n async #handleToolStrategyError(\n error: ToolStrategyError,\n response: AIMessage,\n toolCall: ToolCall,\n structuredResponseFormat: ToolResponseFormat\n ): Promise<Command> {\n /**\n * Using the `errorHandler` option of the first `ToolStrategy` entry is sufficient here.\n * There is technically only one `ToolStrategy` entry in `structuredToolInfo` if the user\n * uses `toolStrategy` to define the response format. If the user applies a list of json\n * schema objects, these will be transformed into multiple `ToolStrategy` entries but all\n * with the same `handleError` option.\n */\n const errorHandler = Object.values(structuredResponseFormat.tools).at(0)\n ?.options?.handleError;\n\n const toolCallId = toolCall.id;\n if (!toolCallId) {\n throw new Error(\n \"Tool call ID is required to handle tool output errors. Please provide a tool call ID.\"\n );\n }\n\n /**\n * retry if:\n */\n if (\n /**\n * if the user has provided `true` as the `errorHandler` option, return a new AIMessage\n * with the error message and retry the tool call.\n */\n (typeof errorHandler === \"boolean\" && errorHandler) ||\n /**\n * if `errorHandler` is an array and contains MultipleStructuredOutputsError\n */\n (Array.isArray(errorHandler) &&\n errorHandler.some((h) => h instanceof MultipleStructuredOutputsError))\n ) {\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content: error.message,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * if `errorHandler` is a string, retry the tool call with given string\n */\n if (typeof errorHandler === \"string\") {\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content: errorHandler,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * if `errorHandler` is a function, retry the tool call with the function\n */\n if (typeof errorHandler === \"function\") {\n const content = await errorHandler(error);\n if (typeof content !== \"string\") {\n throw new Error(\"Error handler must return a string.\");\n }\n\n return new Command({\n update: {\n messages: [\n response,\n new ToolMessage({\n content,\n tool_call_id: toolCallId,\n }),\n ],\n },\n goto: \"model\",\n });\n }\n\n /**\n * throw otherwise, e.g. if `errorHandler` is not defined or set to `false`\n */\n throw error;\n }\n\n #areMoreStepsNeeded(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"],\n response: BaseMessage\n ): boolean {\n const allToolsReturnDirect =\n AIMessage.isInstance(response) &&\n response.tool_calls?.every((call) =>\n this.#options.shouldReturnDirect.has(call.name)\n );\n const remainingSteps =\n \"remainingSteps\" in state ? (state.remainingSteps as number) : undefined;\n return Boolean(\n remainingSteps &&\n ((remainingSteps < 1 && allToolsReturnDirect) ||\n (remainingSteps < 2 && hasToolCalls(state.messages)))\n );\n }\n\n #getModelInputState(\n state: InternalAgentState<StructuredResponseFormat> &\n PreHookAnnotation[\"State\"]\n ): Omit<InternalAgentState<StructuredResponseFormat>, \"llmInputMessages\"> {\n const { messages, llmInputMessages, ...rest } = state;\n if (llmInputMessages && llmInputMessages.length > 0) {\n return { messages: llmInputMessages, ...rest } as Omit<\n InternalAgentState<StructuredResponseFormat>,\n \"llmInputMessages\"\n >;\n }\n return { messages, ...rest } as Omit<\n InternalAgentState<StructuredResponseFormat>,\n \"llmInputMessages\"\n >;\n }\n\n async #bindTools(\n model: LanguageModelLike,\n structuredResponseFormat: ResponseFormat | undefined\n ): Promise<Runnable> {\n const options: Partial<BaseChatModelCallOptions> = {};\n const structuredTools =\n structuredResponseFormat?.type === \"tool\"\n ? Object.values(structuredResponseFormat.tools)\n : [];\n const allTools = this.#options.toolClasses.concat(\n ...structuredTools.map((toolStrategy) => toolStrategy.tool)\n );\n\n /**\n * If there are structured tools, we need to set the tool choice to \"any\"\n * so that the model can choose to use a structured tool or not.\n */\n const toolChoice = structuredTools.length > 0 ? \"any\" : undefined;\n\n /**\n * check if the user requests a native schema output\n */\n if (structuredResponseFormat?.type === \"native\") {\n /**\n * if the model does not support JSON schema output, throw an error\n */\n if (!hasSupportForJsonSchemaOutput(model)) {\n throw new Error(\n \"Model does not support native structured output responses. Please use a model that supports native structured output responses or use a tool output.\"\n );\n }\n\n const jsonSchemaParams = {\n name: structuredResponseFormat.strategy.schema?.name ?? \"extract\",\n description: getSchemaDescription(\n structuredResponseFormat.strategy.schema\n ),\n schema: structuredResponseFormat.strategy.schema,\n strict: true,\n };\n\n Object.assign(options, {\n response_format: {\n type: \"json_schema\",\n json_schema: jsonSchemaParams,\n },\n ls_structured_output_format: {\n kwargs: { method: \"json_schema\" },\n schema: structuredResponseFormat.strategy.schema,\n },\n strict: true,\n });\n }\n\n /**\n * Bind tools to the model if they are not already bound.\n */\n const modelWithTools = await bindTools(model, allTools, {\n ...options,\n tool_choice: toolChoice,\n });\n\n /**\n * Create a model runnable with the prompt and agent name\n */\n const modelRunnable = getPromptRunnable(this.#options.prompt).pipe(\n this.#options.includeAgentName === \"inline\"\n ? withAgentName(modelWithTools, this.#options.includeAgentName)\n : modelWithTools\n );\n\n return modelRunnable;\n }\n}\n"],"mappings":"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"}
@@ -82,7 +82,7 @@ var ToolNode = class extends require_RunnableCallable.RunnableCallable {
82
82
  ...config,
83
83
  signal: require_utils.mergeAbortSignals(this.signal, config.signal)
84
84
  });
85
- if ((0, __langchain_core_messages.isBaseMessage)(output) && output.getType() === "tool" || (0, __langchain_langgraph.isCommand)(output)) return output;
85
+ if (__langchain_core_messages.ToolMessage.isInstance(output) || (0, __langchain_langgraph.isCommand)(output)) return output;
86
86
  return new __langchain_core_messages.ToolMessage({
87
87
  name: tool.name,
88
88
  content: typeof output === "string" ? output : JSON.stringify(output),
@@ -1 +1 @@
1
- {"version":3,"file":"ToolNode.cjs","names":["input: unknown","isBaseMessage","RunnableCallable","tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[]","options?: ToolNodeOptions","call: ToolCall","config: RunnableConfig","tool","mergeAbortSignals","ToolMessage","e: unknown","ToolInputParsingException","ToolInvocationError","state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"]","outputs: (ToolMessage | Command)[]","messages: BaseMessage[]","toolMessageIds: Set<string>","aiMessage: AIMessage | undefined","AIMessage","isCommand","combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[]","parentCommand: Command | null","Command","x: unknown","Send"],"sources":["../../../src/agents/nodes/ToolNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport {\n BaseMessage,\n ToolMessage,\n AIMessage,\n isBaseMessage,\n isToolMessage,\n} from \"@langchain/core/messages\";\nimport { RunnableConfig, RunnableToolLike } from \"@langchain/core/runnables\";\nimport {\n DynamicTool,\n StructuredToolInterface,\n ToolInputParsingException,\n} from \"@langchain/core/tools\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\nimport type { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n isCommand,\n Command,\n Send,\n isGraphInterrupt,\n} from \"@langchain/langgraph\";\n\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport {\n PreHookAnnotation,\n AnyAnnotationRoot,\n ToAnnotationRoot,\n} from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport { ToolInvocationError } from \"../errors.js\";\n\nexport interface ToolNodeOptions {\n /**\n * The name of the tool node.\n */\n name?: string;\n /**\n * The tags to add to the tool call.\n */\n tags?: string[];\n /**\n * The abort signal to cancel the tool call.\n */\n signal?: AbortSignal;\n /**\n * Whether to throw the error immediately if the tool fails or handle it by the `onToolError` function or via ToolMessage.\n *\n * If `true` (default):\n * - a tool message with the error will be returned to the LLM\n *\n * If `false`:\n * - the error will be thrown immediately\n *\n * If a function is provided:\n * - returns a custom {@link ToolMessage} as result\n * - throws an error otherwise\n *\n * @default true\n */\n handleToolErrors?:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined);\n}\n\nconst isBaseMessageArray = (input: unknown): input is BaseMessage[] =>\n Array.isArray(input) && input.every(isBaseMessage);\n\nconst isMessagesState = (\n input: unknown\n): input is { messages: BaseMessage[] } =>\n typeof input === \"object\" &&\n input != null &&\n \"messages\" in input &&\n isBaseMessageArray(input.messages);\n\nconst isSendInput = (input: unknown): input is { lg_tool_call: ToolCall } =>\n typeof input === \"object\" && input != null && \"lg_tool_call\" in input;\n\n/**\n * `ToolNode` is a built-in LangGraph component that handles tool calls within an agent's workflow.\n * It works seamlessly with `createAgent`, offering advanced tool execution control, built\n * in parallelism, and error handling.\n *\n * @example\n * ```ts\n * import { ToolNode, tool, AIMessage } from \"langchain\";\n * import { z } from \"zod/v3\";\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * }),\n * });\n *\n * const tools = [getWeather];\n * const toolNode = new ToolNode(tools);\n *\n * const messageWithSingleToolCall = new AIMessage({\n * content: \"\",\n * tool_calls: [\n * {\n * name: \"get_weather\",\n * args: { location: \"sf\" },\n * id: \"tool_call_id\",\n * type: \"tool_call\",\n * }\n * ]\n * })\n *\n * await toolNode.invoke({ messages: [messageWithSingleToolCall] });\n * // Returns tool invocation responses as:\n * // { messages: ToolMessage[] }\n * ```\n */\nexport class ToolNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = any,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = any\n> extends RunnableCallable<StateSchema, ContextSchema> {\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[];\n\n trace = false;\n\n signal?: AbortSignal;\n\n handleToolErrors:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined) = true;\n\n constructor(\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[],\n public options?: ToolNodeOptions\n ) {\n const { name, tags, handleToolErrors } = options ?? {};\n super({\n name,\n tags,\n func: (state, config) =>\n this.run(\n state as ToAnnotationRoot<StateSchema>[\"State\"] &\n PreHookAnnotation[\"State\"],\n config as RunnableConfig\n ),\n });\n this.tools = tools;\n this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;\n this.signal = options?.signal;\n }\n\n protected async runTool(\n call: ToolCall,\n config: RunnableConfig\n ): Promise<ToolMessage | Command> {\n const tool = this.tools.find((tool) => tool.name === call.name);\n try {\n if (tool === undefined) {\n throw new Error(`Tool \"${call.name}\" not found.`);\n }\n\n const output = await tool.invoke(\n { ...call, type: \"tool_call\" },\n {\n ...config,\n signal: mergeAbortSignals(this.signal, config.signal),\n }\n );\n\n if (\n (isBaseMessage(output) && output.getType() === \"tool\") ||\n isCommand(output)\n ) {\n return output as ToolMessage | Command;\n }\n\n return new ToolMessage({\n name: tool.name,\n content: typeof output === \"string\" ? output : JSON.stringify(output),\n tool_call_id: call.id!,\n });\n } catch (e: unknown) {\n /**\n * If tool invocation fails due to input parsing error, throw a {@link ToolInvocationError}\n */\n if (e instanceof ToolInputParsingException) {\n throw new ToolInvocationError(e, call);\n }\n\n /**\n * throw the error if user prefers not to handle tool errors\n */\n if (!this.handleToolErrors) {\n throw e;\n }\n\n if (isGraphInterrupt(e)) {\n /**\n * {@link NodeInterrupt} errors are a breakpoint to bring a human into the loop.\n * As such, they are not recoverable by the agent and shouldn't be fed\n * back. Instead, re-throw these errors even when `handleToolErrors = true`.\n */\n throw e;\n }\n\n /**\n * If the signal is aborted, we want to bubble up the error to the invoke caller.\n */\n if (this.signal?.aborted) {\n throw e;\n }\n\n /**\n * if the user provides a function, call it with the error and tool call\n * and return the result if it is a {@link ToolMessage}\n */\n if (typeof this.handleToolErrors === \"function\") {\n const result = this.handleToolErrors(e, call);\n if (result && isToolMessage(result)) {\n return result;\n }\n } else if (this.handleToolErrors) {\n return new ToolMessage({\n name: call.name,\n content: `${e}\\n Please fix your mistakes.`,\n tool_call_id: call.id!,\n });\n }\n\n /**\n * If the user doesn't handle the error, throw it\n */\n throw e;\n }\n }\n\n protected async run(\n state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ): Promise<ContextSchema> {\n let outputs: (ToolMessage | Command)[];\n\n if (isSendInput(state)) {\n outputs = [await this.runTool(state.lg_tool_call, config)];\n } else {\n let messages: BaseMessage[];\n if (isBaseMessageArray(state)) {\n messages = state;\n } else if (isMessagesState(state)) {\n messages = state.messages;\n } else {\n throw new Error(\n \"ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.\"\n );\n }\n\n const toolMessageIds: Set<string> = new Set(\n messages\n .filter((msg) => msg.getType() === \"tool\")\n .map((msg) => (msg as ToolMessage).tool_call_id)\n );\n\n let aiMessage: AIMessage | undefined;\n for (let i = messages.length - 1; i >= 0; i -= 1) {\n const message = messages[i];\n if (AIMessage.isInstance(message)) {\n aiMessage = message;\n break;\n }\n }\n\n if (!AIMessage.isInstance(aiMessage)) {\n throw new Error(\"ToolNode only accepts AIMessages as input.\");\n }\n\n outputs = await Promise.all(\n aiMessage.tool_calls\n ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))\n .map((call) => this.runTool(call, config)) ?? []\n );\n }\n\n // Preserve existing behavior for non-command tool outputs for backwards compatibility\n if (!outputs.some(isCommand)) {\n return (Array.isArray(state)\n ? outputs\n : { messages: outputs }) as unknown as ContextSchema;\n }\n\n // Handle mixed Command and non-Command outputs\n const combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[] = [];\n let parentCommand: Command | null = null;\n\n for (const output of outputs) {\n if (isCommand(output)) {\n if (\n output.graph === Command.PARENT &&\n Array.isArray(output.goto) &&\n output.goto.every((send) => isSend(send))\n ) {\n if (parentCommand) {\n (parentCommand.goto as Send[]).push(...(output.goto as Send[]));\n } else {\n parentCommand = new Command({\n graph: Command.PARENT,\n goto: output.goto,\n });\n }\n } else {\n combinedOutputs.push(output);\n }\n } else {\n combinedOutputs.push(\n Array.isArray(state) ? [output] : { messages: [output] }\n );\n }\n }\n\n if (parentCommand) {\n combinedOutputs.push(parentCommand);\n }\n\n return combinedOutputs as unknown as ContextSchema;\n }\n}\n\nexport function isSend(x: unknown): x is Send {\n return x instanceof Send;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ToolNode.cjs","names":["input: unknown","isBaseMessage","RunnableCallable","tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[]","options?: ToolNodeOptions","call: ToolCall","config: RunnableConfig","tool","mergeAbortSignals","ToolMessage","e: unknown","ToolInputParsingException","ToolInvocationError","state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"]","outputs: (ToolMessage | Command)[]","messages: BaseMessage[]","toolMessageIds: Set<string>","aiMessage: AIMessage | undefined","AIMessage","isCommand","combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[]","parentCommand: Command | null","Command","x: unknown","Send"],"sources":["../../../src/agents/nodes/ToolNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport {\n BaseMessage,\n ToolMessage,\n AIMessage,\n isBaseMessage,\n isToolMessage,\n} from \"@langchain/core/messages\";\nimport { RunnableConfig, RunnableToolLike } from \"@langchain/core/runnables\";\nimport {\n DynamicTool,\n StructuredToolInterface,\n ToolInputParsingException,\n} from \"@langchain/core/tools\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\nimport type { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n isCommand,\n Command,\n Send,\n isGraphInterrupt,\n} from \"@langchain/langgraph\";\n\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport {\n PreHookAnnotation,\n AnyAnnotationRoot,\n ToAnnotationRoot,\n} from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport { ToolInvocationError } from \"../errors.js\";\n\nexport interface ToolNodeOptions {\n /**\n * The name of the tool node.\n */\n name?: string;\n /**\n * The tags to add to the tool call.\n */\n tags?: string[];\n /**\n * The abort signal to cancel the tool call.\n */\n signal?: AbortSignal;\n /**\n * Whether to throw the error immediately if the tool fails or handle it by the `onToolError` function or via ToolMessage.\n *\n * If `true` (default):\n * - a tool message with the error will be returned to the LLM\n *\n * If `false`:\n * - the error will be thrown immediately\n *\n * If a function is provided:\n * - returns a custom {@link ToolMessage} as result\n * - throws an error otherwise\n *\n * @default true\n */\n handleToolErrors?:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined);\n}\n\nconst isBaseMessageArray = (input: unknown): input is BaseMessage[] =>\n Array.isArray(input) && input.every(isBaseMessage);\n\nconst isMessagesState = (\n input: unknown\n): input is { messages: BaseMessage[] } =>\n typeof input === \"object\" &&\n input != null &&\n \"messages\" in input &&\n isBaseMessageArray(input.messages);\n\nconst isSendInput = (input: unknown): input is { lg_tool_call: ToolCall } =>\n typeof input === \"object\" && input != null && \"lg_tool_call\" in input;\n\n/**\n * `ToolNode` is a built-in LangGraph component that handles tool calls within an agent's workflow.\n * It works seamlessly with `createAgent`, offering advanced tool execution control, built\n * in parallelism, and error handling.\n *\n * @example\n * ```ts\n * import { ToolNode, tool, AIMessage } from \"langchain\";\n * import { z } from \"zod/v3\";\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * }),\n * });\n *\n * const tools = [getWeather];\n * const toolNode = new ToolNode(tools);\n *\n * const messageWithSingleToolCall = new AIMessage({\n * content: \"\",\n * tool_calls: [\n * {\n * name: \"get_weather\",\n * args: { location: \"sf\" },\n * id: \"tool_call_id\",\n * type: \"tool_call\",\n * }\n * ]\n * })\n *\n * await toolNode.invoke({ messages: [messageWithSingleToolCall] });\n * // Returns tool invocation responses as:\n * // { messages: ToolMessage[] }\n * ```\n */\nexport class ToolNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = any,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = any\n> extends RunnableCallable<StateSchema, ContextSchema> {\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[];\n\n trace = false;\n\n signal?: AbortSignal;\n\n handleToolErrors:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined) = true;\n\n constructor(\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[],\n public options?: ToolNodeOptions\n ) {\n const { name, tags, handleToolErrors } = options ?? {};\n super({\n name,\n tags,\n func: (state, config) =>\n this.run(\n state as ToAnnotationRoot<StateSchema>[\"State\"] &\n PreHookAnnotation[\"State\"],\n config as RunnableConfig\n ),\n });\n this.tools = tools;\n this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;\n this.signal = options?.signal;\n }\n\n protected async runTool(\n call: ToolCall,\n config: RunnableConfig\n ): Promise<ToolMessage | Command> {\n const tool = this.tools.find((tool) => tool.name === call.name);\n try {\n if (tool === undefined) {\n throw new Error(`Tool \"${call.name}\" not found.`);\n }\n\n const output = await tool.invoke(\n { ...call, type: \"tool_call\" },\n {\n ...config,\n signal: mergeAbortSignals(this.signal, config.signal),\n }\n );\n\n if (ToolMessage.isInstance(output) || isCommand(output)) {\n return output as ToolMessage | Command;\n }\n\n return new ToolMessage({\n name: tool.name,\n content: typeof output === \"string\" ? output : JSON.stringify(output),\n tool_call_id: call.id!,\n });\n } catch (e: unknown) {\n /**\n * If tool invocation fails due to input parsing error, throw a {@link ToolInvocationError}\n */\n if (e instanceof ToolInputParsingException) {\n throw new ToolInvocationError(e, call);\n }\n\n /**\n * throw the error if user prefers not to handle tool errors\n */\n if (!this.handleToolErrors) {\n throw e;\n }\n\n if (isGraphInterrupt(e)) {\n /**\n * {@link NodeInterrupt} errors are a breakpoint to bring a human into the loop.\n * As such, they are not recoverable by the agent and shouldn't be fed\n * back. Instead, re-throw these errors even when `handleToolErrors = true`.\n */\n throw e;\n }\n\n /**\n * If the signal is aborted, we want to bubble up the error to the invoke caller.\n */\n if (this.signal?.aborted) {\n throw e;\n }\n\n /**\n * if the user provides a function, call it with the error and tool call\n * and return the result if it is a {@link ToolMessage}\n */\n if (typeof this.handleToolErrors === \"function\") {\n const result = this.handleToolErrors(e, call);\n if (result && isToolMessage(result)) {\n return result;\n }\n } else if (this.handleToolErrors) {\n return new ToolMessage({\n name: call.name,\n content: `${e}\\n Please fix your mistakes.`,\n tool_call_id: call.id!,\n });\n }\n\n /**\n * If the user doesn't handle the error, throw it\n */\n throw e;\n }\n }\n\n protected async run(\n state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ): Promise<ContextSchema> {\n let outputs: (ToolMessage | Command)[];\n\n if (isSendInput(state)) {\n outputs = [await this.runTool(state.lg_tool_call, config)];\n } else {\n let messages: BaseMessage[];\n if (isBaseMessageArray(state)) {\n messages = state;\n } else if (isMessagesState(state)) {\n messages = state.messages;\n } else {\n throw new Error(\n \"ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.\"\n );\n }\n\n const toolMessageIds: Set<string> = new Set(\n messages\n .filter((msg) => msg.getType() === \"tool\")\n .map((msg) => (msg as ToolMessage).tool_call_id)\n );\n\n let aiMessage: AIMessage | undefined;\n for (let i = messages.length - 1; i >= 0; i -= 1) {\n const message = messages[i];\n if (AIMessage.isInstance(message)) {\n aiMessage = message;\n break;\n }\n }\n\n if (!AIMessage.isInstance(aiMessage)) {\n throw new Error(\"ToolNode only accepts AIMessages as input.\");\n }\n\n outputs = await Promise.all(\n aiMessage.tool_calls\n ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))\n .map((call) => this.runTool(call, config)) ?? []\n );\n }\n\n // Preserve existing behavior for non-command tool outputs for backwards compatibility\n if (!outputs.some(isCommand)) {\n return (Array.isArray(state)\n ? outputs\n : { messages: outputs }) as unknown as ContextSchema;\n }\n\n // Handle mixed Command and non-Command outputs\n const combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[] = [];\n let parentCommand: Command | null = null;\n\n for (const output of outputs) {\n if (isCommand(output)) {\n if (\n output.graph === Command.PARENT &&\n Array.isArray(output.goto) &&\n output.goto.every((send) => isSend(send))\n ) {\n if (parentCommand) {\n (parentCommand.goto as Send[]).push(...(output.goto as Send[]));\n } else {\n parentCommand = new Command({\n graph: Command.PARENT,\n goto: output.goto,\n });\n }\n } else {\n combinedOutputs.push(output);\n }\n } else {\n combinedOutputs.push(\n Array.isArray(state) ? [output] : { messages: [output] }\n );\n }\n }\n\n if (parentCommand) {\n combinedOutputs.push(parentCommand);\n }\n\n return combinedOutputs as unknown as ContextSchema;\n }\n}\n\nexport function isSend(x: unknown): x is Send {\n return x instanceof Send;\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { AnyAnnotationRoot, PreHookAnnotation, ToAnnotationRoot } from "../annotation.cjs";
2
2
  import { RunnableCallable } from "../RunnableCallable.cjs";
3
3
  import { InteropZodObject } from "@langchain/core/utils/types";
4
- import { Command } from "@langchain/langgraph";
5
4
  import { ToolMessage } from "@langchain/core/messages";
6
- import { RunnableConfig, RunnableToolLike } from "@langchain/core/runnables";
5
+ import { Command } from "@langchain/langgraph";
7
6
  import { ToolCall } from "@langchain/core/messages/tool";
7
+ import { RunnableConfig, RunnableToolLike } from "@langchain/core/runnables";
8
8
  import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
9
9
 
10
10
  //#region src/agents/nodes/ToolNode.d.ts
@@ -81,7 +81,7 @@ var ToolNode = class extends RunnableCallable {
81
81
  ...config,
82
82
  signal: mergeAbortSignals(this.signal, config.signal)
83
83
  });
84
- if (isBaseMessage(output) && output.getType() === "tool" || isCommand(output)) return output;
84
+ if (ToolMessage.isInstance(output) || isCommand(output)) return output;
85
85
  return new ToolMessage({
86
86
  name: tool.name,
87
87
  content: typeof output === "string" ? output : JSON.stringify(output),
@@ -1 +1 @@
1
- {"version":3,"file":"ToolNode.js","names":["input: unknown","tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[]","options?: ToolNodeOptions","call: ToolCall","config: RunnableConfig","tool","e: unknown","state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"]","outputs: (ToolMessage | Command)[]","messages: BaseMessage[]","toolMessageIds: Set<string>","aiMessage: AIMessage | undefined","combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[]","parentCommand: Command | null","x: unknown"],"sources":["../../../src/agents/nodes/ToolNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport {\n BaseMessage,\n ToolMessage,\n AIMessage,\n isBaseMessage,\n isToolMessage,\n} from \"@langchain/core/messages\";\nimport { RunnableConfig, RunnableToolLike } from \"@langchain/core/runnables\";\nimport {\n DynamicTool,\n StructuredToolInterface,\n ToolInputParsingException,\n} from \"@langchain/core/tools\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\nimport type { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n isCommand,\n Command,\n Send,\n isGraphInterrupt,\n} from \"@langchain/langgraph\";\n\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport {\n PreHookAnnotation,\n AnyAnnotationRoot,\n ToAnnotationRoot,\n} from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport { ToolInvocationError } from \"../errors.js\";\n\nexport interface ToolNodeOptions {\n /**\n * The name of the tool node.\n */\n name?: string;\n /**\n * The tags to add to the tool call.\n */\n tags?: string[];\n /**\n * The abort signal to cancel the tool call.\n */\n signal?: AbortSignal;\n /**\n * Whether to throw the error immediately if the tool fails or handle it by the `onToolError` function or via ToolMessage.\n *\n * If `true` (default):\n * - a tool message with the error will be returned to the LLM\n *\n * If `false`:\n * - the error will be thrown immediately\n *\n * If a function is provided:\n * - returns a custom {@link ToolMessage} as result\n * - throws an error otherwise\n *\n * @default true\n */\n handleToolErrors?:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined);\n}\n\nconst isBaseMessageArray = (input: unknown): input is BaseMessage[] =>\n Array.isArray(input) && input.every(isBaseMessage);\n\nconst isMessagesState = (\n input: unknown\n): input is { messages: BaseMessage[] } =>\n typeof input === \"object\" &&\n input != null &&\n \"messages\" in input &&\n isBaseMessageArray(input.messages);\n\nconst isSendInput = (input: unknown): input is { lg_tool_call: ToolCall } =>\n typeof input === \"object\" && input != null && \"lg_tool_call\" in input;\n\n/**\n * `ToolNode` is a built-in LangGraph component that handles tool calls within an agent's workflow.\n * It works seamlessly with `createAgent`, offering advanced tool execution control, built\n * in parallelism, and error handling.\n *\n * @example\n * ```ts\n * import { ToolNode, tool, AIMessage } from \"langchain\";\n * import { z } from \"zod/v3\";\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * }),\n * });\n *\n * const tools = [getWeather];\n * const toolNode = new ToolNode(tools);\n *\n * const messageWithSingleToolCall = new AIMessage({\n * content: \"\",\n * tool_calls: [\n * {\n * name: \"get_weather\",\n * args: { location: \"sf\" },\n * id: \"tool_call_id\",\n * type: \"tool_call\",\n * }\n * ]\n * })\n *\n * await toolNode.invoke({ messages: [messageWithSingleToolCall] });\n * // Returns tool invocation responses as:\n * // { messages: ToolMessage[] }\n * ```\n */\nexport class ToolNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = any,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = any\n> extends RunnableCallable<StateSchema, ContextSchema> {\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[];\n\n trace = false;\n\n signal?: AbortSignal;\n\n handleToolErrors:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined) = true;\n\n constructor(\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[],\n public options?: ToolNodeOptions\n ) {\n const { name, tags, handleToolErrors } = options ?? {};\n super({\n name,\n tags,\n func: (state, config) =>\n this.run(\n state as ToAnnotationRoot<StateSchema>[\"State\"] &\n PreHookAnnotation[\"State\"],\n config as RunnableConfig\n ),\n });\n this.tools = tools;\n this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;\n this.signal = options?.signal;\n }\n\n protected async runTool(\n call: ToolCall,\n config: RunnableConfig\n ): Promise<ToolMessage | Command> {\n const tool = this.tools.find((tool) => tool.name === call.name);\n try {\n if (tool === undefined) {\n throw new Error(`Tool \"${call.name}\" not found.`);\n }\n\n const output = await tool.invoke(\n { ...call, type: \"tool_call\" },\n {\n ...config,\n signal: mergeAbortSignals(this.signal, config.signal),\n }\n );\n\n if (\n (isBaseMessage(output) && output.getType() === \"tool\") ||\n isCommand(output)\n ) {\n return output as ToolMessage | Command;\n }\n\n return new ToolMessage({\n name: tool.name,\n content: typeof output === \"string\" ? output : JSON.stringify(output),\n tool_call_id: call.id!,\n });\n } catch (e: unknown) {\n /**\n * If tool invocation fails due to input parsing error, throw a {@link ToolInvocationError}\n */\n if (e instanceof ToolInputParsingException) {\n throw new ToolInvocationError(e, call);\n }\n\n /**\n * throw the error if user prefers not to handle tool errors\n */\n if (!this.handleToolErrors) {\n throw e;\n }\n\n if (isGraphInterrupt(e)) {\n /**\n * {@link NodeInterrupt} errors are a breakpoint to bring a human into the loop.\n * As such, they are not recoverable by the agent and shouldn't be fed\n * back. Instead, re-throw these errors even when `handleToolErrors = true`.\n */\n throw e;\n }\n\n /**\n * If the signal is aborted, we want to bubble up the error to the invoke caller.\n */\n if (this.signal?.aborted) {\n throw e;\n }\n\n /**\n * if the user provides a function, call it with the error and tool call\n * and return the result if it is a {@link ToolMessage}\n */\n if (typeof this.handleToolErrors === \"function\") {\n const result = this.handleToolErrors(e, call);\n if (result && isToolMessage(result)) {\n return result;\n }\n } else if (this.handleToolErrors) {\n return new ToolMessage({\n name: call.name,\n content: `${e}\\n Please fix your mistakes.`,\n tool_call_id: call.id!,\n });\n }\n\n /**\n * If the user doesn't handle the error, throw it\n */\n throw e;\n }\n }\n\n protected async run(\n state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ): Promise<ContextSchema> {\n let outputs: (ToolMessage | Command)[];\n\n if (isSendInput(state)) {\n outputs = [await this.runTool(state.lg_tool_call, config)];\n } else {\n let messages: BaseMessage[];\n if (isBaseMessageArray(state)) {\n messages = state;\n } else if (isMessagesState(state)) {\n messages = state.messages;\n } else {\n throw new Error(\n \"ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.\"\n );\n }\n\n const toolMessageIds: Set<string> = new Set(\n messages\n .filter((msg) => msg.getType() === \"tool\")\n .map((msg) => (msg as ToolMessage).tool_call_id)\n );\n\n let aiMessage: AIMessage | undefined;\n for (let i = messages.length - 1; i >= 0; i -= 1) {\n const message = messages[i];\n if (AIMessage.isInstance(message)) {\n aiMessage = message;\n break;\n }\n }\n\n if (!AIMessage.isInstance(aiMessage)) {\n throw new Error(\"ToolNode only accepts AIMessages as input.\");\n }\n\n outputs = await Promise.all(\n aiMessage.tool_calls\n ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))\n .map((call) => this.runTool(call, config)) ?? []\n );\n }\n\n // Preserve existing behavior for non-command tool outputs for backwards compatibility\n if (!outputs.some(isCommand)) {\n return (Array.isArray(state)\n ? outputs\n : { messages: outputs }) as unknown as ContextSchema;\n }\n\n // Handle mixed Command and non-Command outputs\n const combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[] = [];\n let parentCommand: Command | null = null;\n\n for (const output of outputs) {\n if (isCommand(output)) {\n if (\n output.graph === Command.PARENT &&\n Array.isArray(output.goto) &&\n output.goto.every((send) => isSend(send))\n ) {\n if (parentCommand) {\n (parentCommand.goto as Send[]).push(...(output.goto as Send[]));\n } else {\n parentCommand = new Command({\n graph: Command.PARENT,\n goto: output.goto,\n });\n }\n } else {\n combinedOutputs.push(output);\n }\n } else {\n combinedOutputs.push(\n Array.isArray(state) ? [output] : { messages: [output] }\n );\n }\n }\n\n if (parentCommand) {\n combinedOutputs.push(parentCommand);\n }\n\n return combinedOutputs as unknown as ContextSchema;\n }\n}\n\nexport function isSend(x: unknown): x is Send {\n return x instanceof Send;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ToolNode.js","names":["input: unknown","tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[]","options?: ToolNodeOptions","call: ToolCall","config: RunnableConfig","tool","e: unknown","state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"]","outputs: (ToolMessage | Command)[]","messages: BaseMessage[]","toolMessageIds: Set<string>","aiMessage: AIMessage | undefined","combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[]","parentCommand: Command | null","x: unknown"],"sources":["../../../src/agents/nodes/ToolNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport {\n BaseMessage,\n ToolMessage,\n AIMessage,\n isBaseMessage,\n isToolMessage,\n} from \"@langchain/core/messages\";\nimport { RunnableConfig, RunnableToolLike } from \"@langchain/core/runnables\";\nimport {\n DynamicTool,\n StructuredToolInterface,\n ToolInputParsingException,\n} from \"@langchain/core/tools\";\nimport type { ToolCall } from \"@langchain/core/messages/tool\";\nimport type { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n isCommand,\n Command,\n Send,\n isGraphInterrupt,\n} from \"@langchain/langgraph\";\n\nimport { RunnableCallable } from \"../RunnableCallable.js\";\nimport {\n PreHookAnnotation,\n AnyAnnotationRoot,\n ToAnnotationRoot,\n} from \"../annotation.js\";\nimport { mergeAbortSignals } from \"./utils.js\";\nimport { ToolInvocationError } from \"../errors.js\";\n\nexport interface ToolNodeOptions {\n /**\n * The name of the tool node.\n */\n name?: string;\n /**\n * The tags to add to the tool call.\n */\n tags?: string[];\n /**\n * The abort signal to cancel the tool call.\n */\n signal?: AbortSignal;\n /**\n * Whether to throw the error immediately if the tool fails or handle it by the `onToolError` function or via ToolMessage.\n *\n * If `true` (default):\n * - a tool message with the error will be returned to the LLM\n *\n * If `false`:\n * - the error will be thrown immediately\n *\n * If a function is provided:\n * - returns a custom {@link ToolMessage} as result\n * - throws an error otherwise\n *\n * @default true\n */\n handleToolErrors?:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined);\n}\n\nconst isBaseMessageArray = (input: unknown): input is BaseMessage[] =>\n Array.isArray(input) && input.every(isBaseMessage);\n\nconst isMessagesState = (\n input: unknown\n): input is { messages: BaseMessage[] } =>\n typeof input === \"object\" &&\n input != null &&\n \"messages\" in input &&\n isBaseMessageArray(input.messages);\n\nconst isSendInput = (input: unknown): input is { lg_tool_call: ToolCall } =>\n typeof input === \"object\" && input != null && \"lg_tool_call\" in input;\n\n/**\n * `ToolNode` is a built-in LangGraph component that handles tool calls within an agent's workflow.\n * It works seamlessly with `createAgent`, offering advanced tool execution control, built\n * in parallelism, and error handling.\n *\n * @example\n * ```ts\n * import { ToolNode, tool, AIMessage } from \"langchain\";\n * import { z } from \"zod/v3\";\n *\n * const getWeather = tool((input) => {\n * if ([\"sf\", \"san francisco\"].includes(input.location.toLowerCase())) {\n * return \"It's 60 degrees and foggy.\";\n * } else {\n * return \"It's 90 degrees and sunny.\";\n * }\n * }, {\n * name: \"get_weather\",\n * description: \"Call to get the current weather.\",\n * schema: z.object({\n * location: z.string().describe(\"Location to get the weather for.\"),\n * }),\n * });\n *\n * const tools = [getWeather];\n * const toolNode = new ToolNode(tools);\n *\n * const messageWithSingleToolCall = new AIMessage({\n * content: \"\",\n * tool_calls: [\n * {\n * name: \"get_weather\",\n * args: { location: \"sf\" },\n * id: \"tool_call_id\",\n * type: \"tool_call\",\n * }\n * ]\n * })\n *\n * await toolNode.invoke({ messages: [messageWithSingleToolCall] });\n * // Returns tool invocation responses as:\n * // { messages: ToolMessage[] }\n * ```\n */\nexport class ToolNode<\n StateSchema extends AnyAnnotationRoot | InteropZodObject = any,\n ContextSchema extends AnyAnnotationRoot | InteropZodObject = any\n> extends RunnableCallable<StateSchema, ContextSchema> {\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[];\n\n trace = false;\n\n signal?: AbortSignal;\n\n handleToolErrors:\n | boolean\n | ((error: unknown, toolCall: ToolCall) => ToolMessage | undefined) = true;\n\n constructor(\n tools: (StructuredToolInterface | DynamicTool | RunnableToolLike)[],\n public options?: ToolNodeOptions\n ) {\n const { name, tags, handleToolErrors } = options ?? {};\n super({\n name,\n tags,\n func: (state, config) =>\n this.run(\n state as ToAnnotationRoot<StateSchema>[\"State\"] &\n PreHookAnnotation[\"State\"],\n config as RunnableConfig\n ),\n });\n this.tools = tools;\n this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;\n this.signal = options?.signal;\n }\n\n protected async runTool(\n call: ToolCall,\n config: RunnableConfig\n ): Promise<ToolMessage | Command> {\n const tool = this.tools.find((tool) => tool.name === call.name);\n try {\n if (tool === undefined) {\n throw new Error(`Tool \"${call.name}\" not found.`);\n }\n\n const output = await tool.invoke(\n { ...call, type: \"tool_call\" },\n {\n ...config,\n signal: mergeAbortSignals(this.signal, config.signal),\n }\n );\n\n if (ToolMessage.isInstance(output) || isCommand(output)) {\n return output as ToolMessage | Command;\n }\n\n return new ToolMessage({\n name: tool.name,\n content: typeof output === \"string\" ? output : JSON.stringify(output),\n tool_call_id: call.id!,\n });\n } catch (e: unknown) {\n /**\n * If tool invocation fails due to input parsing error, throw a {@link ToolInvocationError}\n */\n if (e instanceof ToolInputParsingException) {\n throw new ToolInvocationError(e, call);\n }\n\n /**\n * throw the error if user prefers not to handle tool errors\n */\n if (!this.handleToolErrors) {\n throw e;\n }\n\n if (isGraphInterrupt(e)) {\n /**\n * {@link NodeInterrupt} errors are a breakpoint to bring a human into the loop.\n * As such, they are not recoverable by the agent and shouldn't be fed\n * back. Instead, re-throw these errors even when `handleToolErrors = true`.\n */\n throw e;\n }\n\n /**\n * If the signal is aborted, we want to bubble up the error to the invoke caller.\n */\n if (this.signal?.aborted) {\n throw e;\n }\n\n /**\n * if the user provides a function, call it with the error and tool call\n * and return the result if it is a {@link ToolMessage}\n */\n if (typeof this.handleToolErrors === \"function\") {\n const result = this.handleToolErrors(e, call);\n if (result && isToolMessage(result)) {\n return result;\n }\n } else if (this.handleToolErrors) {\n return new ToolMessage({\n name: call.name,\n content: `${e}\\n Please fix your mistakes.`,\n tool_call_id: call.id!,\n });\n }\n\n /**\n * If the user doesn't handle the error, throw it\n */\n throw e;\n }\n }\n\n protected async run(\n state: ToAnnotationRoot<StateSchema>[\"State\"] & PreHookAnnotation[\"State\"],\n config: RunnableConfig\n ): Promise<ContextSchema> {\n let outputs: (ToolMessage | Command)[];\n\n if (isSendInput(state)) {\n outputs = [await this.runTool(state.lg_tool_call, config)];\n } else {\n let messages: BaseMessage[];\n if (isBaseMessageArray(state)) {\n messages = state;\n } else if (isMessagesState(state)) {\n messages = state.messages;\n } else {\n throw new Error(\n \"ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.\"\n );\n }\n\n const toolMessageIds: Set<string> = new Set(\n messages\n .filter((msg) => msg.getType() === \"tool\")\n .map((msg) => (msg as ToolMessage).tool_call_id)\n );\n\n let aiMessage: AIMessage | undefined;\n for (let i = messages.length - 1; i >= 0; i -= 1) {\n const message = messages[i];\n if (AIMessage.isInstance(message)) {\n aiMessage = message;\n break;\n }\n }\n\n if (!AIMessage.isInstance(aiMessage)) {\n throw new Error(\"ToolNode only accepts AIMessages as input.\");\n }\n\n outputs = await Promise.all(\n aiMessage.tool_calls\n ?.filter((call) => call.id == null || !toolMessageIds.has(call.id))\n .map((call) => this.runTool(call, config)) ?? []\n );\n }\n\n // Preserve existing behavior for non-command tool outputs for backwards compatibility\n if (!outputs.some(isCommand)) {\n return (Array.isArray(state)\n ? outputs\n : { messages: outputs }) as unknown as ContextSchema;\n }\n\n // Handle mixed Command and non-Command outputs\n const combinedOutputs: (\n | { messages: BaseMessage[] }\n | BaseMessage[]\n | Command\n )[] = [];\n let parentCommand: Command | null = null;\n\n for (const output of outputs) {\n if (isCommand(output)) {\n if (\n output.graph === Command.PARENT &&\n Array.isArray(output.goto) &&\n output.goto.every((send) => isSend(send))\n ) {\n if (parentCommand) {\n (parentCommand.goto as Send[]).push(...(output.goto as Send[]));\n } else {\n parentCommand = new Command({\n graph: Command.PARENT,\n goto: output.goto,\n });\n }\n } else {\n combinedOutputs.push(output);\n }\n } else {\n combinedOutputs.push(\n Array.isArray(state) ? [output] : { messages: [output] }\n );\n }\n }\n\n if (parentCommand) {\n combinedOutputs.push(parentCommand);\n }\n\n return combinedOutputs as unknown as ContextSchema;\n }\n}\n\nexport function isSend(x: unknown): x is Send {\n return x instanceof Send;\n}\n"],"mappings":";;;;;;;;AAkEA,MAAM,qBAAqB,CAACA,UAC1B,MAAM,QAAQ,MAAM,IAAI,MAAM,MAAM,cAAc;AAEpD,MAAM,kBAAkB,CACtBA,UAEA,OAAO,UAAU,YACjB,SAAS,QACT,cAAc,SACd,mBAAmB,MAAM,SAAS;AAEpC,MAAM,cAAc,CAACA,UACnB,OAAO,UAAU,YAAY,SAAS,QAAQ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ClE,IAAa,WAAb,cAGU,iBAA6C;CACrD;CAEA,QAAQ;CAER;CAEA,mBAEwE;CAExE,YACEC,OACOC,SACP;EACA,MAAM,EAAE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAE;EACtD,MAAM;GACJ;GACA;GACA,MAAM,CAAC,OAAO,WACZ,KAAK,IACH,OAEA,OACD;EACJ,EAAC;EAZK;EAaP,KAAK,QAAQ;EACb,KAAK,mBAAmB,oBAAoB,KAAK;EACjD,KAAK,SAAS,SAAS;CACxB;CAED,MAAgB,QACdC,MACAC,QACgC;EAChC,MAAM,OAAO,KAAK,MAAM,KAAK,CAACC,WAASA,OAAK,SAAS,KAAK,KAAK;AAC/D,MAAI;AACF,OAAI,SAAS,OACX,OAAM,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,YAAY,CAAC;GAGlD,MAAM,SAAS,MAAM,KAAK,OACxB;IAAE,GAAG;IAAM,MAAM;GAAa,GAC9B;IACE,GAAG;IACH,QAAQ,kBAAkB,KAAK,QAAQ,OAAO,OAAO;GACtD,EACF;AAED,OAAI,YAAY,WAAW,OAAO,IAAI,UAAU,OAAO,CACrD,QAAO;AAGT,UAAO,IAAI,YAAY;IACrB,MAAM,KAAK;IACX,SAAS,OAAO,WAAW,WAAW,SAAS,KAAK,UAAU,OAAO;IACrE,cAAc,KAAK;GACpB;EACF,SAAQC,GAAY;;;;AAInB,OAAI,aAAa,0BACf,OAAM,IAAI,oBAAoB,GAAG;;;;AAMnC,OAAI,CAAC,KAAK,iBACR,OAAM;AAGR,OAAI,iBAAiB,EAAE;;;;;;AAMrB,SAAM;;;;AAMR,OAAI,KAAK,QAAQ,QACf,OAAM;;;;;AAOR,OAAI,OAAO,KAAK,qBAAqB,YAAY;IAC/C,MAAM,SAAS,KAAK,iBAAiB,GAAG,KAAK;AAC7C,QAAI,UAAU,cAAc,OAAO,CACjC,QAAO;GAEV,WAAU,KAAK,iBACd,QAAO,IAAI,YAAY;IACrB,MAAM,KAAK;IACX,SAAS,GAAG,EAAE,4BAA4B,CAAC;IAC3C,cAAc,KAAK;GACpB;;;;AAMH,SAAM;EACP;CACF;CAED,MAAgB,IACdC,OACAH,QACwB;EACxB,IAAII;AAEJ,MAAI,YAAY,MAAM,EACpB,UAAU,CAAC,MAAM,KAAK,QAAQ,MAAM,cAAc,OAAO,AAAC;OACrD;GACL,IAAIC;AACJ,OAAI,mBAAmB,MAAM,EAC3B,WAAW;YACF,gBAAgB,MAAM,EAC/B,WAAW,MAAM;OAEjB,OAAM,IAAI,MACR;GAIJ,MAAMC,iBAA8B,IAAI,IACtC,SACG,OAAO,CAAC,QAAQ,IAAI,SAAS,KAAK,OAAO,CACzC,IAAI,CAAC,QAAS,IAAoB,aAAa;GAGpD,IAAIC;AACJ,QAAK,IAAI,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;IAChD,MAAM,UAAU,SAAS;AACzB,QAAI,UAAU,WAAW,QAAQ,EAAE;KACjC,YAAY;AACZ;IACD;GACF;AAED,OAAI,CAAC,UAAU,WAAW,UAAU,CAClC,OAAM,IAAI,MAAM;GAGlB,UAAU,MAAM,QAAQ,IACtB,UAAU,YACN,OAAO,CAAC,SAAS,KAAK,MAAM,QAAQ,CAAC,eAAe,IAAI,KAAK,GAAG,CAAC,CAClE,IAAI,CAAC,SAAS,KAAK,QAAQ,MAAM,OAAO,CAAC,IAAI,CAAE,EACnD;EACF;AAGD,MAAI,CAAC,QAAQ,KAAK,UAAU,CAC1B,QAAQ,MAAM,QAAQ,MAAM,GACxB,UACA,EAAE,UAAU,QAAS;EAI3B,MAAMC,kBAIA,CAAE;EACR,IAAIC,gBAAgC;AAEpC,OAAK,MAAM,UAAU,QACnB,KAAI,UAAU,OAAO,CACnB,KACE,OAAO,UAAU,QAAQ,UACzB,MAAM,QAAQ,OAAO,KAAK,IAC1B,OAAO,KAAK,MAAM,CAAC,SAAS,OAAO,KAAK,CAAC,CAEzC,KAAI,eACD,cAAc,KAAgB,KAAK,GAAI,OAAO,KAAgB;OAE/D,gBAAgB,IAAI,QAAQ;GAC1B,OAAO,QAAQ;GACf,MAAM,OAAO;EACd;OAGH,gBAAgB,KAAK,OAAO;OAG9B,gBAAgB,KACd,MAAM,QAAQ,MAAM,GAAG,CAAC,MAAO,IAAG,EAAE,UAAU,CAAC,MAAO,EAAE,EACzD;AAIL,MAAI,eACF,gBAAgB,KAAK,cAAc;AAGrC,SAAO;CACR;AACF;AAED,SAAgB,OAAOC,GAAuB;AAC5C,QAAO,aAAa;AACrB"}
@@ -1,5 +1,6 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_errors = require('./errors.cjs');
3
+ const require_model = require('./model.cjs');
3
4
  const __langchain_core_utils_types = require_rolldown_runtime.__toESM(require("@langchain/core/utils/types"));
4
5
  const __langchain_core_utils_json_schema = require_rolldown_runtime.__toESM(require("@langchain/core/utils/json_schema"));
5
6
 
@@ -23,13 +24,13 @@ var ToolStrategy = class ToolStrategy {
23
24
  get name() {
24
25
  return this.tool.function.name;
25
26
  }
26
- static fromSchema(schema, options, outputOptions) {
27
+ static fromSchema(schema, outputOptions) {
27
28
  /**
28
29
  * It is required for tools to have a name so we can map the tool call to the correct tool
29
30
  * when parsing the response.
30
31
  */
31
32
  function getFunctionName(name) {
32
- return name ?? options?.name ?? `extract-${++bindingIdentifier}`;
33
+ return name ?? `extract-${++bindingIdentifier}`;
33
34
  }
34
35
  if ((0, __langchain_core_utils_types.isInteropZodSchema)(schema)) {
35
36
  const asJsonSchema$1 = (0, __langchain_core_utils_json_schema.toJsonSchema)(schema);
@@ -37,8 +38,8 @@ var ToolStrategy = class ToolStrategy {
37
38
  type: "function",
38
39
  function: {
39
40
  name: getFunctionName(),
40
- strict: options?.strict,
41
- description: options?.description ?? asJsonSchema$1.description ?? "Tool for extracting structured output from the model's response.",
41
+ strict: false,
42
+ description: asJsonSchema$1.description ?? "Tool for extracting structured output from the model's response.",
42
43
  parameters: asJsonSchema$1
43
44
  }
44
45
  };
@@ -109,10 +110,12 @@ var ProviderStrategy = class ProviderStrategy {
109
110
  * - if value is a JSON schema, default to structured output via tool calling
110
111
  * - if value is a custom response format, return it as is
111
112
  * - if value is an array, ensure all array elements are instance of `ToolStrategy`
112
- * @param responseFormat
113
+ * @param responseFormat - The response format to transform, provided by the user
114
+ * @param options - The response format options for tool strategy
115
+ * @param model - The model to check if it supports JSON schema output
113
116
  * @returns
114
117
  */
115
- function transformResponseFormat(responseFormat, options) {
118
+ function transformResponseFormat(responseFormat, options, model) {
116
119
  if (!responseFormat) return [];
117
120
  if (typeof responseFormat === "object" && responseFormat !== null && "__responseFormatUndefined" in responseFormat) return [];
118
121
  /**
@@ -127,19 +130,23 @@ function transformResponseFormat(responseFormat, options) {
127
130
  /**
128
131
  * Check if all items are Zod schemas
129
132
  */
130
- if (responseFormat.every((item) => (0, __langchain_core_utils_types.isInteropZodObject)(item))) return responseFormat.map((item) => ToolStrategy.fromSchema(item, void 0, options));
133
+ if (responseFormat.every((item) => (0, __langchain_core_utils_types.isInteropZodObject)(item))) return responseFormat.map((item) => ToolStrategy.fromSchema(item, options));
131
134
  /**
132
135
  * Check if all items are plain objects (JSON schema)
133
136
  */
134
- if (responseFormat.every((item) => typeof item === "object" && item !== null && !(0, __langchain_core_utils_types.isInteropZodObject)(item))) return responseFormat.map((item) => ToolStrategy.fromSchema(item, void 0, options));
137
+ if (responseFormat.every((item) => typeof item === "object" && item !== null && !(0, __langchain_core_utils_types.isInteropZodObject)(item))) return responseFormat.map((item) => ToolStrategy.fromSchema(item, options));
135
138
  throw new Error("Invalid response format: list contains mixed types.\nAll items must be either InteropZodObject or plain JSON schema objects.");
136
139
  }
137
- if ((0, __langchain_core_utils_types.isInteropZodObject)(responseFormat)) return [ToolStrategy.fromSchema(responseFormat, void 0, options)];
138
140
  if (responseFormat instanceof ToolStrategy || responseFormat instanceof ProviderStrategy) return [responseFormat];
141
+ const useProviderStrategy = hasSupportForJsonSchemaOutput(model);
142
+ /**
143
+ * `responseFormat` is a Zod schema
144
+ */
145
+ if ((0, __langchain_core_utils_types.isInteropZodObject)(responseFormat)) return useProviderStrategy ? [ProviderStrategy.fromSchema(responseFormat)] : [ToolStrategy.fromSchema(responseFormat, options)];
139
146
  /**
140
147
  * Handle plain object (JSON schema)
141
148
  */
142
- if (typeof responseFormat === "object" && responseFormat !== null && "properties" in responseFormat) return [ToolStrategy.fromSchema(responseFormat, void 0, options)];
149
+ if (typeof responseFormat === "object" && responseFormat !== null && "properties" in responseFormat) return useProviderStrategy ? [ProviderStrategy.fromSchema(responseFormat)] : [ToolStrategy.fromSchema(responseFormat, options)];
143
150
  throw new Error(`Invalid response format: ${String(responseFormat)}`);
144
151
  }
145
152
  /**
@@ -156,10 +163,45 @@ function toolStrategy(responseFormat, options) {
156
163
  function providerStrategy(responseFormat) {
157
164
  return ProviderStrategy.fromSchema(responseFormat);
158
165
  }
166
+ const CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT = ["ChatOpenAI", "ChatXAI"];
167
+ const MODEL_NAMES_THAT_SUPPORT_JSON_SCHEMA_OUTPUT = [
168
+ "grok",
169
+ "gpt-5",
170
+ "gpt-4.1",
171
+ "gpt-4o",
172
+ "gpt-oss",
173
+ "o3-pro",
174
+ "o3-mini"
175
+ ];
176
+ /**
177
+ * Identifies the models that support JSON schema output
178
+ * @param model - The model to check
179
+ * @returns True if the model supports JSON schema output, false otherwise
180
+ */
181
+ function hasSupportForJsonSchemaOutput(model) {
182
+ if (!model) return false;
183
+ if (typeof model === "string") {
184
+ const modelName = model.split(":").pop();
185
+ return MODEL_NAMES_THAT_SUPPORT_JSON_SCHEMA_OUTPUT.some((modelNameSnippet) => modelName.includes(modelNameSnippet));
186
+ }
187
+ if (require_model.isConfigurableModel(model)) {
188
+ const configurableModel = model;
189
+ return hasSupportForJsonSchemaOutput(configurableModel._defaultConfig.model);
190
+ }
191
+ if (!require_model.isBaseChatModel(model)) return false;
192
+ const chatModelClass = model.getName();
193
+ /**
194
+ * for testing purposes only
195
+ */
196
+ if (chatModelClass === "FakeToolCallingChatModel") return true;
197
+ if (CHAT_MODELS_THAT_SUPPORT_JSON_SCHEMA_OUTPUT.includes(chatModelClass) && ("model" in model && MODEL_NAMES_THAT_SUPPORT_JSON_SCHEMA_OUTPUT.some((modelNameSnippet) => typeof model.model === "string" && model.model.includes(modelNameSnippet)) || chatModelClass === "FakeToolCallingModel" && "structuredResponse" in model)) return true;
198
+ return false;
199
+ }
159
200
 
160
201
  //#endregion
161
202
  exports.ProviderStrategy = ProviderStrategy;
162
203
  exports.ToolStrategy = ToolStrategy;
204
+ exports.hasSupportForJsonSchemaOutput = hasSupportForJsonSchemaOutput;
163
205
  exports.providerStrategy = providerStrategy;
164
206
  exports.toolStrategy = toolStrategy;
165
207
  exports.transformResponseFormat = transformResponseFormat;