beeai-framework 0.1.29 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/a2a/agents/agent.d.cts +2 -2
  3. package/dist/adapters/a2a/agents/agent.d.ts +2 -2
  4. package/dist/adapters/a2a/agents/agent.js.map +1 -1
  5. package/dist/adapters/a2a/agents/events.d.cts +1 -1
  6. package/dist/adapters/a2a/agents/events.d.ts +1 -1
  7. package/dist/adapters/a2a/agents/types.d.cts +2 -2
  8. package/dist/adapters/a2a/agents/types.d.ts +2 -2
  9. package/dist/adapters/a2a/agents/utils.cjs +52 -11
  10. package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
  11. package/dist/adapters/a2a/agents/utils.js +52 -11
  12. package/dist/adapters/a2a/agents/utils.js.map +1 -1
  13. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
  14. package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
  15. package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
  16. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
  17. package/dist/adapters/a2a/serve/server.cjs.map +1 -1
  18. package/dist/adapters/a2a/serve/server.d.cts +2 -2
  19. package/dist/adapters/a2a/serve/server.d.ts +2 -2
  20. package/dist/adapters/a2a/serve/server.js.map +1 -1
  21. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  22. package/dist/adapters/acp/agents/agent.d.cts +2 -2
  23. package/dist/adapters/acp/agents/agent.d.ts +2 -2
  24. package/dist/adapters/acp/agents/agent.js.map +1 -1
  25. package/dist/adapters/acp/agents/events.d.cts +1 -1
  26. package/dist/adapters/acp/agents/events.d.ts +1 -1
  27. package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
  28. package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
  29. package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
  30. package/dist/adapters/agentstack/agents/agent.js.map +1 -1
  31. package/dist/adapters/agentstack/agents/events.d.cts +1 -1
  32. package/dist/adapters/agentstack/agents/events.d.ts +1 -1
  33. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  34. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
  35. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
  36. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  37. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  38. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  39. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  40. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
  41. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
  42. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  43. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  44. package/dist/adapters/anthropic/backend/chat.d.cts +2 -2
  45. package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
  46. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  47. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  48. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  49. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  50. package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
  51. package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
  52. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  53. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  54. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
  55. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
  56. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  57. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  58. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  59. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  60. package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
  61. package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
  62. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  63. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  64. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  65. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  66. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  67. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  68. package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
  69. package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
  70. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
  73. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
  74. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  77. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  78. package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
  79. package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
  80. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  81. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  82. package/dist/adapters/groq/backend/chat.d.cts +3 -3
  83. package/dist/adapters/groq/backend/chat.d.ts +3 -3
  84. package/dist/adapters/groq/backend/chat.js.map +1 -1
  85. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +2 -2
  89. package/dist/adapters/groq/backend/embedding.d.ts +2 -2
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs +6 -28
  92. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  93. package/dist/adapters/langchain/backend/chat.d.cts +6 -5
  94. package/dist/adapters/langchain/backend/chat.d.ts +6 -5
  95. package/dist/adapters/langchain/backend/chat.js +6 -28
  96. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  97. package/dist/adapters/langchain/backend/embedding.cjs +3 -2
  98. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  99. package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
  100. package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
  101. package/dist/adapters/langchain/backend/embedding.js +3 -2
  102. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  103. package/dist/adapters/langchain/backend/utils.cjs +328 -0
  104. package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
  105. package/dist/adapters/langchain/backend/utils.d.cts +39 -0
  106. package/dist/adapters/langchain/backend/utils.d.ts +39 -0
  107. package/dist/adapters/langchain/backend/utils.js +324 -0
  108. package/dist/adapters/langchain/backend/utils.js.map +1 -0
  109. package/dist/adapters/langchain/tools.cjs.map +1 -1
  110. package/dist/adapters/langchain/tools.d.cts +2 -2
  111. package/dist/adapters/langchain/tools.d.ts +2 -2
  112. package/dist/adapters/langchain/tools.js.map +1 -1
  113. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  114. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  115. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  116. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  117. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  118. package/dist/adapters/mcp/serve/server.js.map +1 -1
  119. package/dist/adapters/minimax/backend/chat.cjs +25 -0
  120. package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
  121. package/dist/adapters/minimax/backend/chat.d.cts +38 -0
  122. package/dist/adapters/minimax/backend/chat.d.ts +38 -0
  123. package/dist/adapters/minimax/backend/chat.js +23 -0
  124. package/dist/adapters/minimax/backend/chat.js.map +1 -0
  125. package/dist/adapters/minimax/backend/client.cjs +31 -0
  126. package/dist/adapters/minimax/backend/client.cjs.map +1 -0
  127. package/dist/adapters/minimax/backend/client.d.cts +17 -0
  128. package/dist/adapters/minimax/backend/client.d.ts +17 -0
  129. package/dist/adapters/minimax/backend/client.js +29 -0
  130. package/dist/adapters/minimax/backend/client.js.map +1 -0
  131. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  132. package/dist/adapters/ollama/backend/chat.d.cts +2 -2
  133. package/dist/adapters/ollama/backend/chat.d.ts +2 -2
  134. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  135. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  136. package/dist/adapters/ollama/backend/client.js.map +1 -1
  137. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  138. package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
  139. package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
  140. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  141. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  142. package/dist/adapters/openai/backend/chat.d.cts +2 -2
  143. package/dist/adapters/openai/backend/chat.d.ts +2 -2
  144. package/dist/adapters/openai/backend/chat.js.map +1 -1
  145. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  146. package/dist/adapters/openai/backend/client.js.map +1 -1
  147. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  148. package/dist/adapters/openai/backend/embedding.d.cts +2 -2
  149. package/dist/adapters/openai/backend/embedding.d.ts +2 -2
  150. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  151. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  152. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  153. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  154. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  155. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  156. package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
  157. package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
  158. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  159. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  160. package/dist/adapters/vercel/backend/utils.d.cts +2 -2
  161. package/dist/adapters/vercel/backend/utils.d.ts +2 -2
  162. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  163. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  164. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  165. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  166. package/dist/adapters/watsonx/backend/chat.js +1 -1
  167. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  168. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  169. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  171. package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
  172. package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
  173. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -1
  175. package/dist/adapters/xai/backend/chat.d.cts +2 -2
  176. package/dist/adapters/xai/backend/chat.d.ts +2 -2
  177. package/dist/adapters/xai/backend/chat.js.map +1 -1
  178. package/dist/adapters/xai/backend/client.cjs.map +1 -1
  179. package/dist/adapters/xai/backend/client.js.map +1 -1
  180. package/dist/{agent-CZGWXO-X.d.ts → agent-s3uhvAba.d.ts} +4 -4
  181. package/dist/{agent-PRlGoawI.d.cts → agent-zfT__iq9.d.cts} +4 -4
  182. package/dist/agents/base.cjs.map +1 -1
  183. package/dist/agents/base.d.cts +2 -2
  184. package/dist/agents/base.d.ts +2 -2
  185. package/dist/agents/base.js.map +1 -1
  186. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  187. package/dist/agents/experimental/replan/agent.d.cts +3 -3
  188. package/dist/agents/experimental/replan/agent.d.ts +3 -3
  189. package/dist/agents/experimental/replan/agent.js.map +1 -1
  190. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  191. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  192. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  193. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  194. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  195. package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
  196. package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
  197. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  198. package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
  199. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  200. package/dist/agents/experimental/streamlit/prompts.js +2 -2
  201. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  202. package/dist/agents/react/agent.cjs +6 -6
  203. package/dist/agents/react/agent.cjs.map +1 -1
  204. package/dist/agents/react/agent.d.cts +4 -4
  205. package/dist/agents/react/agent.d.ts +4 -4
  206. package/dist/agents/react/agent.js.map +1 -1
  207. package/dist/agents/react/prompts.cjs.map +1 -1
  208. package/dist/agents/react/prompts.js.map +1 -1
  209. package/dist/agents/react/runners/base.cjs.map +1 -1
  210. package/dist/agents/react/runners/base.d.cts +4 -4
  211. package/dist/agents/react/runners/base.d.ts +4 -4
  212. package/dist/agents/react/runners/base.js.map +1 -1
  213. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  214. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  215. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  216. package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
  217. package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
  218. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  219. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  220. package/dist/agents/react/runners/default/runner.d.cts +4 -4
  221. package/dist/agents/react/runners/default/runner.d.ts +4 -4
  222. package/dist/agents/react/runners/default/runner.js.map +1 -1
  223. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  224. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  225. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  226. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  227. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  228. package/dist/agents/react/runners/granite/runner.d.cts +4 -4
  229. package/dist/agents/react/runners/granite/runner.d.ts +4 -4
  230. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  231. package/dist/agents/react/types.d.cts +2 -2
  232. package/dist/agents/react/types.d.ts +2 -2
  233. package/dist/agents/requirement/agent.cjs.map +1 -1
  234. package/dist/agents/requirement/agent.d.cts +5 -5
  235. package/dist/agents/requirement/agent.d.ts +5 -5
  236. package/dist/agents/requirement/agent.js.map +1 -1
  237. package/dist/agents/requirement/prompts.d.cts +8 -8
  238. package/dist/agents/requirement/prompts.d.ts +8 -8
  239. package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
  240. package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
  241. package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
  242. package/dist/agents/requirement/requirements/conditional.js.map +1 -1
  243. package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
  244. package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
  245. package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
  246. package/dist/agents/requirement/requirements/requirement.js.map +1 -1
  247. package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
  248. package/dist/agents/requirement/requirements/utils.d.cts +1 -1
  249. package/dist/agents/requirement/requirements/utils.d.ts +1 -1
  250. package/dist/agents/requirement/requirements/utils.js.map +1 -1
  251. package/dist/agents/requirement/runner.cjs.map +1 -1
  252. package/dist/agents/requirement/runner.d.cts +5 -5
  253. package/dist/agents/requirement/runner.d.ts +5 -5
  254. package/dist/agents/requirement/runner.js.map +1 -1
  255. package/dist/agents/requirement/types.d.cts +4 -4
  256. package/dist/agents/requirement/types.d.ts +4 -4
  257. package/dist/agents/requirement/utils/llm.cjs.map +1 -1
  258. package/dist/agents/requirement/utils/llm.d.cts +4 -4
  259. package/dist/agents/requirement/utils/llm.d.ts +4 -4
  260. package/dist/agents/requirement/utils/llm.js.map +1 -1
  261. package/dist/agents/requirement/utils/tool.cjs.map +1 -1
  262. package/dist/agents/requirement/utils/tool.d.cts +4 -4
  263. package/dist/agents/requirement/utils/tool.d.ts +4 -4
  264. package/dist/agents/requirement/utils/tool.js.map +1 -1
  265. package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
  266. package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
  267. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  268. package/dist/agents/toolCalling/agent.d.cts +4 -4
  269. package/dist/agents/toolCalling/agent.d.ts +4 -4
  270. package/dist/agents/toolCalling/agent.js.map +1 -1
  271. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  272. package/dist/agents/toolCalling/prompts.js.map +1 -1
  273. package/dist/agents/toolCalling/types.d.cts +1 -1
  274. package/dist/agents/toolCalling/types.d.ts +1 -1
  275. package/dist/agents/types.d.cts +2 -2
  276. package/dist/agents/types.d.ts +2 -2
  277. package/dist/backend/backend.cjs.map +1 -1
  278. package/dist/backend/backend.d.cts +3 -3
  279. package/dist/backend/backend.d.ts +3 -3
  280. package/dist/backend/backend.js.map +1 -1
  281. package/dist/backend/chat.cjs.map +1 -1
  282. package/dist/backend/chat.d.cts +2 -2
  283. package/dist/backend/chat.d.ts +2 -2
  284. package/dist/backend/chat.js.map +1 -1
  285. package/dist/backend/client.cjs.map +1 -1
  286. package/dist/backend/client.js.map +1 -1
  287. package/dist/backend/constants.cjs +7 -0
  288. package/dist/backend/constants.cjs.map +1 -1
  289. package/dist/backend/constants.d.cts +5 -0
  290. package/dist/backend/constants.d.ts +5 -0
  291. package/dist/backend/constants.js +7 -0
  292. package/dist/backend/constants.js.map +1 -1
  293. package/dist/backend/core.d.cts +2 -2
  294. package/dist/backend/core.d.ts +2 -2
  295. package/dist/backend/embedding.cjs.map +1 -1
  296. package/dist/backend/embedding.d.cts +2 -2
  297. package/dist/backend/embedding.d.ts +2 -2
  298. package/dist/backend/embedding.js.map +1 -1
  299. package/dist/backend/errors.cjs.map +1 -1
  300. package/dist/backend/errors.d.cts +2 -2
  301. package/dist/backend/errors.d.ts +2 -2
  302. package/dist/backend/errors.js.map +1 -1
  303. package/dist/backend/message.cjs.map +1 -1
  304. package/dist/backend/message.js.map +1 -1
  305. package/dist/backend/utils.cjs.map +1 -1
  306. package/dist/backend/utils.d.cts +2 -2
  307. package/dist/backend/utils.d.ts +2 -2
  308. package/dist/backend/utils.js.map +1 -1
  309. package/dist/{base-CyFx7BRL.d.ts → base-BjzyQ8k6.d.ts} +2 -2
  310. package/dist/{base-XfWeXQ-S.d.cts → base-s3ioVIE9.d.cts} +2 -2
  311. package/dist/cache/decoratorCache.cjs.map +1 -1
  312. package/dist/cache/decoratorCache.js.map +1 -1
  313. package/dist/cache/fileCache.cjs.map +1 -1
  314. package/dist/cache/fileCache.js.map +1 -1
  315. package/dist/cache/nullCache.cjs.map +1 -1
  316. package/dist/cache/nullCache.js.map +1 -1
  317. package/dist/cache/slidingCache.cjs.map +1 -1
  318. package/dist/cache/slidingCache.js.map +1 -1
  319. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  320. package/dist/cache/unconstrainedCache.js.map +1 -1
  321. package/dist/{chat-BFl85cqt.d.cts → chat-C20nYj46.d.cts} +3 -3
  322. package/dist/{chat-BRuyDeKR.d.ts → chat-CfTNfR60.d.ts} +3 -3
  323. package/dist/context.cjs.map +1 -1
  324. package/dist/context.d.cts +1 -1
  325. package/dist/context.d.ts +1 -1
  326. package/dist/context.js.map +1 -1
  327. package/dist/emitter/emitter.cjs.map +1 -1
  328. package/dist/emitter/emitter.d.cts +1 -1
  329. package/dist/emitter/emitter.d.ts +1 -1
  330. package/dist/emitter/emitter.js.map +1 -1
  331. package/dist/emitter/types.d.cts +1 -1
  332. package/dist/emitter/types.d.ts +1 -1
  333. package/dist/emitter/utils.cjs.map +1 -1
  334. package/dist/emitter/utils.js.map +1 -1
  335. package/dist/{emitter-jN55XZZq.d.cts → emitter-D4OcelZ9.d.cts} +1 -1
  336. package/dist/{emitter-36-9MnvA.d.ts → emitter-kHxkUxco.d.ts} +1 -1
  337. package/dist/errors.cjs.map +1 -1
  338. package/dist/errors.js.map +1 -1
  339. package/dist/index.d.cts +4 -4
  340. package/dist/index.d.ts +4 -4
  341. package/dist/internals/env.cjs.map +1 -1
  342. package/dist/internals/env.js.map +1 -1
  343. package/dist/internals/fetcher.cjs.map +1 -1
  344. package/dist/internals/fetcher.d.cts +1 -1
  345. package/dist/internals/fetcher.d.ts +1 -1
  346. package/dist/internals/fetcher.js.map +1 -1
  347. package/dist/internals/helpers/array.cjs.map +1 -1
  348. package/dist/internals/helpers/array.js.map +1 -1
  349. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  350. package/dist/internals/helpers/cancellation.js.map +1 -1
  351. package/dist/internals/helpers/counter.cjs.map +1 -1
  352. package/dist/internals/helpers/counter.js.map +1 -1
  353. package/dist/internals/helpers/general.cjs.map +1 -1
  354. package/dist/internals/helpers/general.js.map +1 -1
  355. package/dist/internals/helpers/hash.cjs.map +1 -1
  356. package/dist/internals/helpers/hash.js.map +1 -1
  357. package/dist/internals/helpers/map.cjs.map +1 -1
  358. package/dist/internals/helpers/map.js.map +1 -1
  359. package/dist/internals/helpers/math.cjs.map +1 -1
  360. package/dist/internals/helpers/math.js.map +1 -1
  361. package/dist/internals/helpers/object.cjs +7 -1
  362. package/dist/internals/helpers/object.cjs.map +1 -1
  363. package/dist/internals/helpers/object.js +7 -1
  364. package/dist/internals/helpers/object.js.map +1 -1
  365. package/dist/internals/helpers/paginate.cjs.map +1 -1
  366. package/dist/internals/helpers/paginate.js.map +1 -1
  367. package/dist/internals/helpers/promise.cjs.map +1 -1
  368. package/dist/internals/helpers/promise.js.map +1 -1
  369. package/dist/internals/helpers/prototype.cjs.map +1 -1
  370. package/dist/internals/helpers/prototype.js.map +1 -1
  371. package/dist/internals/helpers/retry.cjs.map +1 -1
  372. package/dist/internals/helpers/retry.js.map +1 -1
  373. package/dist/internals/helpers/retryable.cjs.map +1 -1
  374. package/dist/internals/helpers/retryable.js.map +1 -1
  375. package/dist/internals/helpers/schema.cjs.map +1 -1
  376. package/dist/internals/helpers/schema.d.cts +4 -4
  377. package/dist/internals/helpers/schema.d.ts +4 -4
  378. package/dist/internals/helpers/schema.js.map +1 -1
  379. package/dist/internals/helpers/stream.cjs.map +1 -1
  380. package/dist/internals/helpers/stream.js.map +1 -1
  381. package/dist/internals/helpers/string.cjs.map +1 -1
  382. package/dist/internals/helpers/string.js.map +1 -1
  383. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  384. package/dist/internals/helpers/weakRef.js.map +1 -1
  385. package/dist/internals/serializable.cjs +3 -1
  386. package/dist/internals/serializable.cjs.map +1 -1
  387. package/dist/internals/serializable.d.cts +6 -0
  388. package/dist/internals/serializable.d.ts +6 -0
  389. package/dist/internals/serializable.js +3 -1
  390. package/dist/internals/serializable.js.map +1 -1
  391. package/dist/internals/types.cjs.map +1 -1
  392. package/dist/internals/types.js.map +1 -1
  393. package/dist/logger/logger.cjs.map +1 -1
  394. package/dist/logger/logger.d.cts +2 -2
  395. package/dist/logger/logger.d.ts +2 -2
  396. package/dist/logger/logger.js +2 -2
  397. package/dist/logger/logger.js.map +1 -1
  398. package/dist/logger/pretty.cjs.map +1 -1
  399. package/dist/logger/pretty.js.map +1 -1
  400. package/dist/memory/base.cjs.map +1 -1
  401. package/dist/memory/base.js.map +1 -1
  402. package/dist/memory/slidingMemory.cjs.map +1 -1
  403. package/dist/memory/slidingMemory.js.map +1 -1
  404. package/dist/memory/summarizeMemory.cjs.map +1 -1
  405. package/dist/memory/summarizeMemory.d.cts +2 -2
  406. package/dist/memory/summarizeMemory.d.ts +2 -2
  407. package/dist/memory/summarizeMemory.js.map +1 -1
  408. package/dist/memory/tokenMemory.cjs.map +1 -1
  409. package/dist/memory/tokenMemory.js.map +1 -1
  410. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  411. package/dist/memory/unconstrainedMemory.js.map +1 -1
  412. package/dist/middleware/streamToolCall.cjs.map +1 -1
  413. package/dist/middleware/streamToolCall.d.cts +2 -2
  414. package/dist/middleware/streamToolCall.d.ts +2 -2
  415. package/dist/middleware/streamToolCall.js.map +1 -1
  416. package/dist/middleware/trajectory.cjs.map +1 -1
  417. package/dist/middleware/trajectory.d.cts +2 -2
  418. package/dist/middleware/trajectory.d.ts +2 -2
  419. package/dist/middleware/trajectory.js.map +1 -1
  420. package/dist/parsers/errors.cjs.map +1 -1
  421. package/dist/parsers/errors.js.map +1 -1
  422. package/dist/parsers/field.cjs.map +1 -1
  423. package/dist/parsers/field.js.map +1 -1
  424. package/dist/parsers/linePrefix.cjs.map +1 -1
  425. package/dist/parsers/linePrefix.d.cts +1 -1
  426. package/dist/parsers/linePrefix.d.ts +1 -1
  427. package/dist/parsers/linePrefix.js.map +1 -1
  428. package/dist/serializer/error.cjs.map +1 -1
  429. package/dist/serializer/error.js.map +1 -1
  430. package/dist/serializer/serializer.cjs +16 -3
  431. package/dist/serializer/serializer.cjs.map +1 -1
  432. package/dist/serializer/serializer.d.cts +1 -1
  433. package/dist/serializer/serializer.d.ts +1 -1
  434. package/dist/serializer/serializer.js +16 -4
  435. package/dist/serializer/serializer.js.map +1 -1
  436. package/dist/serializer/utils.cjs.map +1 -1
  437. package/dist/serializer/utils.d.cts +1 -1
  438. package/dist/serializer/utils.d.ts +1 -1
  439. package/dist/serializer/utils.js.map +1 -1
  440. package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
  441. package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
  442. package/dist/serve/server.cjs.map +1 -1
  443. package/dist/serve/server.js.map +1 -1
  444. package/dist/template.cjs.map +1 -1
  445. package/dist/template.js.map +1 -1
  446. package/dist/tools/arxiv.cjs.map +1 -1
  447. package/dist/tools/arxiv.d.cts +2 -2
  448. package/dist/tools/arxiv.d.ts +2 -2
  449. package/dist/tools/arxiv.js.map +1 -1
  450. package/dist/tools/base.cjs.map +1 -1
  451. package/dist/tools/base.d.cts +1 -1
  452. package/dist/tools/base.d.ts +1 -1
  453. package/dist/tools/base.js.map +1 -1
  454. package/dist/tools/calculator.cjs.map +1 -1
  455. package/dist/tools/calculator.d.cts +3 -3
  456. package/dist/tools/calculator.d.ts +3 -3
  457. package/dist/tools/calculator.js.map +1 -1
  458. package/dist/tools/custom.cjs.map +1 -1
  459. package/dist/tools/custom.d.cts +3 -3
  460. package/dist/tools/custom.d.ts +3 -3
  461. package/dist/tools/custom.js.map +1 -1
  462. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  463. package/dist/tools/database/elasticsearch.d.cts +3 -3
  464. package/dist/tools/database/elasticsearch.d.ts +3 -3
  465. package/dist/tools/database/elasticsearch.js.map +1 -1
  466. package/dist/tools/database/metadata.cjs.map +1 -1
  467. package/dist/tools/database/metadata.js.map +1 -1
  468. package/dist/tools/database/milvus.cjs.map +1 -1
  469. package/dist/tools/database/milvus.d.cts +5 -5
  470. package/dist/tools/database/milvus.d.ts +5 -5
  471. package/dist/tools/database/milvus.js.map +1 -1
  472. package/dist/tools/database/qdrant.cjs.map +1 -1
  473. package/dist/tools/database/qdrant.d.cts +2 -2
  474. package/dist/tools/database/qdrant.d.ts +2 -2
  475. package/dist/tools/database/qdrant.js.map +1 -1
  476. package/dist/tools/database/sql.cjs.map +1 -1
  477. package/dist/tools/database/sql.d.cts +2 -2
  478. package/dist/tools/database/sql.d.ts +2 -2
  479. package/dist/tools/database/sql.js.map +1 -1
  480. package/dist/tools/handoff.cjs.map +1 -1
  481. package/dist/tools/handoff.d.cts +2 -2
  482. package/dist/tools/handoff.d.ts +2 -2
  483. package/dist/tools/handoff.js.map +1 -1
  484. package/dist/tools/llm.cjs +1 -1
  485. package/dist/tools/llm.cjs.map +1 -1
  486. package/dist/tools/llm.d.cts +3 -3
  487. package/dist/tools/llm.d.ts +3 -3
  488. package/dist/tools/llm.js +1 -1
  489. package/dist/tools/llm.js.map +1 -1
  490. package/dist/tools/mcp.cjs.map +1 -1
  491. package/dist/tools/mcp.d.cts +2 -2
  492. package/dist/tools/mcp.d.ts +2 -2
  493. package/dist/tools/mcp.js.map +1 -1
  494. package/dist/tools/openapi.cjs.map +1 -1
  495. package/dist/tools/openapi.d.cts +2 -2
  496. package/dist/tools/openapi.d.ts +2 -2
  497. package/dist/tools/openapi.js.map +1 -1
  498. package/dist/tools/python/output.cjs.map +1 -1
  499. package/dist/tools/python/output.d.cts +1 -1
  500. package/dist/tools/python/output.d.ts +1 -1
  501. package/dist/tools/python/output.js.map +1 -1
  502. package/dist/tools/python/python.cjs +5 -2
  503. package/dist/tools/python/python.cjs.map +1 -1
  504. package/dist/tools/python/python.d.cts +3 -3
  505. package/dist/tools/python/python.d.ts +3 -3
  506. package/dist/tools/python/python.js +5 -2
  507. package/dist/tools/python/python.js.map +1 -1
  508. package/dist/tools/python/storage.cjs.map +1 -1
  509. package/dist/tools/python/storage.js.map +1 -1
  510. package/dist/tools/search/base.cjs.map +1 -1
  511. package/dist/tools/search/base.d.cts +2 -2
  512. package/dist/tools/search/base.d.ts +2 -2
  513. package/dist/tools/search/base.js.map +1 -1
  514. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  515. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
  516. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
  517. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  518. package/dist/tools/search/googleSearch.cjs.map +1 -1
  519. package/dist/tools/search/googleSearch.d.cts +2 -2
  520. package/dist/tools/search/googleSearch.d.ts +2 -2
  521. package/dist/tools/search/googleSearch.js.map +1 -1
  522. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  523. package/dist/tools/search/searXNGSearch.d.cts +2 -2
  524. package/dist/tools/search/searXNGSearch.d.ts +2 -2
  525. package/dist/tools/search/searXNGSearch.js.map +1 -1
  526. package/dist/tools/search/wikipedia.cjs.map +1 -1
  527. package/dist/tools/search/wikipedia.d.cts +3 -3
  528. package/dist/tools/search/wikipedia.d.ts +3 -3
  529. package/dist/tools/search/wikipedia.js.map +1 -1
  530. package/dist/tools/similarity.cjs.map +1 -1
  531. package/dist/tools/similarity.d.cts +2 -2
  532. package/dist/tools/similarity.d.ts +2 -2
  533. package/dist/tools/similarity.js.map +1 -1
  534. package/dist/tools/think.cjs.map +1 -1
  535. package/dist/tools/think.d.cts +2 -2
  536. package/dist/tools/think.d.ts +2 -2
  537. package/dist/tools/think.js.map +1 -1
  538. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  539. package/dist/tools/weather/openMeteo.d.cts +2 -2
  540. package/dist/tools/weather/openMeteo.d.ts +2 -2
  541. package/dist/tools/weather/openMeteo.js.map +1 -1
  542. package/dist/tools/web/webCrawler.cjs.map +1 -1
  543. package/dist/tools/web/webCrawler.d.cts +2 -2
  544. package/dist/tools/web/webCrawler.d.ts +2 -2
  545. package/dist/tools/web/webCrawler.js.map +1 -1
  546. package/dist/{types-CkEtV8R9.d.cts → types-BNsa3W7Z.d.cts} +4 -4
  547. package/dist/{types-BQ-3LdkE.d.ts → types-DYtzF6ya.d.ts} +4 -4
  548. package/dist/version.cjs +1 -1
  549. package/dist/version.js +1 -1
  550. package/dist/workflows/agent.cjs.map +1 -1
  551. package/dist/workflows/agent.d.cts +40 -40
  552. package/dist/workflows/agent.d.ts +40 -40
  553. package/dist/workflows/agent.js.map +1 -1
  554. package/dist/workflows/workflow.cjs.map +1 -1
  555. package/dist/workflows/workflow.d.cts +1 -1
  556. package/dist/workflows/workflow.d.ts +1 -1
  557. package/dist/workflows/workflow.js.map +1 -1
  558. package/package.json +33 -10
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tsup/assets/cjs_shims.js","../../../src/tools/search/wikipedia.ts"],"names":["getImportMetaUrl","document","URL","__filename","href","currentScript","tagName","toUpperCase","src","baseURI","importMetaUrl","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","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","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","patchAxiosUserAgent","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","patched","doPatch","entry","defaults","headers","common","axios","createRequire","require","axiosCjs"],"mappings":"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","file":"wikipedia.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\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 type { pageResult } from \"wikipedia\";\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 await patchAxiosUserAgent();\n\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\nasync function patchAxiosUserAgent() {\n if (patchAxiosUserAgent.patched) {\n return;\n }\n patchAxiosUserAgent.patched = true;\n\n const doPatch = (entry: any) => {\n entry.defaults.headers.common[\"User-Agent\"] = \"BeeAI Framework\";\n };\n\n const { default: axios } = await import(\"axios\");\n doPatch(axios);\n\n try {\n const { createRequire } = await import(\"node:module\");\n const require = createRequire(import.meta.url);\n const { default: axiosCjs } = await require(\"axios\");\n if (axiosCjs !== axios) {\n doPatch(axiosCjs);\n }\n } catch {\n /* empty */\n }\n}\npatchAxiosUserAgent.patched = false;\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tsup/assets/cjs_shims.js","../../../src/tools/search/wikipedia.ts"],"names":["getImportMetaUrl","document","URL","__filename","href","currentScript","tagName","toUpperCase","src","baseURI","importMetaUrl","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","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","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","patchAxiosUserAgent","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","patched","doPatch","entry","defaults","headers","common","axios","createRequire","require","axiosCjs"],"mappings":"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","file":"wikipedia.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\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 type { pageResult } from \"wikipedia\";\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 await patchAxiosUserAgent();\n\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\nasync function patchAxiosUserAgent() {\n if (patchAxiosUserAgent.patched) {\n return;\n }\n patchAxiosUserAgent.patched = true;\n\n const doPatch = (entry: any) => {\n entry.defaults.headers.common[\"User-Agent\"] = \"BeeAI Framework\";\n };\n\n const { default: axios } = await import(\"axios\");\n doPatch(axios);\n\n try {\n const { createRequire } = await import(\"node:module\");\n const require = createRequire(import.meta.url);\n const { default: axiosCjs } = await require(\"axios\");\n if (axiosCjs !== axios) {\n doPatch(axiosCjs);\n }\n } catch {\n /* empty */\n }\n}\npatchAxiosUserAgent.patched = false;\n"]}
@@ -1,10 +1,10 @@
1
1
  import { BaseCache } from '../../cache/base.cjs';
