@librechat/agents 3.2.31 → 3.2.33

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 (582) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/dist/cjs/agents/AgentContext.cjs +844 -1046
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/common/constants.cjs +13 -13
  5. package/dist/cjs/common/constants.cjs.map +1 -1
  6. package/dist/cjs/common/enum.cjs +233 -240
  7. package/dist/cjs/common/enum.cjs.map +1 -1
  8. package/dist/cjs/common/index.cjs +2 -0
  9. package/dist/cjs/events.cjs +121 -169
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1389 -1807
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +713 -945
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/index.cjs +2 -0
  16. package/dist/cjs/hitl/askUserQuestion.cjs +60 -62
  17. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  18. package/dist/cjs/hitl/index.cjs +1 -0
  19. package/dist/cjs/hooks/HookRegistry.cjs +176 -202
  20. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  21. package/dist/cjs/hooks/createToolPolicyHook.cjs +71 -101
  22. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  23. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +170 -273
  24. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  25. package/dist/cjs/hooks/executeHooks.cjs +227 -282
  26. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  27. package/dist/cjs/hooks/index.cjs +6 -0
  28. package/dist/cjs/hooks/matchers.cjs +196 -230
  29. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  30. package/dist/cjs/hooks/types.cjs +24 -24
  31. package/dist/cjs/hooks/types.cjs.map +1 -1
  32. package/dist/cjs/instrumentation.cjs +110 -137
  33. package/dist/cjs/instrumentation.cjs.map +1 -1
  34. package/dist/cjs/langchain/google-common.cjs +0 -3
  35. package/dist/cjs/langchain/index.cjs +80 -43
  36. package/dist/cjs/langchain/language_models/chat_models.cjs +0 -3
  37. package/dist/cjs/langchain/messages/tool.cjs +0 -3
  38. package/dist/cjs/langchain/messages.cjs +35 -18
  39. package/dist/cjs/langchain/openai.cjs +0 -3
  40. package/dist/cjs/langchain/prompts.cjs +5 -8
  41. package/dist/cjs/langchain/runnables.cjs +11 -10
  42. package/dist/cjs/langchain/tools.cjs +14 -11
  43. package/dist/cjs/langchain/utils/env.cjs +5 -8
  44. package/dist/cjs/langfuse.cjs +60 -79
  45. package/dist/cjs/langfuse.cjs.map +1 -1
  46. package/dist/cjs/langfuseToolOutputTracing.cjs +267 -399
  47. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  48. package/dist/cjs/llm/anthropic/index.cjs +432 -562
  49. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  50. package/dist/cjs/llm/anthropic/types.cjs +23 -47
  51. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +441 -696
  53. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +171 -252
  55. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  56. package/dist/cjs/llm/anthropic/utils/output_parsers.cjs +2 -0
  57. package/dist/cjs/llm/anthropic/utils/tools.cjs +12 -26
  58. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  59. package/dist/cjs/llm/bedrock/index.cjs +195 -240
  60. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  61. package/dist/cjs/llm/bedrock/toolCache.cjs +84 -106
  62. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/utils/index.cjs +2 -0
  64. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +357 -620
  65. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +105 -149
  67. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  68. package/dist/cjs/llm/fake.cjs +86 -96
  69. package/dist/cjs/llm/fake.cjs.map +1 -1
  70. package/dist/cjs/llm/google/index.cjs +183 -237
  71. package/dist/cjs/llm/google/index.cjs.map +1 -1
  72. package/dist/cjs/llm/google/utils/common.cjs +398 -674
  73. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  74. package/dist/cjs/llm/google/utils/zod_to_genai_parameters.cjs +2 -0
  75. package/dist/cjs/llm/init.cjs +44 -53
  76. package/dist/cjs/llm/init.cjs.map +1 -1
  77. package/dist/cjs/llm/invoke.cjs +142 -182
  78. package/dist/cjs/llm/invoke.cjs.map +1 -1
  79. package/dist/cjs/llm/openai/index.cjs +991 -1276
  80. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  81. package/dist/cjs/llm/openai/utils/index.cjs +189 -316
  82. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  83. package/dist/cjs/llm/openrouter/index.cjs +102 -153
  84. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  85. package/dist/cjs/llm/openrouter/toolCache.cjs +35 -44
  86. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  87. package/dist/cjs/llm/providers.cjs +29 -37
  88. package/dist/cjs/llm/providers.cjs.map +1 -1
  89. package/dist/cjs/llm/request.cjs +20 -33
  90. package/dist/cjs/llm/request.cjs.map +1 -1
  91. package/dist/cjs/llm/vertexai/index.cjs +427 -453
  92. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  93. package/dist/cjs/main.cjs +547 -528
  94. package/dist/cjs/messages/anthropicToolCache.cjs +68 -119
  95. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  96. package/dist/cjs/messages/cache.cjs +308 -401
  97. package/dist/cjs/messages/cache.cjs.map +1 -1
  98. package/dist/cjs/messages/content.cjs +36 -49
  99. package/dist/cjs/messages/content.cjs.map +1 -1
  100. package/dist/cjs/messages/contextPruning.cjs +112 -145
  101. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  102. package/dist/cjs/messages/contextPruningSettings.cjs +36 -46
  103. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  104. package/dist/cjs/messages/core.cjs +256 -397
  105. package/dist/cjs/messages/core.cjs.map +1 -1
  106. package/dist/cjs/messages/format.cjs +904 -1382
  107. package/dist/cjs/messages/format.cjs.map +1 -1
  108. package/dist/cjs/messages/ids.cjs +16 -20
  109. package/dist/cjs/messages/ids.cjs.map +1 -1
  110. package/dist/cjs/messages/index.cjs +12 -0
  111. package/dist/cjs/messages/langchain.cjs +18 -18
  112. package/dist/cjs/messages/langchain.cjs.map +1 -1
  113. package/dist/cjs/messages/prune.cjs +1054 -1517
  114. package/dist/cjs/messages/prune.cjs.map +1 -1
  115. package/dist/cjs/messages/recency.cjs +77 -95
  116. package/dist/cjs/messages/recency.cjs.map +1 -1
  117. package/dist/cjs/messages/reducer.cjs +63 -78
  118. package/dist/cjs/messages/reducer.cjs.map +1 -1
  119. package/dist/cjs/messages/tools.cjs +51 -79
  120. package/dist/cjs/messages/tools.cjs.map +1 -1
  121. package/dist/cjs/openai/index.cjs +171 -217
  122. package/dist/cjs/openai/index.cjs.map +1 -1
  123. package/dist/cjs/responses/index.cjs +302 -391
  124. package/dist/cjs/responses/index.cjs.map +1 -1
  125. package/dist/cjs/run.cjs +903 -1113
  126. package/dist/cjs/run.cjs.map +1 -1
  127. package/dist/cjs/session/AgentSession.cjs +805 -986
  128. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  129. package/dist/cjs/session/JsonlSessionStore.cjs +327 -410
  130. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  131. package/dist/cjs/session/handlers.cjs +192 -208
  132. package/dist/cjs/session/handlers.cjs.map +1 -1
  133. package/dist/cjs/session/ids.cjs +9 -10
  134. package/dist/cjs/session/ids.cjs.map +1 -1
  135. package/dist/cjs/session/index.cjs +4 -0
  136. package/dist/cjs/session/messageSerialization.cjs +94 -156
  137. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  138. package/dist/cjs/splitStream.cjs +147 -206
  139. package/dist/cjs/splitStream.cjs.map +1 -1
  140. package/dist/cjs/stream.cjs +856 -1344
  141. package/dist/cjs/stream.cjs.map +1 -1
  142. package/dist/cjs/summarization/index.cjs +57 -101
  143. package/dist/cjs/summarization/index.cjs.map +1 -1
  144. package/dist/cjs/summarization/node.cjs +643 -796
  145. package/dist/cjs/summarization/node.cjs.map +1 -1
  146. package/dist/cjs/tools/BashExecutor.cjs +110 -136
  147. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  148. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +165 -245
  149. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  150. package/dist/cjs/tools/Calculator.cjs +36 -57
  151. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  152. package/dist/cjs/tools/CodeExecutor.cjs +126 -168
  153. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  154. package/dist/cjs/tools/CodeSessionFileSummary.cjs +36 -46
  155. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  156. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +459 -649
  157. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  158. package/dist/cjs/tools/ReadFile.cjs +17 -20
  159. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  160. package/dist/cjs/tools/SkillTool.cjs +26 -27
  161. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  162. package/dist/cjs/tools/SubagentTool.cjs +59 -61
  163. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  164. package/dist/cjs/tools/ToolNode.cjs +2109 -2686
  165. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  166. package/dist/cjs/tools/ToolSearch.cjs +663 -825
  167. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  168. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs +248 -340
  169. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  170. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs +170 -197
  171. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  172. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +425 -520
  173. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  174. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +91 -124
  175. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  176. package/dist/cjs/tools/cloudflare/index.cjs +4 -0
  177. package/dist/cjs/tools/eagerEventExecution.cjs +75 -99
  178. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  179. package/dist/cjs/tools/handlers.cjs +200 -262
  180. package/dist/cjs/tools/handlers.cjs.map +1 -1
  181. package/dist/cjs/tools/local/CompileCheckTool.cjs +150 -212
  182. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  183. package/dist/cjs/tools/local/FileCheckpointer.cjs +77 -85
  184. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  185. package/dist/cjs/tools/local/LocalCodingTools.cjs +763 -1022
  186. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  187. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +666 -941
  188. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  189. package/dist/cjs/tools/local/LocalExecutionTools.cjs +49 -92
  190. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  191. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +286 -354
  192. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  193. package/dist/cjs/tools/local/attachments.cjs +108 -165
  194. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  195. package/dist/cjs/tools/local/bashAst.cjs +99 -113
  196. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  197. package/dist/cjs/tools/local/editStrategies.cjs +126 -169
  198. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  199. package/dist/cjs/tools/local/index.cjs +12 -0
  200. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +136 -218
  201. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  202. package/dist/cjs/tools/local/syntaxCheck.cjs +142 -161
  203. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  204. package/dist/cjs/tools/local/textEncoding.cjs +25 -23
  205. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  206. package/dist/cjs/tools/local/workspaceFS.cjs +38 -46
  207. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  208. package/dist/cjs/tools/ptcTimeout.cjs +27 -47
  209. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  210. package/dist/cjs/tools/schema.cjs +24 -23
  211. package/dist/cjs/tools/schema.cjs.map +1 -1
  212. package/dist/cjs/tools/search/anthropic.cjs +24 -33
  213. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  214. package/dist/cjs/tools/search/content.cjs +95 -137
  215. package/dist/cjs/tools/search/content.cjs.map +1 -1
  216. package/dist/cjs/tools/search/firecrawl.cjs +141 -172
  217. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  218. package/dist/cjs/tools/search/format.cjs +128 -196
  219. package/dist/cjs/tools/search/format.cjs.map +1 -1
  220. package/dist/cjs/tools/search/highlights.cjs +165 -232
  221. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  222. package/dist/cjs/tools/search/index.cjs +2 -0
  223. package/dist/cjs/tools/search/rerankers.cjs +151 -174
  224. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  225. package/dist/cjs/tools/search/schema.cjs +40 -39
  226. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  227. package/dist/cjs/tools/search/search.cjs +428 -530
  228. package/dist/cjs/tools/search/search.cjs.map +1 -1
  229. package/dist/cjs/tools/search/serper-scraper.cjs +106 -127
  230. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  231. package/dist/cjs/tools/search/tavily-scraper.cjs +129 -181
  232. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/tavily-search.cjs +295 -359
  234. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/tool.cjs +260 -299
  236. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  237. package/dist/cjs/tools/search/utils.cjs +74 -117
  238. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  239. package/dist/cjs/tools/skillCatalog.cjs +54 -72
  240. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  241. package/dist/cjs/tools/streamedToolCallSeals.cjs +19 -36
  242. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  243. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +612 -771
  244. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  245. package/dist/cjs/tools/subagent/index.cjs +1 -0
  246. package/dist/cjs/tools/toolOutputReferences.cjs +523 -630
  247. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  248. package/dist/cjs/utils/callbacks.cjs +11 -21
  249. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  250. package/dist/cjs/utils/errors.cjs +70 -95
  251. package/dist/cjs/utils/errors.cjs.map +1 -1
  252. package/dist/cjs/utils/events.cjs +32 -42
  253. package/dist/cjs/utils/events.cjs.map +1 -1
  254. package/dist/cjs/utils/graph.cjs +8 -12
  255. package/dist/cjs/utils/graph.cjs.map +1 -1
  256. package/dist/cjs/utils/handlers.cjs +60 -82
  257. package/dist/cjs/utils/handlers.cjs.map +1 -1
  258. package/dist/cjs/utils/index.cjs +9 -0
  259. package/dist/cjs/utils/llm.cjs +19 -27
  260. package/dist/cjs/utils/llm.cjs.map +1 -1
  261. package/dist/cjs/utils/misc.cjs +30 -46
  262. package/dist/cjs/utils/misc.cjs.map +1 -1
  263. package/dist/cjs/utils/run.cjs +50 -66
  264. package/dist/cjs/utils/run.cjs.map +1 -1
  265. package/dist/cjs/utils/schema.cjs +11 -19
  266. package/dist/cjs/utils/schema.cjs.map +1 -1
  267. package/dist/cjs/utils/title.cjs +71 -106
  268. package/dist/cjs/utils/title.cjs.map +1 -1
  269. package/dist/cjs/utils/tokens.cjs +186 -283
  270. package/dist/cjs/utils/tokens.cjs.map +1 -1
  271. package/dist/cjs/utils/truncation.cjs +95 -114
  272. package/dist/cjs/utils/truncation.cjs.map +1 -1
  273. package/dist/esm/agents/AgentContext.mjs +844 -1044
  274. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  275. package/dist/esm/common/constants.mjs +13 -11
  276. package/dist/esm/common/constants.mjs.map +1 -1
  277. package/dist/esm/common/enum.mjs +221 -238
  278. package/dist/esm/common/enum.mjs.map +1 -1
  279. package/dist/esm/common/index.mjs +3 -0
  280. package/dist/esm/events.mjs +121 -167
  281. package/dist/esm/events.mjs.map +1 -1
  282. package/dist/esm/graphs/Graph.mjs +1388 -1804
  283. package/dist/esm/graphs/Graph.mjs.map +1 -1
  284. package/dist/esm/graphs/MultiAgentGraph.mjs +713 -943
  285. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  286. package/dist/esm/graphs/index.mjs +3 -0
  287. package/dist/esm/hitl/askUserQuestion.mjs +60 -60
  288. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  289. package/dist/esm/hitl/index.mjs +2 -0
  290. package/dist/esm/hooks/HookRegistry.mjs +176 -200
  291. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  292. package/dist/esm/hooks/createToolPolicyHook.mjs +71 -99
  293. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  294. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +170 -271
  295. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  296. package/dist/esm/hooks/executeHooks.mjs +227 -280
  297. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  298. package/dist/esm/hooks/index.mjs +7 -0
  299. package/dist/esm/hooks/matchers.mjs +196 -228
  300. package/dist/esm/hooks/matchers.mjs.map +1 -1
  301. package/dist/esm/hooks/types.mjs +24 -22
  302. package/dist/esm/hooks/types.mjs.map +1 -1
  303. package/dist/esm/instrumentation.mjs +109 -132
  304. package/dist/esm/instrumentation.mjs.map +1 -1
  305. package/dist/esm/langchain/google-common.mjs +1 -2
  306. package/dist/esm/langchain/index.mjs +5 -5
  307. package/dist/esm/langchain/language_models/chat_models.mjs +1 -2
  308. package/dist/esm/langchain/messages/tool.mjs +1 -2
  309. package/dist/esm/langchain/messages.mjs +2 -2
  310. package/dist/esm/langchain/openai.mjs +1 -2
  311. package/dist/esm/langchain/prompts.mjs +2 -2
  312. package/dist/esm/langchain/runnables.mjs +2 -2
  313. package/dist/esm/langchain/tools.mjs +2 -2
  314. package/dist/esm/langchain/utils/env.mjs +2 -2
  315. package/dist/esm/langfuse.mjs +60 -76
  316. package/dist/esm/langfuse.mjs.map +1 -1
  317. package/dist/esm/langfuseToolOutputTracing.mjs +267 -395
  318. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  319. package/dist/esm/llm/anthropic/index.mjs +432 -559
  320. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  321. package/dist/esm/llm/anthropic/types.mjs +23 -45
  322. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  323. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +439 -690
  324. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  325. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +171 -249
  326. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  327. package/dist/esm/llm/anthropic/utils/output_parsers.mjs +3 -0
  328. package/dist/esm/llm/anthropic/utils/tools.mjs +12 -24
  329. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  330. package/dist/esm/llm/bedrock/index.mjs +195 -238
  331. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  332. package/dist/esm/llm/bedrock/toolCache.mjs +84 -104
  333. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  334. package/dist/esm/llm/bedrock/utils/index.mjs +3 -0
  335. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +357 -618
  336. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  337. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +105 -147
  338. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  339. package/dist/esm/llm/fake.mjs +86 -94
  340. package/dist/esm/llm/fake.mjs.map +1 -1
  341. package/dist/esm/llm/google/index.mjs +183 -235
  342. package/dist/esm/llm/google/index.mjs.map +1 -1
  343. package/dist/esm/llm/google/utils/common.mjs +397 -666
  344. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  345. package/dist/esm/llm/google/utils/zod_to_genai_parameters.mjs +3 -0
  346. package/dist/esm/llm/init.mjs +44 -51
  347. package/dist/esm/llm/init.mjs.map +1 -1
  348. package/dist/esm/llm/invoke.mjs +142 -180
  349. package/dist/esm/llm/invoke.mjs.map +1 -1
  350. package/dist/esm/llm/openai/index.mjs +991 -1271
  351. package/dist/esm/llm/openai/index.mjs.map +1 -1
  352. package/dist/esm/llm/openai/utils/index.mjs +188 -312
  353. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  354. package/dist/esm/llm/openrouter/index.mjs +102 -151
  355. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  356. package/dist/esm/llm/openrouter/toolCache.mjs +35 -42
  357. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  358. package/dist/esm/llm/providers.mjs +29 -34
  359. package/dist/esm/llm/providers.mjs.map +1 -1
  360. package/dist/esm/llm/request.mjs +20 -31
  361. package/dist/esm/llm/request.mjs.map +1 -1
  362. package/dist/esm/llm/vertexai/index.mjs +427 -449
  363. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  364. package/dist/esm/main.mjs +99 -87
  365. package/dist/esm/messages/anthropicToolCache.mjs +68 -117
  366. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  367. package/dist/esm/messages/cache.mjs +308 -399
  368. package/dist/esm/messages/cache.mjs.map +1 -1
  369. package/dist/esm/messages/content.mjs +36 -47
  370. package/dist/esm/messages/content.mjs.map +1 -1
  371. package/dist/esm/messages/contextPruning.mjs +112 -143
  372. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  373. package/dist/esm/messages/contextPruningSettings.mjs +36 -44
  374. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  375. package/dist/esm/messages/core.mjs +254 -393
  376. package/dist/esm/messages/core.mjs.map +1 -1
  377. package/dist/esm/messages/format.mjs +902 -1378
  378. package/dist/esm/messages/format.mjs.map +1 -1
  379. package/dist/esm/messages/ids.mjs +16 -18
  380. package/dist/esm/messages/ids.mjs.map +1 -1
  381. package/dist/esm/messages/index.mjs +13 -0
  382. package/dist/esm/messages/langchain.mjs +18 -16
  383. package/dist/esm/messages/langchain.mjs.map +1 -1
  384. package/dist/esm/messages/prune.mjs +1053 -1514
  385. package/dist/esm/messages/prune.mjs.map +1 -1
  386. package/dist/esm/messages/recency.mjs +77 -93
  387. package/dist/esm/messages/recency.mjs.map +1 -1
  388. package/dist/esm/messages/reducer.mjs +63 -76
  389. package/dist/esm/messages/reducer.mjs.map +1 -1
  390. package/dist/esm/messages/tools.mjs +49 -75
  391. package/dist/esm/messages/tools.mjs.map +1 -1
  392. package/dist/esm/openai/index.mjs +170 -215
  393. package/dist/esm/openai/index.mjs.map +1 -1
  394. package/dist/esm/responses/index.mjs +301 -389
  395. package/dist/esm/responses/index.mjs.map +1 -1
  396. package/dist/esm/run.mjs +903 -1111
  397. package/dist/esm/run.mjs.map +1 -1
  398. package/dist/esm/session/AgentSession.mjs +806 -985
  399. package/dist/esm/session/AgentSession.mjs.map +1 -1
  400. package/dist/esm/session/JsonlSessionStore.mjs +326 -407
  401. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  402. package/dist/esm/session/handlers.mjs +192 -206
  403. package/dist/esm/session/handlers.mjs.map +1 -1
  404. package/dist/esm/session/ids.mjs +9 -8
  405. package/dist/esm/session/ids.mjs.map +1 -1
  406. package/dist/esm/session/index.mjs +5 -0
  407. package/dist/esm/session/messageSerialization.mjs +94 -154
  408. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  409. package/dist/esm/splitStream.mjs +147 -204
  410. package/dist/esm/splitStream.mjs.map +1 -1
  411. package/dist/esm/stream.mjs +854 -1341
  412. package/dist/esm/stream.mjs.map +1 -1
  413. package/dist/esm/summarization/index.mjs +57 -99
  414. package/dist/esm/summarization/index.mjs.map +1 -1
  415. package/dist/esm/summarization/node.mjs +640 -790
  416. package/dist/esm/summarization/node.mjs.map +1 -1
  417. package/dist/esm/tools/BashExecutor.mjs +103 -129
  418. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  419. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +162 -239
  420. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  421. package/dist/esm/tools/Calculator.mjs +34 -36
  422. package/dist/esm/tools/Calculator.mjs.map +1 -1
  423. package/dist/esm/tools/CodeExecutor.mjs +123 -164
  424. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  425. package/dist/esm/tools/CodeSessionFileSummary.mjs +36 -44
  426. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  427. package/dist/esm/tools/ProgrammaticToolCalling.mjs +454 -644
  428. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  429. package/dist/esm/tools/ReadFile.mjs +17 -18
  430. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  431. package/dist/esm/tools/SkillTool.mjs +26 -25
  432. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  433. package/dist/esm/tools/SubagentTool.mjs +59 -59
  434. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  435. package/dist/esm/tools/ToolNode.mjs +2107 -2684
  436. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  437. package/dist/esm/tools/ToolSearch.mjs +659 -804
  438. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  439. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs +248 -338
  440. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  441. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs +170 -195
  442. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  443. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +424 -517
  444. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  445. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +91 -122
  446. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  447. package/dist/esm/tools/cloudflare/index.mjs +5 -0
  448. package/dist/esm/tools/eagerEventExecution.mjs +75 -96
  449. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  450. package/dist/esm/tools/handlers.mjs +200 -260
  451. package/dist/esm/tools/handlers.mjs.map +1 -1
  452. package/dist/esm/tools/local/CompileCheckTool.mjs +150 -210
  453. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  454. package/dist/esm/tools/local/FileCheckpointer.mjs +77 -83
  455. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  456. package/dist/esm/tools/local/LocalCodingTools.mjs +760 -1017
  457. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  458. package/dist/esm/tools/local/LocalExecutionEngine.mjs +663 -936
  459. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  460. package/dist/esm/tools/local/LocalExecutionTools.mjs +49 -90
  461. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  462. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +283 -349
  463. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  464. package/dist/esm/tools/local/attachments.mjs +108 -163
  465. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  466. package/dist/esm/tools/local/bashAst.mjs +99 -111
  467. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  468. package/dist/esm/tools/local/editStrategies.mjs +126 -167
  469. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  470. package/dist/esm/tools/local/index.mjs +13 -0
  471. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +136 -216
  472. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  473. package/dist/esm/tools/local/syntaxCheck.mjs +138 -155
  474. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  475. package/dist/esm/tools/local/textEncoding.mjs +25 -21
  476. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  477. package/dist/esm/tools/local/workspaceFS.mjs +38 -44
  478. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  479. package/dist/esm/tools/ptcTimeout.mjs +27 -42
  480. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  481. package/dist/esm/tools/schema.mjs +24 -21
  482. package/dist/esm/tools/schema.mjs.map +1 -1
  483. package/dist/esm/tools/search/anthropic.mjs +24 -31
  484. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  485. package/dist/esm/tools/search/content.mjs +93 -116
  486. package/dist/esm/tools/search/content.mjs.map +1 -1
  487. package/dist/esm/tools/search/firecrawl.mjs +139 -169
  488. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  489. package/dist/esm/tools/search/format.mjs +128 -194
  490. package/dist/esm/tools/search/format.mjs.map +1 -1
  491. package/dist/esm/tools/search/highlights.mjs +165 -230
  492. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  493. package/dist/esm/tools/search/index.mjs +3 -0
  494. package/dist/esm/tools/search/rerankers.mjs +149 -168
  495. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  496. package/dist/esm/tools/search/schema.mjs +39 -37
  497. package/dist/esm/tools/search/schema.mjs.map +1 -1
  498. package/dist/esm/tools/search/search.mjs +426 -528
  499. package/dist/esm/tools/search/search.mjs.map +1 -1
  500. package/dist/esm/tools/search/serper-scraper.mjs +104 -124
  501. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  502. package/dist/esm/tools/search/tavily-scraper.mjs +127 -178
  503. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  504. package/dist/esm/tools/search/tavily-search.mjs +293 -357
  505. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  506. package/dist/esm/tools/search/tool.mjs +259 -297
  507. package/dist/esm/tools/search/tool.mjs.map +1 -1
  508. package/dist/esm/tools/search/utils.mjs +74 -115
  509. package/dist/esm/tools/search/utils.mjs.map +1 -1
  510. package/dist/esm/tools/skillCatalog.mjs +54 -70
  511. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  512. package/dist/esm/tools/streamedToolCallSeals.mjs +19 -31
  513. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  514. package/dist/esm/tools/subagent/SubagentExecutor.mjs +612 -768
  515. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  516. package/dist/esm/tools/subagent/index.mjs +2 -0
  517. package/dist/esm/tools/toolOutputReferences.mjs +523 -624
  518. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  519. package/dist/esm/utils/callbacks.mjs +11 -19
  520. package/dist/esm/utils/callbacks.mjs.map +1 -1
  521. package/dist/esm/utils/errors.mjs +70 -93
  522. package/dist/esm/utils/errors.mjs.map +1 -1
  523. package/dist/esm/utils/events.mjs +32 -40
  524. package/dist/esm/utils/events.mjs.map +1 -1
  525. package/dist/esm/utils/graph.mjs +8 -10
  526. package/dist/esm/utils/graph.mjs.map +1 -1
  527. package/dist/esm/utils/handlers.mjs +60 -80
  528. package/dist/esm/utils/handlers.mjs.map +1 -1
  529. package/dist/esm/utils/index.mjs +10 -0
  530. package/dist/esm/utils/llm.mjs +19 -25
  531. package/dist/esm/utils/llm.mjs.map +1 -1
  532. package/dist/esm/utils/misc.mjs +30 -44
  533. package/dist/esm/utils/misc.mjs.map +1 -1
  534. package/dist/esm/utils/run.mjs +50 -64
  535. package/dist/esm/utils/run.mjs.map +1 -1
  536. package/dist/esm/utils/schema.mjs +11 -17
  537. package/dist/esm/utils/schema.mjs.map +1 -1
  538. package/dist/esm/utils/title.mjs +71 -104
  539. package/dist/esm/utils/title.mjs.map +1 -1
  540. package/dist/esm/utils/tokens.mjs +186 -281
  541. package/dist/esm/utils/tokens.mjs.map +1 -1
  542. package/dist/esm/utils/truncation.mjs +95 -112
  543. package/dist/esm/utils/truncation.mjs.map +1 -1
  544. package/dist/types/messages/format.d.ts +5 -0
  545. package/dist/types/tools/search/tool.d.ts +17 -0
  546. package/dist/types/tools/search/types.d.ts +4 -0
  547. package/package.json +11 -17
  548. package/src/llm/anthropic/llm.spec.ts +36 -0
  549. package/src/llm/anthropic/utils/message_inputs.ts +45 -3
  550. package/src/llm/anthropic/utils/message_outputs.ts +6 -2
  551. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +186 -0
  552. package/src/messages/cache.test.ts +122 -0
  553. package/src/messages/cache.ts +25 -1
  554. package/src/messages/format.ts +9 -0
  555. package/src/messages/formatAgentMessages.skills.test.ts +100 -0
  556. package/src/tools/search/highlights.ts +9 -1
  557. package/src/tools/search/search.ts +41 -3
  558. package/src/tools/search/source-processing.test.ts +373 -0
  559. package/src/tools/search/tool.ts +22 -2
  560. package/src/tools/search/types.ts +4 -0
  561. package/dist/cjs/langchain/google-common.cjs.map +0 -1
  562. package/dist/cjs/langchain/index.cjs.map +0 -1
  563. package/dist/cjs/langchain/language_models/chat_models.cjs.map +0 -1
  564. package/dist/cjs/langchain/messages/tool.cjs.map +0 -1
  565. package/dist/cjs/langchain/messages.cjs.map +0 -1
  566. package/dist/cjs/langchain/openai.cjs.map +0 -1
  567. package/dist/cjs/langchain/prompts.cjs.map +0 -1
  568. package/dist/cjs/langchain/runnables.cjs.map +0 -1
  569. package/dist/cjs/langchain/tools.cjs.map +0 -1
  570. package/dist/cjs/langchain/utils/env.cjs.map +0 -1
  571. package/dist/cjs/main.cjs.map +0 -1
  572. package/dist/esm/langchain/google-common.mjs.map +0 -1
  573. package/dist/esm/langchain/index.mjs.map +0 -1
  574. package/dist/esm/langchain/language_models/chat_models.mjs.map +0 -1
  575. package/dist/esm/langchain/messages/tool.mjs.map +0 -1
  576. package/dist/esm/langchain/messages.mjs.map +0 -1
  577. package/dist/esm/langchain/openai.mjs.map +0 -1
  578. package/dist/esm/langchain/prompts.mjs.map +0 -1
  579. package/dist/esm/langchain/runnables.mjs.map +0 -1
  580. package/dist/esm/langchain/tools.mjs.map +0 -1
  581. package/dist/esm/langchain/utils/env.mjs.map +0 -1
  582. package/dist/esm/main.mjs.map +0 -1
