beeai-framework 0.1.16 → 0.1.18

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 (663) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs +296 -0
  2. package/dist/adapters/a2a/agents/agent.cjs.map +1 -0
  3. package/dist/adapters/a2a/agents/agent.d.cts +55 -0
  4. package/dist/adapters/a2a/agents/agent.d.ts +55 -0
  5. package/dist/adapters/a2a/agents/agent.js +294 -0
  6. package/dist/adapters/a2a/agents/agent.js.map +1 -0
  7. package/dist/adapters/a2a/agents/events.cjs +4 -0
  8. package/dist/adapters/a2a/agents/events.cjs.map +1 -0
  9. package/dist/adapters/a2a/agents/events.d.cts +23 -0
  10. package/dist/adapters/a2a/agents/events.d.ts +23 -0
  11. package/dist/adapters/a2a/agents/events.js +3 -0
  12. package/dist/adapters/a2a/agents/events.js.map +1 -0
  13. package/dist/adapters/a2a/agents/types.cjs +4 -0
  14. package/dist/adapters/a2a/agents/types.cjs.map +1 -0
  15. package/dist/adapters/a2a/agents/types.d.cts +45 -0
  16. package/dist/adapters/a2a/agents/types.d.ts +45 -0
  17. package/dist/adapters/a2a/agents/types.js +3 -0
  18. package/dist/adapters/a2a/agents/types.js.map +1 -0
  19. package/dist/adapters/a2a/agents/utils.cjs +41 -0
  20. package/dist/adapters/a2a/agents/utils.cjs.map +1 -0
  21. package/dist/adapters/a2a/agents/utils.d.cts +15 -0
  22. package/dist/adapters/a2a/agents/utils.d.ts +15 -0
  23. package/dist/adapters/a2a/agents/utils.js +39 -0
  24. package/dist/adapters/a2a/agents/utils.js.map +1 -0
  25. package/dist/adapters/a2a/serve/agent_executor.cjs +233 -0
  26. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -0
  27. package/dist/adapters/a2a/serve/agent_executor.d.cts +55 -0
  28. package/dist/adapters/a2a/serve/agent_executor.d.ts +55 -0
  29. package/dist/adapters/a2a/serve/agent_executor.js +229 -0
  30. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -0
  31. package/dist/adapters/a2a/serve/server.cjs +112 -0
  32. package/dist/adapters/a2a/serve/server.cjs.map +1 -0
  33. package/dist/adapters/a2a/serve/server.d.cts +56 -0
  34. package/dist/adapters/a2a/serve/server.d.ts +56 -0
  35. package/dist/adapters/a2a/serve/server.js +105 -0
  36. package/dist/adapters/a2a/serve/server.js.map +1 -0
  37. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  38. package/dist/adapters/acp/agents/agent.d.cts +3 -14
  39. package/dist/adapters/acp/agents/agent.d.ts +3 -14
  40. package/dist/adapters/acp/agents/agent.js.map +1 -1
  41. package/dist/adapters/acp/agents/events.d.cts +2 -13
  42. package/dist/adapters/acp/agents/events.d.ts +2 -13
  43. package/dist/adapters/acp/agents/types.d.cts +1 -12
  44. package/dist/adapters/acp/agents/types.d.ts +1 -12
  45. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  46. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +3 -14
  47. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +3 -14
  48. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  49. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  50. package/dist/adapters/amazon-bedrock/backend/client.d.cts +1 -12
  51. package/dist/adapters/amazon-bedrock/backend/client.d.ts +1 -12
  52. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  53. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  54. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +3 -14
  55. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +3 -14
  56. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  57. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  58. package/dist/adapters/anthropic/backend/chat.d.cts +3 -14
  59. package/dist/adapters/anthropic/backend/chat.d.ts +3 -14
  60. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  61. package/dist/adapters/anthropic/backend/client.cjs +1 -4
  62. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  63. package/dist/adapters/anthropic/backend/client.d.cts +1 -12
  64. package/dist/adapters/anthropic/backend/client.d.ts +1 -12
  65. package/dist/adapters/anthropic/backend/client.js +3 -6
  66. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  67. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  68. package/dist/adapters/anthropic/backend/embedding.d.cts +3 -14
  69. package/dist/adapters/anthropic/backend/embedding.d.ts +3 -14
  70. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  71. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -14
  73. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -14
  74. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  75. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  76. package/dist/adapters/azure-openai/backend/client.d.cts +1 -12
  77. package/dist/adapters/azure-openai/backend/client.d.ts +1 -12
  78. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  79. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  80. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -14
  81. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -14
  82. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  83. package/dist/adapters/beeai_platform/agents/agent.cjs.map +1 -1
  84. package/dist/adapters/beeai_platform/agents/agent.d.cts +2 -2
  85. package/dist/adapters/beeai_platform/agents/agent.d.ts +2 -2
  86. package/dist/adapters/beeai_platform/agents/agent.js.map +1 -1
  87. package/dist/adapters/beeai_platform/agents/events.d.cts +2 -13
  88. package/dist/adapters/beeai_platform/agents/events.d.ts +2 -13
  89. package/dist/adapters/beeai_platform/agents/types.d.cts +1 -12
  90. package/dist/adapters/beeai_platform/agents/types.d.ts +1 -12
  91. package/dist/adapters/dummy/backend/chat.cjs +9 -9
  92. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  93. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  94. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  95. package/dist/adapters/dummy/backend/chat.js +9 -9
  96. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  97. package/dist/adapters/dummy/backend/embedding.cjs +9 -9
  98. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  99. package/dist/adapters/dummy/backend/embedding.d.cts +3 -14
  100. package/dist/adapters/dummy/backend/embedding.d.ts +3 -14
  101. package/dist/adapters/dummy/backend/embedding.js +9 -9
  102. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  103. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  104. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -14
  105. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -14
  106. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  107. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  108. package/dist/adapters/google-vertex/backend/client.d.cts +1 -12
  109. package/dist/adapters/google-vertex/backend/client.d.ts +1 -12
  110. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  111. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  112. package/dist/adapters/google-vertex/backend/embedding.d.cts +3 -14
  113. package/dist/adapters/google-vertex/backend/embedding.d.ts +3 -14
  114. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  115. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  116. package/dist/adapters/groq/backend/chat.d.cts +3 -14
  117. package/dist/adapters/groq/backend/chat.d.ts +3 -14
  118. package/dist/adapters/groq/backend/chat.js.map +1 -1
  119. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  120. package/dist/adapters/groq/backend/client.d.cts +1 -12
  121. package/dist/adapters/groq/backend/client.d.ts +1 -12
  122. package/dist/adapters/groq/backend/client.js.map +1 -1
  123. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  124. package/dist/adapters/groq/backend/embedding.d.cts +3 -14
  125. package/dist/adapters/groq/backend/embedding.d.ts +3 -14
  126. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  127. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  128. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  129. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  130. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  131. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  132. package/dist/adapters/langchain/backend/embedding.d.cts +3 -14
  133. package/dist/adapters/langchain/backend/embedding.d.ts +3 -14
  134. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  135. package/dist/adapters/langchain/tools.cjs.map +1 -1
  136. package/dist/adapters/langchain/tools.d.cts +1 -1
  137. package/dist/adapters/langchain/tools.d.ts +1 -1
  138. package/dist/adapters/langchain/tools.js.map +1 -1
  139. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  140. package/dist/adapters/mcp/serve/http_server.d.cts +1 -12
  141. package/dist/adapters/mcp/serve/http_server.d.ts +1 -12
  142. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  143. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  144. package/dist/adapters/mcp/serve/in_memory_store.d.cts +1 -12
  145. package/dist/adapters/mcp/serve/in_memory_store.d.ts +1 -12
  146. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  147. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  148. package/dist/adapters/mcp/serve/server.d.cts +3 -14
  149. package/dist/adapters/mcp/serve/server.d.ts +3 -14
  150. package/dist/adapters/mcp/serve/server.js.map +1 -1
  151. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  152. package/dist/adapters/ollama/backend/chat.d.cts +3 -14
  153. package/dist/adapters/ollama/backend/chat.d.ts +3 -14
  154. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  155. package/dist/adapters/ollama/backend/client.cjs +12 -3
  156. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  157. package/dist/adapters/ollama/backend/client.d.cts +4 -13
  158. package/dist/adapters/ollama/backend/client.d.ts +4 -13
  159. package/dist/adapters/ollama/backend/client.js +13 -4
  160. package/dist/adapters/ollama/backend/client.js.map +1 -1
  161. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  162. package/dist/adapters/ollama/backend/embedding.d.cts +3 -14
  163. package/dist/adapters/ollama/backend/embedding.d.ts +3 -14
  164. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  165. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  166. package/dist/adapters/openai/backend/chat.d.cts +3 -14
  167. package/dist/adapters/openai/backend/chat.d.ts +3 -14
  168. package/dist/adapters/openai/backend/chat.js.map +1 -1
  169. package/dist/adapters/openai/backend/client.cjs +1 -4
  170. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  171. package/dist/adapters/openai/backend/client.d.cts +1 -12
  172. package/dist/adapters/openai/backend/client.d.ts +1 -12
  173. package/dist/adapters/openai/backend/client.js +3 -6
  174. package/dist/adapters/openai/backend/client.js.map +1 -1
  175. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  176. package/dist/adapters/openai/backend/embedding.d.cts +3 -14
  177. package/dist/adapters/openai/backend/embedding.d.ts +3 -14
  178. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  179. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  180. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  181. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  182. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  183. package/dist/adapters/vercel/backend/chat.js +2 -2
  184. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  185. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  186. package/dist/adapters/vercel/backend/embedding.d.cts +3 -14
  187. package/dist/adapters/vercel/backend/embedding.d.ts +3 -14
  188. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  189. package/dist/adapters/vercel/backend/utils.cjs +11 -2
  190. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  191. package/dist/adapters/vercel/backend/utils.d.cts +3 -13
  192. package/dist/adapters/vercel/backend/utils.d.ts +3 -13
  193. package/dist/adapters/vercel/backend/utils.js +11 -3
  194. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  195. package/dist/adapters/watsonx/backend/chat.cjs +13 -13
  196. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  197. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  198. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  199. package/dist/adapters/watsonx/backend/chat.js +13 -13
  200. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  201. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  202. package/dist/adapters/watsonx/backend/client.d.cts +1 -12
  203. package/dist/adapters/watsonx/backend/client.d.ts +1 -12
  204. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  205. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  206. package/dist/adapters/watsonx/backend/embedding.d.cts +3 -14
  207. package/dist/adapters/watsonx/backend/embedding.d.ts +3 -14
  208. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  209. package/dist/adapters/xai/backend/chat.cjs +24 -0
  210. package/dist/adapters/xai/backend/chat.cjs.map +1 -0
  211. package/dist/adapters/xai/backend/chat.d.cts +39 -0
  212. package/dist/adapters/xai/backend/chat.d.ts +39 -0
  213. package/dist/adapters/xai/backend/chat.js +22 -0
  214. package/dist/adapters/xai/backend/chat.js.map +1 -0
  215. package/dist/adapters/xai/backend/client.cjs +26 -0
  216. package/dist/adapters/xai/backend/client.cjs.map +1 -0
  217. package/dist/adapters/xai/backend/client.d.cts +17 -0
  218. package/dist/adapters/xai/backend/client.d.ts +17 -0
  219. package/dist/adapters/xai/backend/client.js +24 -0
  220. package/dist/adapters/xai/backend/client.js.map +1 -0
  221. package/dist/{agent-Ca5UE2P1.d.cts → agent-Bhm6xSfI.d.cts} +3 -3
  222. package/dist/{agent-CgsoqVL5.d.ts → agent-CmCmnEDX.d.ts} +3 -3
  223. package/dist/agents/base.cjs.map +1 -1
  224. package/dist/agents/base.d.cts +2 -2
  225. package/dist/agents/base.d.ts +2 -2
  226. package/dist/agents/base.js.map +1 -1
  227. package/dist/agents/experimental/replan/agent.cjs +8 -8
  228. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  229. package/dist/agents/experimental/replan/agent.d.cts +4 -15
  230. package/dist/agents/experimental/replan/agent.d.ts +4 -15
  231. package/dist/agents/experimental/replan/agent.js +8 -8
  232. package/dist/agents/experimental/replan/agent.js.map +1 -1
  233. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  234. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  235. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  236. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  237. package/dist/agents/experimental/streamlit/agent.cjs +9 -9
  238. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  239. package/dist/agents/experimental/streamlit/agent.d.cts +4 -15
  240. package/dist/agents/experimental/streamlit/agent.d.ts +4 -15
  241. package/dist/agents/experimental/streamlit/agent.js +9 -9
  242. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  243. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  244. package/dist/agents/experimental/streamlit/prompts.d.cts +1 -12
  245. package/dist/agents/experimental/streamlit/prompts.d.ts +1 -12
  246. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  247. package/dist/agents/react/agent.cjs +8 -8
  248. package/dist/agents/react/agent.cjs.map +1 -1
  249. package/dist/agents/react/agent.d.cts +4 -4
  250. package/dist/agents/react/agent.d.ts +4 -4
  251. package/dist/agents/react/agent.js +8 -8
  252. package/dist/agents/react/agent.js.map +1 -1
  253. package/dist/agents/react/prompts.cjs.map +1 -1
  254. package/dist/agents/react/prompts.d.cts +1 -12
  255. package/dist/agents/react/prompts.d.ts +1 -12
  256. package/dist/agents/react/prompts.js.map +1 -1
  257. package/dist/agents/react/runners/base.cjs +2 -2
  258. package/dist/agents/react/runners/base.cjs.map +1 -1
  259. package/dist/agents/react/runners/base.d.cts +4 -4
  260. package/dist/agents/react/runners/base.d.ts +4 -4
  261. package/dist/agents/react/runners/base.js +2 -2
  262. package/dist/agents/react/runners/base.js.map +1 -1
  263. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  264. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -12
  265. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -12
  266. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  267. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  268. package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
  269. package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
  270. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  271. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  272. package/dist/agents/react/runners/default/runner.d.cts +4 -4
  273. package/dist/agents/react/runners/default/runner.d.ts +4 -4
  274. package/dist/agents/react/runners/default/runner.js.map +1 -1
  275. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  276. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  277. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  278. package/dist/agents/react/runners/granite/prompts.d.cts +1 -12
  279. package/dist/agents/react/runners/granite/prompts.d.ts +1 -12
  280. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  281. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  282. package/dist/agents/react/runners/granite/runner.d.cts +4 -4
  283. package/dist/agents/react/runners/granite/runner.d.ts +4 -4
  284. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  285. package/dist/agents/react/types.d.cts +3 -14
  286. package/dist/agents/react/types.d.ts +3 -14
  287. package/dist/agents/toolCalling/agent.cjs +8 -8
  288. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  289. package/dist/agents/toolCalling/agent.d.cts +4 -15
  290. package/dist/agents/toolCalling/agent.d.ts +4 -15
  291. package/dist/agents/toolCalling/agent.js +8 -8
  292. package/dist/agents/toolCalling/agent.js.map +1 -1
  293. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  294. package/dist/agents/toolCalling/prompts.d.cts +1 -12
  295. package/dist/agents/toolCalling/prompts.d.ts +1 -12
  296. package/dist/agents/toolCalling/prompts.js.map +1 -1
  297. package/dist/agents/toolCalling/types.d.cts +2 -13
  298. package/dist/agents/toolCalling/types.d.ts +2 -13
  299. package/dist/agents/types.d.cts +2 -2
  300. package/dist/agents/types.d.ts +2 -2
  301. package/dist/backend/backend.cjs.map +1 -1
  302. package/dist/backend/backend.d.cts +3 -14
  303. package/dist/backend/backend.d.ts +3 -14
  304. package/dist/backend/backend.js.map +1 -1
  305. package/dist/backend/chat.cjs.map +1 -1
  306. package/dist/backend/chat.d.cts +2 -2
  307. package/dist/backend/chat.d.ts +2 -2
  308. package/dist/backend/chat.js.map +1 -1
  309. package/dist/backend/client.cjs.map +1 -1
  310. package/dist/backend/client.d.cts +1 -12
  311. package/dist/backend/client.d.ts +1 -12
  312. package/dist/backend/client.js.map +1 -1
  313. package/dist/backend/constants.cjs +8 -0
  314. package/dist/backend/constants.cjs.map +1 -1
  315. package/dist/backend/constants.d.cts +6 -12
  316. package/dist/backend/constants.d.ts +6 -12
  317. package/dist/backend/constants.js +8 -0
  318. package/dist/backend/constants.js.map +1 -1
  319. package/dist/backend/core.d.cts +2 -2
  320. package/dist/backend/core.d.ts +2 -2
  321. package/dist/backend/embedding.cjs.map +1 -1
  322. package/dist/backend/embedding.d.cts +2 -2
  323. package/dist/backend/embedding.d.ts +2 -2
  324. package/dist/backend/embedding.js.map +1 -1
  325. package/dist/backend/errors.cjs.map +1 -1
  326. package/dist/backend/errors.d.cts +1 -12
  327. package/dist/backend/errors.d.ts +1 -12
  328. package/dist/backend/errors.js.map +1 -1
  329. package/dist/backend/message.cjs.map +1 -1
  330. package/dist/backend/message.d.cts +2 -13
  331. package/dist/backend/message.d.ts +2 -13
  332. package/dist/backend/message.js.map +1 -1
  333. package/dist/backend/utils.cjs.map +1 -1
  334. package/dist/backend/utils.d.cts +2 -2
  335. package/dist/backend/utils.d.ts +2 -2
  336. package/dist/backend/utils.js.map +1 -1
  337. package/dist/{base-szR2Izbt.d.cts → base-BP7v-NSL.d.cts} +3 -14
  338. package/dist/{base-BOCDDBvG.d.ts → base-BsY2baWy.d.ts} +3 -14
  339. package/dist/cache/base.cjs.map +1 -1
  340. package/dist/cache/base.d.cts +1 -12
  341. package/dist/cache/base.d.ts +1 -12
  342. package/dist/cache/base.js.map +1 -1
  343. package/dist/cache/decoratorCache.cjs +2 -2
  344. package/dist/cache/decoratorCache.cjs.map +1 -1
  345. package/dist/cache/decoratorCache.d.cts +1 -12
  346. package/dist/cache/decoratorCache.d.ts +1 -12
  347. package/dist/cache/decoratorCache.js +2 -2
  348. package/dist/cache/decoratorCache.js.map +1 -1
  349. package/dist/cache/fileCache.cjs.map +1 -1
  350. package/dist/cache/fileCache.d.cts +1 -12
  351. package/dist/cache/fileCache.d.ts +1 -12
  352. package/dist/cache/fileCache.js.map +1 -1
  353. package/dist/cache/nullCache.cjs.map +1 -1
  354. package/dist/cache/nullCache.d.cts +1 -12
  355. package/dist/cache/nullCache.d.ts +1 -12
  356. package/dist/cache/nullCache.js.map +1 -1
  357. package/dist/cache/slidingCache.cjs.map +1 -1
  358. package/dist/cache/slidingCache.d.cts +1 -12
  359. package/dist/cache/slidingCache.d.ts +1 -12
  360. package/dist/cache/slidingCache.js.map +1 -1
  361. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  362. package/dist/cache/unconstrainedCache.d.cts +1 -12
  363. package/dist/cache/unconstrainedCache.d.ts +1 -12
  364. package/dist/cache/unconstrainedCache.js.map +1 -1
  365. package/dist/{chat-DvMzAHj6.d.cts → chat-CR4yfOR9.d.cts} +3 -14
  366. package/dist/{chat-BdN8hGWn.d.ts → chat-W9j8T6UU.d.ts} +3 -14
  367. package/dist/context.cjs +3 -4
  368. package/dist/context.cjs.map +1 -1
  369. package/dist/context.d.cts +2 -13
  370. package/dist/context.d.ts +2 -13
  371. package/dist/context.js +3 -4
  372. package/dist/context.js.map +1 -1
  373. package/dist/emitter/emitter.cjs.map +1 -1
  374. package/dist/emitter/emitter.d.cts +1 -1
  375. package/dist/emitter/emitter.d.ts +1 -1
  376. package/dist/emitter/emitter.js.map +1 -1
  377. package/dist/emitter/errors.cjs.map +1 -1
  378. package/dist/emitter/errors.d.cts +1 -12
  379. package/dist/emitter/errors.d.ts +1 -12
  380. package/dist/emitter/errors.js.map +1 -1
  381. package/dist/emitter/types.d.cts +1 -1
  382. package/dist/emitter/types.d.ts +1 -1
  383. package/dist/emitter/utils.cjs.map +1 -1
  384. package/dist/emitter/utils.d.cts +1 -12
  385. package/dist/emitter/utils.d.ts +1 -12
  386. package/dist/emitter/utils.js.map +1 -1
  387. package/dist/{emitter-C3dO-s2P.d.ts → emitter-C9nwGLt6.d.ts} +3 -25
  388. package/dist/{emitter-D5Mu0EEH.d.cts → emitter-DWEsd-ud.d.cts} +3 -25
  389. package/dist/errors.cjs.map +1 -1
  390. package/dist/errors.d.cts +1 -12
  391. package/dist/errors.d.ts +1 -12
  392. package/dist/errors.js.map +1 -1
  393. package/dist/index.d.cts +4 -4
  394. package/dist/index.d.ts +4 -4
  395. package/dist/internals/env.cjs.map +1 -1
  396. package/dist/internals/env.d.cts +1 -12
  397. package/dist/internals/env.d.ts +1 -12
  398. package/dist/internals/env.js.map +1 -1
  399. package/dist/internals/fetcher.cjs +8 -8
  400. package/dist/internals/fetcher.cjs.map +1 -1
  401. package/dist/internals/fetcher.d.cts +2 -13
  402. package/dist/internals/fetcher.d.ts +2 -13
  403. package/dist/internals/fetcher.js +8 -8
  404. package/dist/internals/fetcher.js.map +1 -1
  405. package/dist/internals/helpers/array.cjs.map +1 -1
  406. package/dist/internals/helpers/array.d.cts +1 -12
  407. package/dist/internals/helpers/array.d.ts +1 -12
  408. package/dist/internals/helpers/array.js.map +1 -1
  409. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  410. package/dist/internals/helpers/cancellation.d.cts +1 -12
  411. package/dist/internals/helpers/cancellation.d.ts +1 -12
  412. package/dist/internals/helpers/cancellation.js.map +1 -1
  413. package/dist/internals/helpers/counter.cjs.map +1 -1
  414. package/dist/internals/helpers/counter.d.cts +1 -12
  415. package/dist/internals/helpers/counter.d.ts +1 -12
  416. package/dist/internals/helpers/counter.js.map +1 -1
  417. package/dist/internals/helpers/general.cjs.map +1 -1
  418. package/dist/internals/helpers/general.d.cts +1 -12
  419. package/dist/internals/helpers/general.d.ts +1 -12
  420. package/dist/internals/helpers/general.js.map +1 -1
  421. package/dist/internals/helpers/guards.cjs.map +1 -1
  422. package/dist/internals/helpers/guards.d.cts +1 -12
  423. package/dist/internals/helpers/guards.d.ts +1 -12
  424. package/dist/internals/helpers/guards.js.map +1 -1
  425. package/dist/internals/helpers/hash.cjs.map +1 -1
  426. package/dist/internals/helpers/hash.d.cts +1 -12
  427. package/dist/internals/helpers/hash.d.ts +1 -12
  428. package/dist/internals/helpers/hash.js.map +1 -1
  429. package/dist/internals/helpers/map.cjs.map +1 -1
  430. package/dist/internals/helpers/map.d.cts +1 -12
  431. package/dist/internals/helpers/map.d.ts +1 -12
  432. package/dist/internals/helpers/map.js.map +1 -1
  433. package/dist/internals/helpers/math.cjs.map +1 -1
  434. package/dist/internals/helpers/math.d.cts +1 -12
  435. package/dist/internals/helpers/math.d.ts +1 -12
  436. package/dist/internals/helpers/math.js.map +1 -1
  437. package/dist/internals/helpers/number.cjs.map +1 -1
  438. package/dist/internals/helpers/number.d.cts +1 -12
  439. package/dist/internals/helpers/number.d.ts +1 -12
  440. package/dist/internals/helpers/number.js.map +1 -1
  441. package/dist/internals/helpers/object.cjs.map +1 -1
  442. package/dist/internals/helpers/object.d.cts +1 -12
  443. package/dist/internals/helpers/object.d.ts +1 -12
  444. package/dist/internals/helpers/object.js.map +1 -1
  445. package/dist/internals/helpers/paginate.cjs.map +1 -1
  446. package/dist/internals/helpers/paginate.d.cts +1 -12
  447. package/dist/internals/helpers/paginate.d.ts +1 -12
  448. package/dist/internals/helpers/paginate.js.map +1 -1
  449. package/dist/internals/helpers/promise.cjs +1 -3
  450. package/dist/internals/helpers/promise.cjs.map +1 -1
  451. package/dist/internals/helpers/promise.d.cts +1 -12
  452. package/dist/internals/helpers/promise.d.ts +1 -12
  453. package/dist/internals/helpers/promise.js +1 -3
  454. package/dist/internals/helpers/promise.js.map +1 -1
  455. package/dist/internals/helpers/prototype.cjs.map +1 -1
  456. package/dist/internals/helpers/prototype.d.cts +1 -12
  457. package/dist/internals/helpers/prototype.d.ts +1 -12
  458. package/dist/internals/helpers/prototype.js.map +1 -1
  459. package/dist/internals/helpers/retry.cjs.map +1 -1
  460. package/dist/internals/helpers/retry.d.cts +1 -12
  461. package/dist/internals/helpers/retry.d.ts +1 -12
  462. package/dist/internals/helpers/retry.js.map +1 -1
  463. package/dist/internals/helpers/retryable.cjs.map +1 -1
  464. package/dist/internals/helpers/retryable.d.cts +1 -12
  465. package/dist/internals/helpers/retryable.d.ts +1 -12
  466. package/dist/internals/helpers/retryable.js.map +1 -1
  467. package/dist/internals/helpers/schema.cjs.map +1 -1
  468. package/dist/internals/helpers/schema.d.cts +1 -12
  469. package/dist/internals/helpers/schema.d.ts +1 -12
  470. package/dist/internals/helpers/schema.js.map +1 -1
  471. package/dist/internals/helpers/stream.cjs.map +1 -1
  472. package/dist/internals/helpers/stream.d.cts +1 -12
  473. package/dist/internals/helpers/stream.d.ts +1 -12
  474. package/dist/internals/helpers/stream.js.map +1 -1
  475. package/dist/internals/helpers/string.cjs.map +1 -1
  476. package/dist/internals/helpers/string.d.cts +1 -12
  477. package/dist/internals/helpers/string.d.ts +1 -12
  478. package/dist/internals/helpers/string.js.map +1 -1
  479. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  480. package/dist/internals/helpers/weakRef.d.cts +1 -12
  481. package/dist/internals/helpers/weakRef.d.ts +1 -12
  482. package/dist/internals/helpers/weakRef.js.map +1 -1
  483. package/dist/internals/serializable.cjs.map +1 -1
  484. package/dist/internals/serializable.d.cts +1 -12
  485. package/dist/internals/serializable.d.ts +1 -12
  486. package/dist/internals/serializable.js.map +1 -1
  487. package/dist/internals/types.cjs.map +1 -1
  488. package/dist/internals/types.d.cts +1 -12
  489. package/dist/internals/types.d.ts +1 -12
  490. package/dist/internals/types.js.map +1 -1
  491. package/dist/logger/logger.cjs.map +1 -1
  492. package/dist/logger/logger.js.map +1 -1
  493. package/dist/logger/pretty.cjs.map +1 -1
  494. package/dist/logger/pretty.js.map +1 -1
  495. package/dist/memory/base.cjs.map +1 -1
  496. package/dist/memory/base.js.map +1 -1
  497. package/dist/memory/slidingMemory.cjs.map +1 -1
  498. package/dist/memory/slidingMemory.js.map +1 -1
  499. package/dist/memory/summarizeMemory.cjs.map +1 -1
  500. package/dist/memory/summarizeMemory.d.cts +2 -2
  501. package/dist/memory/summarizeMemory.d.ts +2 -2
  502. package/dist/memory/summarizeMemory.js.map +1 -1
  503. package/dist/memory/tokenMemory.cjs.map +1 -1
  504. package/dist/memory/tokenMemory.js.map +1 -1
  505. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  506. package/dist/memory/unconstrainedMemory.js.map +1 -1
  507. package/dist/parsers/errors.cjs.map +1 -1
  508. package/dist/parsers/errors.d.cts +1 -12
  509. package/dist/parsers/errors.d.ts +1 -12
  510. package/dist/parsers/errors.js.map +1 -1
  511. package/dist/parsers/field.cjs +2 -2
  512. package/dist/parsers/field.cjs.map +1 -1
  513. package/dist/parsers/field.js +2 -2
  514. package/dist/parsers/field.js.map +1 -1
  515. package/dist/parsers/linePrefix.cjs +15 -15
  516. package/dist/parsers/linePrefix.cjs.map +1 -1
  517. package/dist/parsers/linePrefix.d.cts +2 -13
  518. package/dist/parsers/linePrefix.d.ts +2 -13
  519. package/dist/parsers/linePrefix.js +15 -15
  520. package/dist/parsers/linePrefix.js.map +1 -1
  521. package/dist/serializer/error.cjs.map +1 -1
  522. package/dist/serializer/error.d.cts +1 -12
  523. package/dist/serializer/error.d.ts +1 -12
  524. package/dist/serializer/error.js.map +1 -1
  525. package/dist/serializer/serializer.cjs.map +1 -1
  526. package/dist/serializer/serializer.d.cts +1 -1
  527. package/dist/serializer/serializer.d.ts +1 -1
  528. package/dist/serializer/serializer.js.map +1 -1
  529. package/dist/serializer/utils.cjs +1 -2
  530. package/dist/serializer/utils.cjs.map +1 -1
  531. package/dist/serializer/utils.d.cts +1 -1
  532. package/dist/serializer/utils.d.ts +1 -1
  533. package/dist/serializer/utils.js +1 -2
  534. package/dist/serializer/utils.js.map +1 -1
  535. package/dist/{serializer-Dz4AIM2O.d.cts → serializer-BKn50Vnx.d.cts} +2 -24
  536. package/dist/{serializer-BswFRdT8.d.ts → serializer-CQxucveV.d.ts} +2 -24
  537. package/dist/serve/server.cjs +13 -7
  538. package/dist/serve/server.cjs.map +1 -1
  539. package/dist/serve/server.d.cts +5 -15
  540. package/dist/serve/server.d.ts +5 -15
  541. package/dist/serve/server.js +13 -7
  542. package/dist/serve/server.js.map +1 -1
  543. package/dist/template.cjs.map +1 -1
  544. package/dist/template.d.cts +1 -12
  545. package/dist/template.d.ts +1 -12
  546. package/dist/template.js.map +1 -1
  547. package/dist/tools/arxiv.cjs.map +1 -1
  548. package/dist/tools/arxiv.d.cts +2 -13
  549. package/dist/tools/arxiv.d.ts +2 -13
  550. package/dist/tools/arxiv.js.map +1 -1
  551. package/dist/tools/base.cjs.map +1 -1
  552. package/dist/tools/base.d.cts +1 -1
  553. package/dist/tools/base.d.ts +1 -1
  554. package/dist/tools/base.js.map +1 -1
  555. package/dist/tools/calculator.cjs.map +1 -1
  556. package/dist/tools/calculator.d.cts +2 -13
  557. package/dist/tools/calculator.d.ts +2 -13
  558. package/dist/tools/calculator.js.map +1 -1
  559. package/dist/tools/custom.cjs.map +1 -1
  560. package/dist/tools/custom.d.cts +3 -14
  561. package/dist/tools/custom.d.ts +3 -14
  562. package/dist/tools/custom.js.map +1 -1
  563. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  564. package/dist/tools/database/elasticsearch.d.cts +2 -13
  565. package/dist/tools/database/elasticsearch.d.ts +2 -13
  566. package/dist/tools/database/elasticsearch.js.map +1 -1
  567. package/dist/tools/database/metadata.cjs.map +1 -1
  568. package/dist/tools/database/metadata.d.cts +1 -12
  569. package/dist/tools/database/metadata.d.ts +1 -12
  570. package/dist/tools/database/metadata.js.map +1 -1
  571. package/dist/tools/database/milvus.cjs.map +1 -1
  572. package/dist/tools/database/milvus.d.cts +2 -13
  573. package/dist/tools/database/milvus.d.ts +2 -13
  574. package/dist/tools/database/milvus.js.map +1 -1
  575. package/dist/tools/database/qdrant.cjs.map +1 -1
  576. package/dist/tools/database/qdrant.d.cts +2 -13
  577. package/dist/tools/database/qdrant.d.ts +2 -13
  578. package/dist/tools/database/qdrant.js.map +1 -1
  579. package/dist/tools/database/sql.cjs.map +1 -1
  580. package/dist/tools/database/sql.d.cts +2 -13
  581. package/dist/tools/database/sql.d.ts +2 -13
  582. package/dist/tools/database/sql.js.map +1 -1
  583. package/dist/tools/llm.cjs +3 -3
  584. package/dist/tools/llm.cjs.map +1 -1
  585. package/dist/tools/llm.d.cts +3 -14
  586. package/dist/tools/llm.d.ts +3 -14
  587. package/dist/tools/llm.js +3 -3
  588. package/dist/tools/llm.js.map +1 -1
  589. package/dist/tools/mcp.cjs +2 -1
  590. package/dist/tools/mcp.cjs.map +1 -1
  591. package/dist/tools/mcp.d.cts +2 -13
  592. package/dist/tools/mcp.d.ts +2 -13
  593. package/dist/tools/mcp.js +2 -1
  594. package/dist/tools/mcp.js.map +1 -1
  595. package/dist/tools/openapi.cjs.map +1 -1
  596. package/dist/tools/openapi.d.cts +1 -1
  597. package/dist/tools/openapi.d.ts +1 -1
  598. package/dist/tools/openapi.js.map +1 -1
  599. package/dist/tools/python/output.cjs.map +1 -1
  600. package/dist/tools/python/output.d.cts +2 -13
  601. package/dist/tools/python/output.d.ts +2 -13
  602. package/dist/tools/python/output.js.map +1 -1
  603. package/dist/tools/python/python.cjs.map +1 -1
  604. package/dist/tools/python/python.d.cts +2 -2
  605. package/dist/tools/python/python.d.ts +2 -2
  606. package/dist/tools/python/python.js.map +1 -1
  607. package/dist/tools/python/storage.cjs.map +1 -1
  608. package/dist/tools/python/storage.d.cts +1 -12
  609. package/dist/tools/python/storage.d.ts +1 -12
  610. package/dist/tools/python/storage.js.map +1 -1
  611. package/dist/tools/search/base.cjs.map +1 -1
  612. package/dist/tools/search/base.d.cts +2 -13
  613. package/dist/tools/search/base.d.ts +2 -13
  614. package/dist/tools/search/base.js.map +1 -1
  615. package/dist/tools/search/duckDuckGoSearch.cjs +7 -1
  616. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  617. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -13
  618. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -13
  619. package/dist/tools/search/duckDuckGoSearch.js +7 -1
  620. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  621. package/dist/tools/search/googleSearch.cjs.map +1 -1
  622. package/dist/tools/search/googleSearch.d.cts +1 -1
  623. package/dist/tools/search/googleSearch.d.ts +1 -1
  624. package/dist/tools/search/googleSearch.js.map +1 -1
  625. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  626. package/dist/tools/search/searXNGSearch.d.cts +2 -13
  627. package/dist/tools/search/searXNGSearch.d.ts +2 -13
  628. package/dist/tools/search/searXNGSearch.js.map +1 -1
  629. package/dist/tools/search/wikipedia.cjs +11 -11
  630. package/dist/tools/search/wikipedia.cjs.map +1 -1
  631. package/dist/tools/search/wikipedia.d.cts +1 -1
  632. package/dist/tools/search/wikipedia.d.ts +1 -1
  633. package/dist/tools/search/wikipedia.js +11 -11
  634. package/dist/tools/search/wikipedia.js.map +1 -1
  635. package/dist/tools/similarity.cjs.map +1 -1
  636. package/dist/tools/similarity.d.cts +2 -13
  637. package/dist/tools/similarity.d.ts +2 -13
  638. package/dist/tools/similarity.js.map +1 -1
  639. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  640. package/dist/tools/weather/openMeteo.d.cts +2 -13
  641. package/dist/tools/weather/openMeteo.d.ts +2 -13
  642. package/dist/tools/weather/openMeteo.js.map +1 -1
  643. package/dist/tools/web/webCrawler.cjs.map +1 -1
  644. package/dist/tools/web/webCrawler.d.cts +1 -1
  645. package/dist/tools/web/webCrawler.d.ts +1 -1
  646. package/dist/tools/web/webCrawler.js.map +1 -1
  647. package/dist/version.cjs +1 -1
  648. package/dist/version.cjs.map +1 -1
  649. package/dist/version.d.cts +1 -12
  650. package/dist/version.d.ts +1 -12
  651. package/dist/version.js +1 -1
  652. package/dist/version.js.map +1 -1
  653. package/dist/workflows/agent.cjs.map +1 -1
  654. package/dist/workflows/agent.d.cts +40 -40
  655. package/dist/workflows/agent.d.ts +40 -40
  656. package/dist/workflows/agent.js.map +1 -1
  657. package/dist/workflows/workflow.cjs +3 -3
  658. package/dist/workflows/workflow.cjs.map +1 -1
  659. package/dist/workflows/workflow.d.cts +1 -1
  660. package/dist/workflows/workflow.d.ts +1 -1
  661. package/dist/workflows/workflow.js +3 -3
  662. package/dist/workflows/workflow.js.map +1 -1
  663. package/package.json +42 -73