2
2
  import * as promise_based_task from 'promise-based-task';
3
- import { searchOptions, pageFunctions, Page, pageResult } from 'wikipedia';
4
- import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOutput } from './base.cjs';
3
+ import { pageFunctions, searchOptions, Page, pageResult } from 'wikipedia';
4
+ import { SearchToolOutput, SearchToolResult, SearchToolOptions, SearchToolRunOptions } from './base.cjs';
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.cjs';
7
- import { E as Emitter } from '../../emitter-jN55XZZq.cjs';
7
+ import { E as Emitter } from '../../emitter-D4OcelZ9.cjs';
8
8
  import '../../internals/serializable.cjs';
9
9
  import '../../internals/types.cjs';
10
10
  import '../../internals/helpers/guards.cjs';
@@ -1,10 +1,10 @@
1
1
  import { BaseCache } from '../../cache/base.js';
2
2
  import * as promise_based_task from 'promise-based-task';
3
- import { searchOptions, pageFunctions, Page, pageResult } from 'wikipedia';
4
- import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOutput } from './base.js';
3
+ import { pageFunctions, searchOptions, Page, pageResult } from 'wikipedia';
4
+ import { SearchToolOutput, SearchToolResult, SearchToolOptions, SearchToolRunOptions } from './base.js';
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.js';
7
- import { E as Emitter } from '../../emitter-36-9MnvA.js';
7
+ import { E as Emitter } from '../../emitter-kHxkUxco.js';
8
8
  import '../../internals/serializable.js';
