@illuma-ai/agents 1.0.81

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 (558) hide show
  1. package/README.md +485 -0
  2. package/dist/cjs/agents/AgentContext.cjs +734 -0
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -0
  4. package/dist/cjs/common/enum.cjs +190 -0
  5. package/dist/cjs/common/enum.cjs.map +1 -0
  6. package/dist/cjs/events.cjs +172 -0
  7. package/dist/cjs/events.cjs.map +1 -0
  8. package/dist/cjs/graphs/Graph.cjs +1615 -0
  9. package/dist/cjs/graphs/Graph.cjs.map +1 -0
  10. package/dist/cjs/graphs/MultiAgentGraph.cjs +890 -0
  11. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -0
  12. package/dist/cjs/instrumentation.cjs +21 -0
  13. package/dist/cjs/instrumentation.cjs.map +1 -0
  14. package/dist/cjs/llm/anthropic/index.cjs +292 -0
  15. package/dist/cjs/llm/anthropic/index.cjs.map +1 -0
  16. package/dist/cjs/llm/anthropic/types.cjs +50 -0
  17. package/dist/cjs/llm/anthropic/types.cjs.map +1 -0
  18. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +630 -0
  19. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -0
  20. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +218 -0
  21. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -0
  22. package/dist/cjs/llm/anthropic/utils/tools.cjs +29 -0
  23. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -0
  24. package/dist/cjs/llm/bedrock/index.cjs +282 -0
  25. package/dist/cjs/llm/bedrock/index.cjs.map +1 -0
  26. package/dist/cjs/llm/fake.cjs +97 -0
  27. package/dist/cjs/llm/fake.cjs.map +1 -0
  28. package/dist/cjs/llm/google/index.cjs +216 -0
  29. package/dist/cjs/llm/google/index.cjs.map +1 -0
  30. package/dist/cjs/llm/google/utils/common.cjs +647 -0
  31. package/dist/cjs/llm/google/utils/common.cjs.map +1 -0
  32. package/dist/cjs/llm/openai/index.cjs +1028 -0
  33. package/dist/cjs/llm/openai/index.cjs.map +1 -0
  34. package/dist/cjs/llm/openai/utils/index.cjs +765 -0
  35. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -0
  36. package/dist/cjs/llm/openrouter/index.cjs +212 -0
  37. package/dist/cjs/llm/openrouter/index.cjs.map +1 -0
  38. package/dist/cjs/llm/providers.cjs +43 -0
  39. package/dist/cjs/llm/providers.cjs.map +1 -0
  40. package/dist/cjs/llm/text.cjs +69 -0
  41. package/dist/cjs/llm/text.cjs.map +1 -0
  42. package/dist/cjs/llm/vertexai/index.cjs +329 -0
  43. package/dist/cjs/llm/vertexai/index.cjs.map +1 -0
  44. package/dist/cjs/main.cjs +240 -0
  45. package/dist/cjs/main.cjs.map +1 -0
  46. package/dist/cjs/messages/cache.cjs +387 -0
  47. package/dist/cjs/messages/cache.cjs.map +1 -0
  48. package/dist/cjs/messages/content.cjs +53 -0
  49. package/dist/cjs/messages/content.cjs.map +1 -0
  50. package/dist/cjs/messages/core.cjs +367 -0
  51. package/dist/cjs/messages/core.cjs.map +1 -0
  52. package/dist/cjs/messages/format.cjs +761 -0
  53. package/dist/cjs/messages/format.cjs.map +1 -0
  54. package/dist/cjs/messages/ids.cjs +23 -0
  55. package/dist/cjs/messages/ids.cjs.map +1 -0
  56. package/dist/cjs/messages/prune.cjs +398 -0
  57. package/dist/cjs/messages/prune.cjs.map +1 -0
  58. package/dist/cjs/messages/tools.cjs +96 -0
  59. package/dist/cjs/messages/tools.cjs.map +1 -0
  60. package/dist/cjs/run.cjs +328 -0
  61. package/dist/cjs/run.cjs.map +1 -0
  62. package/dist/cjs/schemas/validate.cjs +324 -0
  63. package/dist/cjs/schemas/validate.cjs.map +1 -0
  64. package/dist/cjs/splitStream.cjs +210 -0
  65. package/dist/cjs/splitStream.cjs.map +1 -0
  66. package/dist/cjs/stream.cjs +620 -0
  67. package/dist/cjs/stream.cjs.map +1 -0
  68. package/dist/cjs/tools/BrowserTools.cjs +248 -0
  69. package/dist/cjs/tools/BrowserTools.cjs.map +1 -0
  70. package/dist/cjs/tools/Calculator.cjs +66 -0
  71. package/dist/cjs/tools/Calculator.cjs.map +1 -0
  72. package/dist/cjs/tools/CodeExecutor.cjs +234 -0
  73. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -0
  74. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +636 -0
  75. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -0
  76. package/dist/cjs/tools/ToolNode.cjs +548 -0
  77. package/dist/cjs/tools/ToolNode.cjs.map +1 -0
  78. package/dist/cjs/tools/ToolSearch.cjs +909 -0
  79. package/dist/cjs/tools/ToolSearch.cjs.map +1 -0
  80. package/dist/cjs/tools/handlers.cjs +255 -0
  81. package/dist/cjs/tools/handlers.cjs.map +1 -0
  82. package/dist/cjs/tools/schema.cjs +31 -0
  83. package/dist/cjs/tools/schema.cjs.map +1 -0
  84. package/dist/cjs/tools/search/anthropic.cjs +40 -0
  85. package/dist/cjs/tools/search/anthropic.cjs.map +1 -0
  86. package/dist/cjs/tools/search/content.cjs +140 -0
  87. package/dist/cjs/tools/search/content.cjs.map +1 -0
  88. package/dist/cjs/tools/search/firecrawl.cjs +179 -0
  89. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -0
  90. package/dist/cjs/tools/search/format.cjs +203 -0
  91. package/dist/cjs/tools/search/format.cjs.map +1 -0
  92. package/dist/cjs/tools/search/highlights.cjs +245 -0
  93. package/dist/cjs/tools/search/highlights.cjs.map +1 -0
  94. package/dist/cjs/tools/search/rerankers.cjs +174 -0
  95. package/dist/cjs/tools/search/rerankers.cjs.map +1 -0
  96. package/dist/cjs/tools/search/schema.cjs +117 -0
  97. package/dist/cjs/tools/search/schema.cjs.map +1 -0
  98. package/dist/cjs/tools/search/search.cjs +566 -0
  99. package/dist/cjs/tools/search/search.cjs.map +1 -0
  100. package/dist/cjs/tools/search/serper-scraper.cjs +132 -0
  101. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -0
  102. package/dist/cjs/tools/search/tool.cjs +456 -0
  103. package/dist/cjs/tools/search/tool.cjs.map +1 -0
  104. package/dist/cjs/tools/search/utils.cjs +66 -0
  105. package/dist/cjs/tools/search/utils.cjs.map +1 -0
  106. package/dist/cjs/types/graph.cjs +29 -0
  107. package/dist/cjs/types/graph.cjs.map +1 -0
  108. package/dist/cjs/utils/contextAnalytics.cjs +66 -0
  109. package/dist/cjs/utils/contextAnalytics.cjs.map +1 -0
  110. package/dist/cjs/utils/events.cjs +31 -0
  111. package/dist/cjs/utils/events.cjs.map +1 -0
  112. package/dist/cjs/utils/graph.cjs +16 -0
  113. package/dist/cjs/utils/graph.cjs.map +1 -0
  114. package/dist/cjs/utils/handlers.cjs +70 -0
  115. package/dist/cjs/utils/handlers.cjs.map +1 -0
  116. package/dist/cjs/utils/llm.cjs +27 -0
  117. package/dist/cjs/utils/llm.cjs.map +1 -0
  118. package/dist/cjs/utils/misc.cjs +56 -0
  119. package/dist/cjs/utils/misc.cjs.map +1 -0
  120. package/dist/cjs/utils/run.cjs +73 -0
  121. package/dist/cjs/utils/run.cjs.map +1 -0
  122. package/dist/cjs/utils/schema.cjs +27 -0
  123. package/dist/cjs/utils/schema.cjs.map +1 -0
  124. package/dist/cjs/utils/title.cjs +125 -0
  125. package/dist/cjs/utils/title.cjs.map +1 -0
  126. package/dist/cjs/utils/tokens.cjs +125 -0
  127. package/dist/cjs/utils/tokens.cjs.map +1 -0
  128. package/dist/cjs/utils/toonFormat.cjs +388 -0
  129. package/dist/cjs/utils/toonFormat.cjs.map +1 -0
  130. package/dist/esm/agents/AgentContext.mjs +732 -0
  131. package/dist/esm/agents/AgentContext.mjs.map +1 -0
  132. package/dist/esm/common/enum.mjs +190 -0
  133. package/dist/esm/common/enum.mjs.map +1 -0
  134. package/dist/esm/events.mjs +164 -0
  135. package/dist/esm/events.mjs.map +1 -0
  136. package/dist/esm/graphs/Graph.mjs +1612 -0
  137. package/dist/esm/graphs/Graph.mjs.map +1 -0
  138. package/dist/esm/graphs/MultiAgentGraph.mjs +888 -0
  139. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -0
  140. package/dist/esm/instrumentation.mjs +19 -0
  141. package/dist/esm/instrumentation.mjs.map +1 -0
  142. package/dist/esm/llm/anthropic/index.mjs +290 -0
  143. package/dist/esm/llm/anthropic/index.mjs.map +1 -0
  144. package/dist/esm/llm/anthropic/types.mjs +48 -0
  145. package/dist/esm/llm/anthropic/types.mjs.map +1 -0
  146. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +627 -0
  147. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -0
  148. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +216 -0
  149. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -0
  150. package/dist/esm/llm/anthropic/utils/tools.mjs +27 -0
  151. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -0
  152. package/dist/esm/llm/bedrock/index.mjs +280 -0
  153. package/dist/esm/llm/bedrock/index.mjs.map +1 -0
  154. package/dist/esm/llm/fake.mjs +94 -0
  155. package/dist/esm/llm/fake.mjs.map +1 -0
  156. package/dist/esm/llm/google/index.mjs +214 -0
  157. package/dist/esm/llm/google/index.mjs.map +1 -0
  158. package/dist/esm/llm/google/utils/common.mjs +638 -0
  159. package/dist/esm/llm/google/utils/common.mjs.map +1 -0
  160. package/dist/esm/llm/openai/index.mjs +1018 -0
  161. package/dist/esm/llm/openai/index.mjs.map +1 -0
  162. package/dist/esm/llm/openai/utils/index.mjs +759 -0
  163. package/dist/esm/llm/openai/utils/index.mjs.map +1 -0
  164. package/dist/esm/llm/openrouter/index.mjs +210 -0
  165. package/dist/esm/llm/openrouter/index.mjs.map +1 -0
  166. package/dist/esm/llm/providers.mjs +39 -0
  167. package/dist/esm/llm/providers.mjs.map +1 -0
  168. package/dist/esm/llm/text.mjs +67 -0
  169. package/dist/esm/llm/text.mjs.map +1 -0
  170. package/dist/esm/llm/vertexai/index.mjs +327 -0
  171. package/dist/esm/llm/vertexai/index.mjs.map +1 -0
  172. package/dist/esm/main.mjs +37 -0
  173. package/dist/esm/main.mjs.map +1 -0
  174. package/dist/esm/messages/cache.mjs +382 -0
  175. package/dist/esm/messages/cache.mjs.map +1 -0
  176. package/dist/esm/messages/content.mjs +51 -0
  177. package/dist/esm/messages/content.mjs.map +1 -0
  178. package/dist/esm/messages/core.mjs +359 -0
  179. package/dist/esm/messages/core.mjs.map +1 -0
  180. package/dist/esm/messages/format.mjs +752 -0
  181. package/dist/esm/messages/format.mjs.map +1 -0
  182. package/dist/esm/messages/ids.mjs +21 -0
  183. package/dist/esm/messages/ids.mjs.map +1 -0
  184. package/dist/esm/messages/prune.mjs +393 -0
  185. package/dist/esm/messages/prune.mjs.map +1 -0
  186. package/dist/esm/messages/tools.mjs +93 -0
  187. package/dist/esm/messages/tools.mjs.map +1 -0
  188. package/dist/esm/run.mjs +325 -0
  189. package/dist/esm/run.mjs.map +1 -0
  190. package/dist/esm/schemas/validate.mjs +317 -0
  191. package/dist/esm/schemas/validate.mjs.map +1 -0
  192. package/dist/esm/splitStream.mjs +207 -0
  193. package/dist/esm/splitStream.mjs.map +1 -0
  194. package/dist/esm/stream.mjs +616 -0
  195. package/dist/esm/stream.mjs.map +1 -0
  196. package/dist/esm/tools/BrowserTools.mjs +244 -0
  197. package/dist/esm/tools/BrowserTools.mjs.map +1 -0
  198. package/dist/esm/tools/Calculator.mjs +41 -0
  199. package/dist/esm/tools/Calculator.mjs.map +1 -0
  200. package/dist/esm/tools/CodeExecutor.mjs +226 -0
  201. package/dist/esm/tools/CodeExecutor.mjs.map +1 -0
  202. package/dist/esm/tools/ProgrammaticToolCalling.mjs +622 -0
  203. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -0
  204. package/dist/esm/tools/ToolNode.mjs +545 -0
  205. package/dist/esm/tools/ToolNode.mjs.map +1 -0
  206. package/dist/esm/tools/ToolSearch.mjs +870 -0
  207. package/dist/esm/tools/ToolSearch.mjs.map +1 -0
  208. package/dist/esm/tools/handlers.mjs +250 -0
  209. package/dist/esm/tools/handlers.mjs.map +1 -0
  210. package/dist/esm/tools/schema.mjs +28 -0
  211. package/dist/esm/tools/schema.mjs.map +1 -0
  212. package/dist/esm/tools/search/anthropic.mjs +37 -0
  213. package/dist/esm/tools/search/anthropic.mjs.map +1 -0
  214. package/dist/esm/tools/search/content.mjs +119 -0
  215. package/dist/esm/tools/search/content.mjs.map +1 -0
  216. package/dist/esm/tools/search/firecrawl.mjs +176 -0
  217. package/dist/esm/tools/search/firecrawl.mjs.map +1 -0
  218. package/dist/esm/tools/search/format.mjs +201 -0
  219. package/dist/esm/tools/search/format.mjs.map +1 -0
  220. package/dist/esm/tools/search/highlights.mjs +243 -0
  221. package/dist/esm/tools/search/highlights.mjs.map +1 -0
  222. package/dist/esm/tools/search/rerankers.mjs +168 -0
  223. package/dist/esm/tools/search/rerankers.mjs.map +1 -0
  224. package/dist/esm/tools/search/schema.mjs +104 -0
  225. package/dist/esm/tools/search/schema.mjs.map +1 -0
  226. package/dist/esm/tools/search/search.mjs +563 -0
  227. package/dist/esm/tools/search/search.mjs.map +1 -0
  228. package/dist/esm/tools/search/serper-scraper.mjs +129 -0
  229. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -0
  230. package/dist/esm/tools/search/tool.mjs +454 -0
  231. package/dist/esm/tools/search/tool.mjs.map +1 -0
  232. package/dist/esm/tools/search/utils.mjs +61 -0
  233. package/dist/esm/tools/search/utils.mjs.map +1 -0
  234. package/dist/esm/types/graph.mjs +26 -0
  235. package/dist/esm/types/graph.mjs.map +1 -0
  236. package/dist/esm/utils/contextAnalytics.mjs +64 -0
  237. package/dist/esm/utils/contextAnalytics.mjs.map +1 -0
  238. package/dist/esm/utils/events.mjs +29 -0
  239. package/dist/esm/utils/events.mjs.map +1 -0
  240. package/dist/esm/utils/graph.mjs +13 -0
  241. package/dist/esm/utils/graph.mjs.map +1 -0
  242. package/dist/esm/utils/handlers.mjs +68 -0
  243. package/dist/esm/utils/handlers.mjs.map +1 -0
  244. package/dist/esm/utils/llm.mjs +24 -0
  245. package/dist/esm/utils/llm.mjs.map +1 -0
  246. package/dist/esm/utils/misc.mjs +53 -0
  247. package/dist/esm/utils/misc.mjs.map +1 -0
  248. package/dist/esm/utils/run.mjs +70 -0
  249. package/dist/esm/utils/run.mjs.map +1 -0
  250. package/dist/esm/utils/schema.mjs +24 -0
  251. package/dist/esm/utils/schema.mjs.map +1 -0
  252. package/dist/esm/utils/title.mjs +122 -0
  253. package/dist/esm/utils/title.mjs.map +1 -0
  254. package/dist/esm/utils/tokens.mjs +121 -0
  255. package/dist/esm/utils/tokens.mjs.map +1 -0
  256. package/dist/esm/utils/toonFormat.mjs +381 -0
  257. package/dist/esm/utils/toonFormat.mjs.map +1 -0
  258. package/dist/types/agents/AgentContext.d.ts +293 -0
  259. package/dist/types/common/enum.d.ts +155 -0
  260. package/dist/types/common/index.d.ts +1 -0
  261. package/dist/types/events.d.ts +31 -0
  262. package/dist/types/graphs/Graph.d.ts +216 -0
  263. package/dist/types/graphs/MultiAgentGraph.d.ts +104 -0
  264. package/dist/types/graphs/index.d.ts +2 -0
  265. package/dist/types/index.d.ts +21 -0
  266. package/dist/types/instrumentation.d.ts +1 -0
  267. package/dist/types/llm/anthropic/index.d.ts +39 -0
  268. package/dist/types/llm/anthropic/types.d.ts +37 -0
  269. package/dist/types/llm/anthropic/utils/message_inputs.d.ts +14 -0
  270. package/dist/types/llm/anthropic/utils/message_outputs.d.ts +14 -0
  271. package/dist/types/llm/anthropic/utils/output_parsers.d.ts +22 -0
  272. package/dist/types/llm/anthropic/utils/tools.d.ts +3 -0
  273. package/dist/types/llm/bedrock/index.d.ts +141 -0
  274. package/dist/types/llm/bedrock/types.d.ts +27 -0
  275. package/dist/types/llm/bedrock/utils/index.d.ts +5 -0
  276. package/dist/types/llm/bedrock/utils/message_inputs.d.ts +31 -0
  277. package/dist/types/llm/bedrock/utils/message_outputs.d.ts +33 -0
  278. package/dist/types/llm/fake.d.ts +31 -0
  279. package/dist/types/llm/google/index.d.ts +24 -0
  280. package/dist/types/llm/google/types.d.ts +42 -0
  281. package/dist/types/llm/google/utils/common.d.ts +34 -0
  282. package/dist/types/llm/google/utils/tools.d.ts +10 -0
  283. package/dist/types/llm/google/utils/zod_to_genai_parameters.d.ts +14 -0
  284. package/dist/types/llm/openai/index.d.ts +127 -0
  285. package/dist/types/llm/openai/types.d.ts +10 -0
  286. package/dist/types/llm/openai/utils/index.d.ts +29 -0
  287. package/dist/types/llm/openrouter/index.d.ts +15 -0
  288. package/dist/types/llm/providers.d.ts +5 -0
  289. package/dist/types/llm/text.d.ts +21 -0
  290. package/dist/types/llm/vertexai/index.d.ts +293 -0
  291. package/dist/types/messages/cache.d.ts +54 -0
  292. package/dist/types/messages/content.d.ts +7 -0
  293. package/dist/types/messages/core.d.ts +14 -0
  294. package/dist/types/messages/format.d.ts +137 -0
  295. package/dist/types/messages/ids.d.ts +3 -0
  296. package/dist/types/messages/index.d.ts +7 -0
  297. package/dist/types/messages/prune.d.ts +52 -0
  298. package/dist/types/messages/reducer.d.ts +9 -0
  299. package/dist/types/messages/tools.d.ts +17 -0
  300. package/dist/types/mockStream.d.ts +32 -0
  301. package/dist/types/prompts/collab.d.ts +1 -0
  302. package/dist/types/prompts/index.d.ts +2 -0
  303. package/dist/types/prompts/taskmanager.d.ts +41 -0
  304. package/dist/types/run.d.ts +41 -0
  305. package/dist/types/schemas/index.d.ts +1 -0
  306. package/dist/types/schemas/validate.d.ts +59 -0
  307. package/dist/types/splitStream.d.ts +37 -0
  308. package/dist/types/stream.d.ts +15 -0
  309. package/dist/types/test/mockTools.d.ts +28 -0
  310. package/dist/types/tools/BrowserTools.d.ts +87 -0
  311. package/dist/types/tools/Calculator.d.ts +34 -0
  312. package/dist/types/tools/CodeExecutor.d.ts +57 -0
  313. package/dist/types/tools/ProgrammaticToolCalling.d.ts +138 -0
  314. package/dist/types/tools/ToolNode.d.ts +51 -0
  315. package/dist/types/tools/ToolSearch.d.ts +219 -0
  316. package/dist/types/tools/handlers.d.ts +22 -0
  317. package/dist/types/tools/schema.d.ts +12 -0
  318. package/dist/types/tools/search/anthropic.d.ts +16 -0
  319. package/dist/types/tools/search/content.d.ts +4 -0
  320. package/dist/types/tools/search/firecrawl.d.ts +54 -0
  321. package/dist/types/tools/search/format.d.ts +5 -0
  322. package/dist/types/tools/search/highlights.d.ts +13 -0
  323. package/dist/types/tools/search/index.d.ts +3 -0
  324. package/dist/types/tools/search/rerankers.d.ts +38 -0
  325. package/dist/types/tools/search/schema.d.ts +103 -0
  326. package/dist/types/tools/search/search.d.ts +8 -0
  327. package/dist/types/tools/search/serper-scraper.d.ts +59 -0
  328. package/dist/types/tools/search/test.d.ts +1 -0
  329. package/dist/types/tools/search/tool.d.ts +3 -0
  330. package/dist/types/tools/search/types.d.ts +575 -0
  331. package/dist/types/tools/search/utils.d.ts +10 -0
  332. package/dist/types/types/graph.d.ts +399 -0
  333. package/dist/types/types/index.d.ts +5 -0
  334. package/dist/types/types/llm.d.ts +105 -0
  335. package/dist/types/types/messages.d.ts +4 -0
  336. package/dist/types/types/run.d.ts +112 -0
  337. package/dist/types/types/stream.d.ts +308 -0
  338. package/dist/types/types/tools.d.ts +296 -0
  339. package/dist/types/utils/contextAnalytics.d.ts +37 -0
  340. package/dist/types/utils/events.d.ts +6 -0
  341. package/dist/types/utils/graph.d.ts +2 -0
  342. package/dist/types/utils/handlers.d.ts +34 -0
  343. package/dist/types/utils/index.d.ts +9 -0
  344. package/dist/types/utils/llm.d.ts +3 -0
  345. package/dist/types/utils/llmConfig.d.ts +3 -0
  346. package/dist/types/utils/logging.d.ts +1 -0
  347. package/dist/types/utils/misc.d.ts +7 -0
  348. package/dist/types/utils/run.d.ts +27 -0
  349. package/dist/types/utils/schema.d.ts +8 -0
  350. package/dist/types/utils/title.d.ts +4 -0
  351. package/dist/types/utils/tokens.d.ts +28 -0
  352. package/dist/types/utils/toonFormat.d.ts +111 -0
  353. package/package.json +190 -0
  354. package/src/agents/AgentContext.test.ts +458 -0
  355. package/src/agents/AgentContext.ts +972 -0
  356. package/src/agents/__tests__/AgentContext.test.ts +805 -0
  357. package/src/agents/__tests__/resolveStructuredOutputMode.test.ts +137 -0
  358. package/src/common/enum.ts +203 -0
  359. package/src/common/index.ts +2 -0
  360. package/src/events.ts +223 -0
  361. package/src/graphs/Graph.ts +2228 -0
  362. package/src/graphs/MultiAgentGraph.ts +1063 -0
  363. package/src/graphs/__tests__/structured-output.integration.test.ts +809 -0
  364. package/src/graphs/__tests__/structured-output.test.ts +183 -0
  365. package/src/graphs/index.ts +2 -0
  366. package/src/index.ts +34 -0
  367. package/src/instrumentation.ts +22 -0
  368. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  369. package/src/llm/anthropic/index.ts +413 -0
  370. package/src/llm/anthropic/llm.spec.ts +1442 -0
  371. package/src/llm/anthropic/types.ts +140 -0
  372. package/src/llm/anthropic/utils/message_inputs.ts +757 -0
  373. package/src/llm/anthropic/utils/message_outputs.ts +289 -0
  374. package/src/llm/anthropic/utils/output_parsers.ts +133 -0
  375. package/src/llm/anthropic/utils/tools.ts +29 -0
  376. package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +495 -0
  377. package/src/llm/bedrock/index.ts +411 -0
  378. package/src/llm/bedrock/llm.spec.ts +616 -0
  379. package/src/llm/bedrock/types.ts +51 -0
  380. package/src/llm/bedrock/utils/index.ts +18 -0
  381. package/src/llm/bedrock/utils/message_inputs.ts +563 -0
  382. package/src/llm/bedrock/utils/message_outputs.ts +310 -0
  383. package/src/llm/fake.ts +133 -0
  384. package/src/llm/google/data/gettysburg10.wav +0 -0
  385. package/src/llm/google/data/hotdog.jpg +0 -0
  386. package/src/llm/google/index.ts +337 -0
  387. package/src/llm/google/llm.spec.ts +934 -0
  388. package/src/llm/google/types.ts +56 -0
  389. package/src/llm/google/utils/common.ts +873 -0
  390. package/src/llm/google/utils/tools.ts +160 -0
  391. package/src/llm/google/utils/zod_to_genai_parameters.ts +86 -0
  392. package/src/llm/openai/index.ts +1366 -0
  393. package/src/llm/openai/types.ts +24 -0
  394. package/src/llm/openai/utils/index.ts +1035 -0
  395. package/src/llm/openai/utils/isReasoningModel.test.ts +90 -0
  396. package/src/llm/openrouter/index.ts +291 -0
  397. package/src/llm/providers.ts +52 -0
  398. package/src/llm/text.ts +94 -0
  399. package/src/llm/vertexai/index.ts +359 -0
  400. package/src/messages/__tests__/tools.test.ts +473 -0
  401. package/src/messages/cache.test.ts +1261 -0
  402. package/src/messages/cache.ts +518 -0
  403. package/src/messages/content.test.ts +362 -0
  404. package/src/messages/content.ts +63 -0
  405. package/src/messages/core.ts +473 -0
  406. package/src/messages/ensureThinkingBlock.test.ts +468 -0
  407. package/src/messages/format.ts +1029 -0
  408. package/src/messages/formatAgentMessages.test.ts +1513 -0
  409. package/src/messages/formatAgentMessages.tools.test.ts +419 -0
  410. package/src/messages/formatMessage.test.ts +693 -0
  411. package/src/messages/ids.ts +26 -0
  412. package/src/messages/index.ts +7 -0
  413. package/src/messages/labelContentByAgent.test.ts +887 -0
  414. package/src/messages/prune.ts +568 -0
  415. package/src/messages/reducer.ts +80 -0
  416. package/src/messages/shiftIndexTokenCountMap.test.ts +81 -0
  417. package/src/messages/tools.ts +108 -0
  418. package/src/mockStream.ts +99 -0
  419. package/src/prompts/collab.ts +6 -0
  420. package/src/prompts/index.ts +2 -0
  421. package/src/prompts/taskmanager.ts +61 -0
  422. package/src/run.ts +467 -0
  423. package/src/schemas/index.ts +2 -0
  424. package/src/schemas/schema-preparation.test.ts +500 -0
  425. package/src/schemas/validate.test.ts +358 -0
  426. package/src/schemas/validate.ts +454 -0
  427. package/src/scripts/abort.ts +157 -0
  428. package/src/scripts/ant_web_search.ts +158 -0
  429. package/src/scripts/ant_web_search_edge_case.ts +162 -0
  430. package/src/scripts/ant_web_search_error_edge_case.ts +148 -0
  431. package/src/scripts/args.ts +48 -0
  432. package/src/scripts/caching.ts +132 -0
  433. package/src/scripts/cli.ts +172 -0
  434. package/src/scripts/cli2.ts +133 -0
  435. package/src/scripts/cli3.ts +184 -0
  436. package/src/scripts/cli4.ts +191 -0
  437. package/src/scripts/cli5.ts +191 -0
  438. package/src/scripts/code_exec.ts +213 -0
  439. package/src/scripts/code_exec_files.ts +236 -0
  440. package/src/scripts/code_exec_multi_session.ts +241 -0
  441. package/src/scripts/code_exec_ptc.ts +334 -0
  442. package/src/scripts/code_exec_session.ts +282 -0
  443. package/src/scripts/code_exec_simple.ts +147 -0
  444. package/src/scripts/content.ts +138 -0
  445. package/src/scripts/empty_input.ts +137 -0
  446. package/src/scripts/handoff-test.ts +135 -0
  447. package/src/scripts/image.ts +178 -0
  448. package/src/scripts/memory.ts +97 -0
  449. package/src/scripts/multi-agent-chain.ts +331 -0
  450. package/src/scripts/multi-agent-conditional.ts +221 -0
  451. package/src/scripts/multi-agent-document-review-chain.ts +197 -0
  452. package/src/scripts/multi-agent-hybrid-flow.ts +310 -0
  453. package/src/scripts/multi-agent-parallel-start.ts +265 -0
  454. package/src/scripts/multi-agent-parallel.ts +394 -0
  455. package/src/scripts/multi-agent-sequence.ts +217 -0
  456. package/src/scripts/multi-agent-supervisor.ts +365 -0
  457. package/src/scripts/multi-agent-test.ts +186 -0
  458. package/src/scripts/parallel-asymmetric-tools-test.ts +274 -0
  459. package/src/scripts/parallel-full-metadata-test.ts +240 -0
  460. package/src/scripts/parallel-tools-test.ts +340 -0
  461. package/src/scripts/programmatic_exec.ts +396 -0
  462. package/src/scripts/programmatic_exec_agent.ts +231 -0
  463. package/src/scripts/search.ts +146 -0
  464. package/src/scripts/sequential-full-metadata-test.ts +197 -0
  465. package/src/scripts/simple.ts +225 -0
  466. package/src/scripts/single-agent-metadata-test.ts +198 -0
  467. package/src/scripts/stream.ts +140 -0
  468. package/src/scripts/test-custom-prompt-key.ts +145 -0
  469. package/src/scripts/test-handoff-input.ts +170 -0
  470. package/src/scripts/test-handoff-preamble.ts +277 -0
  471. package/src/scripts/test-multi-agent-list-handoff.ts +417 -0
  472. package/src/scripts/test-parallel-agent-labeling.ts +325 -0
  473. package/src/scripts/test-parallel-handoffs.ts +291 -0
  474. package/src/scripts/test-thinking-handoff-bedrock.ts +153 -0
  475. package/src/scripts/test-thinking-handoff.ts +155 -0
  476. package/src/scripts/test-tools-before-handoff.ts +226 -0
  477. package/src/scripts/test_code_api.ts +361 -0
  478. package/src/scripts/thinking-bedrock.ts +159 -0
  479. package/src/scripts/thinking.ts +171 -0
  480. package/src/scripts/tool_search.ts +162 -0
  481. package/src/scripts/tools.ts +177 -0
  482. package/src/specs/agent-handoffs.test.ts +888 -0
  483. package/src/specs/anthropic.simple.test.ts +387 -0
  484. package/src/specs/azure.simple.test.ts +364 -0
  485. package/src/specs/cache.simple.test.ts +396 -0
  486. package/src/specs/deepseek.simple.test.ts +283 -0
  487. package/src/specs/emergency-prune.test.ts +407 -0
  488. package/src/specs/moonshot.simple.test.ts +358 -0
  489. package/src/specs/openai.simple.test.ts +311 -0
  490. package/src/specs/openrouter.simple.test.ts +107 -0
  491. package/src/specs/prune.test.ts +901 -0
  492. package/src/specs/reasoning.test.ts +201 -0
  493. package/src/specs/spec.utils.ts +3 -0
  494. package/src/specs/thinking-handoff.test.ts +620 -0
  495. package/src/specs/thinking-prune.test.ts +703 -0
  496. package/src/specs/token-distribution-edge-case.test.ts +316 -0
  497. package/src/specs/token-memoization.test.ts +32 -0
  498. package/src/specs/tool-error.test.ts +198 -0
  499. package/src/splitStream.test.ts +691 -0
  500. package/src/splitStream.ts +234 -0
  501. package/src/stream.test.ts +94 -0
  502. package/src/stream.ts +801 -0
  503. package/src/test/mockTools.ts +386 -0
  504. package/src/tools/BrowserTools.ts +393 -0
  505. package/src/tools/Calculator.test.ts +278 -0
  506. package/src/tools/Calculator.ts +46 -0
  507. package/src/tools/CodeExecutor.ts +270 -0
  508. package/src/tools/ProgrammaticToolCalling.ts +785 -0
  509. package/src/tools/ToolNode.ts +674 -0
  510. package/src/tools/ToolSearch.ts +1095 -0
  511. package/src/tools/__tests__/BrowserTools.test.ts +265 -0
  512. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +319 -0
  513. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +1006 -0
  514. package/src/tools/__tests__/ToolSearch.integration.test.ts +162 -0
  515. package/src/tools/__tests__/ToolSearch.test.ts +1003 -0
  516. package/src/tools/handlers.ts +363 -0
  517. package/src/tools/schema.ts +37 -0
  518. package/src/tools/search/anthropic.ts +51 -0
  519. package/src/tools/search/content.test.ts +173 -0
  520. package/src/tools/search/content.ts +147 -0
  521. package/src/tools/search/firecrawl.ts +210 -0
  522. package/src/tools/search/format.ts +250 -0
  523. package/src/tools/search/highlights.ts +320 -0
  524. package/src/tools/search/index.ts +3 -0
  525. package/src/tools/search/jina-reranker.test.ts +130 -0
  526. package/src/tools/search/output.md +2775 -0
  527. package/src/tools/search/rerankers.ts +242 -0
  528. package/src/tools/search/schema.ts +113 -0
  529. package/src/tools/search/search.ts +768 -0
  530. package/src/tools/search/serper-scraper.ts +155 -0
  531. package/src/tools/search/test.html +884 -0
  532. package/src/tools/search/test.md +643 -0
  533. package/src/tools/search/test.ts +159 -0
  534. package/src/tools/search/tool.ts +657 -0
  535. package/src/tools/search/types.ts +665 -0
  536. package/src/tools/search/utils.ts +79 -0
  537. package/src/types/graph.test.ts +218 -0
  538. package/src/types/graph.ts +533 -0
  539. package/src/types/index.ts +6 -0
  540. package/src/types/llm.ts +140 -0
  541. package/src/types/messages.ts +4 -0
  542. package/src/types/run.ts +128 -0
  543. package/src/types/stream.ts +417 -0
  544. package/src/types/tools.ts +355 -0
  545. package/src/utils/contextAnalytics.ts +103 -0
  546. package/src/utils/events.ts +32 -0
  547. package/src/utils/graph.ts +11 -0
  548. package/src/utils/handlers.ts +107 -0
  549. package/src/utils/index.ts +9 -0
  550. package/src/utils/llm.ts +26 -0
  551. package/src/utils/llmConfig.ts +208 -0
  552. package/src/utils/logging.ts +48 -0
  553. package/src/utils/misc.ts +57 -0
  554. package/src/utils/run.ts +106 -0
  555. package/src/utils/schema.ts +35 -0
  556. package/src/utils/title.ts +177 -0
  557. package/src/utils/tokens.ts +142 -0
  558. package/src/utils/toonFormat.ts +475 -0