@@ -1,307 +1,268 @@
1
- 'use strict';
2
-
3
- var tools = require('@langchain/core/tools');
4
- var schema = require('./schema.cjs');
5
- var search = require('./search.cjs');
6
- var serperScraper = require('./serper-scraper.cjs');
7
- var tavilyScraper = require('./tavily-scraper.cjs');
8
- var firecrawl = require('./firecrawl.cjs');
9
- var highlights = require('./highlights.cjs');
10
- var format = require('./format.cjs');
11
- var utils = require('./utils.cjs');
12
- var rerankers = require('./rerankers.cjs');
13
- var _enum = require('../../common/enum.cjs');
14
-
1
+ require("../../common/enum.cjs");
2
+ require("../../common/index.cjs");
3
+ const require_utils = require("./utils.cjs");
4
+ const require_format = require("./format.cjs");
5
+ const require_schema = require("./schema.cjs");
6
+ const require_search = require("./search.cjs");
7
+ const require_serper_scraper = require("./serper-scraper.cjs");
8
+ const require_tavily_scraper = require("./tavily-scraper.cjs");
9
+ const require_firecrawl = require("./firecrawl.cjs");
10
+ const require_highlights = require("./highlights.cjs");
11
+ const require_rerankers = require("./rerankers.cjs");
12
+ let _langchain_core_tools = require("@langchain/core/tools");
13
+ //#region src/tools/search/tool.ts
15
14
  /**
16
- * Executes parallel searches and merges the results
17
- */
18
- async function executeParallelSearches({ searchAPI, query, date, country, safeSearch, images, videos, news, logger, }) {
19
- // Prepare all search tasks to run in parallel
20
- const searchTasks = [
21
- // Main search
22
- searchAPI.getSources({
23
- query,
24
- date,
25
- country,
26
- safeSearch,
27
- }),
28
- ];
29
- if (images) {
30
- searchTasks.push(searchAPI
31
- .getSources({
32
- query,
33
- date,
34
- country,
35
- safeSearch,
36
- type: 'images',
37
- })
38
- .catch((error) => {
39
- logger.error('Error fetching images:', error);
40
- return {
41
- success: false,
42
- error: `Images search failed: ${error instanceof Error ? error.message : String(error)}`,
43
- };
44
- }));
45
- }
46
- if (videos) {
47
- searchTasks.push(searchAPI
48
- .getSources({
49
- query,
50
- date,
51
- country,
52
- safeSearch,
53
- type: 'videos',
54
- })
55
- .catch((error) => {
56
- logger.error('Error fetching videos:', error);
57
- return {
58
- success: false,
59
- error: `Videos search failed: ${error instanceof Error ? error.message : String(error)}`,
60
- };
61
- }));
62
- }
63
- if (news) {
64
- searchTasks.push(searchAPI
65
- .getSources({
66
- query,
67
- date,
68
- country,
69
- safeSearch,
70
- type: 'news',
71
- })
72
- .catch((error) => {
73
- logger.error('Error fetching news:', error);
74
- return {
75
- success: false,
76
- error: `News search failed: ${error instanceof Error ? error.message : String(error)}`,
77
- };
78
- }));
79
- }
80
- // Run all searches in parallel
81
- const results = await Promise.all(searchTasks);
82
- // Get the main search result (first result)
83
- const mainResult = results[0];
84
- if (!mainResult.success) {
85
- throw new Error(mainResult.error ?? 'Search failed');
86
- }
87
- // Merge additional results with the main results
88
- const mergedResults = { ...mainResult.data };
89
- // Convert existing news to topStories if present
90
- if (mergedResults.news !== undefined && mergedResults.news.length > 0) {
91
- const existingNewsAsTopStories = mergedResults.news
92
- .filter((newsItem) => newsItem.link !== undefined && newsItem.link !== '')
93
- .map((newsItem) => ({
94
- title: newsItem.title ?? '',
95
- link: newsItem.link ?? '',
96
- source: newsItem.source ?? '',
97
- date: newsItem.date ?? '',
98
- imageUrl: newsItem.imageUrl ?? '',
99
- processed: false,
100
- }));
101
- mergedResults.topStories = [
102
- ...(mergedResults.topStories ?? []),
103
- ...existingNewsAsTopStories,
104
- ];
105
- delete mergedResults.news;
106
- }
107
- results.slice(1).forEach((result) => {
108
- if (result.success && result.data !== undefined) {
109
- if (result.data.images !== undefined && result.data.images.length > 0) {
110
- mergedResults.images = [
111
- ...(mergedResults.images ?? []),
112
- ...result.data.images,
113
- ];
114
- }
115
- if (result.data.videos !== undefined && result.data.videos.length > 0) {
116
- mergedResults.videos = [
117
- ...(mergedResults.videos ?? []),
118
- ...result.data.videos,
119
- ];
120
- }
121
- if (result.data.news !== undefined && result.data.news.length > 0) {
122
- const newsAsTopStories = result.data.news.map((newsItem) => ({
123
- ...newsItem,
124
- link: newsItem.link ?? '',
125
- }));
126
- mergedResults.topStories = [
127
- ...(mergedResults.topStories ?? []),
128
- ...newsAsTopStories,
129
- ];
130
- }
131
- }
132
- });
133
- return { success: true, data: mergedResults };
15
+ * Executes parallel searches and merges the results,
16
+ * deduplicating top stories by link
17
+ */
18
+ async function executeParallelSearches({ searchAPI, query, date, country, safeSearch, images, videos, news, logger }) {
19
+ const searchTasks = [searchAPI.getSources({
20
+ query,
21
+ date,
22
+ country,
23
+ safeSearch
24
+ })];
25
+ if (images) searchTasks.push(searchAPI.getSources({
26
+ query,
27
+ date,
28
+ country,
29
+ safeSearch,
30
+ type: "images"
31
+ }).catch((error) => {
32
+ logger.error("Error fetching images:", error);
33
+ return {
34
+ success: false,
35
+ error: `Images search failed: ${error instanceof Error ? error.message : String(error)}`
36
+ };
37
+ }));
38
+ if (videos) searchTasks.push(searchAPI.getSources({
39
+ query,
40
+ date,
41
+ country,
42
+ safeSearch,
43
+ type: "videos"
44
+ }).catch((error) => {
45
+ logger.error("Error fetching videos:", error);
46
+ return {
47
+ success: false,
48
+ error: `Videos search failed: ${error instanceof Error ? error.message : String(error)}`
49
+ };
50
+ }));
51
+ if (news) searchTasks.push(searchAPI.getSources({
52
+ query,
53
+ date,
54
+ country,
55
+ safeSearch,
56
+ type: "news"
57
+ }).catch((error) => {
58
+ logger.error("Error fetching news:", error);
59
+ return {
60
+ success: false,
61
+ error: `News search failed: ${error instanceof Error ? error.message : String(error)}`
62
+ };
63
+ }));
64
+ const results = await Promise.all(searchTasks);
65
+ const mainResult = results[0];
66
+ if (!mainResult.success) throw new Error(mainResult.error ?? "Search failed");
67
+ const mergedResults = { ...mainResult.data };
68
+ if (mergedResults.news !== void 0 && mergedResults.news.length > 0) {
69
+ const existingNewsAsTopStories = mergedResults.news.filter((newsItem) => newsItem.link !== void 0 && newsItem.link !== "").map((newsItem) => ({
70
+ title: newsItem.title ?? "",
71
+ link: newsItem.link ?? "",
72
+ source: newsItem.source ?? "",
73
+ date: newsItem.date ?? "",
74
+ imageUrl: newsItem.imageUrl ?? "",
75
+ processed: false
76
+ }));
77
+ mergedResults.topStories = [...mergedResults.topStories ?? [], ...existingNewsAsTopStories];
78
+ delete mergedResults.news;
79
+ }
80
+ results.slice(1).forEach((result) => {
81
+ if (result.success && result.data !== void 0) {
82
+ if (result.data.images !== void 0 && result.data.images.length > 0) mergedResults.images = [...mergedResults.images ?? [], ...result.data.images];
83
+ if (result.data.videos !== void 0 && result.data.videos.length > 0) mergedResults.videos = [...mergedResults.videos ?? [], ...result.data.videos];
84
+ if (result.data.news !== void 0 && result.data.news.length > 0) {
85
+ const newsAsTopStories = result.data.news.map((newsItem) => ({
86
+ ...newsItem,
87
+ link: newsItem.link ?? ""
88
+ }));
89
+ mergedResults.topStories = [...mergedResults.topStories ?? [], ...newsAsTopStories];
90
+ }
91
+ }
92
+ });
93
+ if (mergedResults.topStories !== void 0 && mergedResults.topStories.length > 1) {
94
+ /** The main search's own news results and the parallel news sub-search
95
+ * frequently return the same stories — keep the first occurrence of each
96
+ * link so duplicates aren't scraped, reranked, and formatted repeatedly */
97
+ const seenLinks = /* @__PURE__ */ new Set();
98
+ mergedResults.topStories = mergedResults.topStories.filter((story) => {
99
+ if (!story.link || seenLinks.has(story.link)) return false;
100
+ seenLinks.add(story.link);
101
+ return true;
102
+ });
103
+ }
104
+ return {
105
+ success: true,
106
+ data: mergedResults
107
+ };
134
108
  }
135
- function createSearchProcessor({ searchAPI, safeSearch, supportsVideos, sourceProcessor, onGetHighlights, logger, }) {
136
- return async function ({ query, date, country, proMode = true, maxSources = 5, onSearchResults, images = false, videos = false, news = false, }) {
137
- try {
138
- // Execute parallel searches and merge results
139
- const searchResult = await executeParallelSearches({
140
- searchAPI,
141
- query,
142
- date,
143
- country,
144
- safeSearch,
145
- images,
146
- videos: supportsVideos && videos,
147
- news,
148
- logger,
149
- });
150
- onSearchResults?.(searchResult);
151
- const processedSources = await sourceProcessor.processSources({
152
- query,
153
- news,
154
- result: searchResult,
155
- proMode,
156
- onGetHighlights,
157
- numElements: maxSources,
158
- });
159
- return highlights.expandHighlights(processedSources);
160
- }
161
- catch (error) {
162
- logger.error('Error in search:', error);
163
- return {
164
- organic: [],
165
- topStories: [],
166
- images: [],
167
- videos: [],
168
- news: [],
169
- relatedSearches: [],
170
- error: error instanceof Error ? error.message : String(error),
171
- };
172
- }
173
- };
109
+ function createSearchProcessor({ searchAPI, safeSearch, supportsVideos, sourceProcessor, onGetHighlights, logger }) {
110
+ return async function({ query, date, country, proMode = true, maxSources = 5, onSearchResults, images = false, videos = false, news = false }) {
111
+ try {
112
+ const searchResult = await executeParallelSearches({
113
+ searchAPI,
114
+ query,
115
+ date,
116
+ country,
117
+ safeSearch,
118
+ images,
119
+ videos: supportsVideos && videos,
120
+ news,
121
+ logger
122
+ });
123
+ onSearchResults?.(searchResult);
124
+ return require_highlights.expandHighlights(await sourceProcessor.processSources({
125
+ query,
126
+ news,
127
+ result: searchResult,
128
+ proMode,
129
+ onGetHighlights,
130
+ numElements: maxSources
131
+ }));
132
+ } catch (error) {
133
+ logger.error("Error in search:", error);
134
+ return {
135
+ organic: [],
136
+ topStories: [],
137
+ images: [],
138
+ videos: [],
139
+ news: [],
140
+ relatedSearches: [],
141
+ error: error instanceof Error ? error.message : String(error)
142
+ };
143
+ }
144
+ };
174
145
  }
175
- function createOnSearchResults({ runnableConfig, onSearchResults, }) {
176
- return function (results) {
177
- if (!onSearchResults) {
178
- return;
179
- }
180
- onSearchResults(results, runnableConfig);
181
- };
146
+ function createOnSearchResults({ runnableConfig, onSearchResults }) {
147
+ return function(results) {
148
+ if (!onSearchResults) return;
149
+ onSearchResults(results, runnableConfig);
150
+ };
182
151
  }
183
- function createTool({ schema: schema$1, search, onSearchResults: _onSearchResults, }) {
184
- return tools.tool(async (rawParams, runnableConfig) => {
185
- const params = rawParams;
186
- const { query, date, country: _c, images, videos, news } = params;
187
- const country = typeof _c === 'string' && _c ? _c : undefined;
188
- const searchResult = await search({
189
- query,
190
- date,
191
- country,
192
- images,
193
- videos,
194
- news,
195
- onSearchResults: createOnSearchResults({
196
- runnableConfig,
197
- onSearchResults: _onSearchResults,
198
- }),
199
- });
200
- const turn = runnableConfig.toolCall?.turn ?? 0;
201
- const { output, references } = format.formatResultsForLLM(turn, searchResult);
202
- const data = { turn, ...searchResult, references };
203
- return [output, { [_enum.Constants.WEB_SEARCH]: data }];
204
- }, {
205
- name: schema.WebSearchToolName,
206
- description: schema.WebSearchToolDescription,
207
- schema: schema$1,
208
- responseFormat: _enum.Constants.CONTENT_AND_ARTIFACT,
209
- });
152
+ function createTool({ schema, search, onSearchResults: _onSearchResults }) {
153
+ return (0, _langchain_core_tools.tool)(async (rawParams, runnableConfig) => {
154
+ const { query, date, country: _c, images, videos, news } = rawParams;
155
+ const searchResult = await search({
156
+ query,
157
+ date,
158
+ country: typeof _c === "string" && _c ? _c : void 0,
159
+ images,
160
+ videos,
161
+ news,
162
+ onSearchResults: createOnSearchResults({
163
+ runnableConfig,
164
+ onSearchResults: _onSearchResults
165
+ })
166
+ });
167
+ const turn = runnableConfig.toolCall?.turn ?? 0;
168
+ const { output, references } = require_format.formatResultsForLLM(turn, searchResult);
169
+ const data = {
170
+ turn,
171
+ ...searchResult,
172
+ references
173
+ };
174
+ return [output, { ["web_search"]: data }];
175
+ }, {
176
+ name: require_schema.WebSearchToolName,
177
+ description: require_schema.WebSearchToolDescription,
178
+ schema,
179
+ responseFormat: "content_and_artifact"
180
+ });
210
181
  }
211
182
  const createSearchTool = (config = {}) => {
212
- const { searchProvider = 'serper', serperApiKey, searxngInstanceUrl, searxngApiKey, tavilyApiKey, tavilySearchUrl, tavilyExtractUrl, tavilySearchOptions, rerankerType = 'cohere', topResults = 5, strategies = ['no_extraction'], filterContent = true, safeSearch = 1, scraperProvider = 'firecrawl', firecrawlApiKey, firecrawlApiUrl, firecrawlVersion, firecrawlOptions, serperScraperOptions, tavilyScraperOptions, scraperTimeout, jinaApiKey, jinaApiUrl, cohereApiKey, onSearchResults: _onSearchResults, onGetHighlights, } = config;
213
- const logger = config.logger || utils.createDefaultLogger();
214
- const effectiveTavilySearchOptions = searchProvider === 'tavily' && config.safeSearch != null
215
- ? {
216
- ...tavilySearchOptions,
217
- safeSearch: config.safeSearch !== 0,
218
- }
219
- : tavilySearchOptions;
220
- const schemaProperties = {
221
- query: schema.querySchema,
222
- date: schema.dateSchema,
223
- images: schema.imagesSchema,
224
- videos: schema.videosSchema,
225
- news: schema.newsSchema,
226
- };
227
- if (searchProvider === 'serper' || searchProvider === 'tavily') {
228
- schemaProperties.country = schema.countrySchema;
229
- }
230
- const toolSchema = {
231
- type: 'object',
232
- properties: schemaProperties,
233
- required: ['query'],
234
- };
235
- const searchAPI = search.createSearchAPI({
236
- searchProvider,
237
- serperApiKey,
238
- searxngInstanceUrl,
239
- searxngApiKey,
240
- tavilyApiKey,
241
- tavilySearchUrl,
242
- tavilySearchOptions: effectiveTavilySearchOptions,
243
- });
244
- /** Create scraper based on scraperProvider */
245
- let scraperInstance;
246
- if (scraperProvider === 'serper') {
247
- scraperInstance = serperScraper.createSerperScraper({
248
- ...serperScraperOptions,
249
- apiKey: serperApiKey,
250
- timeout: scraperTimeout ?? serperScraperOptions?.timeout,
251
- logger,
252
- });
253
- }
254
- else if (scraperProvider === 'tavily') {
255
- scraperInstance = tavilyScraper.createTavilyScraper({
256
- ...tavilyScraperOptions,
257
- apiKey: tavilyScraperOptions?.apiKey ??
258
- tavilyApiKey ??
259
- process.env.TAVILY_API_KEY,
260
- apiUrl: tavilyScraperOptions?.apiUrl ?? tavilyExtractUrl,
261
- timeout: scraperTimeout ?? tavilyScraperOptions?.timeout,
262
- logger,
263
- });
264
- }
265
- else {
266
- scraperInstance = firecrawl.createFirecrawlScraper({
267
- ...firecrawlOptions,
268
- apiKey: firecrawlApiKey ?? process.env.FIRECRAWL_API_KEY,
269
- apiUrl: firecrawlApiUrl,
270
- version: firecrawlVersion,
271
- timeout: scraperTimeout ?? firecrawlOptions?.timeout,
272
- formats: firecrawlOptions?.formats ?? ['markdown', 'rawHtml'],
273
- logger,
274
- });
275
- }
276
- const selectedReranker = rerankers.createReranker({
277
- rerankerType,
278
- jinaApiKey,
279
- jinaApiUrl,
280
- cohereApiKey,
281
- logger,
282
- });
283
- if (!selectedReranker) {
284
- logger.warn('No reranker selected. Using default ranking.');
285
- }
286
- const sourceProcessor = search.createSourceProcessor({
287
- reranker: selectedReranker,
288
- topResults,
289
- logger,
290
- }, scraperInstance);
291
- const search$1 = createSearchProcessor({
292
- searchAPI,
293
- safeSearch,
294
- supportsVideos: searchProvider !== 'tavily',
295
- sourceProcessor,
296
- onGetHighlights,
297
- logger,
298
- });
299
- return createTool({
300
- search: search$1,
301
- schema: toolSchema,
302
- onSearchResults: _onSearchResults,
303
- });
183
+ const { searchProvider = "serper", serperApiKey, searxngInstanceUrl, searxngApiKey, tavilyApiKey, tavilySearchUrl, tavilyExtractUrl, tavilySearchOptions, rerankerType = "cohere", topResults = 5, maxContentLength, strategies = ["no_extraction"], filterContent = true, safeSearch = 1, scraperProvider = "firecrawl", firecrawlApiKey, firecrawlApiUrl, firecrawlVersion, firecrawlOptions, serperScraperOptions, tavilyScraperOptions, scraperTimeout, jinaApiKey, jinaApiUrl, cohereApiKey, onSearchResults: _onSearchResults, onGetHighlights } = config;
184
+ const logger = config.logger || require_utils.createDefaultLogger();
185
+ const effectiveTavilySearchOptions = searchProvider === "tavily" && config.safeSearch != null ? {
186
+ ...tavilySearchOptions,
187
+ safeSearch: config.safeSearch !== 0
188
+ } : tavilySearchOptions;
189
+ const schemaProperties = {
190
+ query: require_schema.querySchema,
191
+ date: require_schema.dateSchema,
192
+ images: require_schema.imagesSchema,
193
+ videos: require_schema.videosSchema,
194
+ news: require_schema.newsSchema
195
+ };
196
+ if (searchProvider === "serper" || searchProvider === "tavily") schemaProperties.country = require_schema.countrySchema;
197
+ const toolSchema = {
198
+ type: "object",
199
+ properties: schemaProperties,
200
+ required: ["query"]
201
+ };
202
+ const searchAPI = require_search.createSearchAPI({
203
+ searchProvider,
204
+ serperApiKey,
205
+ searxngInstanceUrl,
206
+ searxngApiKey,
207
+ tavilyApiKey,
208
+ tavilySearchUrl,
209
+ tavilySearchOptions: effectiveTavilySearchOptions
210
+ });
211
+ /** Create scraper based on scraperProvider */
212
+ let scraperInstance;
213
+ if (scraperProvider === "serper") scraperInstance = require_serper_scraper.createSerperScraper({
214
+ ...serperScraperOptions,
215
+ apiKey: serperApiKey,
216
+ timeout: scraperTimeout ?? serperScraperOptions?.timeout,
217
+ logger
218
+ });
219
+ else if (scraperProvider === "tavily") scraperInstance = require_tavily_scraper.createTavilyScraper({
220
+ ...tavilyScraperOptions,
221
+ apiKey: tavilyScraperOptions?.apiKey ?? tavilyApiKey ?? process.env.TAVILY_API_KEY,
222
+ apiUrl: tavilyScraperOptions?.apiUrl ?? tavilyExtractUrl,
223
+ timeout: scraperTimeout ?? tavilyScraperOptions?.timeout,
224
+ logger
225
+ });
226
+ else scraperInstance = require_firecrawl.createFirecrawlScraper({
227
+ ...firecrawlOptions,
228
+ apiKey: firecrawlApiKey ?? process.env.FIRECRAWL_API_KEY,
229
+ apiUrl: firecrawlApiUrl,
230
+ version: firecrawlVersion,
231
+ timeout: scraperTimeout ?? firecrawlOptions?.timeout,
232
+ formats: firecrawlOptions?.formats ?? ["markdown", "rawHtml"],
233
+ logger
234
+ });
235
+ const selectedReranker = require_rerankers.createReranker({
236
+ rerankerType,
237
+ jinaApiKey,
238
+ jinaApiUrl,
239
+ cohereApiKey,
240
+ logger
241
+ });
242
+ if (!selectedReranker) logger.warn("No reranker selected. Using default ranking.");
243
+ const sourceProcessor = require_search.createSourceProcessor({
244
+ reranker: selectedReranker,
245
+ topResults,
246
+ maxContentLength,
247
+ strategies,
248
+ filterContent,
249
+ logger
250
+ }, scraperInstance);
251
+ return createTool({
252
+ search: createSearchProcessor({
253
+ searchAPI,
254
+ safeSearch,
255
+ supportsVideos: searchProvider !== "tavily",
256
+ sourceProcessor,
257
+ onGetHighlights,
258
+ logger
259
+ }),
260
+ schema: toolSchema,
261
+ onSearchResults: _onSearchResults
262
+ });
304
263
  };
305
-
264
+ //#endregion
306
265
  exports.createSearchTool = createSearchTool;
307
- //# sourceMappingURL=tool.cjs.map
266
+ exports.executeParallelSearches = executeParallelSearches;
267
+
268
+ //# sourceMappingURL=tool.cjs.map