9
9
  import '../../internals/types.js';
10
10
  import '../../internals/helpers/guards.js';
@@ -1 +1 @@
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","patchAxiosUserAgent","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","patched","doPatch","entry","defaults","headers","common","axios","createRequire","require","axiosCjs"],"mappings":"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","file":"wikipedia.js","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 type { pageResult } from \"wikipedia\";\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 await patchAxiosUserAgent();\n\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\nasync function patchAxiosUserAgent() {\n if (patchAxiosUserAgent.patched) {\n return;\n }\n patchAxiosUserAgent.patched = true;\n\n const doPatch = (entry: any) => {\n entry.defaults.headers.common[\"User-Agent\"] = \"BeeAI Framework\";\n };\n\n const { default: axios } = await import(\"axios\");\n doPatch(axios);\n\n try {\n const { createRequire } = await import(\"node:module\");\n const require = createRequire(import.meta.url);\n const { default: axiosCjs } = await require(\"axios\");\n if (axiosCjs !== axios) {\n doPatch(axiosCjs);\n }\n } catch {\n /* empty */\n }\n}\npatchAxiosUserAgent.patched = false;\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","patchAxiosUserAgent","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","patched","doPatch","entry","defaults","headers","common","axios","createRequire","require","axiosCjs"],"mappings":"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","file":"wikipedia.js","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 type { pageResult } from \"wikipedia\";\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 await patchAxiosUserAgent();\n\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\nasync function patchAxiosUserAgent() {\n if (patchAxiosUserAgent.patched) {\n return;\n }\n patchAxiosUserAgent.patched = true;\n\n const doPatch = (entry: any) => {\n entry.defaults.headers.common[\"User-Agent\"] = \"BeeAI Framework\";\n };\n\n const { default: axios } = await import(\"axios\");\n doPatch(axios);\n\n try {\n const { createRequire } = await import(\"node:module\");\n const require = createRequire(import.meta.url);\n const { default: axiosCjs } = await require(\"axios\");\n if (axiosCjs !== axios) {\n doPatch(axiosCjs);\n }\n } catch {\n /* empty */\n }\n}\npatchAxiosUserAgent.patched = false;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tools/similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;;;AAkBA,MAAMA,cAAAA,GAAiBC,MAAEC,MAAAA,CAAO;AAAEC,EAAAA,IAAAA,EAAMC,UAAAA;AAAS,CAAA,EAAGC,WAAAA,EAAW;AAgCxD,MAAMC,6BAA6BC,uBAAAA,CAAAA;EAlD1C;;;AAkDkF;AAE3E,MAAMC,uBAAyCC,aAAAA,CAAAA;EApDtD;;;EAyDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,8CAAA;EAEEC,OAAAA,GAA8DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC/FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOjB,MAAEC,MAAAA,CAAO;AAAEiB,MAAAA,KAAAA,EAAOlB,MAAEG,MAAAA,EAAM;MAAIgB,SAAAA,EAAWnB,KAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAAA,EAAS,EAClBI,SACAC,GAAAA,EACA;AACA,IAAA,OAAOC,WAAAA,CACL,MAAM,IAAA,CAAKF,OAAAA,CAAQG,QAAAA,CACjB;AACER,MAAAA,KAAAA;AACAC,MAAAA;KACF,EACAI,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,WAAI,CAAC,EAAEC,KAAAA,EAAK,EAAIC,GAAAA,MAAS;MACvBC,aAAAA,EAAeD,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,aAAAA,CAAO,CAAC,EAAEH,KAAAA,EAAK,KAAOA,KAAAA,KAAUL,OAAAA,CAAQS,QAAAA,IAAY,CAAA,QAAA,CAAQ,CAAA,EAC5DC,aAAAA,CAAO;AAACC,MAAAA,WAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,YAAKZ,OAAAA,EAASa,UAAAA,IAAc,KAAKb,OAAAA,CAAQa,UAAAA,IAAcC,QAAAA,CAAAA,EACvD,CAACC,IAAAA,KACC,IAAIjC,qBACFiC,IAAAA,CAAKX,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAK,MAAQ;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAAA,EAAOV,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR;AACF","file":"similarity.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"./base.js\";\nimport { string, z } from \"zod\";\nimport { RunContext } from \"@/context.js\";\nimport { filter, map, pipe, prop, sortBy, take } from \"remeda\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst documentSchema = z.object({ text: string() }).passthrough();\n\ntype Document = z.infer<typeof documentSchema>;\n\ninterface ProviderInput {\n query: string;\n documents: Document[];\n}\n\ntype Provider<TProviderOptions> = (\n input: ProviderInput,\n options: TProviderOptions | undefined,\n run: RunContext<SimilarityTool<TProviderOptions>>,\n) => Promise<{ score: number }[]>;\n\nexport interface SimilarityToolOptions<TProviderOptions = unknown> extends BaseToolOptions {\n provider: Provider<TProviderOptions>;\n maxResults?: number;\n}\n\nexport interface SimilarityToolRunOptions<TProviderOptions = unknown> extends BaseToolRunOptions {\n provider?: TProviderOptions;\n maxResults?: number;\n minScore?: number;\n}\n\nexport interface SimilarityToolResult {\n document: Document;\n index: number;\n score: number;\n}\n\nexport class SimilarityToolOutput extends JSONToolOutput<SimilarityToolResult[]> {}\n\nexport class SimilarityTool<TProviderOptions> extends Tool<\n SimilarityToolOutput,\n SimilarityToolOptions<TProviderOptions>,\n SimilarityToolRunOptions<TProviderOptions>\n> {\n name = \"Similarity\";\n description = \"Extract relevant information from documents.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SimilarityToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"similarity\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({ query: z.string(), documents: z.array(documentSchema) });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query, documents }: ToolInput<this>,\n options: Partial<SimilarityToolRunOptions<TProviderOptions>>,\n run: RunContext<this>,\n ) {\n return pipe(\n await this.options.provider(\n {\n query,\n documents,\n },\n options?.provider,\n run,\n ),\n map(({ score }, idx) => ({\n documentIndex: idx,\n score,\n })),\n filter(({ score }) => score >= (options.minScore ?? -Infinity)),\n sortBy([prop(\"score\"), \"desc\"]),\n take(options?.maxResults ?? this.options.maxResults ?? Infinity),\n (data) =>\n new SimilarityToolOutput(\n data.map(({ documentIndex, score }) => ({\n document: documents[documentIndex],\n index: documentIndex,\n score,\n })),\n ),\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/tools/similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;;;AAkBA,MAAMA,cAAAA,GAAiBC,MAAEC,MAAAA,CAAO;AAAEC,EAAAA,IAAAA,EAAMC,UAAAA;AAAS,CAAA,EAAGC,WAAAA,EAAW;AAgCxD,MAAMC,6BAA6BC,uBAAAA,CAAAA;EAlD1C;;;AAkDkF;AAE3E,MAAMC,uBAAyCC,aAAAA,CAAAA;EApDtD;;;EAyDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,8CAAA;EAEEC,OAAAA,GAA8DC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC/FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOjB,MAAEC,MAAAA,CAAO;AAAEiB,MAAAA,KAAAA,EAAOlB,MAAEG,MAAAA,EAAM;MAAIgB,SAAAA,EAAWnB,KAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E,EAAA;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAAA,EAAS,EAClBI,SACAC,GAAAA,EACA;AACA,IAAA,OAAOC,WAAAA,CACL,MAAM,IAAA,CAAKF,OAAAA,CAAQG,QAAAA,CACjB;AACER,MAAAA,KAAAA;AACAC,MAAAA;KACF,EACAI,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,WAAI,CAAC,EAAEC,KAAAA,EAAK,EAAIC,GAAAA,MAAS;MACvBC,aAAAA,EAAeD,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,aAAAA,CAAO,CAAC,EAAEH,KAAAA,EAAK,KAAOA,KAAAA,KAAUL,OAAAA,CAAQS,QAAAA,IAAY,CAAA,QAAA,CAAQ,CAAA,EAC5DC,aAAAA,CAAO;AAACC,MAAAA,WAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,YAAKZ,OAAAA,EAASa,UAAAA,IAAc,KAAKb,OAAAA,CAAQa,UAAAA,IAAcC,QAAAA,CAAAA,EACvD,CAACC,IAAAA,KACC,IAAIjC,qBACFiC,IAAAA,CAAKX,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAK,MAAQ;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAAA,EAAOV,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR,EAAA;AACF","file":"similarity.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"./base.js\";\nimport { string, z } from \"zod\";\nimport { RunContext } from \"@/context.js\";\nimport { filter, map, pipe, prop, sortBy, take } from \"remeda\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst documentSchema = z.object({ text: string() }).passthrough();\n\ntype Document = z.infer<typeof documentSchema>;\n\ninterface ProviderInput {\n query: string;\n documents: Document[];\n}\n\ntype Provider<TProviderOptions> = (\n input: ProviderInput,\n options: TProviderOptions | undefined,\n run: RunContext<SimilarityTool<TProviderOptions>>,\n) => Promise<{ score: number }[]>;\n\nexport interface SimilarityToolOptions<TProviderOptions = unknown> extends BaseToolOptions {\n provider: Provider<TProviderOptions>;\n maxResults?: number;\n}\n\nexport interface SimilarityToolRunOptions<TProviderOptions = unknown> extends BaseToolRunOptions {\n provider?: TProviderOptions;\n maxResults?: number;\n minScore?: number;\n}\n\nexport interface SimilarityToolResult {\n document: Document;\n index: number;\n score: number;\n}\n\nexport class SimilarityToolOutput extends JSONToolOutput<SimilarityToolResult[]> {}\n\nexport class SimilarityTool<TProviderOptions> extends Tool<\n SimilarityToolOutput,\n SimilarityToolOptions<TProviderOptions>,\n SimilarityToolRunOptions<TProviderOptions>\n> {\n name = \"Similarity\";\n description = \"Extract relevant information from documents.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SimilarityToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"similarity\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({ query: z.string(), documents: z.array(documentSchema) });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query, documents }: ToolInput<this>,\n options: Partial<SimilarityToolRunOptions<TProviderOptions>>,\n run: RunContext<this>,\n ) {\n return pipe(\n await this.options.provider(\n {\n query,\n documents,\n },\n options?.provider,\n run,\n ),\n map(({ score }, idx) => ({\n documentIndex: idx,\n score,\n })),\n filter(({ score }) => score >= (options.minScore ?? -Infinity)),\n sortBy([prop(\"score\"), \"desc\"]),\n take(options?.maxResults ?? this.options.maxResults ?? Infinity),\n (data) =>\n new SimilarityToolOutput(\n data.map(({ documentIndex, score }) => ({\n document: documents[documentIndex],\n index: documentIndex,\n score,\n })),\n ),\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseToolOptions, Tool, JSONToolOutput, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.cjs';
1
+ import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.cjs';
2
2
  import { z } from 'zod';
3
3
  import { RunContext } from '../context.cjs';
4
4
  import 'ajv';
@@ -10,7 +10,7 @@ import 'promise-based-task';
10
10
  import '../cache/base.cjs';
11
11
  import '../internals/helpers/schema.cjs';
12
12
  import 'zod-to-json-schema';
13
- import '../emitter-jN55XZZq.cjs';
13
+ import '../emitter-D4OcelZ9.cjs';
14
14
  import '../internals/helpers/promise.cjs';
15
15
 
16
16
  /**
@@ -1,4 +1,4 @@
1
- import { BaseToolOptions, Tool, JSONToolOutput, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.js';
1
+ import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.js';
2
2
  import { z } from 'zod';
3
3
  import { RunContext } from '../context.js';
4
4
  import 'ajv';
@@ -10,7 +10,7 @@ import 'promise-based-task';
10
10
  import '../cache/base.js';
11
11
  import '../internals/helpers/schema.js';
12
12
  import 'zod-to-json-schema';
13
- import '../emitter-36-9MnvA.js';
13
+ import '../emitter-kHxkUxco.js';
14
14
  import '../internals/helpers/promise.js';
15
15
 
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tools/similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;AAkBA,MAAMA,cAAAA,GAAiBC,EAAEC,MAAAA,CAAO;AAAEC,EAAAA,IAAAA,EAAMC,MAAAA;AAAS,CAAA,EAAGC,WAAAA,EAAW;AAgCxD,MAAMC,6BAA6BC,cAAAA,CAAAA;EAlD1C;;;AAkDkF;AAE3E,MAAMC,uBAAyCC,IAAAA,CAAAA;EApDtD;;;EAyDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,8CAAA;EAEEC,OAAAA,GAA8DC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC/FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOjB,EAAEC,MAAAA,CAAO;AAAEiB,MAAAA,KAAAA,EAAOlB,EAAEG,MAAAA,EAAM;MAAIgB,SAAAA,EAAWnB,CAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAAA,EAAS,EAClBI,SACAC,GAAAA,EACA;AACA,IAAA,OAAOC,IAAAA,CACL,MAAM,IAAA,CAAKF,OAAAA,CAAQG,QAAAA,CACjB;AACER,MAAAA,KAAAA;AACAC,MAAAA;KACF,EACAI,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,IAAI,CAAC,EAAEC,KAAAA,EAAK,EAAIC,GAAAA,MAAS;MACvBC,aAAAA,EAAeD,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,MAAAA,CAAO,CAAC,EAAEH,KAAAA,EAAK,KAAOA,KAAAA,KAAUL,OAAAA,CAAQS,QAAAA,IAAY,CAAA,QAAA,CAAQ,CAAA,EAC5DC,MAAAA,CAAO;AAACC,MAAAA,IAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,KAAKZ,OAAAA,EAASa,UAAAA,IAAc,KAAKb,OAAAA,CAAQa,UAAAA,IAAcC,QAAAA,CAAAA,EACvD,CAACC,IAAAA,KACC,IAAIjC,qBACFiC,IAAAA,CAAKX,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAK,MAAQ;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAAA,EAAOV,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR;AACF","file":"similarity.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"./base.js\";\nimport { string, z } from \"zod\";\nimport { RunContext } from \"@/context.js\";\nimport { filter, map, pipe, prop, sortBy, take } from \"remeda\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst documentSchema = z.object({ text: string() }).passthrough();\n\ntype Document = z.infer<typeof documentSchema>;\n\ninterface ProviderInput {\n query: string;\n documents: Document[];\n}\n\ntype Provider<TProviderOptions> = (\n input: ProviderInput,\n options: TProviderOptions | undefined,\n run: RunContext<SimilarityTool<TProviderOptions>>,\n) => Promise<{ score: number }[]>;\n\nexport interface SimilarityToolOptions<TProviderOptions = unknown> extends BaseToolOptions {\n provider: Provider<TProviderOptions>;\n maxResults?: number;\n}\n\nexport interface SimilarityToolRunOptions<TProviderOptions = unknown> extends BaseToolRunOptions {\n provider?: TProviderOptions;\n maxResults?: number;\n minScore?: number;\n}\n\nexport interface SimilarityToolResult {\n document: Document;\n index: number;\n score: number;\n}\n\nexport class SimilarityToolOutput extends JSONToolOutput<SimilarityToolResult[]> {}\n\nexport class SimilarityTool<TProviderOptions> extends Tool<\n SimilarityToolOutput,\n SimilarityToolOptions<TProviderOptions>,\n SimilarityToolRunOptions<TProviderOptions>\n> {\n name = \"Similarity\";\n description = \"Extract relevant information from documents.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SimilarityToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"similarity\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({ query: z.string(), documents: z.array(documentSchema) });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query, documents }: ToolInput<this>,\n options: Partial<SimilarityToolRunOptions<TProviderOptions>>,\n run: RunContext<this>,\n ) {\n return pipe(\n await this.options.provider(\n {\n query,\n documents,\n },\n options?.provider,\n run,\n ),\n map(({ score }, idx) => ({\n documentIndex: idx,\n score,\n })),\n filter(({ score }) => score >= (options.minScore ?? -Infinity)),\n sortBy([prop(\"score\"), \"desc\"]),\n take(options?.maxResults ?? this.options.maxResults ?? Infinity),\n (data) =>\n new SimilarityToolOutput(\n data.map(({ documentIndex, score }) => ({\n document: documents[documentIndex],\n index: documentIndex,\n score,\n })),\n ),\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/tools/similarity.ts"],"names":["documentSchema","z","object","text","string","passthrough","SimilarityToolOutput","JSONToolOutput","SimilarityTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","query","documents","array","register","_run","options","run","pipe","provider","map","score","idx","documentIndex","filter","minScore","sortBy","prop","take","maxResults","Infinity","data","document","index"],"mappings":";;;;;;;AAkBA,MAAMA,cAAAA,GAAiBC,EAAEC,MAAAA,CAAO;AAAEC,EAAAA,IAAAA,EAAMC,MAAAA;AAAS,CAAA,EAAGC,WAAAA,EAAW;AAgCxD,MAAMC,6BAA6BC,cAAAA,CAAAA;EAlD1C;;;AAkDkF;AAE3E,MAAMC,uBAAyCC,IAAAA,CAAAA;EApDtD;;;EAyDEC,IAAAA,GAAO,YAAA;EACPC,WAAAA,GAAc,8CAAA;EAEEC,OAAAA,GAA8DC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC/FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA;;IACpBC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOjB,EAAEC,MAAAA,CAAO;AAAEiB,MAAAA,KAAAA,EAAOlB,EAAEG,MAAAA,EAAM;MAAIgB,SAAAA,EAAWnB,CAAAA,CAAEoB,MAAMrB,cAAAA;KAAgB,CAAA;AAC1E,EAAA;EAEA;AACE,IAAA,IAAA,CAAKsB,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,KACd,EAAEJ,KAAAA,EAAOC,SAAAA,EAAS,EAClBI,SACAC,GAAAA,EACA;AACA,IAAA,OAAOC,IAAAA,CACL,MAAM,IAAA,CAAKF,OAAAA,CAAQG,QAAAA,CACjB;AACER,MAAAA,KAAAA;AACAC,MAAAA;KACF,EACAI,OAAAA,EAASG,UACTF,GAAAA,CAAAA,EAEFG,IAAI,CAAC,EAAEC,KAAAA,EAAK,EAAIC,GAAAA,MAAS;MACvBC,aAAAA,EAAeD,GAAAA;AACfD,MAAAA;KACF,CAAA,CAAA,EACAG,MAAAA,CAAO,CAAC,EAAEH,KAAAA,EAAK,KAAOA,KAAAA,KAAUL,OAAAA,CAAQS,QAAAA,IAAY,CAAA,QAAA,CAAQ,CAAA,EAC5DC,MAAAA,CAAO;AAACC,MAAAA,IAAAA,CAAK,OAAA,CAAA;AAAU,MAAA;AAAO,KAAA,CAAA,EAC9BC,KAAKZ,OAAAA,EAASa,UAAAA,IAAc,KAAKb,OAAAA,CAAQa,UAAAA,IAAcC,QAAAA,CAAAA,EACvD,CAACC,IAAAA,KACC,IAAIjC,qBACFiC,IAAAA,CAAKX,GAAAA,CAAI,CAAC,EAAEG,aAAAA,EAAeF,OAAK,MAAQ;AACtCW,MAAAA,QAAAA,EAAUpB,UAAUW,aAAAA,CAAAA;MACpBU,KAAAA,EAAOV,aAAAA;AACPF,MAAAA;AACF,KAAA,CAAA,CAAA,CAAA,CAAA;AAGR,EAAA;AACF","file":"similarity.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolInput,\n} from \"./base.js\";\nimport { string, z } from \"zod\";\nimport { RunContext } from \"@/context.js\";\nimport { filter, map, pipe, prop, sortBy, take } from \"remeda\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst documentSchema = z.object({ text: string() }).passthrough();\n\ntype Document = z.infer<typeof documentSchema>;\n\ninterface ProviderInput {\n query: string;\n documents: Document[];\n}\n\ntype Provider<TProviderOptions> = (\n input: ProviderInput,\n options: TProviderOptions | undefined,\n run: RunContext<SimilarityTool<TProviderOptions>>,\n) => Promise<{ score: number }[]>;\n\nexport interface SimilarityToolOptions<TProviderOptions = unknown> extends BaseToolOptions {\n provider: Provider<TProviderOptions>;\n maxResults?: number;\n}\n\nexport interface SimilarityToolRunOptions<TProviderOptions = unknown> extends BaseToolRunOptions {\n provider?: TProviderOptions;\n maxResults?: number;\n minScore?: number;\n}\n\nexport interface SimilarityToolResult {\n document: Document;\n index: number;\n score: number;\n}\n\nexport class SimilarityToolOutput extends JSONToolOutput<SimilarityToolResult[]> {}\n\nexport class SimilarityTool<TProviderOptions> extends Tool<\n SimilarityToolOutput,\n SimilarityToolOptions<TProviderOptions>,\n SimilarityToolRunOptions<TProviderOptions>\n> {\n name = \"Similarity\";\n description = \"Extract relevant information from documents.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SimilarityToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"similarity\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({ query: z.string(), documents: z.array(documentSchema) });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query, documents }: ToolInput<this>,\n options: Partial<SimilarityToolRunOptions<TProviderOptions>>,\n run: RunContext<this>,\n ) {\n return pipe(\n await this.options.provider(\n {\n query,\n documents,\n },\n options?.provider,\n run,\n ),\n map(({ score }, idx) => ({\n documentIndex: idx,\n score,\n })),\n filter(({ score }) => score >= (options.minScore ?? -Infinity)),\n sortBy([prop(\"score\"), \"desc\"]),\n take(options?.maxResults ?? this.options.maxResults ?? Infinity),\n (data) =>\n new SimilarityToolOutput(\n data.map(({ documentIndex, score }) => ({\n document: documents[documentIndex],\n index: documentIndex,\n score,\n })),\n ),\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tools/think.ts"],"names":["ThinkSchema","z","object","thoughts","string","describe","ThinkTool","Tool","name","description","emitter","_inputSchema","_toolOutput","_extraInstructions","options","schema","toolOutput","extraInstructions","createEmitter","inputSchema","_run","input","_options","_context","output","StringToolOutput","Emitter","root","child","namespace","creator"],"mappings":";;;;;;;;AAUA,MAAMA,WAAAA,GAAcC,MAAEC,MAAAA,CAAO;AAC3BC,EAAAA,QAAAA,EAAUF,KAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAAS,iDAAA;AAChC,CAAA,CAAA;AAUO,MAAMC,kBAAkBC,aAAAA,CAAAA;EAtB/B;;;EAuBSC,IAAAA,GAAO,OAAA;EACPC,WAAAA,GACL,kIAAA;AAEcC,EAAAA,OAAAA;AAENC,EAAAA,YAAAA;AACAC,EAAAA,WAAAA;AACAC,EAAAA,kBAAAA;EAEV,WAAA,CAAYC,OAAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,IAAA,CAAKH,YAAAA,GAAeG,QAAQC,MAAAA,IAAUf,WAAAA;AACtC,IAAA,IAAA,CAAKY,WAAAA,GAAcE,QAAQE,UAAAA,IAAc,IAAA;AACzC,IAAA,IAAA,CAAKH,kBAAAA,GAAqBC,QAAQG,iBAAAA,IAAqB,EAAA;AAEvD,IAAA,IAAI,KAAKJ,kBAAAA,EAAoB;AAC3B,MAAA,IAAA,CAAKJ,WAAAA,IAAe,CAAA,CAAA,EAAI,IAAA,CAAKI,kBAAkB,CAAA,CAAA;AACjD;AAEA,IAAA,IAAA,CAAKH,OAAAA,GAAU,KAAKQ,aAAAA,EAAa;AACnC;EAEAC,WAAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAKR,YAAAA;AACd;EAEA,MAAMS,IAAAA,CACJC,KAAAA,EACAC,QAAAA,EACAC,QAAAA,EAC2B;AAC3B,IAAA,MAAMC,MAAAA,GACJ,OAAO,IAAA,CAAKZ,WAAAA,KAAgB,aAAa,IAAA,CAAKA,WAAAA,CAAYS,KAAAA,CAAAA,GAAS,IAAA,CAAKT,WAAAA;AAC1E,IAAA,OAAO,IAAIa,0BAAiBD,MAAAA,CAAAA;AAC9B;EAEUN,aAAAA,GAA8B;AACtC,IAAA,OAAOQ,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,MAAA;AAAQ,QAAA;;MACpBC,OAAAA,EAAS;KACX,CAAA;AACF;AACF","file":"think.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { z, ZodSchema } from \"zod\";\nimport { Tool, StringToolOutput, BaseToolRunOptions, BaseToolOptions } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst ThinkSchema = z.object({\n thoughts: z.string().describe(\"Precisely describe what you are thinking about.\"),\n});\n\ntype ThinkInput = z.infer<typeof ThinkSchema>;\n\nexport interface ThinkToolOptions extends BaseToolOptions<StringToolOutput> {\n extraInstructions?: string;\n toolOutput?: string | ((input: ThinkInput) => string);\n schema?: ZodSchema;\n}\n\nexport class ThinkTool extends Tool<StringToolOutput, ThinkToolOptions> {\n public name = \"think\";\n public description =\n \"Use when you want to think through a problem, clarify your assumptions, or break down complex steps before acting or responding.\";\n\n public readonly emitter: Emitter<any>;\n\n protected _inputSchema: ZodSchema;\n protected _toolOutput: string | ((input: ThinkInput) => string);\n protected _extraInstructions: string;\n\n constructor(options: ThinkToolOptions = {}) {\n super(options);\n this._inputSchema = options.schema ?? ThinkSchema;\n this._toolOutput = options.toolOutput ?? \"OK\";\n this._extraInstructions = options.extraInstructions ?? \"\";\n\n if (this._extraInstructions) {\n this.description += ` ${this._extraInstructions}`;\n }\n\n this.emitter = this.createEmitter();\n }\n\n inputSchema(): ZodSchema {\n return this._inputSchema;\n }\n\n async _run(\n input: ThinkInput,\n _options: BaseToolRunOptions,\n _context: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n const output =\n typeof this._toolOutput === \"function\" ? this._toolOutput(input) : this._toolOutput;\n return new StringToolOutput(output);\n }\n\n protected createEmitter(): Emitter<any> {\n return Emitter.root.child({\n namespace: [\"tool\", \"think\"],\n creator: this,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/tools/think.ts"],"names":["ThinkSchema","z","object","thoughts","string","describe","ThinkTool","Tool","name","description","emitter","_inputSchema","_toolOutput","_extraInstructions","options","schema","toolOutput","extraInstructions","createEmitter","inputSchema","_run","input","_options","_context","output","StringToolOutput","Emitter","root","child","namespace","creator"],"mappings":";;;;;;;;AAUA,MAAMA,WAAAA,GAAcC,MAAEC,MAAAA,CAAO;AAC3BC,EAAAA,QAAAA,EAAUF,KAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAAS,iDAAA;AAChC,CAAA,CAAA;AAUO,MAAMC,kBAAkBC,aAAAA,CAAAA;EAtB/B;;;EAuBSC,IAAAA,GAAO,OAAA;EACPC,WAAAA,GACL,kIAAA;AAEcC,EAAAA,OAAAA;AAENC,EAAAA,YAAAA;AACAC,EAAAA,WAAAA;AACAC,EAAAA,kBAAAA;EAEV,WAAA,CAAYC,OAAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,IAAA,CAAKH,YAAAA,GAAeG,QAAQC,MAAAA,IAAUf,WAAAA;AACtC,IAAA,IAAA,CAAKY,WAAAA,GAAcE,QAAQE,UAAAA,IAAc,IAAA;AACzC,IAAA,IAAA,CAAKH,kBAAAA,GAAqBC,QAAQG,iBAAAA,IAAqB,EAAA;AAEvD,IAAA,IAAI,KAAKJ,kBAAAA,EAAoB;AAC3B,MAAA,IAAA,CAAKJ,WAAAA,IAAe,CAAA,CAAA,EAAI,IAAA,CAAKI,kBAAkB,CAAA,CAAA;AACjD,IAAA;AAEA,IAAA,IAAA,CAAKH,OAAAA,GAAU,KAAKQ,aAAAA,EAAa;AACnC,EAAA;EAEAC,WAAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAKR,YAAAA;AACd,EAAA;EAEA,MAAMS,IAAAA,CACJC,KAAAA,EACAC,QAAAA,EACAC,QAAAA,EAC2B;AAC3B,IAAA,MAAMC,MAAAA,GACJ,OAAO,IAAA,CAAKZ,WAAAA,KAAgB,aAAa,IAAA,CAAKA,WAAAA,CAAYS,KAAAA,CAAAA,GAAS,IAAA,CAAKT,WAAAA;AAC1E,IAAA,OAAO,IAAIa,0BAAiBD,MAAAA,CAAAA;AAC9B,EAAA;EAEUN,aAAAA,GAA8B;AACtC,IAAA,OAAOQ,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,MAAA;AAAQ,QAAA;;MACpBC,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AACF","file":"think.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { z, ZodSchema } from \"zod\";\nimport { Tool, StringToolOutput, BaseToolRunOptions, BaseToolOptions } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst ThinkSchema = z.object({\n thoughts: z.string().describe(\"Precisely describe what you are thinking about.\"),\n});\n\ntype ThinkInput = z.infer<typeof ThinkSchema>;\n\nexport interface ThinkToolOptions extends BaseToolOptions<StringToolOutput> {\n extraInstructions?: string;\n toolOutput?: string | ((input: ThinkInput) => string);\n schema?: ZodSchema;\n}\n\nexport class ThinkTool extends Tool<StringToolOutput, ThinkToolOptions> {\n public name = \"think\";\n public description =\n \"Use when you want to think through a problem, clarify your assumptions, or break down complex steps before acting or responding.\";\n\n public readonly emitter: Emitter<any>;\n\n protected _inputSchema: ZodSchema;\n protected _toolOutput: string | ((input: ThinkInput) => string);\n protected _extraInstructions: string;\n\n constructor(options: ThinkToolOptions = {}) {\n super(options);\n this._inputSchema = options.schema ?? ThinkSchema;\n this._toolOutput = options.toolOutput ?? \"OK\";\n this._extraInstructions = options.extraInstructions ?? \"\";\n\n if (this._extraInstructions) {\n this.description += ` ${this._extraInstructions}`;\n }\n\n this.emitter = this.createEmitter();\n }\n\n inputSchema(): ZodSchema {\n return this._inputSchema;\n }\n\n async _run(\n input: ThinkInput,\n _options: BaseToolRunOptions,\n _context: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n const output =\n typeof this._toolOutput === \"function\" ? this._toolOutput(input) : this._toolOutput;\n return new StringToolOutput(output);\n }\n\n protected createEmitter(): Emitter<any> {\n return Emitter.root.child({\n namespace: [\"tool\", \"think\"],\n creator: this,\n });\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { z, ZodSchema } from 'zod';
2
- import { BaseToolOptions, StringToolOutput, Tool, BaseToolRunOptions } from './base.cjs';
2
+ import { Tool, StringToolOutput, BaseToolOptions, BaseToolRunOptions } from './base.cjs';
3
3
  import { RunContext } from '../context.cjs';
4
- import { E as Emitter } from '../emitter-jN55XZZq.cjs';
4
+ import { E as Emitter } from '../emitter-D4OcelZ9.cjs';
5
5
  import 'ajv';
6
6
  import '../errors.cjs';
7
7
  import '../internals/types.cjs';
@@ -1,7 +1,7 @@
1
1
  import { z, ZodSchema } from 'zod';
2
- import { BaseToolOptions, StringToolOutput, Tool, BaseToolRunOptions } from './base.js';
2
+ import { Tool, StringToolOutput, BaseToolOptions, BaseToolRunOptions } from './base.js';
3
3
  import { RunContext } from '../context.js';
4
- import { E as Emitter } from '../emitter-36-9MnvA.js';
4
+ import { E as Emitter } from '../emitter-kHxkUxco.js';
5
5
  import 'ajv';
6
6
  import '../errors.js';
7
7
  import '../internals/types.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tools/think.ts"],"names":["ThinkSchema","z","object","thoughts","string","describe","ThinkTool","Tool","name","description","emitter","_inputSchema","_toolOutput","_extraInstructions","options","schema","toolOutput","extraInstructions","createEmitter","inputSchema","_run","input","_options","_context","output","StringToolOutput","Emitter","root","child","namespace","creator"],"mappings":";;;;;;AAUA,MAAMA,WAAAA,GAAcC,EAAEC,MAAAA,CAAO;AAC3BC,EAAAA,QAAAA,EAAUF,CAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAAS,iDAAA;AAChC,CAAA,CAAA;AAUO,MAAMC,kBAAkBC,IAAAA,CAAAA;EAtB/B;;;EAuBSC,IAAAA,GAAO,OAAA;EACPC,WAAAA,GACL,kIAAA;AAEcC,EAAAA,OAAAA;AAENC,EAAAA,YAAAA;AACAC,EAAAA,WAAAA;AACAC,EAAAA,kBAAAA;EAEV,WAAA,CAAYC,OAAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,IAAA,CAAKH,YAAAA,GAAeG,QAAQC,MAAAA,IAAUf,WAAAA;AACtC,IAAA,IAAA,CAAKY,WAAAA,GAAcE,QAAQE,UAAAA,IAAc,IAAA;AACzC,IAAA,IAAA,CAAKH,kBAAAA,GAAqBC,QAAQG,iBAAAA,IAAqB,EAAA;AAEvD,IAAA,IAAI,KAAKJ,kBAAAA,EAAoB;AAC3B,MAAA,IAAA,CAAKJ,WAAAA,IAAe,CAAA,CAAA,EAAI,IAAA,CAAKI,kBAAkB,CAAA,CAAA;AACjD;AAEA,IAAA,IAAA,CAAKH,OAAAA,GAAU,KAAKQ,aAAAA,EAAa;AACnC;EAEAC,WAAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAKR,YAAAA;AACd;EAEA,MAAMS,IAAAA,CACJC,KAAAA,EACAC,QAAAA,EACAC,QAAAA,EAC2B;AAC3B,IAAA,MAAMC,MAAAA,GACJ,OAAO,IAAA,CAAKZ,WAAAA,KAAgB,aAAa,IAAA,CAAKA,WAAAA,CAAYS,KAAAA,CAAAA,GAAS,IAAA,CAAKT,WAAAA;AAC1E,IAAA,OAAO,IAAIa,iBAAiBD,MAAAA,CAAAA;AAC9B;EAEUN,aAAAA,GAA8B;AACtC,IAAA,OAAOQ,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,MAAA;AAAQ,QAAA;;MACpBC,OAAAA,EAAS;KACX,CAAA;AACF;AACF","file":"think.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { z, ZodSchema } from \"zod\";\nimport { Tool, StringToolOutput, BaseToolRunOptions, BaseToolOptions } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst ThinkSchema = z.object({\n thoughts: z.string().describe(\"Precisely describe what you are thinking about.\"),\n});\n\ntype ThinkInput = z.infer<typeof ThinkSchema>;\n\nexport interface ThinkToolOptions extends BaseToolOptions<StringToolOutput> {\n extraInstructions?: string;\n toolOutput?: string | ((input: ThinkInput) => string);\n schema?: ZodSchema;\n}\n\nexport class ThinkTool extends Tool<StringToolOutput, ThinkToolOptions> {\n public name = \"think\";\n public description =\n \"Use when you want to think through a problem, clarify your assumptions, or break down complex steps before acting or responding.\";\n\n public readonly emitter: Emitter<any>;\n\n protected _inputSchema: ZodSchema;\n protected _toolOutput: string | ((input: ThinkInput) => string);\n protected _extraInstructions: string;\n\n constructor(options: ThinkToolOptions = {}) {\n super(options);\n this._inputSchema = options.schema ?? ThinkSchema;\n this._toolOutput = options.toolOutput ?? \"OK\";\n this._extraInstructions = options.extraInstructions ?? \"\";\n\n if (this._extraInstructions) {\n this.description += ` ${this._extraInstructions}`;\n }\n\n this.emitter = this.createEmitter();\n }\n\n inputSchema(): ZodSchema {\n return this._inputSchema;\n }\n\n async _run(\n input: ThinkInput,\n _options: BaseToolRunOptions,\n _context: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n const output =\n typeof this._toolOutput === \"function\" ? this._toolOutput(input) : this._toolOutput;\n return new StringToolOutput(output);\n }\n\n protected createEmitter(): Emitter<any> {\n return Emitter.root.child({\n namespace: [\"tool\", \"think\"],\n creator: this,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/tools/think.ts"],"names":["ThinkSchema","z","object","thoughts","string","describe","ThinkTool","Tool","name","description","emitter","_inputSchema","_toolOutput","_extraInstructions","options","schema","toolOutput","extraInstructions","createEmitter","inputSchema","_run","input","_options","_context","output","StringToolOutput","Emitter","root","child","namespace","creator"],"mappings":";;;;;;AAUA,MAAMA,WAAAA,GAAcC,EAAEC,MAAAA,CAAO;AAC3BC,EAAAA,QAAAA,EAAUF,CAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAAS,iDAAA;AAChC,CAAA,CAAA;AAUO,MAAMC,kBAAkBC,IAAAA,CAAAA;EAtB/B;;;EAuBSC,IAAAA,GAAO,OAAA;EACPC,WAAAA,GACL,kIAAA;AAEcC,EAAAA,OAAAA;AAENC,EAAAA,YAAAA;AACAC,EAAAA,WAAAA;AACAC,EAAAA,kBAAAA;EAEV,WAAA,CAAYC,OAAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,KAAA,CAAMA,OAAAA,CAAAA;AACN,IAAA,IAAA,CAAKH,YAAAA,GAAeG,QAAQC,MAAAA,IAAUf,WAAAA;AACtC,IAAA,IAAA,CAAKY,WAAAA,GAAcE,QAAQE,UAAAA,IAAc,IAAA;AACzC,IAAA,IAAA,CAAKH,kBAAAA,GAAqBC,QAAQG,iBAAAA,IAAqB,EAAA;AAEvD,IAAA,IAAI,KAAKJ,kBAAAA,EAAoB;AAC3B,MAAA,IAAA,CAAKJ,WAAAA,IAAe,CAAA,CAAA,EAAI,IAAA,CAAKI,kBAAkB,CAAA,CAAA;AACjD,IAAA;AAEA,IAAA,IAAA,CAAKH,OAAAA,GAAU,KAAKQ,aAAAA,EAAa;AACnC,EAAA;EAEAC,WAAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAKR,YAAAA;AACd,EAAA;EAEA,MAAMS,IAAAA,CACJC,KAAAA,EACAC,QAAAA,EACAC,QAAAA,EAC2B;AAC3B,IAAA,MAAMC,MAAAA,GACJ,OAAO,IAAA,CAAKZ,WAAAA,KAAgB,aAAa,IAAA,CAAKA,WAAAA,CAAYS,KAAAA,CAAAA,GAAS,IAAA,CAAKT,WAAAA;AAC1E,IAAA,OAAO,IAAIa,iBAAiBD,MAAAA,CAAAA;AAC9B,EAAA;EAEUN,aAAAA,GAA8B;AACtC,IAAA,OAAOQ,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,MAAA;AAAQ,QAAA;;MACpBC,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AACF","file":"think.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { z, ZodSchema } from \"zod\";\nimport { Tool, StringToolOutput, BaseToolRunOptions, BaseToolOptions } from \"@/tools/base.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nconst ThinkSchema = z.object({\n thoughts: z.string().describe(\"Precisely describe what you are thinking about.\"),\n});\n\ntype ThinkInput = z.infer<typeof ThinkSchema>;\n\nexport interface ThinkToolOptions extends BaseToolOptions<StringToolOutput> {\n extraInstructions?: string;\n toolOutput?: string | ((input: ThinkInput) => string);\n schema?: ZodSchema;\n}\n\nexport class ThinkTool extends Tool<StringToolOutput, ThinkToolOptions> {\n public name = \"think\";\n public description =\n \"Use when you want to think through a problem, clarify your assumptions, or break down complex steps before acting or responding.\";\n\n public readonly emitter: Emitter<any>;\n\n protected _inputSchema: ZodSchema;\n protected _toolOutput: string | ((input: ThinkInput) => string);\n protected _extraInstructions: string;\n\n constructor(options: ThinkToolOptions = {}) {\n super(options);\n this._inputSchema = options.schema ?? ThinkSchema;\n this._toolOutput = options.toolOutput ?? \"OK\";\n this._extraInstructions = options.extraInstructions ?? \"\";\n\n if (this._extraInstructions) {\n this.description += ` ${this._extraInstructions}`;\n }\n\n this.emitter = this.createEmitter();\n }\n\n inputSchema(): ZodSchema {\n return this._inputSchema;\n }\n\n async _run(\n input: ThinkInput,\n _options: BaseToolRunOptions,\n _context: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n const output =\n typeof this._toolOutput === \"function\" ? this._toolOutput(input) : this._toolOutput;\n return new StringToolOutput(output);\n }\n\n protected createEmitter(): Emitter<any> {\n return Emitter.root.child({\n namespace: [\"tool\", \"think\"],\n creator: this,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/weather/openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":"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","file":"openMeteo.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]) as Location;\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/weather/openMeteo.ts"],"names":["OpenMeteoToolOutput","JSONToolOutput","OpenMeteoTool","Tool","name","description","inputSchema","z","object","location","union","string","min","country","optional","language","default","strip","latitude","coerce","number","longitude","start_date","date","describe","end_date","temperature_unit","enum","emitter","Emitter","root","child","namespace","creator","register","options","responseFilter","excludedKeys","preprocessInput","rawInput","fixDate","key","value","getProp","setProp","substring","_run","startDate","endDate","input","_options","run","apiKey","prepareParams","extractLocation","response","_geocode","signal","pick","validateAndSetDates","startDateStr","endDateStr","now","Date","start","UTC","getFullYear","getMonth","getDate","end","ToolInputValidationError","toDateString","toISOString","split","createURLParams","pickBy","v","isNullish","current","daily","hourly","timezone","params","fetch","headers","Authorization","ok","ToolError","Error","text","data","json","omit","format","count","results","length"],"mappings":"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","file":"openMeteo.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { isNullish, omit, pick, pickBy } from \"remeda\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { getProp, setProp } from \"@/internals/helpers/object.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ResponseFilter {\n excludedKeys: (keyof OpenMeteoToolResponse)[];\n}\n\ninterface ToolOptions extends BaseToolOptions {\n apiKey?: string;\n responseFilter?: ResponseFilter;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\ninterface Location {\n latitude: number;\n longitude: number;\n}\n\ninterface LocationSearch {\n name: string;\n country?: string;\n language?: string;\n}\n\nexport interface OpenMeteoToolResponse {\n latitude?: number;\n longitude?: number;\n generationtime_ms?: number;\n utc_offset_seconds?: number;\n timezone?: string;\n timezone_abbreviation?: string;\n elevation?: number;\n current_units?: Record<string, string>;\n current?: Record<string, string>;\n hourly_units?: Record<string, string>;\n hourly?: Record<string, any[]>;\n daily_units?: Record<string, string>;\n daily?: Record<string, any[]>;\n}\n\nexport class OpenMeteoToolOutput extends JSONToolOutput<OpenMeteoToolResponse> {}\n\nexport class OpenMeteoTool extends Tool<OpenMeteoToolOutput, ToolOptions, ToolRunOptions> {\n name = \"OpenMeteo\";\n description = `Retrieve current, past, or future weather forecasts for a location.`;\n\n inputSchema() {\n return z\n .object({\n location: z.union([\n z\n .object({\n name: z.string().min(1),\n country: z.string().optional(),\n language: z.string().default(\"English\"),\n })\n .strip(),\n z\n .object({\n latitude: z.coerce.number(),\n longitude: z.coerce.number(),\n })\n .strip(),\n ]),\n start_date: z\n .string()\n .date()\n .describe(\"Start date for the weather forecast in the format YYYY-MM-DD (UTC)\"),\n end_date: z\n .string()\n .date()\n .describe(\"End date for the weather forecast in the format YYYY-MM-DD (UTC)\")\n .optional(),\n temperature_unit: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n })\n .strip();\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, OpenMeteoToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"weather\", \"openMeteo\"],\n creator: this,\n });\n\n static {\n this.register();\n }\n\n public constructor(options: Partial<ToolOptions> = {}) {\n super({\n ...options,\n responseFilter: options?.responseFilter ?? {\n excludedKeys: [\n \"latitude\",\n \"longitude\",\n \"generationtime_ms\",\n \"utc_offset_seconds\",\n \"timezone\",\n \"timezone_abbreviation\",\n \"elevation\",\n \"hourly\",\n \"hourly_units\",\n ],\n },\n });\n }\n\n protected preprocessInput(rawInput: unknown) {\n super.preprocessInput(rawInput);\n\n const fixDate = (key: keyof ToolInput<this>) => {\n const value = getProp(rawInput, [key]);\n if (value) {\n setProp(rawInput, [key], value.substring(0, 10));\n }\n };\n\n fixDate(\"start_date\");\n fixDate(\"end_date\");\n }\n\n protected async _run(\n { location, start_date: startDate, end_date: endDate, ...input }: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const { apiKey } = this.options;\n\n const prepareParams = async () => {\n const extractLocation = async (): Promise<Location> => {\n if (\"name\" in location) {\n const response = await this._geocode(location, run.signal);\n return pick(response, [\"latitude\", \"longitude\"]) as Location;\n }\n return location;\n };\n\n function validateAndSetDates(\n startDateStr: string,\n endDateStr?: string,\n ): { start: Date; end: Date } {\n const now = new Date();\n const start = startDateStr\n ? new Date(startDateStr)\n : new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\n if (endDateStr) {\n const end = new Date(endDateStr);\n if (end < start) {\n throw new ToolInputValidationError(\n `The 'end_date' (${endDateStr}) has to occur on or after the 'start_date' (${startDateStr}).`,\n );\n }\n return { start: start, end: end };\n } else {\n // If endDate is undefined, set it to the start date\n return { start: start, end: new Date(start) };\n }\n }\n\n const { start, end } = validateAndSetDates(startDate, endDate);\n\n const toDateString = (date: Date) => date.toISOString().split(\"T\")[0];\n\n return createURLParams({\n ...pickBy(input, (v) => !isNullish(v) && v !== \"\"),\n ...(await extractLocation()),\n start_date: toDateString(start),\n end_date: toDateString(end),\n current: [\"temperature_2m\", \"rain\", \"relative_humidity_2m\", \"wind_speed_10m\"],\n daily: [\"temperature_2m_max\", \"temperature_2m_min\", \"rain_sum\"],\n hourly: [\"temperature_2m\", \"relative_humidity_2m\", \"rain\"],\n timezone: \"UTC\",\n });\n };\n\n const params = await prepareParams();\n const response = await fetch(`https://api.open-meteo.com/v1/forecast?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal: run.signal,\n });\n\n if (!response.ok) {\n throw new ToolError(\"Request to OpenMeteo API has failed!\", [\n new Error(await response.text()),\n ]);\n }\n\n let data: OpenMeteoToolResponse = await response.json();\n\n if (this.options?.responseFilter?.excludedKeys) {\n data = omit(data, this.options.responseFilter.excludedKeys);\n }\n\n return new OpenMeteoToolOutput(data);\n }\n\n @Cache()\n protected async _geocode(location: LocationSearch, signal: AbortSignal) {\n const { apiKey } = this.options;\n\n const params = createURLParams({\n name: location.name,\n language: location.language,\n country: location.country,\n format: \"json\",\n count: 1,\n });\n const response = await fetch(`https://geocoding-api.open-meteo.com/v1/search?${params}`, {\n headers: {\n ...(apiKey && {\n Authorization: `Bearer ${apiKey}`,\n }),\n },\n signal,\n });\n if (!response.ok) {\n throw new ToolError(`Failed to GeoCode provided location (${location.name}).`, [\n new Error(await response.text()),\n ]);\n }\n\n const { results } = await response.json();\n if (!results || results.length === 0) {\n throw new ToolError(`Location '${location.name}' was not found.`);\n }\n return results[0];\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { JSONToolOutput, Tool, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from '../base.cjs';
1
+ import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from '../base.cjs';
2
2
  import { z } from 'zod';
3
3
  import { RunContext } from '../../context.cjs';
4
4
  import 'ajv';
@@ -10,7 +10,7 @@ import 'promise-based-task';
10
10
  import '../../cache/base.cjs';
11
11
  import '../../internals/helpers/schema.cjs';
12
12
  import 'zod-to-json-schema';
13
- import '../../emitter-jN55XZZq.cjs';
13
+ import '../../emitter-D4OcelZ9.cjs';
14
14
  import '../../internals/helpers/promise.cjs';
15
15
 
16
16
  /**
@@ -1,4 +1,4 @@
1
- import { JSONToolOutput, Tool, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from '../base.js';
1
+ import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from '../base.js';
2
2
  import { z } from 'zod';
3
3
  import { RunContext } from '../../context.js';
4
4
  import 'ajv';
@@ -10,7 +10,7 @@ import 'promise-based-task';
10
10
  import '../../cache/base.js';
11
11
  import '../../internals/helpers/schema.js';
12
12
  import 'zod-to-json-schema';
13
- import '../../emitter-36-9MnvA.js';
13
+ import '../../emitter-kHxkUxco.js';
14
14
  import '../../internals/helpers/promise.js';
15
15
 
16
16
  /**