@@ -1 +1 @@
1
- {"version":3,"sources":["googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","constructor","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":";;;;;;;;;;;;;;;AAcC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AA6BM,MAAMA,+BAA+BC,yBAAAA,CAAAA;EA3C5C;;;;AA4CEC,EAAAA,WAAAA,CAA4BC,OAAmC,EAAA;AAC7D,IAAMA,KAAAA,CAAAA,OAAAA,CAAAA,EAAAA,IAAAA,CADoBA,OAAAA,GAAAA,OAAAA;AAE5B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACLF,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,KAAA;AACF;AAEAG,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,yBAAyBC,eAAAA,CAAAA;EA/DtC;;;EAoEEC,IAAO,GAAA,cAAA;EACPC,WAAc,GAAA,CAAA,0FAAA,CAAA;EAEEC,OACdC,GAAAA,mBAAAA,CAAQC,KAAKC,KAAM,CAAA;IACjBC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAS,EAAA;GACX,CAAA;EAGFC,WAAc,GAAA;AACZ,IAAA,OAAOC,MAAEC,MAAO,CAAA;AACdC,MAAAA,KAAAA,EAAOF,MAAEG,MAAO,CAAA;QAAEX,WAAa,EAAA,CAAA,YAAA;AAAe,OAAA,CAAGY,CAAAA,GAAAA,CAAI,CAAA,CAAA,CAAGC,IAAI,IAAA;KAC9D,CAAA;AACF;AAEUC,EAAAA,MAAAA;AACAC,EAAAA,KAAAA;AAEV,EAAA,WAAA,CAAmBC,OAAmC,GAAA;IAAEC,UAAY,EAAA;GAAM,EAAA;AACxE,IAAA,KAAA,CAAMD,OAAAA,CAAAA;AAEN,IAAA,IAAA,CAAKF,SAASE,OAAQF,CAAAA,MAAAA,IAAUI,iBAAS,gBAAkBV,EAAAA,KAAAA,CAAEG,QAAM,CAAA;AACnE,IAAA,IAAA,CAAKI,QAAQC,OAAQD,CAAAA,KAAAA,IAASG,iBAAS,eAAiBV,EAAAA,KAAAA,CAAEG,QAAM,CAAA;AAEhE,IAAA,IAAI,CAAC,IAAA,CAAKG,MAAU,IAAA,CAAC,KAAKC,KAAO,EAAA;AAC/B,MAAA,MAAM,IAAII,qBACR,CAAA;AACE,QAAA,CAAA,0CAAA,CAAA;AACA,QAAA,CAAA,gFAAA;AACAC,OAAAA,CAAAA,IAAAA,CAAK,IAAA,CAAA,CAAA;AAEX;AAEA,IAAA,IAAIJ,OAAQC,CAAAA,UAAAA,GAAa,CAAKD,IAAAA,OAAAA,CAAQC,aAAa,GAAK,EAAA;AACtD,MAAA,MAAM,IAAII,mBAAgB,CAAA;AACxB,QAAA;UACEC,OAAS,EAAA,iDAAA;UACTC,YAAc,EAAA;AAChB;AACD,OAAA,CAAA;AACH;AACF;AAEA,EAAA,IACcC,MAAuC,GAAA;AACnD,IAAO,OAAA,IAAIC,6BAAgBC,YAAa,CAAA;AACtCC,MAAAA,IAAAA,EAAM,IAAKb,CAAAA;KACb,CAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKvB,QAAQ,EAAA;AACf;AAEA,EAAA,MAAgBqC,KACd,EAAElB,KAAAA,EAAOmB,KAAK,EAAA,EACdC,UACAC,GACA,EAAA;AACA,IAAMzC,MAAAA,OAAAA,GAAU,MAAM0C,qBAAS,CAAA;AAC7BC,MAAAA,IAAAA,EAAM,KAAKjB,OAAQC,CAAAA,UAAAA;AACnBiB,MAAAA,OAAAA,kBAAgB,MAAA,CAAA,OAAA,EAAEC,MAAS,GAAA,CAAA,EAAGC,OAAO,KAAA;AACnC,QAAA,MAAMC,YAAe,GAAA,EAAA;AAErB,QAAA,MAAM,EACJC,IAAAA,EAAM,EAAEC,KAAAA,GAAQ,EAAA,EAAI,EAAA,GAClB,MAAM,IAAA,CAAKf,MAAOgB,CAAAA,GAAAA,CAAIC,IACxB,CAAA;AACEC,UAAAA,EAAAA,EAAI,IAAK3B,CAAAA,KAAAA;UACT4B,CAAGd,EAAAA,KAAAA;UACHe,KAAOT,EAAAA,MAAAA;UACPU,GAAKC,EAAAA,IAAAA,CAAKlC,GAAIwB,CAAAA,KAAAA,EAAOC,YAAAA,CAAAA;UACrBU,IAAM,EAAA;SAER,EAAA;AACEC,UAAAA,MAAAA,EAAQjB,GAAIiB,CAAAA;SACd,CAAA;AAGF,QAAO,OAAA;UACLV,IAAMC,EAAAA,KAAAA;AACNU,UAAAA,UAAAA,EAAYV,KAAMW,CAAAA,MAAAA,GAASb,YAAec,GAAAA,MAAAA,GAAYhB,SAASI,KAAMW,CAAAA;AACvE,SAAA;OArBO,EAAA,SAAA;KAuBX,CAAA;AAEA,IAAA,OAAO,IAAI/D,sBAAAA,CACTG,OAAQ8D,CAAAA,GAAAA,CAAI,CAACC,MAAY,MAAA;AACvBC,MAAAA,KAAAA,EAAOD,OAAOC,KAAS,IAAA,EAAA;AACvBtD,MAAAA,WAAAA,EAAaqD,OAAOE,OAAW,IAAA,EAAA;AAC/BC,MAAAA,GAAAA,EAAKH,OAAOI,IAAQ,IAAA;AACtB,KAAA,CAAA,CAAA,CAAA;AAEJ;EAEAjE,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTsB,MAAAA,MAAAA,EAAQ,IAAKA,CAAAA,MAAAA;AACbC,MAAAA,KAAAA,EAAO,IAAKA,CAAAA;AACd,KAAA;AACF;AAEAtB,EAAAA,YAAAA,CAAa,EAAEqB,MAAAA,EAAQC,KAAO,EAAA,GAAGrB,UAAoD,EAAA;AACnF,IAAA,KAAA,CAAMD,aAAaC,QAAAA,CAAAA;AACnBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;AAClBkB,MAAAA,MAAAA;AACAC,MAAAA;KACF,CAAA;AACF;AACF;;;;;;;;;yHAlE0C,YAAA,KAAA,WAAA,GAAA,MAAA,GAAAU,4BAAA,CAAA,YAAA,CAAA","file":"googleSearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":"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","file":"googleSearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
@@ -5,7 +5,7 @@ import { SearchToolOptions, SearchToolResult, SearchToolOutput, SearchToolRunOpt
5
5
  import { Tool, ToolEmitter, ToolInput } from '../base.cjs';
6
6
  import { z } from 'zod';
7
7
  import { RunContext } from '../../context.cjs';
8
- import { E as Emitter } from '../../emitter-D5Mu0EEH.cjs';
8
+ import { E as Emitter } from '../../emitter-DWEsd-ud.cjs';
9
9
  import '../../internals/serializable.cjs';
10
10
  import '../../internals/types.cjs';
11
11
  import '../../internals/helpers/guards.cjs';
@@ -5,7 +5,7 @@ import { SearchToolOptions, SearchToolResult, SearchToolOutput, SearchToolRunOpt
5
5
  import { Tool, ToolEmitter, ToolInput } from '../base.js';
6
6
  import { z } from 'zod';
7
7
  import { RunContext } from '../../context.js';
8
- import { E as Emitter } from '../../emitter-C3dO-s2P.js';
8
+ import { E as Emitter } from '../../emitter-C9nwGLt6.js';
9
9
  import '../../internals/serializable.js';
10
10
  import '../../internals/types.js';
11
11
  import '../../internals/helpers/guards.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","constructor","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":"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","file":"googleSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":"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","file":"googleSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["searXNGSearch.ts"],"names":["SearXNGToolOutput","SearchToolOutput","register","createSnapshot","results","loadSnapshot","snapshot","Object","assign","SearXNGTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","describe","options","maxResults","ValidationError","message","propertyName","_run","input","_options","run","params","createURLParams","q","format","baseUrl","parseEnv","url","decodeURIComponent","toString","response","fetch","signal","ok","Error","text","data","json","slice","map","result","title","content"],"mappings":";;;;;;;;;;;;AAuCO,MAAMA,0BAA0BC,yBAAAA,CAAAA;EAvCvC;;;EAwCE;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACLC,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,KAAA;AACF;AAEAC,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,oBAAoBC,eAAAA,CAAAA;EAvDjC;;;EA4DEC,IAAO,GAAA,YAAA;EACPC,WAAc,GAAA,CAAA,0FAAA,CAAA;EAEEC,OACdC,GAAAA,mBAAAA,CAAQC,KAAKC,KAAM,CAAA;IACjBC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAS,EAAA;GACX,CAAA;EAEFC,WAAc,GAAA;AACZ,IAAA,OAAOC,MAAEC,MAAO,CAAA;AACdC,MAAAA,KAAAA,EAAOF,MAAEG,MAAM,EAAA,CAAGC,IAAI,CAAA,CAAA,CAAGC,SAAS,CAAmB,iBAAA,CAAA;KACvD,CAAA;AACF;AAEA,EAAA,WAAA,CAAmBC,OAA8B,GAAA;IAAEC,UAAY,EAAA;GAAM,EAAA;AACnE,IAAA,KAAA,CAAMD,OAAAA,CAAAA;AAEN,IAAA,IAAIA,OAAQC,CAAAA,UAAAA,GAAa,CAAKD,IAAAA,OAAAA,CAAQC,aAAa,GAAK,EAAA;AACtD,MAAA,MAAM,IAAIC,mBAAgB,CAAA;AACxB,QAAA;UACEC,OAAS,EAAA,iDAAA;UACTC,YAAc,EAAA;AAChB;AACD,OAAA,CAAA;AACH;AACF;EAEA,MAAgBC,IAAAA,CACdC,KACAC,EAAAA,QAAAA,EACAC,GACA,EAAA;AACA,IAAA,MAAMC,SAASC,2BAAgB,CAAA;AAC7BC,MAAAA,CAAAA,EAAGL,KAAMV,CAAAA,KAAAA;MACTgB,MAAQ,EAAA;KACV,CAAA;AAEA,IAAMC,MAAAA,OAAAA,GAAU,KAAKb,OAAQa,CAAAA,OAAAA,IAAWC,iBAAS,kBAAoBpB,EAAAA,KAAAA,CAAEG,QAAM,CAAA;AAC7E,IAAMkB,MAAAA,GAAAA,GAAM,GAAGF,OAAAA,CAAAA,CAAAA,EAAWG,mBAAmBP,MAAOQ,CAAAA,QAAAA,EAAQ,CAAA,CAAA,CAAA;AAC5D,IAAMC,MAAAA,QAAAA,GAAW,MAAMC,KAAAA,CAAMJ,GAAK,EAAA;AAChCK,MAAAA,MAAAA,EAAQZ,GAAIY,CAAAA;KACd,CAAA;AAEA,IAAI,IAAA,CAACF,SAASG,EAAI,EAAA;AAChB,MAAA,MAAM,IAAIC,KAAAA,CAAM,MAAMJ,QAAAA,CAASK,MAAI,CAAA;AACrC;AAEA,IAAMC,MAAAA,IAAAA,GAAO,MAAMN,QAAAA,CAASO,IAAI,EAAA;AAEhC,IAAA,OAAO,IAAInD,iBAAAA,CACTkD,IAAK9C,CAAAA,OAAAA,CACFgD,KAAM,CAAA,CAAA,EAAG,IAAK1B,CAAAA,OAAAA,CAAQC,UAAU,CAAA,CAChC0B,GAAI,CAAA,CAACC,MAA6D,MAAA;AACjEb,MAAAA,GAAAA,EAAKa,OAAOb,GAAO,IAAA,EAAA;AACnBc,MAAAA,KAAAA,EAAOD,OAAOC,KAAS,IAAA,EAAA;AACvB3C,MAAAA,WAAAA,EAAa0C,OAAOE,OAAW,IAAA;AACjC,KAAA,CAAA,CAAA,CAAA;AAEN;AACF","file":"searXNGSearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"@/tools/search/base.js\";\nimport { ValidationError } from \"ajv\";\nimport { parseEnv } from \"@/internals/env.js\";\n\nexport interface SearXNGToolOptions extends SearchToolOptions {\n baseUrl?: string;\n maxResults: number;\n}\n\ntype SearXNGToolRunOptions = SearchToolRunOptions;\n\nexport interface SearXNGToolResult extends SearchToolResult {}\n\nexport class SearXNGToolOutput extends SearchToolOutput<SearXNGToolResult> {\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SearXNGTool extends Tool<\n SearXNGToolOutput,\n SearXNGToolOptions,\n SearXNGToolRunOptions\n> {\n name = \"Web Search\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SearchToolOutput<SearXNGToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"searXNG\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z.string().min(1).describe(`Web search query.`),\n });\n }\n\n public constructor(options: SearXNGToolOptions = { maxResults: 10 }) {\n super(options);\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<SearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = createURLParams({\n q: input.query,\n format: \"json\",\n });\n\n const baseUrl = this.options.baseUrl || parseEnv(\"SEARXNG_BASE_URL\", z.string());\n const url = `${baseUrl}?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new Error(await response.text());\n }\n\n const data = await response.json();\n\n return new SearXNGToolOutput(\n data.results\n .slice(0, this.options.maxResults)\n .map((result: { url: string; title: string; content: string }) => ({\n url: result.url || \"\",\n title: result.title || \"\",\n description: result.content || \"\",\n })),\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/searXNGSearch.ts"],"names":["SearXNGToolOutput","SearchToolOutput","register","createSnapshot","results","loadSnapshot","snapshot","Object","assign","SearXNGTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","describe","options","maxResults","ValidationError","message","propertyName","_run","input","_options","run","params","createURLParams","q","format","baseUrl","parseEnv","url","decodeURIComponent","toString","response","fetch","signal","ok","Error","text","data","json","slice","map","result","title","content"],"mappings":";;;;;;;;;;;;AA4BO,MAAMA,0BAA0BC,yBAAAA,CAAAA;EA5BvC;;;EA6BE;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAC,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,oBAAoBC,eAAAA,CAAAA;EA5CjC;;;EAiDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA,0FAAA,CAAA;EAEEC,OAAAA,GACdC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IACjBC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAAA,EAAS;GACX,CAAA;EAEFC,WAAAA,GAAc;AACZ,IAAA,OAAOC,MAAEC,MAAAA,CAAO;AACdC,MAAAA,KAAAA,EAAOF,MAAEG,MAAAA,EAAM,CAAGC,IAAI,CAAA,CAAA,CAAGC,SAAS,CAAA,iBAAA,CAAmB;KACvD,CAAA;AACF;AAEA,EAAA,WAAA,CAAmBC,OAAAA,GAA8B;IAAEC,UAAAA,EAAY;GAAG,EAAG;AACnE,IAAA,KAAA,CAAMD,OAAAA,CAAAA;AAEN,IAAA,IAAIA,OAAAA,CAAQC,UAAAA,GAAa,CAAA,IAAKD,OAAAA,CAAQC,aAAa,GAAA,EAAK;AACtD,MAAA,MAAM,IAAIC,mBAAAA,CAAgB;AACxB,QAAA;UACEC,OAAAA,EAAS,iDAAA;UACTC,YAAAA,EAAc;AAChB;AACD,OAAA,CAAA;AACH;AACF;EAEA,MAAgBC,IAAAA,CACdC,KAAAA,EACAC,QAAAA,EACAC,GAAAA,EACA;AACA,IAAA,MAAMC,SAASC,2BAAAA,CAAgB;AAC7BC,MAAAA,CAAAA,EAAGL,KAAAA,CAAMV,KAAAA;MACTgB,MAAAA,EAAQ;KACV,CAAA;AAEA,IAAA,MAAMC,OAAAA,GAAU,KAAKb,OAAAA,CAAQa,OAAAA,IAAWC,iBAAS,kBAAA,EAAoBpB,KAAAA,CAAEG,QAAM,CAAA;AAC7E,IAAA,MAAMkB,GAAAA,GAAM,GAAGF,OAAAA,CAAAA,CAAAA,EAAWG,mBAAmBP,MAAAA,CAAOQ,QAAAA,EAAQ,CAAA,CAAA,CAAA;AAC5D,IAAA,MAAMC,QAAAA,GAAW,MAAMC,KAAAA,CAAMJ,GAAAA,EAAK;AAChCK,MAAAA,MAAAA,EAAQZ,GAAAA,CAAIY;KACd,CAAA;AAEA,IAAA,IAAI,CAACF,SAASG,EAAAA,EAAI;AAChB,MAAA,MAAM,IAAIC,KAAAA,CAAM,MAAMJ,QAAAA,CAASK,MAAI,CAAA;AACrC;AAEA,IAAA,MAAMC,IAAAA,GAAO,MAAMN,QAAAA,CAASO,IAAAA,EAAI;AAEhC,IAAA,OAAO,IAAInD,iBAAAA,CACTkD,IAAAA,CAAK9C,OAAAA,CACFgD,KAAAA,CAAM,CAAA,EAAG,IAAA,CAAK1B,OAAAA,CAAQC,UAAU,CAAA,CAChC0B,GAAAA,CAAI,CAACC,MAAAA,MAA6D;AACjEb,MAAAA,GAAAA,EAAKa,OAAOb,GAAAA,IAAO,EAAA;AACnBc,MAAAA,KAAAA,EAAOD,OAAOC,KAAAA,IAAS,EAAA;AACvB3C,MAAAA,WAAAA,EAAa0C,OAAOE,OAAAA,IAAW;AACjC,KAAA,CAAA,CAAA,CAAA;AAEN;AACF","file":"searXNGSearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"@/tools/search/base.js\";\nimport { ValidationError } from \"ajv\";\nimport { parseEnv } from \"@/internals/env.js\";\n\nexport interface SearXNGToolOptions extends SearchToolOptions {\n baseUrl?: string;\n maxResults: number;\n}\n\ntype SearXNGToolRunOptions = SearchToolRunOptions;\n\nexport interface SearXNGToolResult extends SearchToolResult {}\n\nexport class SearXNGToolOutput extends SearchToolOutput<SearXNGToolResult> {\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SearXNGTool extends Tool<\n SearXNGToolOutput,\n SearXNGToolOptions,\n SearXNGToolRunOptions\n> {\n name = \"Web Search\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SearchToolOutput<SearXNGToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"searXNG\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z.string().min(1).describe(`Web search query.`),\n });\n }\n\n public constructor(options: SearXNGToolOptions = { maxResults: 10 }) {\n super(options);\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<SearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = createURLParams({\n q: input.query,\n format: \"json\",\n });\n\n const baseUrl = this.options.baseUrl || parseEnv(\"SEARXNG_BASE_URL\", z.string());\n const url = `${baseUrl}?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new Error(await response.text());\n }\n\n const data = await response.json();\n\n return new SearXNGToolOutput(\n data.results\n .slice(0, this.options.maxResults)\n .map((result: { url: string; title: string; content: string }) => ({\n url: result.url || \"\",\n title: result.title || \"\",\n description: result.content || \"\",\n })),\n );\n }\n}\n"]}
@@ -11,23 +11,12 @@ import 'promise-based-task';
11
11
  import '../../cache/base.cjs';
12
12
  import '../../internals/helpers/schema.cjs';
13
13
  import 'zod-to-json-schema';
14
- import '../../emitter-D5Mu0EEH.cjs';
14
+ import '../../emitter-DWEsd-ud.cjs';
15
15
  import '../../internals/helpers/promise.cjs';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface SearXNGToolOptions extends SearchToolOptions {
@@ -11,23 +11,12 @@ import 'promise-based-task';
11
11
  import '../../cache/base.js';
12
12
  import '../../internals/helpers/schema.js';
13
13
  import 'zod-to-json-schema';
14
- import '../../emitter-C3dO-s2P.js';
14
+ import '../../emitter-C9nwGLt6.js';
15
15
  import '../../internals/helpers/promise.js';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface SearXNGToolOptions extends SearchToolOptions {
@@ -1 +1 @@
1
- {"version":3,"sources":["searXNGSearch.ts"],"names":["SearXNGToolOutput","SearchToolOutput","register","createSnapshot","results","loadSnapshot","snapshot","Object","assign","SearXNGTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","describe","options","maxResults","ValidationError","message","propertyName","_run","input","_options","run","params","createURLParams","q","format","baseUrl","parseEnv","url","decodeURIComponent","toString","response","fetch","signal","ok","Error","text","data","json","slice","map","result","title","content"],"mappings":";;;;;;;;;;AAuCO,MAAMA,0BAA0BC,gBAAAA,CAAAA;EAvCvC;;;EAwCE;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACLC,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,KAAA;AACF;AAEAC,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,oBAAoBC,IAAAA,CAAAA;EAvDjC;;;EA4DEC,IAAO,GAAA,YAAA;EACPC,WAAc,GAAA,CAAA,0FAAA,CAAA;EAEEC,OACdC,GAAAA,OAAAA,CAAQC,KAAKC,KAAM,CAAA;IACjBC,SAAW,EAAA;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAS,EAAA;GACX,CAAA;EAEFC,WAAc,GAAA;AACZ,IAAA,OAAOC,EAAEC,MAAO,CAAA;AACdC,MAAAA,KAAAA,EAAOF,EAAEG,MAAM,EAAA,CAAGC,IAAI,CAAA,CAAA,CAAGC,SAAS,CAAmB,iBAAA,CAAA;KACvD,CAAA;AACF;AAEA,EAAA,WAAA,CAAmBC,OAA8B,GAAA;IAAEC,UAAY,EAAA;GAAM,EAAA;AACnE,IAAA,KAAA,CAAMD,OAAAA,CAAAA;AAEN,IAAA,IAAIA,OAAQC,CAAAA,UAAAA,GAAa,CAAKD,IAAAA,OAAAA,CAAQC,aAAa,GAAK,EAAA;AACtD,MAAA,MAAM,IAAIC,eAAgB,CAAA;AACxB,QAAA;UACEC,OAAS,EAAA,iDAAA;UACTC,YAAc,EAAA;AAChB;AACD,OAAA,CAAA;AACH;AACF;EAEA,MAAgBC,IAAAA,CACdC,KACAC,EAAAA,QAAAA,EACAC,GACA,EAAA;AACA,IAAA,MAAMC,SAASC,eAAgB,CAAA;AAC7BC,MAAAA,CAAAA,EAAGL,KAAMV,CAAAA,KAAAA;MACTgB,MAAQ,EAAA;KACV,CAAA;AAEA,IAAMC,MAAAA,OAAAA,GAAU,KAAKb,OAAQa,CAAAA,OAAAA,IAAWC,SAAS,kBAAoBpB,EAAAA,CAAAA,CAAEG,QAAM,CAAA;AAC7E,IAAMkB,MAAAA,GAAAA,GAAM,GAAGF,OAAAA,CAAAA,CAAAA,EAAWG,mBAAmBP,MAAOQ,CAAAA,QAAAA,EAAQ,CAAA,CAAA,CAAA;AAC5D,IAAMC,MAAAA,QAAAA,GAAW,MAAMC,KAAAA,CAAMJ,GAAK,EAAA;AAChCK,MAAAA,MAAAA,EAAQZ,GAAIY,CAAAA;KACd,CAAA;AAEA,IAAI,IAAA,CAACF,SAASG,EAAI,EAAA;AAChB,MAAA,MAAM,IAAIC,KAAAA,CAAM,MAAMJ,QAAAA,CAASK,MAAI,CAAA;AACrC;AAEA,IAAMC,MAAAA,IAAAA,GAAO,MAAMN,QAAAA,CAASO,IAAI,EAAA;AAEhC,IAAA,OAAO,IAAInD,iBAAAA,CACTkD,IAAK9C,CAAAA,OAAAA,CACFgD,KAAM,CAAA,CAAA,EAAG,IAAK1B,CAAAA,OAAAA,CAAQC,UAAU,CAAA,CAChC0B,GAAI,CAAA,CAACC,MAA6D,MAAA;AACjEb,MAAAA,GAAAA,EAAKa,OAAOb,GAAO,IAAA,EAAA;AACnBc,MAAAA,KAAAA,EAAOD,OAAOC,KAAS,IAAA,EAAA;AACvB3C,MAAAA,WAAAA,EAAa0C,OAAOE,OAAW,IAAA;AACjC,KAAA,CAAA,CAAA,CAAA;AAEN;AACF","file":"searXNGSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"@/tools/search/base.js\";\nimport { ValidationError } from \"ajv\";\nimport { parseEnv } from \"@/internals/env.js\";\n\nexport interface SearXNGToolOptions extends SearchToolOptions {\n baseUrl?: string;\n maxResults: number;\n}\n\ntype SearXNGToolRunOptions = SearchToolRunOptions;\n\nexport interface SearXNGToolResult extends SearchToolResult {}\n\nexport class SearXNGToolOutput extends SearchToolOutput<SearXNGToolResult> {\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SearXNGTool extends Tool<\n SearXNGToolOutput,\n SearXNGToolOptions,\n SearXNGToolRunOptions\n> {\n name = \"Web Search\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SearchToolOutput<SearXNGToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"searXNG\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z.string().min(1).describe(`Web search query.`),\n });\n }\n\n public constructor(options: SearXNGToolOptions = { maxResults: 10 }) {\n super(options);\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<SearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = createURLParams({\n q: input.query,\n format: \"json\",\n });\n\n const baseUrl = this.options.baseUrl || parseEnv(\"SEARXNG_BASE_URL\", z.string());\n const url = `${baseUrl}?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new Error(await response.text());\n }\n\n const data = await response.json();\n\n return new SearXNGToolOutput(\n data.results\n .slice(0, this.options.maxResults)\n .map((result: { url: string; title: string; content: string }) => ({\n url: result.url || \"\",\n title: result.title || \"\",\n description: result.content || \"\",\n })),\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/searXNGSearch.ts"],"names":["SearXNGToolOutput","SearchToolOutput","register","createSnapshot","results","loadSnapshot","snapshot","Object","assign","SearXNGTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","describe","options","maxResults","ValidationError","message","propertyName","_run","input","_options","run","params","createURLParams","q","format","baseUrl","parseEnv","url","decodeURIComponent","toString","response","fetch","signal","ok","Error","text","data","json","slice","map","result","title","content"],"mappings":";;;;;;;;;;AA4BO,MAAMA,0BAA0BC,gBAAAA,CAAAA;EA5BvC;;;EA6BE;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAC,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,oBAAoBC,IAAAA,CAAAA;EA5CjC;;;EAiDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,CAAA,0FAAA,CAAA;EAEEC,OAAAA,GACdC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IACjBC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAAA,EAAS;GACX,CAAA;EAEFC,WAAAA,GAAc;AACZ,IAAA,OAAOC,EAAEC,MAAAA,CAAO;AACdC,MAAAA,KAAAA,EAAOF,EAAEG,MAAAA,EAAM,CAAGC,IAAI,CAAA,CAAA,CAAGC,SAAS,CAAA,iBAAA,CAAmB;KACvD,CAAA;AACF;AAEA,EAAA,WAAA,CAAmBC,OAAAA,GAA8B;IAAEC,UAAAA,EAAY;GAAG,EAAG;AACnE,IAAA,KAAA,CAAMD,OAAAA,CAAAA;AAEN,IAAA,IAAIA,OAAAA,CAAQC,UAAAA,GAAa,CAAA,IAAKD,OAAAA,CAAQC,aAAa,GAAA,EAAK;AACtD,MAAA,MAAM,IAAIC,eAAAA,CAAgB;AACxB,QAAA;UACEC,OAAAA,EAAS,iDAAA;UACTC,YAAAA,EAAc;AAChB;AACD,OAAA,CAAA;AACH;AACF;EAEA,MAAgBC,IAAAA,CACdC,KAAAA,EACAC,QAAAA,EACAC,GAAAA,EACA;AACA,IAAA,MAAMC,SAASC,eAAAA,CAAgB;AAC7BC,MAAAA,CAAAA,EAAGL,KAAAA,CAAMV,KAAAA;MACTgB,MAAAA,EAAQ;KACV,CAAA;AAEA,IAAA,MAAMC,OAAAA,GAAU,KAAKb,OAAAA,CAAQa,OAAAA,IAAWC,SAAS,kBAAA,EAAoBpB,CAAAA,CAAEG,QAAM,CAAA;AAC7E,IAAA,MAAMkB,GAAAA,GAAM,GAAGF,OAAAA,CAAAA,CAAAA,EAAWG,mBAAmBP,MAAAA,CAAOQ,QAAAA,EAAQ,CAAA,CAAA,CAAA;AAC5D,IAAA,MAAMC,QAAAA,GAAW,MAAMC,KAAAA,CAAMJ,GAAAA,EAAK;AAChCK,MAAAA,MAAAA,EAAQZ,GAAAA,CAAIY;KACd,CAAA;AAEA,IAAA,IAAI,CAACF,SAASG,EAAAA,EAAI;AAChB,MAAA,MAAM,IAAIC,KAAAA,CAAM,MAAMJ,QAAAA,CAASK,MAAI,CAAA;AACrC;AAEA,IAAA,MAAMC,IAAAA,GAAO,MAAMN,QAAAA,CAASO,IAAAA,EAAI;AAEhC,IAAA,OAAO,IAAInD,iBAAAA,CACTkD,IAAAA,CAAK9C,OAAAA,CACFgD,KAAAA,CAAM,CAAA,EAAG,IAAA,CAAK1B,OAAAA,CAAQC,UAAU,CAAA,CAChC0B,GAAAA,CAAI,CAACC,MAAAA,MAA6D;AACjEb,MAAAA,GAAAA,EAAKa,OAAOb,GAAAA,IAAO,EAAA;AACnBc,MAAAA,KAAAA,EAAOD,OAAOC,KAAAA,IAAS,EAAA;AACvB3C,MAAAA,WAAAA,EAAa0C,OAAOE,OAAAA,IAAW;AACjC,KAAA,CAAA,CAAA,CAAA;AAEN;AACF","file":"searXNGSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { RunContext } from \"@/context.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"@/tools/search/base.js\";\nimport { ValidationError } from \"ajv\";\nimport { parseEnv } from \"@/internals/env.js\";\n\nexport interface SearXNGToolOptions extends SearchToolOptions {\n baseUrl?: string;\n maxResults: number;\n}\n\ntype SearXNGToolRunOptions = SearchToolRunOptions;\n\nexport interface SearXNGToolResult extends SearchToolResult {}\n\nexport class SearXNGToolOutput extends SearchToolOutput<SearXNGToolResult> {\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SearXNGTool extends Tool<\n SearXNGToolOutput,\n SearXNGToolOptions,\n SearXNGToolRunOptions\n> {\n name = \"Web Search\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SearchToolOutput<SearXNGToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"searXNG\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z.string().min(1).describe(`Web search query.`),\n });\n }\n\n public constructor(options: SearXNGToolOptions = { maxResults: 10 }) {\n super(options);\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<SearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = createURLParams({\n q: input.query,\n format: \"json\",\n });\n\n const baseUrl = this.options.baseUrl || parseEnv(\"SEARXNG_BASE_URL\", z.string());\n const url = `${baseUrl}?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new Error(await response.text());\n }\n\n const data = await response.json();\n\n return new SearXNGToolOutput(\n data.results\n .slice(0, this.options.maxResults)\n .map((result: { url: string; title: string; content: string }) => ({\n url: result.url || \"\",\n title: result.title || \"\",\n description: result.content || \"\",\n })),\n );\n }\n}\n"]}
@@ -93,9 +93,16 @@ class WikipediaTool extends base_cjs$1.Tool {
93
93
  __name(this, "WikipediaTool");
94
94
  }
95
95
  config;
96
- name;
97
- description;
98
- emitter;
96
+ name = "Wikipedia";
97
+ description = "Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.";
98
+ emitter = emitter_cjs.Emitter.root.child({
99
+ namespace: [
100
+ "tool",
101
+ "search",
102
+ "wikipedia"
103
+ ],
104
+ creator: this
105
+ });
99
106
  inputSchema() {
100
107
  return zod.z.object({
101
108
  query: zod.z.string({
@@ -104,14 +111,7 @@ class WikipediaTool extends base_cjs$1.Tool {
104
111
  });
105
112
  }
106
113
  constructor(config = {}) {
107
- super(config), this.config = config, this.name = "Wikipedia", this.description = "Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.", this.emitter = emitter_cjs.Emitter.root.child({
108
- namespace: [
109
- "tool",
110
- "search",
111
- "wikipedia"
112
- ],
113
- creator: this
114
- });
114
+ super(config), this.config = config;
115
115
  }
116
116
  static {
117
117
  this.register();
@@ -1 +1 @@
1
- {"version":3,"sources":["wikipedia.ts"],"names":["wiki","default","setLang","WikipediaToolOutput","SearchToolOutput","constructor","results","maxSerializedLength","register","getTextContent","isEmpty","target","length","response","JSON","stringify","Infinity","substring","createSnapshot","loadSnapshot","snapshot","Object","assign","WikipediaTool","Tool","name","description","emitter","inputSchema","z","object","query","string","min","max","config","Emitter","root","child","namespace","creator","_mappers","categories","page","content","html","markdown","runOptions","then","result","url","URL","fullurl","base","protocol","hostname","port","filter","Boolean","join","replace","service","Turndown","use","turndownPlugin","gfm","remove","node","extraction","fields","turndown","images","intro","infobox","links","coordinates","langLinks","references","related","summary","tables","_defaultRunOptions","unwrapTags","Set","unwrapTagsSelector","Array","from","values","ignoredTags","ignoredClasses","ignoredRoles","ignoredSelector","map","cls","role","transform","output","tagName","toLowerCase","has","className","trim","split","table","querySelectorAll","colspan","parseInt","getAttribute","insertAdjacentHTML","removeAttribute","ignoredTargets","childNode","unwrapTargets","reverse","push","outerHTML","innerHTML","filters","minPageNameSimilarity","excludeOthersOnExactMatch","search","limit","suggestion","maxDescriptionLength","_createRunOptions","overrides","baseKeys","R","pipe","mergeDeep","pick","options","_run","input","_options","searchRawResults","bestCandidates","extractBestCandidates","Promise","all","pageId","redirect","preload","keys","key","asyncProperties","title","resolve","mapValues","value","catch","undefined","candidates","normalize","text","stringComparison","jaccardIndex","sortMatch","candidate","index","pageid","score","rating","sort","a","b","at","enumerable"],"mappings":"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","file":"wikipedia.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Page, pageFunctions, searchOptions } from \"wikipedia\";\nimport wiki from \"wikipedia\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport * as R from \"remeda\";\nimport { keys, mapValues } from \"remeda\";\nimport { ArrayKeys, Common } from \"@/internals/types.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { z } from \"zod\";\nimport { Tool, ToolEmitter, ToolInput } from \"@/tools/base.js\";\nimport Turndown from \"turndown\";\n// @ts-expect-error missing types\nimport turndownPlugin from \"joplin-turndown-plugin-gfm\";\nimport stringComparison from \"string-comparison\";\nimport { pageResult } from \"wikipedia/dist/resultTypes.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nwiki.default.setLang(\"en\");\n\nexport interface SearchOptions extends searchOptions {}\n\nexport interface FilterOptions {\n excludeOthersOnExactMatch?: boolean;\n minPageNameSimilarity?: number;\n}\n\nexport type PageFunctions = Record<\n pageFunctions,\n {\n transform?: <T>(output: T) => T;\n }\n> & {\n markdown: {\n transform?: (output: string) => string;\n filter?: (node: HTMLElement) => boolean;\n };\n};\n\nexport interface ExtractionOptions {\n fields?: Partial<PageFunctions>;\n}\n\nexport interface OutputOptions {\n maxSerializedLength?: number;\n maxDescriptionLength?: number;\n}\n\nexport interface WikipediaToolOptions extends SearchToolOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\nexport interface WikipediaToolRunOptions extends SearchToolRunOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\ntype PageWithMarkdown = Page & { markdown: () => Promise<string> };\n\ntype ResultFields = { [K in keyof PageFunctions]: Awaited<ReturnType<PageWithMarkdown[K]>> };\n\nexport interface WikipediaToolResult extends SearchToolResult {\n fields: Partial<ResultFields>;\n}\n\nexport class WikipediaToolOutput extends SearchToolOutput<WikipediaToolResult> {\n constructor(\n public readonly results: WikipediaToolResult[],\n protected readonly maxSerializedLength: number,\n ) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n @Cache()\n getTextContent(): string {\n if (this.isEmpty()) {\n return `No results were found. Try to reformat your query.`;\n }\n\n const target = this.results.length === 1 ? this.results[0] : this.results;\n const response = JSON.stringify(target);\n\n return this.maxSerializedLength < Infinity\n ? response.substring(0, this.maxSerializedLength)\n : response;\n }\n\n createSnapshot() {\n return {\n results: this.results,\n maxSerializedLength: this.maxSerializedLength,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\ninterface SearchResponse {\n results: Pick<pageResult, \"title\" | \"pageid\">[];\n suggestion: string;\n}\n\nexport class WikipediaTool extends Tool<\n WikipediaToolOutput,\n WikipediaToolOptions,\n WikipediaToolRunOptions\n> {\n name = \"Wikipedia\";\n description =\n \"Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WikipediaToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"wikipedia\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z\n .string({ description: `Name of the wikipedia page, for example 'New York'` })\n .min(1)\n .max(128),\n });\n }\n\n public constructor(public readonly config: WikipediaToolOptions = {}) {\n super(config);\n }\n\n static {\n this.register();\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _mappers(): Record<\n keyof PageFunctions,\n (page: Page, runOptions: WikipediaToolRunOptions) => Promise<any>\n > {\n return {\n categories: (page) => page.categories(),\n content: (page) => page.content(),\n html: (page) => page.html(),\n markdown: async (page, runOptions) => {\n const html = await page.html().then((result) => {\n const url = new URL(page.fullurl);\n const base = `${url.protocol}//${[url.hostname, url.port].filter(Boolean).join(\":\")}`;\n return (\n result\n // Missing a protocol\n .replace(/(<img .*src=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n .replace(/(<a .*href=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n\n // Missing a hostname\n .replace(/(<img .*src=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n .replace(/(<a .*href=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n );\n });\n\n const service = new Turndown();\n service.use(turndownPlugin.gfm);\n return service\n .remove((node) => runOptions.extraction?.fields?.markdown?.filter?.(node) === false)\n .turndown(html);\n },\n images: (page) => page.images(),\n intro: (page) => page.intro(),\n infobox: (page) => page.infobox(),\n links: (page) => page.links(),\n coordinates: (page) => page.coordinates(),\n langLinks: (page) => page.langLinks(),\n references: (page) => page.references(),\n related: (page) => page.related(),\n summary: (page) => page.summary(),\n tables: (page) => page.tables(),\n };\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _defaultRunOptions(): WikipediaToolRunOptions {\n const unwrapTags = new Set([\"a\", \"small\", \"sup\"]);\n const unwrapTagsSelector = Array.from(unwrapTags.values()).join(\",\");\n\n const ignoredTags = new Set([\n \"img\",\n \"link\",\n \"style\",\n \"abbr\",\n \"cite\",\n \"input\",\n \"sup\",\n \"bdi\",\n \"q\",\n \"figure\",\n \"audio\",\n \"track\",\n \"figcaption\",\n ]);\n const ignoredClasses = new Set([\n \"toc\",\n \"reflist\",\n \"mw-references-wrap\",\n \"box-More_footnotes_needed\",\n \"navbox\",\n \"navbox-styles\",\n \"mw-editsection\",\n \"sistersitebox\",\n \"navbox-inner\",\n \"refbegin\",\n \"notpageimage\",\n \"mw-file-element\",\n \"box-Unreferenced_section\",\n \"navigation-not-searchable\",\n \"noexcerpt\",\n \"infobox-image\",\n \"mw-tmh-player\",\n \"printfooter\",\n \"ambox\",\n \"infobox\",\n ]);\n const ignoredRoles = new Set([\"navigation\"]);\n\n const ignoredSelector = [\n ...ignoredTags.values(),\n Array.from(ignoredClasses.values()).map((cls) => `.${cls}`),\n Array.from(ignoredRoles.values()).map((role) => `[role=\"${role}\"]`),\n \"table>caption\",\n ].join(\",\");\n\n return {\n extraction: {\n fields: {\n markdown: {\n transform: (output: string) => output.replace(/([^\\\\])(\\$)/g, `$1\\\\$2`),\n filter: (node) => {\n const tagName = node.tagName.toLowerCase();\n if (ignoredTags.has(tagName) || ignoredRoles.has(node.role ?? \"\")) {\n return false;\n }\n\n for (const cls of node.className.trim().split(\" \").filter(Boolean)) {\n if (ignoredClasses.has(cls)) {\n return false;\n }\n }\n\n for (const table of Array.from(node.querySelectorAll(\"table tr>th\"))) {\n let colspan = parseInt(table.getAttribute(\"colspan\") || \"1\");\n while (colspan > 1) {\n table.insertAdjacentHTML(\"afterend\", `<th>&nbsp;</th>`);\n colspan--;\n }\n table.removeAttribute(\"colspan\");\n }\n\n const ignoredTargets = Array.from(\n ignoredSelector ? node.querySelectorAll(ignoredSelector) : [],\n );\n for (const childNode of ignoredTargets) {\n childNode.remove();\n }\n\n const unwrapTargets = Array.from(\n unwrapTagsSelector ? node.querySelectorAll(unwrapTagsSelector) : [],\n ).reverse();\n if (unwrapTags.has(tagName)) {\n unwrapTargets.push(node);\n }\n for (const childNode of unwrapTargets) {\n childNode.outerHTML = childNode.innerHTML;\n }\n\n return true;\n },\n },\n },\n },\n filters: {\n minPageNameSimilarity: 0.5,\n excludeOthersOnExactMatch: true,\n },\n search: {\n limit: 3,\n suggestion: true,\n },\n output: {\n maxSerializedLength: 25_000,\n maxDescriptionLength: 250,\n },\n };\n }\n\n protected _createRunOptions(overrides?: WikipediaToolRunOptions): WikipediaToolRunOptions {\n const baseKeys: ArrayKeys<Common<WikipediaToolRunOptions, WikipediaToolOptions>> = [\n \"filters\",\n \"search\",\n \"extraction\",\n \"retryOptions\",\n \"output\",\n ];\n\n return R.pipe(\n { ...this._defaultRunOptions },\n R.mergeDeep(R.pick(this.options ?? {}, baseKeys)),\n R.mergeDeep({ ...overrides }),\n );\n }\n\n protected async _run(\n { query: input }: ToolInput<WikipediaTool>,\n _options?: WikipediaToolRunOptions,\n ): Promise<WikipediaToolOutput> {\n const runOptions = this._createRunOptions(_options);\n\n const { results: searchRawResults, suggestion }: SearchResponse = await wiki.default.search(\n input,\n {\n suggestion: Boolean(_options?.search?.suggestion),\n ...runOptions.search,\n },\n );\n\n if (searchRawResults.length === 0 && suggestion && runOptions.search?.suggestion) {\n return await this._run({ query: suggestion }, _options);\n }\n\n const bestCandidates = this.extractBestCandidates(\n input,\n searchRawResults,\n runOptions?.filters ?? {},\n );\n\n const results = await Promise.all(\n bestCandidates.map(async ({ pageId }) => {\n // @ts-expect-error wrong library's typing, passing a string would lead to a classic text search instead of a concrete page retrieval\n const page = await wiki.default.page(pageId, {\n redirect: true,\n preload: false,\n fields: keys(runOptions.extraction?.fields ?? {}).filter((key) => key !== \"markdown\"),\n });\n\n return asyncProperties({\n title: page.title,\n description: ((): Promise<string> => {\n const length = runOptions?.output?.maxDescriptionLength ?? 0;\n return length <= 0\n ? Promise.resolve(\"\")\n : page.content().then((content) => content.substring(0, length));\n })(),\n url: page.fullurl,\n fields: asyncProperties(\n mapValues(runOptions?.extraction?.fields ?? {}, (value, key) =>\n this._mappers[key](page, runOptions)\n .then((response) => (value.transform ? value.transform(response) : response))\n .catch(() => undefined),\n ),\n ),\n });\n }),\n );\n return new WikipediaToolOutput(results, runOptions.output?.maxSerializedLength ?? Infinity);\n }\n\n protected extractBestCandidates(\n query: string,\n candidates: SearchResponse[\"results\"],\n options: FilterOptions,\n ) {\n const normalize = (text: string) =>\n text\n .normalize(\"NFKD\")\n .replace(/[^\\w| ]/g, \"\") // remove diacritics and special characters (except whitespace)\n .replace(/\\s\\s+/g, \" \") // collapse multiple whitespaces into one\n .trim();\n\n const bestCandidates = stringComparison.jaccardIndex\n .sortMatch(\n normalize(query),\n candidates.map((candidate) => normalize(candidate.title)),\n )\n .map((result) => ({\n pageId: candidates[result.index].pageid,\n score: result.rating,\n }))\n .filter((result) => result.score >= (options.minPageNameSimilarity ?? 0))\n .sort((a, b) => b.score - a.score);\n\n if (bestCandidates.at(0)?.score === 1 && options.excludeOthersOnExactMatch) {\n bestCandidates.length = 1;\n }\n\n return bestCandidates;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n config: this.config,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/wikipedia.ts"],"names":["wiki","default","setLang","WikipediaToolOutput","SearchToolOutput","results","maxSerializedLength","register","getTextContent","isEmpty","target","length","response","JSON","stringify","Infinity","substring","createSnapshot","loadSnapshot","snapshot","Object","assign","WikipediaTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","config","_mappers","categories","page","content","html","markdown","runOptions","then","result","url","URL","fullurl","base","protocol","hostname","port","filter","Boolean","join","replace","service","Turndown","use","turndownPlugin","gfm","remove","node","extraction","fields","turndown","images","intro","infobox","links","coordinates","langLinks","references","related","summary","tables","_defaultRunOptions","unwrapTags","Set","unwrapTagsSelector","Array","from","values","ignoredTags","ignoredClasses","ignoredRoles","ignoredSelector","map","cls","role","transform","output","tagName","toLowerCase","has","className","trim","split","table","querySelectorAll","colspan","parseInt","getAttribute","insertAdjacentHTML","removeAttribute","ignoredTargets","childNode","unwrapTargets","reverse","push","outerHTML","innerHTML","filters","minPageNameSimilarity","excludeOthersOnExactMatch","search","limit","suggestion","maxDescriptionLength","_createRunOptions","overrides","baseKeys","R","pipe","mergeDeep","pick","options","_run","input","_options","searchRawResults","bestCandidates","extractBestCandidates","Promise","all","pageId","redirect","preload","keys","key","asyncProperties","title","resolve","mapValues","value","catch","undefined","candidates","normalize","text","stringComparison","jaccardIndex","sortMatch","candidate","index","pageid","score","rating","sort","a","b","at","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BAA,qBAAAA,CAAKC,OAAAA,CAAQC,QAAQ,IAAA,CAAA;AAoDd,MAAMC,4BAA4BC,yBAAAA,CAAAA;AAAAA,EAAAA;;;;;AACvC,EAAA,WAAA,CACkBC,SACGC,mBAAAA,EACnB;AACA,IAAA,KAAA,CAAMD,OAAAA,CAAAA,EAAAA,IAAAA,CAHUA,OAAAA,GAAAA,OAAAA,EAAAA,KACGC,mBAAAA,GAAAA,mBAAAA;AAGrB;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAGAC,cAAAA,GAAyB;AACvB,IAAA,IAAI,IAAA,CAAKC,SAAO,EAAI;AAClB,MAAA,OAAO,CAAA,kDAAA,CAAA;AACT;AAEA,IAAA,MAAMC,MAAAA,GAAS,KAAKL,OAAAA,CAAQM,MAAAA,KAAW,IAAI,IAAA,CAAKN,OAAAA,CAAQ,CAAA,CAAA,GAAK,IAAA,CAAKA,OAAAA;AAClE,IAAA,MAAMO,QAAAA,GAAWC,IAAAA,CAAKC,SAAAA,CAAUJ,MAAAA,CAAAA;AAEhC,IAAA,OAAO,IAAA,CAAKJ,sBAAsBS,QAAAA,GAC9BH,QAAAA,CAASI,UAAU,CAAA,EAAG,IAAA,CAAKV,mBAAmB,CAAA,GAC9CM,QAAAA;AACN;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLZ,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdC,MAAAA,mBAAAA,EAAqB,IAAA,CAAKA;AAC5B,KAAA;AACF;AAEAY,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;;;;;;;AAOO,MAAMG,sBAAsBC,eAAAA,CAAAA;AAAAA,EAAAA;;;;EAKjCC,IAAAA,GAAO,WAAA;EACPC,WAAAA,GACE,+LAAA;EAEcC,OAAAA,GAA6DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC9FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,MAAEC,MAAAA,CAAO;AACdC,MAAAA,KAAAA,EAAOF,MACJG,MAAAA,CAAO;QAAEX,WAAAA,EAAa,CAAA,kDAAA;AAAqD,OAAA,CAAA,CAC3EY,GAAAA,CAAI,CAAA,CAAA,CACJC,IAAI,GAAA;KACT,CAAA;AACF;EAEA,WAAA,CAAmCC,MAAAA,GAA+B,EAAC,EAAG;AACpE,IAAA,KAAA,CAAMA,MAAAA,CAAAA,EAAAA,IAAAA,CAD2BA,MAAAA,GAAAA,MAAAA;AAEnC;EAEA;AACE,IAAA,IAAA,CAAKhC,QAAAA,EAAQ;AACf;AAEA,EAAA,IAGciC,QAAAA,GAGZ;AACA,IAAA,OAAO;AACLC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,CAACC,IAAAA,KAASA,IAAAA,CAAKD,UAAAA,EAAU,EAAzB,YAAA,CAAA;AACZE,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACD,IAAAA,KAASA,IAAAA,CAAKC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,IAAAA,kBAAM,MAAA,CAAA,CAACF,IAAAA,KAASA,IAAAA,CAAKE,IAAAA,EAAI,EAAnB,MAAA,CAAA;MACNC,QAAAA,kBAAU,MAAA,CAAA,OAAOH,MAAMI,UAAAA,KAAAA;AACrB,QAAA,MAAMF,OAAO,MAAMF,IAAAA,CAAKE,MAAI,CAAGG,IAAAA,CAAK,CAACC,MAAAA,KAAAA;AACnC,UAAA,MAAMC,GAAAA,GAAM,IAAIC,GAAAA,CAAIR,IAAAA,CAAKS,OAAO,CAAA;AAChC,UAAA,MAAMC,IAAAA,GAAO,CAAA,EAAGH,GAAAA,CAAII,QAAQ,CAAA,EAAA,EAAK;YAACJ,GAAAA,CAAIK,QAAAA;YAAUL,GAAAA,CAAIM;AAAMC,WAAAA,CAAAA,MAAAA,CAAOC,OAAAA,CAAAA,CAASC,IAAAA,CAAK,GAAA,CAAA,CAAA,CAAA;AAC/E,UAAA,OACEV,MAAAA,CAEGW,OAAAA,CAAQ,2BAAA,EAA6B,CAAA,GAAA,EAAMV,GAAAA,CAAII,QAAQ,CAAA,GAAA,CAAK,CAAA,CAC5DM,OAAAA,CAAQ,0BAAA,EAA4B,CAAA,GAAA,EAAMV,GAAAA,CAAII,QAAQ,CAAA,GAAA,CAAK,CAAA,CAG3DM,OAAAA,CAAQ,yBAAA,EAA2B,CAAA,GAAA,EAAMP,IAAAA,CAAAA,GAAAA,CAAS,CAAA,CAClDO,OAAAA,CAAQ,wBAAA,EAA0B,CAAA,GAAA,EAAMP,IAAAA,CAAAA,GAAAA,CAAS,CAAA;SAExD,CAAA;AAEA,QAAA,MAAMQ,OAAAA,GAAU,IAAIC,yBAAAA,EAAAA;AACpBD,QAAAA,OAAAA,CAAQE,GAAAA,CAAIC,gCAAeC,GAAG,CAAA;AAC9B,QAAA,OAAOJ,OAAAA,CACJK,MAAAA,CAAO,CAACC,IAAAA,KAASpB,WAAWqB,UAAAA,EAAYC,MAAAA,EAAQvB,QAAAA,EAAUW,MAAAA,GAASU,IAAAA,CAAAA,KAAU,KAAA,CAAA,CAC7EG,SAASzB,IAAAA,CAAAA;OACd,EArBU,UAAA,CAAA;AAsBV0B,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,CAAC5B,IAAAA,KAASA,IAAAA,CAAK4B,MAAAA,EAAM,EAArB,QAAA,CAAA;AACRC,MAAAA,KAAAA,kBAAO,MAAA,CAAA,CAAC7B,IAAAA,KAASA,IAAAA,CAAK6B,KAAAA,EAAK,EAApB,OAAA,CAAA;AACPC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAAC9B,IAAAA,KAASA,IAAAA,CAAK8B,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,KAAAA,kBAAO,MAAA,CAAA,CAAC/B,IAAAA,KAASA,IAAAA,CAAK+B,KAAAA,EAAK,EAApB,OAAA,CAAA;AACPC,MAAAA,WAAAA,kBAAa,MAAA,CAAA,CAAChC,IAAAA,KAASA,IAAAA,CAAKgC,WAAAA,EAAW,EAA1B,aAAA,CAAA;AACbC,MAAAA,SAAAA,kBAAW,MAAA,CAAA,CAACjC,IAAAA,KAASA,IAAAA,CAAKiC,SAAAA,EAAS,EAAxB,WAAA,CAAA;AACXC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,CAAClC,IAAAA,KAASA,IAAAA,CAAKkC,UAAAA,EAAU,EAAzB,YAAA,CAAA;AACZC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACnC,IAAAA,KAASA,IAAAA,CAAKmC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACpC,IAAAA,KAASA,IAAAA,CAAKoC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,CAACrC,IAAAA,KAASA,IAAAA,CAAKqC,MAAAA,EAAM,EAArB,QAAA;AACV,KAAA;AACF;AAEA,EAAA,IAGcC,kBAAAA,GAA8C;AAC1D,IAAA,MAAMC,UAAAA,uBAAiBC,GAAAA,CAAI;AAAC,MAAA,GAAA;AAAK,MAAA,OAAA;AAAS,MAAA;AAAM,KAAA,CAAA;AAChD,IAAA,MAAMC,kBAAAA,GAAqBC,MAAMC,IAAAA,CAAKJ,UAAAA,CAAWK,QAAM,CAAA,CAAI5B,KAAK,GAAA,CAAA;AAEhE,IAAA,MAAM6B,WAAAA,uBAAkBL,GAAAA,CAAI;AAC1B,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,GAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA;AACD,KAAA,CAAA;AACD,IAAA,MAAMM,cAAAA,uBAAqBN,GAAAA,CAAI;AAC7B,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,oBAAA;AACA,MAAA,2BAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,0BAAA;AACA,MAAA,2BAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA;AACD,KAAA,CAAA;AACD,IAAA,MAAMO,YAAAA,uBAAmBP,GAAAA,CAAI;AAAC,MAAA;AAAa,KAAA,CAAA;AAE3C,IAAA,MAAMQ,eAAAA,GAAkB;AACnBH,MAAAA,GAAAA,WAAAA,CAAYD,MAAAA,EAAM;MACrBF,KAAAA,CAAMC,IAAAA,CAAKG,cAAAA,CAAeF,MAAAA,EAAM,CAAA,CAAIK,IAAI,CAACC,GAAAA,KAAQ,CAAA,CAAA,EAAIA,GAAAA,CAAAA,CAAK,CAAA;MAC1DR,KAAAA,CAAMC,IAAAA,CAAKI,YAAAA,CAAaH,MAAAA,EAAM,CAAA,CAAIK,IAAI,CAACE,IAAAA,KAAS,CAAA,OAAA,EAAUA,IAAAA,CAAAA,EAAAA,CAAQ,CAAA;AAClE,MAAA;AACAnC,KAAAA,CAAAA,IAAAA,CAAK,GAAA,CAAA;AAEP,IAAA,OAAO;MACLS,UAAAA,EAAY;QACVC,MAAAA,EAAQ;UACNvB,QAAAA,EAAU;AACRiD,YAAAA,SAAAA,0BAAYC,MAAAA,KAAmBA,MAAAA,CAAOpC,OAAAA,CAAQ,cAAA,EAAgB,QAAQ,CAAA,EAA3D,WAAA,CAAA;AACXH,YAAAA,MAAAA,0BAASU,IAAAA,KAAAA;AACP,cAAA,MAAM8B,OAAAA,GAAU9B,IAAAA,CAAK8B,OAAAA,CAAQC,WAAAA,EAAW;AACxC,cAAA,IAAIV,WAAAA,CAAYW,IAAIF,OAAAA,CAAAA,IAAYP,aAAaS,GAAAA,CAAIhC,IAAAA,CAAK2B,IAAAA,IAAQ,EAAA,CAAA,EAAK;AACjE,gBAAA,OAAO,KAAA;AACT;AAEA,cAAA,KAAA,MAAWD,GAAAA,IAAO1B,IAAAA,CAAKiC,SAAAA,CAAUC,IAAAA,EAAI,CAAGC,MAAM,GAAA,CAAA,CAAK7C,MAAAA,CAAOC,OAAAA,CAAAA,EAAU;AAClE,gBAAA,IAAI+B,cAAAA,CAAeU,GAAAA,CAAIN,GAAAA,CAAAA,EAAM;AAC3B,kBAAA,OAAO,KAAA;AACT;AACF;AAEA,cAAA,KAAA,MAAWU,SAASlB,KAAAA,CAAMC,IAAAA,CAAKnB,KAAKqC,gBAAAA,CAAiB,aAAA,CAAA,CAAA,EAAiB;AACpE,gBAAA,IAAIC,UAAUC,QAAAA,CAASH,KAAAA,CAAMI,YAAAA,CAAa,SAAA,KAAc,GAAA,CAAA;AACxD,gBAAA,OAAOF,UAAU,CAAA,EAAG;AAClBF,kBAAAA,KAAAA,CAAMK,kBAAAA,CAAmB,YAAY,CAAA,eAAA,CAAiB,CAAA;AACtDH,kBAAAA,OAAAA,EAAAA;AACF;AACAF,gBAAAA,KAAAA,CAAMM,gBAAgB,SAAA,CAAA;AACxB;AAEA,cAAA,MAAMC,cAAAA,GAAiBzB,MAAMC,IAAAA,CAC3BK,eAAAA,GAAkBxB,KAAKqC,gBAAAA,CAAiBb,eAAAA,CAAAA,GAAmB,EAAE,CAAA;AAE/D,cAAA,KAAA,MAAWoB,aAAaD,cAAAA,EAAgB;AACtCC,gBAAAA,SAAAA,CAAU7C,MAAAA,EAAM;AAClB;AAEA,cAAA,MAAM8C,aAAAA,GAAgB3B,KAAAA,CAAMC,IAAAA,CAC1BF,kBAAAA,GAAqBjB,IAAAA,CAAKqC,gBAAAA,CAAiBpB,kBAAAA,CAAAA,GAAsB,EAAE,CAAA,CACnE6B,OAAAA,EAAO;AACT,cAAA,IAAI/B,UAAAA,CAAWiB,GAAAA,CAAIF,OAAAA,CAAAA,EAAU;AAC3Be,gBAAAA,aAAAA,CAAcE,KAAK/C,IAAAA,CAAAA;AACrB;AACA,cAAA,KAAA,MAAW4C,aAAaC,aAAAA,EAAe;AACrCD,gBAAAA,SAAAA,CAAUI,YAAYJ,SAAAA,CAAUK,SAAAA;AAClC;AAEA,cAAA,OAAO,IAAA;aACT,EAvCQ,QAAA;AAwCV;AACF;AACF,OAAA;MACAC,OAAAA,EAAS;QACPC,qBAAAA,EAAuB,GAAA;QACvBC,yBAAAA,EAA2B;AAC7B,OAAA;MACAC,MAAAA,EAAQ;QACNC,KAAAA,EAAO,CAAA;QACPC,UAAAA,EAAY;AACd,OAAA;MACA1B,MAAAA,EAAQ;QACNzF,mBAAAA,EAAqB,IAAA;QACrBoH,oBAAAA,EAAsB;AACxB;AACF,KAAA;AACF;AAEUC,EAAAA,iBAAAA,CAAkBC,SAAAA,EAA8D;AACxF,IAAA,MAAMC,QAAAA,GAA6E;AACjF,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA;;AAGF,IAAA,OAAOC,aAAEC,IAAAA,CACP;AAAE,MAAA,GAAG,IAAA,CAAK/C;AAAmB,KAAA,EAC7B8C,YAAAA,CAAEE,SAAAA,CAAUF,YAAAA,CAAEG,IAAAA,CAAK,IAAA,CAAKC,OAAAA,IAAW,EAAC,EAAGL,QAAAA,CAAAA,CAAAA,EACvCC,YAAAA,CAAEE,SAAAA,CAAU;MAAE,GAAGJ;AAAU,KAAA,CAAA,CAAA;AAE/B;AAEA,EAAA,MAAgBO,IAAAA,CACd,EAAEhG,KAAAA,EAAOiG,KAAAA,IACTC,QAAAA,EAC8B;AAC9B,IAAA,MAAMvF,UAAAA,GAAa,IAAA,CAAK6E,iBAAAA,CAAkBU,QAAAA,CAAAA;AAE1C,IAAA,MAAM,EAAEhI,SAASiI,gBAAAA,EAAkBb,UAAAA,KAA+B,MAAMzH,qBAAAA,CAAKC,OAAAA,CAAQsH,MAAAA,CACnFa,KAAAA,EACA;MACEX,UAAAA,EAAYhE,OAAAA,CAAQ4E,QAAAA,EAAUd,MAAAA,EAAQE,UAAAA,CAAAA;AACtC,MAAA,GAAG3E,UAAAA,CAAWyE;KAChB,CAAA;AAGF,IAAA,IAAIe,iBAAiB3H,MAAAA,KAAW,CAAA,IAAK8G,UAAAA,IAAc3E,UAAAA,CAAWyE,QAAQE,UAAAA,EAAY;AAChF,MAAA,OAAO,MAAM,KAAKU,IAAAA,CAAK;QAAEhG,KAAAA,EAAOsF;AAAW,OAAA,EAAGY,QAAAA,CAAAA;AAChD;AAEA,IAAA,MAAME,cAAAA,GAAiB,KAAKC,qBAAAA,CAC1BJ,KAAAA,EACAE,kBACAxF,UAAAA,EAAYsE,OAAAA,IAAW,EAAC,CAAA;AAG1B,IAAA,MAAM/G,OAAAA,GAAU,MAAMoI,OAAAA,CAAQC,GAAAA,CAC5BH,eAAe5C,GAAAA,CAAI,OAAO,EAAEgD,MAAAA,EAAM,KAAE;AAElC,MAAA,MAAMjG,IAAAA,GAAO,MAAM1C,qBAAAA,CAAKC,OAAAA,CAAQyC,KAAKiG,MAAAA,EAAQ;QAC3CC,QAAAA,EAAU,IAAA;QACVC,OAAAA,EAAS,KAAA;QACTzE,MAAAA,EAAQ0E,MAAAA,CAAKhG,UAAAA,CAAWqB,UAAAA,EAAYC,MAAAA,IAAU,EAAC,CAAA,CAAGZ,MAAAA,CAAO,CAACuF,GAAAA,KAAQA,GAAAA,KAAQ,UAAA;OAC5E,CAAA;AAEA,MAAA,OAAOC,2BAAAA,CAAgB;AACrBC,QAAAA,KAAAA,EAAOvG,IAAAA,CAAKuG,KAAAA;AACZxH,QAAAA,WAAAA,EAAAA,CAAc,MAAA;AACZ,UAAA,MAAMd,MAAAA,GAASmC,UAAAA,EAAYiD,MAAAA,EAAQ2B,oBAAAA,IAAwB,CAAA;AAC3D,UAAA,OAAO/G,UAAU,CAAA,GACb8H,OAAAA,CAAQS,OAAAA,CAAQ,EAAA,IAChBxG,IAAAA,CAAKC,OAAAA,EAAO,CAAGI,IAAAA,CAAK,CAACJ,OAAAA,KAAYA,OAAAA,CAAQ3B,SAAAA,CAAU,CAAA,EAAGL,MAAAA,CAAAA,CAAAA;SAC5D,GAAA;AACAsC,QAAAA,GAAAA,EAAKP,IAAAA,CAAKS,OAAAA;AACViB,QAAAA,MAAAA,EAAQ4E,2BAAAA,CACNG,WAAAA,CAAUrG,UAAAA,EAAYqB,UAAAA,EAAYC,UAAU,EAAC,EAAG,CAACgF,KAAAA,EAAOL,GAAAA,KACtD,IAAA,CAAKvG,QAAAA,CAASuG,GAAAA,EAAKrG,IAAAA,EAAMI,UAAAA,CAAAA,CACtBC,IAAAA,CAAK,CAACnC,QAAAA,KAAcwI,KAAAA,CAAMtD,SAAAA,GAAYsD,MAAMtD,SAAAA,CAAUlF,QAAAA,CAAAA,GAAYA,QAAAA,CAAAA,CAClEyI,KAAAA,CAAM,MAAMC,MAAAA,CAAAA,CAAAA;OAGrB,CAAA;AACF,KAAA,CAAA,CAAA;AAEF,IAAA,OAAO,IAAInJ,mBAAAA,CAAoBE,OAAAA,EAASyC,UAAAA,CAAWiD,MAAAA,EAAQzF,uBAAuBS,QAAAA,CAAAA;AACpF;EAEUyH,qBAAAA,CACRrG,KAAAA,EACAoH,YACArB,OAAAA,EACA;AACA,IAAA,MAAMsB,4BAAY,MAAA,CAAA,CAACC,IAAAA,KACjBA,IAAAA,CACGD,SAAAA,CAAU,MAAA,CAAA,CACV7F,OAAAA,CAAQ,UAAA,EAAY,EAAA,EACpBA,OAAAA,CAAQ,QAAA,EAAU,GAAA,CAAA,CAClByC,MAAI,EALS,WAAA,CAAA;AAOlB,IAAA,MAAMmC,iBAAiBmB,iCAAAA,CAAiBC,YAAAA,CACrCC,UACCJ,SAAAA,CAAUrH,KAAAA,GACVoH,UAAAA,CAAW5D,GAAAA,CAAI,CAACkE,SAAAA,KAAcL,SAAAA,CAAUK,UAAUZ,KAAK,CAAA,CAAA,CAAA,CAExDtD,GAAAA,CAAI,CAAC3C,MAAAA,MAAY;MAChB2F,MAAAA,EAAQY,UAAAA,CAAWvG,MAAAA,CAAO8G,KAAK,CAAA,CAAEC,MAAAA;AACjCC,MAAAA,KAAAA,EAAOhH,MAAAA,CAAOiH;AAChB,KAAA,CAAA,EACCzG,MAAAA,CAAO,CAACR,MAAAA,KAAWA,MAAAA,CAAOgH,UAAU9B,OAAAA,CAAQb,qBAAAA,IAAyB,CAAA,CAAA,CAAA,CACrE6C,KAAK,CAACC,CAAAA,EAAGC,MAAMA,CAAAA,CAAEJ,KAAAA,GAAQG,EAAEH,KAAK,CAAA;AAEnC,IAAA,IAAIzB,eAAe8B,EAAAA,CAAG,CAAA,GAAIL,KAAAA,KAAU,CAAA,IAAK9B,QAAQZ,yBAAAA,EAA2B;AAC1EiB,MAAAA,cAAAA,CAAe5H,MAAAA,GAAS,CAAA;AAC1B;AAEA,IAAA,OAAO4H,cAAAA;AACT;EAEAtH,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTsB,MAAAA,MAAAA,EAAQ,IAAA,CAAKA;AACf,KAAA;AACF;AAEArB,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7D,IAAA,KAAA,CAAMD,aAAaC,QAAAA,CAAAA;AACrB;AACF;;;IAjRImJ,UAAAA,EAAY;;;;;;;IA8CZA,UAAAA,EAAY","file":"wikipedia.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Page, pageFunctions, searchOptions } from \"wikipedia\";\nimport wiki from \"wikipedia\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport * as R from \"remeda\";\nimport { keys, mapValues } from \"remeda\";\nimport { ArrayKeys, Common } from \"@/internals/types.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { z } from \"zod\";\nimport { Tool, ToolEmitter, ToolInput } from \"@/tools/base.js\";\nimport Turndown from \"turndown\";\n// @ts-expect-error missing types\nimport turndownPlugin from \"joplin-turndown-plugin-gfm\";\nimport stringComparison from \"string-comparison\";\nimport { pageResult } from \"wikipedia/dist/resultTypes.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nwiki.default.setLang(\"en\");\n\nexport interface SearchOptions extends searchOptions {}\n\nexport interface FilterOptions {\n excludeOthersOnExactMatch?: boolean;\n minPageNameSimilarity?: number;\n}\n\nexport type PageFunctions = Record<\n pageFunctions,\n {\n transform?: <T>(output: T) => T;\n }\n> & {\n markdown: {\n transform?: (output: string) => string;\n filter?: (node: HTMLElement) => boolean;\n };\n};\n\nexport interface ExtractionOptions {\n fields?: Partial<PageFunctions>;\n}\n\nexport interface OutputOptions {\n maxSerializedLength?: number;\n maxDescriptionLength?: number;\n}\n\nexport interface WikipediaToolOptions extends SearchToolOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\nexport interface WikipediaToolRunOptions extends SearchToolRunOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\ntype PageWithMarkdown = Page & { markdown: () => Promise<string> };\n\ntype ResultFields = { [K in keyof PageFunctions]: Awaited<ReturnType<PageWithMarkdown[K]>> };\n\nexport interface WikipediaToolResult extends SearchToolResult {\n fields: Partial<ResultFields>;\n}\n\nexport class WikipediaToolOutput extends SearchToolOutput<WikipediaToolResult> {\n constructor(\n public readonly results: WikipediaToolResult[],\n protected readonly maxSerializedLength: number,\n ) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n @Cache()\n getTextContent(): string {\n if (this.isEmpty()) {\n return `No results were found. Try to reformat your query.`;\n }\n\n const target = this.results.length === 1 ? this.results[0] : this.results;\n const response = JSON.stringify(target);\n\n return this.maxSerializedLength < Infinity\n ? response.substring(0, this.maxSerializedLength)\n : response;\n }\n\n createSnapshot() {\n return {\n results: this.results,\n maxSerializedLength: this.maxSerializedLength,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\ninterface SearchResponse {\n results: Pick<pageResult, \"title\" | \"pageid\">[];\n suggestion: string;\n}\n\nexport class WikipediaTool extends Tool<\n WikipediaToolOutput,\n WikipediaToolOptions,\n WikipediaToolRunOptions\n> {\n name = \"Wikipedia\";\n description =\n \"Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WikipediaToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"wikipedia\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z\n .string({ description: `Name of the wikipedia page, for example 'New York'` })\n .min(1)\n .max(128),\n });\n }\n\n public constructor(public readonly config: WikipediaToolOptions = {}) {\n super(config);\n }\n\n static {\n this.register();\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _mappers(): Record<\n keyof PageFunctions,\n (page: Page, runOptions: WikipediaToolRunOptions) => Promise<any>\n > {\n return {\n categories: (page) => page.categories(),\n content: (page) => page.content(),\n html: (page) => page.html(),\n markdown: async (page, runOptions) => {\n const html = await page.html().then((result) => {\n const url = new URL(page.fullurl);\n const base = `${url.protocol}//${[url.hostname, url.port].filter(Boolean).join(\":\")}`;\n return (\n result\n // Missing a protocol\n .replace(/(<img .*src=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n .replace(/(<a .*href=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n\n // Missing a hostname\n .replace(/(<img .*src=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n .replace(/(<a .*href=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n );\n });\n\n const service = new Turndown();\n service.use(turndownPlugin.gfm);\n return service\n .remove((node) => runOptions.extraction?.fields?.markdown?.filter?.(node) === false)\n .turndown(html);\n },\n images: (page) => page.images(),\n intro: (page) => page.intro(),\n infobox: (page) => page.infobox(),\n links: (page) => page.links(),\n coordinates: (page) => page.coordinates(),\n langLinks: (page) => page.langLinks(),\n references: (page) => page.references(),\n related: (page) => page.related(),\n summary: (page) => page.summary(),\n tables: (page) => page.tables(),\n };\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _defaultRunOptions(): WikipediaToolRunOptions {\n const unwrapTags = new Set([\"a\", \"small\", \"sup\"]);\n const unwrapTagsSelector = Array.from(unwrapTags.values()).join(\",\");\n\n const ignoredTags = new Set([\n \"img\",\n \"link\",\n \"style\",\n \"abbr\",\n \"cite\",\n \"input\",\n \"sup\",\n \"bdi\",\n \"q\",\n \"figure\",\n \"audio\",\n \"track\",\n \"figcaption\",\n ]);\n const ignoredClasses = new Set([\n \"toc\",\n \"reflist\",\n \"mw-references-wrap\",\n \"box-More_footnotes_needed\",\n \"navbox\",\n \"navbox-styles\",\n \"mw-editsection\",\n \"sistersitebox\",\n \"navbox-inner\",\n \"refbegin\",\n \"notpageimage\",\n \"mw-file-element\",\n \"box-Unreferenced_section\",\n \"navigation-not-searchable\",\n \"noexcerpt\",\n \"infobox-image\",\n \"mw-tmh-player\",\n \"printfooter\",\n \"ambox\",\n \"infobox\",\n ]);\n const ignoredRoles = new Set([\"navigation\"]);\n\n const ignoredSelector = [\n ...ignoredTags.values(),\n Array.from(ignoredClasses.values()).map((cls) => `.${cls}`),\n Array.from(ignoredRoles.values()).map((role) => `[role=\"${role}\"]`),\n \"table>caption\",\n ].join(\",\");\n\n return {\n extraction: {\n fields: {\n markdown: {\n transform: (output: string) => output.replace(/([^\\\\])(\\$)/g, `$1\\\\$2`),\n filter: (node) => {\n const tagName = node.tagName.toLowerCase();\n if (ignoredTags.has(tagName) || ignoredRoles.has(node.role ?? \"\")) {\n return false;\n }\n\n for (const cls of node.className.trim().split(\" \").filter(Boolean)) {\n if (ignoredClasses.has(cls)) {\n return false;\n }\n }\n\n for (const table of Array.from(node.querySelectorAll(\"table tr>th\"))) {\n let colspan = parseInt(table.getAttribute(\"colspan\") || \"1\");\n while (colspan > 1) {\n table.insertAdjacentHTML(\"afterend\", `<th>&nbsp;</th>`);\n colspan--;\n }\n table.removeAttribute(\"colspan\");\n }\n\n const ignoredTargets = Array.from(\n ignoredSelector ? node.querySelectorAll(ignoredSelector) : [],\n );\n for (const childNode of ignoredTargets) {\n childNode.remove();\n }\n\n const unwrapTargets = Array.from(\n unwrapTagsSelector ? node.querySelectorAll(unwrapTagsSelector) : [],\n ).reverse();\n if (unwrapTags.has(tagName)) {\n unwrapTargets.push(node);\n }\n for (const childNode of unwrapTargets) {\n childNode.outerHTML = childNode.innerHTML;\n }\n\n return true;\n },\n },\n },\n },\n filters: {\n minPageNameSimilarity: 0.5,\n excludeOthersOnExactMatch: true,\n },\n search: {\n limit: 3,\n suggestion: true,\n },\n output: {\n maxSerializedLength: 25_000,\n maxDescriptionLength: 250,\n },\n };\n }\n\n protected _createRunOptions(overrides?: WikipediaToolRunOptions): WikipediaToolRunOptions {\n const baseKeys: ArrayKeys<Common<WikipediaToolRunOptions, WikipediaToolOptions>> = [\n \"filters\",\n \"search\",\n \"extraction\",\n \"retryOptions\",\n \"output\",\n ];\n\n return R.pipe(\n { ...this._defaultRunOptions },\n R.mergeDeep(R.pick(this.options ?? {}, baseKeys)),\n R.mergeDeep({ ...overrides }),\n );\n }\n\n protected async _run(\n { query: input }: ToolInput<WikipediaTool>,\n _options?: WikipediaToolRunOptions,\n ): Promise<WikipediaToolOutput> {\n const runOptions = this._createRunOptions(_options);\n\n const { results: searchRawResults, suggestion }: SearchResponse = await wiki.default.search(\n input,\n {\n suggestion: Boolean(_options?.search?.suggestion),\n ...runOptions.search,\n },\n );\n\n if (searchRawResults.length === 0 && suggestion && runOptions.search?.suggestion) {\n return await this._run({ query: suggestion }, _options);\n }\n\n const bestCandidates = this.extractBestCandidates(\n input,\n searchRawResults,\n runOptions?.filters ?? {},\n );\n\n const results = await Promise.all(\n bestCandidates.map(async ({ pageId }) => {\n // @ts-expect-error wrong library's typing, passing a string would lead to a classic text search instead of a concrete page retrieval\n const page = await wiki.default.page(pageId, {\n redirect: true,\n preload: false,\n fields: keys(runOptions.extraction?.fields ?? {}).filter((key) => key !== \"markdown\"),\n });\n\n return asyncProperties({\n title: page.title,\n description: ((): Promise<string> => {\n const length = runOptions?.output?.maxDescriptionLength ?? 0;\n return length <= 0\n ? Promise.resolve(\"\")\n : page.content().then((content) => content.substring(0, length));\n })(),\n url: page.fullurl,\n fields: asyncProperties(\n mapValues(runOptions?.extraction?.fields ?? {}, (value, key) =>\n this._mappers[key](page, runOptions)\n .then((response) => (value.transform ? value.transform(response) : response))\n .catch(() => undefined),\n ),\n ),\n });\n }),\n );\n return new WikipediaToolOutput(results, runOptions.output?.maxSerializedLength ?? Infinity);\n }\n\n protected extractBestCandidates(\n query: string,\n candidates: SearchResponse[\"results\"],\n options: FilterOptions,\n ) {\n const normalize = (text: string) =>\n text\n .normalize(\"NFKD\")\n .replace(/[^\\w| ]/g, \"\") // remove diacritics and special characters (except whitespace)\n .replace(/\\s\\s+/g, \" \") // collapse multiple whitespaces into one\n .trim();\n\n const bestCandidates = stringComparison.jaccardIndex\n .sortMatch(\n normalize(query),\n candidates.map((candidate) => normalize(candidate.title)),\n )\n .map((result) => ({\n pageId: candidates[result.index].pageid,\n score: result.rating,\n }))\n .filter((result) => result.score >= (options.minPageNameSimilarity ?? 0))\n .sort((a, b) => b.score - a.score);\n\n if (bestCandidates.at(0)?.score === 1 && options.excludeOthersOnExactMatch) {\n bestCandidates.length = 1;\n }\n\n return bestCandidates;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n config: this.config,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
@@ -5,7 +5,7 @@ import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOu
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.cjs';
7
7
  import { pageResult } from 'wikipedia/dist/resultTypes.js';
8
- import { E as Emitter } from '../../emitter-D5Mu0EEH.cjs';
8
+ import { E as Emitter } from '../../emitter-DWEsd-ud.cjs';
9
9
  import '../../internals/serializable.cjs';
10
10
  import '../../internals/types.cjs';
11
11
  import '../../internals/helpers/guards.cjs';
@@ -5,7 +5,7 @@ import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOu
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.js';
7
7
  import { pageResult } from 'wikipedia/dist/resultTypes.js';
8
- import { E as Emitter } from '../../emitter-C3dO-s2P.js';
8
+ import { E as Emitter } from '../../emitter-C9nwGLt6.js';
9
9
  import '../../internals/serializable.js';
10
10
  import '../../internals/types.js';
11
11
  import '../../internals/helpers/guards.js';
@@ -66,9 +66,16 @@ class WikipediaTool extends Tool {
66
66
  __name(this, "WikipediaTool");
67
67
  }
68
68
  config;
69
- name;
70
- description;
71
- emitter;
69
+ name = "Wikipedia";
70
+ description = "Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.";
71
+ emitter = Emitter.root.child({
72
+ namespace: [
73
+ "tool",
74
+ "search",
75
+ "wikipedia"
76
+ ],
77
+ creator: this
78
+ });
72
79
  inputSchema() {
73
80
  return z.object({
74
81
  query: z.string({
@@ -77,14 +84,7 @@ class WikipediaTool extends Tool {
77
84
  });
78
85
  }
79
86
  constructor(config = {}) {
80
- super(config), this.config = config, this.name = "Wikipedia", this.description = "Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.", this.emitter = Emitter.root.child({
81
- namespace: [
82
- "tool",
83
- "search",
84
- "wikipedia"
85
- ],
86
- creator: this
87
- });
87
+ super(config), this.config = config;
88
88
  }
89
89
  static {
90
90
  this.register();