@@ -0,0 +1,219 @@
1
+ import { DynamicStructuredTool } from '@langchain/core/tools';
2
+ import type * as t from '@/types';
3
+ import { Constants } from '@/common';
4
+ export declare const ToolSearchToolName = Constants.TOOL_SEARCH;
5
+ export declare const ToolSearchToolDescription = "Searches deferred tools using BM25 ranking. Multi-word queries supported. Use mcp_server param to filter by server.";
6
+ export declare const ToolSearchToolSchema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly query: {
10
+ readonly type: "string";
11
+ readonly maxLength: 200;
12
+ readonly default: "";
13
+ readonly description: "Search term to find in tool names and descriptions. Case-insensitive substring matching. Optional if mcp_server is provided.";
14
+ };
15
+ readonly fields: {
16
+ readonly type: "array";
17
+ readonly items: {
18
+ readonly type: "string";
19
+ readonly enum: readonly ["name", "description", "parameters"];
20
+ };
21
+ readonly default: readonly ["name", "description"];
22
+ readonly description: "Which fields to search. Default: name and description";
23
+ };
24
+ readonly max_results: {
25
+ readonly type: "integer";
26
+ readonly minimum: 1;
27
+ readonly maximum: 50;
28
+ readonly default: 10;
29
+ readonly description: "Maximum number of matching tools to return";
30
+ };
31
+ readonly mcp_server: {
32
+ readonly oneOf: readonly [{
33
+ readonly type: "string";
34
+ }, {
35
+ readonly type: "array";
36
+ readonly items: {
37
+ readonly type: "string";
38
+ };
39
+ }];
40
+ readonly description: "Filter to tools from specific MCP server(s). Can be a single server name or array of names. If provided without a query, lists all tools from those servers.";
41
+ };
42
+ };
43
+ readonly required: readonly [];
44
+ };
45
+ export declare const ToolSearchToolDefinition: {
46
+ readonly name: Constants.TOOL_SEARCH;
47
+ readonly description: "Searches deferred tools using BM25 ranking. Multi-word queries supported. Use mcp_server param to filter by server.";
48
+ readonly schema: {
49
+ readonly type: "object";
50
+ readonly properties: {
51
+ readonly query: {
52
+ readonly type: "string";
53
+ readonly maxLength: 200;
54
+ readonly default: "";
55
+ readonly description: "Search term to find in tool names and descriptions. Case-insensitive substring matching. Optional if mcp_server is provided.";
56
+ };
57
+ readonly fields: {
58
+ readonly type: "array";
59
+ readonly items: {
60
+ readonly type: "string";
61
+ readonly enum: readonly ["name", "description", "parameters"];
62
+ };
63
+ readonly default: readonly ["name", "description"];
64
+ readonly description: "Which fields to search. Default: name and description";
65
+ };
66
+ readonly max_results: {
67
+ readonly type: "integer";
68
+ readonly minimum: 1;
69
+ readonly maximum: 50;
70
+ readonly default: 10;
71
+ readonly description: "Maximum number of matching tools to return";
72
+ };
73
+ readonly mcp_server: {
74
+ readonly oneOf: readonly [{
75
+ readonly type: "string";
76
+ }, {
77
+ readonly type: "array";
78
+ readonly items: {
79
+ readonly type: "string";
80
+ };
81
+ }];
82
+ readonly description: "Filter to tools from specific MCP server(s). Can be a single server name or array of names. If provided without a query, lists all tools from those servers.";
83
+ };
84
+ };
85
+ readonly required: readonly [];
86
+ };
87
+ };
88
+ /**
89
+ * Extracts the MCP server name from a tool name.
90
+ * MCP tools follow the pattern: toolName_mcp_serverName
91
+ * @param toolName - The full tool name
92
+ * @returns The server name if it's an MCP tool, undefined otherwise
93
+ */
94
+ declare function extractMcpServerName(toolName: string): string | undefined;
95
+ /**
96
+ * Checks if a tool belongs to a specific MCP server.
97
+ * @param toolName - The full tool name
98
+ * @param serverName - The server name to match
99
+ * @returns True if the tool belongs to the specified server
100
+ */
101
+ declare function isFromMcpServer(toolName: string, serverName: string): boolean;
102
+ /**
103
+ * Checks if a tool belongs to any of the specified MCP servers.
104
+ * @param toolName - The full tool name
105
+ * @param serverNames - Array of server names to match
106
+ * @returns True if the tool belongs to any of the specified servers
107
+ */
108
+ declare function isFromAnyMcpServer(toolName: string, serverNames: string[]): boolean;
109
+ /**
110
+ * Normalizes server filter input to always be an array.
111
+ * @param serverFilter - String, array of strings, or undefined
112
+ * @returns Array of server names (empty if none specified)
113
+ */
114
+ declare function normalizeServerFilter(serverFilter: string | string[] | undefined): string[];
115
+ /**
116
+ * Extracts all unique MCP server names from a tool registry.
117
+ * @param toolRegistry - The tool registry to scan
118
+ * @param onlyDeferred - If true, only considers deferred tools
119
+ * @returns Array of unique server names, sorted alphabetically
120
+ */
121
+ declare function getAvailableMcpServers(toolRegistry: t.LCToolRegistry | undefined, onlyDeferred?: boolean): string[];
122
+ /**
123
+ * Escapes special regex characters in a string to use as a literal pattern.
124
+ * @param pattern - The string to escape
125
+ * @returns The escaped string safe for use in a RegExp
126
+ */
127
+ declare function escapeRegexSpecialChars(pattern: string): string;
128
+ /**
129
+ * Counts the maximum nesting depth of groups in a regex pattern.
130
+ * @param pattern - The regex pattern to analyze
131
+ * @returns The maximum nesting depth
132
+ */
133
+ declare function countNestedGroups(pattern: string): number;
134
+ /**
135
+ * Detects nested quantifiers that can cause catastrophic backtracking.
136
+ * Patterns like (a+)+, (a*)*, (a+)*, etc.
137
+ * @param pattern - The regex pattern to check
138
+ * @returns True if nested quantifiers are detected
139
+ */
140
+ declare function hasNestedQuantifiers(pattern: string): boolean;
141
+ /**
142
+ * Checks if a regex pattern contains potentially dangerous constructs.
143
+ * @param pattern - The regex pattern to validate
144
+ * @returns True if the pattern is dangerous
145
+ */
146
+ declare function isDangerousPattern(pattern: string): boolean;
147
+ /**
148
+ * Sanitizes a regex pattern for safe execution.
149
+ * If the pattern is dangerous, it will be escaped to a literal string search.
150
+ * @param pattern - The regex pattern to sanitize
151
+ * @returns Object containing the safe pattern and whether it was escaped
152
+ */
153
+ declare function sanitizeRegex(pattern: string): {
154
+ safe: string;
155
+ wasEscaped: boolean;
156
+ };
157
+ /**
158
+ * Performs BM25-based search for better relevance ranking.
159
+ * Uses Okapi BM25 algorithm for term frequency and document length normalization.
160
+ * @param tools - Array of tool metadata to search
161
+ * @param query - The search query
162
+ * @param fields - Which fields to search
163
+ * @param maxResults - Maximum results to return
164
+ * @returns Search response with matching tools ranked by BM25 score
165
+ */
166
+ declare function performLocalSearch(tools: t.ToolMetadata[], query: string, fields: string[], maxResults: number): t.ToolSearchResponse;
167
+ /**
168
+ * Extracts the base tool name (without MCP server suffix) from a full tool name.
169
+ * @param toolName - The full tool name
170
+ * @returns The base tool name without server suffix
171
+ */
172
+ declare function getBaseToolName(toolName: string): string;
173
+ /**
174
+ * Generates a compact listing of deferred tools grouped by server.
175
+ * Format: "server: tool1, tool2, tool3"
176
+ * Non-MCP tools are grouped under "other".
177
+ * @param toolRegistry - The tool registry
178
+ * @param onlyDeferred - Whether to only include deferred tools
179
+ * @returns Formatted string with tools grouped by server
180
+ */
181
+ declare function getDeferredToolsListing(toolRegistry: t.LCToolRegistry | undefined, onlyDeferred: boolean): string;
182
+ /**
183
+ * Formats a server listing response as structured JSON.
184
+ * NOTE: This is a PREVIEW only - tools are NOT discovered/loaded.
185
+ * @param tools - Array of tool metadata from the server(s)
186
+ * @param serverNames - The MCP server name(s)
187
+ * @returns JSON string showing all tools grouped by server
188
+ */
189
+ declare function formatServerListing(tools: t.ToolMetadata[], serverNames: string | string[]): string;
190
+ /**
191
+ * Creates a Tool Search tool for discovering tools from a large registry.
192
+ *
193
+ * This tool enables AI agents to dynamically discover tools from a large library
194
+ * without loading all tool definitions into the LLM context window. The agent
195
+ * can search for relevant tools on-demand.
196
+ *
197
+ * **Modes:**
198
+ * - `code_interpreter` (default): Uses external sandbox for regex search. Safer for complex patterns.
199
+ * - `local`: Uses safe substring matching locally. No network call, faster, completely safe from ReDoS.
200
+ *
201
+ * The tool registry can be provided either:
202
+ * 1. At initialization time via params.toolRegistry
203
+ * 2. At runtime via config.configurable.toolRegistry when invoking
204
+ *
205
+ * @param params - Configuration parameters for the tool (toolRegistry is optional)
206
+ * @returns A LangChain DynamicStructuredTool for tool searching
207
+ *
208
+ * @example
209
+ * // Option 1: Code interpreter mode (regex via sandbox)
210
+ * const tool = createToolSearch({ apiKey, toolRegistry });
211
+ * await tool.invoke({ query: 'expense.*report' });
212
+ *
213
+ * @example
214
+ * // Option 2: Local mode (safe substring search, no API key needed)
215
+ * const tool = createToolSearch({ mode: 'local', toolRegistry });
216
+ * await tool.invoke({ query: 'expense' });
217
+ */
218
+ declare function createToolSearch(initParams?: t.ToolSearchParams): DynamicStructuredTool;
219
+ export { createToolSearch, performLocalSearch, extractMcpServerName, isFromMcpServer, isFromAnyMcpServer, normalizeServerFilter, getAvailableMcpServers, getDeferredToolsListing, getBaseToolName, formatServerListing, sanitizeRegex, escapeRegexSpecialChars, isDangerousPattern, countNestedGroups, hasNestedQuantifiers, };
@@ -0,0 +1,22 @@
1
+ import type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';
2
+ import type { MultiAgentGraph, StandardGraph } from '@/graphs';
3
+ import type { AgentContext } from '@/agents/AgentContext';
4
+ import type * as t from '@/types';
5
+ export declare function handleToolCallChunks({ graph, stepKey, toolCallChunks, metadata, }: {
6
+ graph: StandardGraph | MultiAgentGraph;
7
+ stepKey: string;
8
+ toolCallChunks: ToolCallChunk[];
9
+ metadata?: Record<string, unknown>;
10
+ }): Promise<void>;
11
+ export declare const handleToolCalls: (toolCalls?: ToolCall[], metadata?: Record<string, unknown>, graph?: StandardGraph | MultiAgentGraph) => Promise<void>;
12
+ export declare const toolResultTypes: Set<string>;
13
+ /**
14
+ * Handles the result of a server tool call; in other words, a provider's built-in tool.
15
+ * As of 2025-07-06, only Anthropic handles server tool calls with this pattern.
16
+ */
17
+ export declare function handleServerToolResult({ graph, content, metadata, agentContext, }: {
18
+ graph: StandardGraph | MultiAgentGraph;
19
+ content?: string | t.MessageContentComplex[];
20
+ metadata?: Record<string, unknown>;
21
+ agentContext?: AgentContext;
22
+ }): Promise<boolean>;
@@ -0,0 +1,12 @@
1
+ import { type StructuredToolInterface } from '@langchain/core/tools';
2
+ import type { LCTool } from '@/types';
3
+ /**
4
+ * Creates a schema-only tool for LLM binding in event-driven mode.
5
+ * These tools have valid schemas for the LLM to understand but should
6
+ * never be invoked directly - ToolNode handles execution via events.
7
+ */
8
+ export declare function createSchemaOnlyTool(definition: LCTool): StructuredToolInterface;
9
+ /**
10
+ * Creates schema-only tools for all definitions in an array.
11
+ */
12
+ export declare function createSchemaOnlyTools(definitions: LCTool[]): StructuredToolInterface[];
@@ -0,0 +1,16 @@
1
+ import type { AnthropicTextBlockParam, AnthropicWebSearchResultBlockParam } from '@/llm/anthropic/types';
2
+ import type { SearchResultData } from './types';
3
+ /**
4
+ * Coerces Anthropic web search results to the SearchResultData format
5
+ * @param results - Array of Anthropic web search results
6
+ * @param turn - The turn number to associate with these results
7
+ * @returns SearchResultData with minimal ProcessedOrganic items
8
+ */
9
+ export declare function coerceAnthropicSearchResults({ results, turn, }: {
10
+ results: (AnthropicTextBlockParam | AnthropicWebSearchResultBlockParam)[];
11
+ turn?: number;
12
+ }): SearchResultData;
13
+ /**
14
+ * Helper function to check if an object is an Anthropic web search result
15
+ */
16
+ export declare function isAnthropicWebSearchResult(obj: unknown): obj is AnthropicWebSearchResultBlockParam;
@@ -0,0 +1,4 @@
1
+ import type { References } from './types';
2
+ export declare function processContent(html: string, markdown: string): {
3
+ markdown: string;
4
+ } & References;
@@ -0,0 +1,54 @@
1
+ import type * as t from './types';
2
+ /**
3
+ * Firecrawl scraper implementation
4
+ * Uses the Firecrawl API to scrape web pages
5
+ */
6
+ export declare class FirecrawlScraper implements t.BaseScraper {
7
+ private apiKey;
8
+ private apiUrl;
9
+ private version;
10
+ private defaultFormats;
11
+ private timeout;
12
+ private logger;
13
+ private includeTags?;
14
+ private excludeTags?;
15
+ private waitFor?;
16
+ private maxAge?;
17
+ private mobile?;
18
+ private skipTlsVerification?;
19
+ private blockAds?;
20
+ private removeBase64Images?;
21
+ private parsePDF?;
22
+ private storeInCache?;
23
+ private zeroDataRetention?;
24
+ private headers?;
25
+ private location?;
26
+ private onlyMainContent?;
27
+ private changeTrackingOptions?;
28
+ constructor(config?: t.FirecrawlScraperConfig);
29
+ /**
30
+ * Scrape a single URL
31
+ * @param url URL to scrape
32
+ * @param options Scrape options
33
+ * @returns Scrape response
34
+ */
35
+ scrapeUrl(url: string, options?: t.FirecrawlScrapeOptions): Promise<[string, t.FirecrawlScrapeResponse]>;
36
+ /**
37
+ * Extract content from scrape response
38
+ * @param response Scrape response
39
+ * @returns Extracted content or empty string if not available
40
+ */
41
+ extractContent(response: t.FirecrawlScrapeResponse): [string, undefined | t.References];
42
+ /**
43
+ * Extract metadata from scrape response
44
+ * @param response Scrape response
45
+ * @returns Metadata object
46
+ */
47
+ extractMetadata(response: t.FirecrawlScrapeResponse): t.ScrapeMetadata;
48
+ }
49
+ /**
50
+ * Create a Firecrawl scraper instance
51
+ * @param config Scraper configuration
52
+ * @returns Firecrawl scraper instance
53
+ */
54
+ export declare const createFirecrawlScraper: (config?: t.FirecrawlScraperConfig) => FirecrawlScraper;
@@ -0,0 +1,5 @@
1
+ import type * as t from './types';
2
+ export declare function formatResultsForLLM(turn: number, results: t.SearchResultData): {
3
+ output: string;
4
+ references: t.ResultReference[];
5
+ };
@@ -0,0 +1,13 @@
1
+ import type * as t from './types';
2
+ /**
3
+ * Expand highlights in search results using smart boundary detection.
4
+ *
5
+ * This implementation finds natural text boundaries like paragraphs, sentences,
6
+ * and phrases to provide context while maintaining readability.
7
+ *
8
+ * @param searchResults - Search results object
9
+ * @param mainExpandBy - Primary expansion size on each side (default: 300)
10
+ * @param separatorExpandBy - Additional range to look for separators (default: 150)
11
+ * @returns Copy of search results with expanded highlights and tracked references
12
+ */
13
+ export declare function expandHighlights(searchResults: t.SearchResultData, mainExpandBy?: number, separatorExpandBy?: number): t.SearchResultData;
@@ -0,0 +1,3 @@
1
+ export * from './tool';
2
+ export * from './schema';
3
+ export type * from './types';
@@ -0,0 +1,38 @@
1
+ import type * as t from './types';
2
+ export declare abstract class BaseReranker {
3
+ protected apiKey: string | undefined;
4
+ protected logger: t.Logger;
5
+ constructor(logger?: t.Logger);
6
+ abstract rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
7
+ protected getDefaultRanking(documents: string[], topK: number): t.Highlight[];
8
+ }
9
+ export declare class JinaReranker extends BaseReranker {
10
+ private apiUrl;
11
+ constructor({ apiKey, apiUrl, logger, }: {
12
+ apiKey?: string;
13
+ apiUrl?: string;
14
+ logger?: t.Logger;
15
+ });
16
+ rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
17
+ }
18
+ export declare class CohereReranker extends BaseReranker {
19
+ constructor({ apiKey, logger, }: {
20
+ apiKey?: string;
21
+ logger?: t.Logger;
22
+ });
23
+ rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
24
+ }
25
+ export declare class InfinityReranker extends BaseReranker {
26
+ constructor(logger?: t.Logger);
27
+ rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
28
+ }
29
+ /**
30
+ * Creates the appropriate reranker based on type and configuration
31
+ */
32
+ export declare const createReranker: (config: {
33
+ rerankerType: t.RerankerType;
34
+ jinaApiKey?: string;
35
+ jinaApiUrl?: string;
36
+ cohereApiKey?: string;
37
+ logger?: t.Logger;
38
+ }) => BaseReranker | undefined;
@@ -0,0 +1,103 @@
1
+ export declare enum DATE_RANGE {
2
+ PAST_HOUR = "h",
3
+ PAST_24_HOURS = "d",
4
+ PAST_WEEK = "w",
5
+ PAST_MONTH = "m",
6
+ PAST_YEAR = "y"
7
+ }
8
+ export declare const DEFAULT_QUERY_DESCRIPTION: string;
9
+ export declare const DEFAULT_COUNTRY_DESCRIPTION: string;
10
+ export declare const querySchema: {
11
+ readonly type: "string";
12
+ readonly description: string;
13
+ };
14
+ export declare const dateSchema: {
15
+ readonly type: "string";
16
+ readonly enum: DATE_RANGE[];
17
+ readonly description: "Date range for search results.";
18
+ };
19
+ export declare const countrySchema: {
20
+ readonly type: "string";
21
+ readonly description: string;
22
+ };
23
+ export declare const imagesSchema: {
24
+ readonly type: "boolean";
25
+ readonly description: "Whether to also run an image search.";
26
+ };
27
+ export declare const videosSchema: {
28
+ readonly type: "boolean";
29
+ readonly description: "Whether to also run a video search.";
30
+ };
31
+ export declare const newsSchema: {
32
+ readonly type: "boolean";
33
+ readonly description: "Whether to also run a news search.";
34
+ };
35
+ /** Combined web search tool schema with all properties */
36
+ export declare const WebSearchToolSchema: {
37
+ readonly type: "object";
38
+ readonly properties: {
39
+ readonly query: {
40
+ readonly type: "string";
41
+ readonly description: string;
42
+ };
43
+ readonly date: {
44
+ readonly type: "string";
45
+ readonly enum: DATE_RANGE[];
46
+ readonly description: "Date range for search results.";
47
+ };
48
+ readonly country: {
49
+ readonly type: "string";
50
+ readonly description: string;
51
+ };
52
+ readonly images: {
53
+ readonly type: "boolean";
54
+ readonly description: "Whether to also run an image search.";
55
+ };
56
+ readonly videos: {
57
+ readonly type: "boolean";
58
+ readonly description: "Whether to also run a video search.";
59
+ };
60
+ readonly news: {
61
+ readonly type: "boolean";
62
+ readonly description: "Whether to also run a news search.";
63
+ };
64
+ };
65
+ readonly required: readonly ["query"];
66
+ };
67
+ export declare const WebSearchToolName = "web_search";
68
+ export declare const WebSearchToolDescription = "Real-time search. Results have required citation anchors.\n\nNote: Use ONCE per reply unless instructed otherwise.\n\nAnchors:\n- \\ue202turnXtypeY\n- X = turn idx, type = 'search' | 'news' | 'image' | 'ref', Y = item idx\n\nSpecial Markers:\n- \\ue203...\\ue204 \u2014 highlight start/end of cited text (for Standalone or Group citations)\n- \\ue200...\\ue201 \u2014 group block (e.g. \\ue200\\ue202turn0search1\\ue202turn0news2\\ue201)\n\n**CITE EVERY NON-OBVIOUS FACT/QUOTE:**\nUse anchor marker(s) immediately after the statement:\n- Standalone: \"Pure functions produce same output. \\ue202turn0search0\"\n- Standalone (multiple): \"Today's News \\ue202turn0search0\\ue202turn0news0\"\n- Highlight: \"\\ue203Highlight text.\\ue204\\ue202turn0news1\"\n- Group: \"Sources. \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Group Highlight: \"\\ue203Highlight for group.\\ue204 \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Image: \"See photo \\ue202turn0image0.\"\n\n**NEVER use markdown links, [1], or footnotes. CITE ONLY with anchors provided.**";
69
+ export declare const WebSearchToolDefinition: {
70
+ readonly name: "web_search";
71
+ readonly description: "Real-time search. Results have required citation anchors.\n\nNote: Use ONCE per reply unless instructed otherwise.\n\nAnchors:\n- \\ue202turnXtypeY\n- X = turn idx, type = 'search' | 'news' | 'image' | 'ref', Y = item idx\n\nSpecial Markers:\n- \\ue203...\\ue204 — highlight start/end of cited text (for Standalone or Group citations)\n- \\ue200...\\ue201 — group block (e.g. \\ue200\\ue202turn0search1\\ue202turn0news2\\ue201)\n\n**CITE EVERY NON-OBVIOUS FACT/QUOTE:**\nUse anchor marker(s) immediately after the statement:\n- Standalone: \"Pure functions produce same output. \\ue202turn0search0\"\n- Standalone (multiple): \"Today's News \\ue202turn0search0\\ue202turn0news0\"\n- Highlight: \"\\ue203Highlight text.\\ue204\\ue202turn0news1\"\n- Group: \"Sources. \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Group Highlight: \"\\ue203Highlight for group.\\ue204 \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Image: \"See photo \\ue202turn0image0.\"\n\n**NEVER use markdown links, [1], or footnotes. CITE ONLY with anchors provided.**";
72
+ readonly schema: {
73
+ readonly type: "object";
74
+ readonly properties: {
75
+ readonly query: {
76
+ readonly type: "string";
77
+ readonly description: string;
78
+ };
79
+ readonly date: {
80
+ readonly type: "string";
81
+ readonly enum: DATE_RANGE[];
82
+ readonly description: "Date range for search results.";
83
+ };
84
+ readonly country: {
85
+ readonly type: "string";
86
+ readonly description: string;
87
+ };
88
+ readonly images: {
89
+ readonly type: "boolean";
90
+ readonly description: "Whether to also run an image search.";
91
+ };
92
+ readonly videos: {
93
+ readonly type: "boolean";
94
+ readonly description: "Whether to also run a video search.";
95
+ };
96
+ readonly news: {
97
+ readonly type: "boolean";
98
+ readonly description: "Whether to also run a news search.";
99
+ };
100
+ };
101
+ readonly required: readonly ["query"];
102
+ };
103
+ };
@@ -0,0 +1,8 @@
1
+ import type * as t from './types';
2
+ export declare const createSearchAPI: (config: t.SearchConfig) => {
3
+ getSources: (params: t.GetSourcesParams) => Promise<t.SearchResult>;
4
+ };
5
+ export declare const createSourceProcessor: (config?: t.ProcessSourcesConfig, scraperInstance?: t.BaseScraper) => {
6
+ processSources: (fields: t.ProcessSourcesFields) => Promise<t.SearchResultData>;
7
+ topResults: number;
8
+ };
@@ -0,0 +1,59 @@
1
+ import type * as t from './types';
2
+ /**
3
+ * Serper scraper implementation
4
+ * Uses the Serper Scrape API (https://scrape.serper.dev) to scrape web pages
5
+ *
6
+ * Features:
7
+ * - Simple API with single endpoint
8
+ * - Returns both text and markdown content
9
+ * - Includes metadata from scraped pages
10
+ * - Credits-based pricing model
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const scraper = createSerperScraper({
15
+ * apiKey: 'your-serper-api-key',
16
+ * includeMarkdown: true,
17
+ * timeout: 10000
18
+ * });
19
+ *
20
+ * const [url, response] = await scraper.scrapeUrl('https://example.com');
21
+ * if (response.success) {
22
+ * const [content] = scraper.extractContent(response);
23
+ * console.log(content);
24
+ * }
25
+ * ```
26
+ */
27
+ export declare class SerperScraper implements t.BaseScraper {
28
+ private apiKey;
29
+ private apiUrl;
30
+ private timeout;
31
+ private logger;
32
+ private includeMarkdown;
33
+ constructor(config?: t.SerperScraperConfig);
34
+ /**
35
+ * Scrape a single URL
36
+ * @param url URL to scrape
37
+ * @param options Scrape options
38
+ * @returns Scrape response
39
+ */
40
+ scrapeUrl(url: string, options?: t.SerperScrapeOptions): Promise<[string, t.SerperScrapeResponse]>;
41
+ /**
42
+ * Extract content from scrape response
43
+ * @param response Scrape response
44
+ * @returns Extracted content or empty string if not available
45
+ */
46
+ extractContent(response: t.SerperScrapeResponse): [string, undefined | t.References];
47
+ /**
48
+ * Extract metadata from scrape response
49
+ * @param response Scrape response
50
+ * @returns Metadata object
51
+ */
52
+ extractMetadata(response: t.SerperScrapeResponse): Record<string, string | number | boolean | null | undefined>;
53
+ }
54
+ /**
55
+ * Create a Serper scraper instance
56
+ * @param config Scraper configuration
57
+ * @returns Serper scraper instance
58
+ */
59
+ export declare const createSerperScraper: (config?: t.SerperScraperConfig) => SerperScraper;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { DynamicStructuredTool } from '@langchain/core/tools';
2
+ import type * as t from './types';
3
+ export declare const createSearchTool: (config?: t.SearchToolConfig) => DynamicStructuredTool;