beeai-framework 0.1.20 → 0.1.22

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 (485) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs +4 -4
  2. package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
  3. package/dist/adapters/a2a/agents/agent.d.cts +6 -10
  4. package/dist/adapters/a2a/agents/agent.d.ts +6 -10
  5. package/dist/adapters/a2a/agents/agent.js +4 -4
  6. package/dist/adapters/a2a/agents/agent.js.map +1 -1
  7. package/dist/adapters/a2a/agents/events.d.cts +1 -1
  8. package/dist/adapters/a2a/agents/events.d.ts +1 -1
  9. package/dist/adapters/a2a/agents/types.d.cts +2 -2
  10. package/dist/adapters/a2a/agents/types.d.ts +2 -2
  11. package/dist/adapters/a2a/agents/utils.cjs +2 -2
  12. package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
  13. package/dist/adapters/a2a/agents/utils.js +2 -2
  14. package/dist/adapters/a2a/agents/utils.js.map +1 -1
  15. package/dist/adapters/a2a/serve/agent_executor.cjs +1 -3
  16. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
  17. package/dist/adapters/a2a/serve/agent_executor.d.cts +4 -3
  18. package/dist/adapters/a2a/serve/agent_executor.d.ts +4 -3
  19. package/dist/adapters/a2a/serve/agent_executor.js +1 -3
  20. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
  21. package/dist/adapters/a2a/serve/server.cjs +15 -0
  22. package/dist/adapters/a2a/serve/server.cjs.map +1 -1
  23. package/dist/adapters/a2a/serve/server.d.cts +4 -2
  24. package/dist/adapters/a2a/serve/server.d.ts +4 -2
  25. package/dist/adapters/a2a/serve/server.js +15 -0
  26. package/dist/adapters/a2a/serve/server.js.map +1 -1
  27. package/dist/adapters/acp/agents/agent.d.cts +6 -10
  28. package/dist/adapters/acp/agents/agent.d.ts +6 -10
  29. package/dist/adapters/acp/agents/events.d.cts +1 -1
  30. package/dist/adapters/acp/agents/events.d.ts +1 -1
  31. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.cjs +4 -4
  32. package/dist/adapters/agentstack/agents/agent.cjs.map +1 -0
  33. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.cts +18 -16
  34. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.ts +18 -16
  35. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.js +4 -4
  36. package/dist/adapters/agentstack/agents/agent.js.map +1 -0
  37. package/dist/adapters/agentstack/agents/events.d.cts +23 -0
  38. package/dist/adapters/agentstack/agents/events.d.ts +23 -0
  39. package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.cts +4 -4
  40. package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.ts +4 -4
  41. package/dist/adapters/amazon-bedrock/backend/chat.cjs +3 -2
  42. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  43. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +5 -6
  44. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +5 -6
  45. package/dist/adapters/amazon-bedrock/backend/chat.js +3 -2
  46. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  47. package/dist/adapters/amazon-bedrock/backend/embedding.cjs +2 -2
  48. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  49. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +4 -4
  50. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +4 -4
  51. package/dist/adapters/amazon-bedrock/backend/embedding.js +2 -2
  52. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  53. package/dist/adapters/anthropic/backend/chat.cjs +3 -2
  54. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  55. package/dist/adapters/anthropic/backend/chat.d.cts +5 -6
  56. package/dist/adapters/anthropic/backend/chat.d.ts +5 -6
  57. package/dist/adapters/anthropic/backend/chat.js +3 -2
  58. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  59. package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
  60. package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
  61. package/dist/adapters/azure-openai/backend/chat.cjs +3 -2
  62. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  63. package/dist/adapters/azure-openai/backend/chat.d.cts +5 -6
  64. package/dist/adapters/azure-openai/backend/chat.d.ts +5 -6
  65. package/dist/adapters/azure-openai/backend/chat.js +3 -2
  66. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  67. package/dist/adapters/azure-openai/backend/embedding.cjs +2 -2
  68. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  69. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -3
  70. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -3
  71. package/dist/adapters/azure-openai/backend/embedding.js +2 -2
  72. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  73. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  74. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  75. package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
  76. package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
  77. package/dist/adapters/google-vertex/backend/chat.cjs +3 -2
  78. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  79. package/dist/adapters/google-vertex/backend/chat.d.cts +5 -6
  80. package/dist/adapters/google-vertex/backend/chat.d.ts +5 -6
  81. package/dist/adapters/google-vertex/backend/chat.js +3 -2
  82. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  83. package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
  84. package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
  85. package/dist/adapters/groq/backend/chat.cjs +3 -2
  86. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  87. package/dist/adapters/groq/backend/chat.d.cts +5 -6
  88. package/dist/adapters/groq/backend/chat.d.ts +5 -6
  89. package/dist/adapters/groq/backend/chat.js +3 -2
  90. package/dist/adapters/groq/backend/chat.js.map +1 -1
  91. package/dist/adapters/groq/backend/embedding.d.cts +2 -2
  92. package/dist/adapters/groq/backend/embedding.d.ts +2 -2
  93. package/dist/adapters/langchain/backend/chat.cjs +6 -5
  94. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  95. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  96. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  97. package/dist/adapters/langchain/backend/chat.js +6 -5
  98. package/dist/adapters/langchain/backend/chat.js.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/tools.d.cts +1 -1
  102. package/dist/adapters/langchain/tools.d.ts +1 -1
  103. package/dist/adapters/ollama/backend/chat.cjs +1 -4
  104. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  105. package/dist/adapters/ollama/backend/chat.d.cts +4 -4
  106. package/dist/adapters/ollama/backend/chat.d.ts +4 -4
  107. package/dist/adapters/ollama/backend/chat.js +1 -4
  108. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  109. package/dist/adapters/ollama/backend/client.cjs +2 -2
  110. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  111. package/dist/adapters/ollama/backend/client.d.cts +1 -1
  112. package/dist/adapters/ollama/backend/client.d.ts +1 -1
  113. package/dist/adapters/ollama/backend/client.js +1 -1
  114. package/dist/adapters/ollama/backend/client.js.map +1 -1
  115. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  116. package/dist/adapters/ollama/backend/embedding.d.cts +3 -3
  117. package/dist/adapters/ollama/backend/embedding.d.ts +3 -3
  118. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  119. package/dist/adapters/openai/backend/chat.cjs +3 -2
  120. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  121. package/dist/adapters/openai/backend/chat.d.cts +5 -6
  122. package/dist/adapters/openai/backend/chat.d.ts +5 -6
  123. package/dist/adapters/openai/backend/chat.js +3 -2
  124. package/dist/adapters/openai/backend/chat.js.map +1 -1
  125. package/dist/adapters/openai/backend/client.cjs +2 -11
  126. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  127. package/dist/adapters/openai/backend/client.js +3 -12
  128. package/dist/adapters/openai/backend/client.js.map +1 -1
  129. package/dist/adapters/openai/backend/embedding.cjs +2 -2
  130. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  131. package/dist/adapters/openai/backend/embedding.d.cts +4 -4
  132. package/dist/adapters/openai/backend/embedding.d.ts +4 -4
  133. package/dist/adapters/openai/backend/embedding.js +2 -2
  134. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  135. package/dist/adapters/vercel/backend/chat.cjs +26 -21
  136. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  137. package/dist/adapters/vercel/backend/chat.d.cts +6 -4
  138. package/dist/adapters/vercel/backend/chat.d.ts +6 -4
  139. package/dist/adapters/vercel/backend/chat.js +27 -22
  140. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  141. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  142. package/dist/adapters/vercel/backend/embedding.d.cts +3 -3
  143. package/dist/adapters/vercel/backend/embedding.d.ts +3 -3
  144. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  145. package/dist/adapters/vercel/backend/utils.cjs +26 -0
  146. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  147. package/dist/adapters/vercel/backend/utils.d.cts +20 -2
  148. package/dist/adapters/vercel/backend/utils.d.ts +20 -2
  149. package/dist/adapters/vercel/backend/utils.js +25 -1
  150. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  151. package/dist/adapters/watsonx/backend/chat.cjs +10 -4
  152. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  153. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  154. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  155. package/dist/adapters/watsonx/backend/chat.js +10 -4
  156. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  157. package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
  158. package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
  159. package/dist/adapters/xai/backend/chat.cjs +3 -2
  160. package/dist/adapters/xai/backend/chat.cjs.map +1 -1
  161. package/dist/adapters/xai/backend/chat.d.cts +5 -6
  162. package/dist/adapters/xai/backend/chat.d.ts +5 -6
  163. package/dist/adapters/xai/backend/chat.js +3 -2
  164. package/dist/adapters/xai/backend/chat.js.map +1 -1
  165. package/dist/{agent-I0Saf4A1.d.cts → agent-BMfyig7X.d.cts} +5 -4
  166. package/dist/{agent-CtrCeN7o.d.ts → agent-Dxw8AGWb.d.ts} +5 -4
  167. package/dist/agents/base.cjs +5 -2
  168. package/dist/agents/base.cjs.map +1 -1
  169. package/dist/agents/base.d.cts +2 -2
  170. package/dist/agents/base.d.ts +2 -2
  171. package/dist/agents/base.js +5 -2
  172. package/dist/agents/base.js.map +1 -1
  173. package/dist/agents/experimental/replan/agent.d.cts +3 -3
  174. package/dist/agents/experimental/replan/agent.d.ts +3 -3
  175. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  176. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  177. package/dist/agents/experimental/streamlit/agent.d.cts +8 -12
  178. package/dist/agents/experimental/streamlit/agent.d.ts +8 -12
  179. package/dist/agents/react/agent.d.cts +5 -4
  180. package/dist/agents/react/agent.d.ts +5 -4
  181. package/dist/agents/react/prompts.d.cts +1 -1
  182. package/dist/agents/react/prompts.d.ts +1 -1
  183. package/dist/agents/react/runners/base.cjs.map +1 -1
  184. package/dist/agents/react/runners/base.d.cts +5 -4
  185. package/dist/agents/react/runners/base.d.ts +5 -4
  186. package/dist/agents/react/runners/base.js.map +1 -1
  187. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
  188. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
  189. package/dist/agents/react/runners/deep-think/runner.d.cts +6 -5
  190. package/dist/agents/react/runners/deep-think/runner.d.ts +6 -5
  191. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  192. package/dist/agents/react/runners/default/runner.d.cts +6 -5
  193. package/dist/agents/react/runners/default/runner.d.ts +6 -5
  194. package/dist/agents/react/runners/default/runner.js.map +1 -1
  195. package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
  196. package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
  197. package/dist/agents/react/runners/granite/runner.cjs +4 -2
  198. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  199. package/dist/agents/react/runners/granite/runner.d.cts +6 -5
  200. package/dist/agents/react/runners/granite/runner.d.ts +6 -5
  201. package/dist/agents/react/runners/granite/runner.js +4 -2
  202. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  203. package/dist/agents/react/types.d.cts +3 -2
  204. package/dist/agents/react/types.d.ts +3 -2
  205. package/dist/agents/requirement/agent.cjs +162 -0
  206. package/dist/agents/requirement/agent.cjs.map +1 -0
  207. package/dist/agents/requirement/agent.d.cts +29 -0
  208. package/dist/agents/requirement/agent.d.ts +29 -0
  209. package/dist/agents/requirement/agent.js +160 -0
  210. package/dist/agents/requirement/agent.js.map +1 -0
  211. package/dist/agents/requirement/prompts.cjs +95 -0
  212. package/dist/agents/requirement/prompts.cjs.map +1 -0
  213. package/dist/agents/requirement/prompts.d.cts +107 -0
  214. package/dist/agents/requirement/prompts.d.ts +107 -0
  215. package/dist/agents/requirement/prompts.js +90 -0
  216. package/dist/agents/requirement/prompts.js.map +1 -0
  217. package/dist/agents/requirement/requirements/conditional.cjs +190 -0
  218. package/dist/agents/requirement/requirements/conditional.cjs.map +1 -0
  219. package/dist/agents/requirement/requirements/conditional.d.cts +71 -0
  220. package/dist/agents/requirement/requirements/conditional.d.ts +71 -0
  221. package/dist/agents/requirement/requirements/conditional.js +188 -0
  222. package/dist/agents/requirement/requirements/conditional.js.map +1 -0
  223. package/dist/agents/requirement/requirements/requirement.cjs +107 -0
  224. package/dist/agents/requirement/requirements/requirement.cjs.map +1 -0
  225. package/dist/agents/requirement/requirements/requirement.d.cts +59 -0
  226. package/dist/agents/requirement/requirements/requirement.d.ts +59 -0
  227. package/dist/agents/requirement/requirements/requirement.js +104 -0
  228. package/dist/agents/requirement/requirements/requirement.js.map +1 -0
  229. package/dist/agents/requirement/requirements/utils.cjs +74 -0
  230. package/dist/agents/requirement/requirements/utils.cjs.map +1 -0
  231. package/dist/agents/requirement/requirements/utils.d.cts +40 -0
  232. package/dist/agents/requirement/requirements/utils.d.ts +40 -0
  233. package/dist/agents/requirement/requirements/utils.js +69 -0
  234. package/dist/agents/requirement/requirements/utils.js.map +1 -0
  235. package/dist/agents/requirement/runner.cjs +252 -0
  236. package/dist/agents/requirement/runner.cjs.map +1 -0
  237. package/dist/agents/requirement/runner.d.cts +117 -0
  238. package/dist/agents/requirement/runner.d.ts +117 -0
  239. package/dist/agents/requirement/runner.js +250 -0
  240. package/dist/agents/requirement/runner.js.map +1 -0
  241. package/dist/agents/requirement/types.cjs +40 -0
  242. package/dist/agents/requirement/types.cjs.map +1 -0
  243. package/dist/agents/requirement/types.d.cts +24 -0
  244. package/dist/agents/requirement/types.d.ts +24 -0
  245. package/dist/agents/requirement/types.js +35 -0
  246. package/dist/agents/requirement/types.js.map +1 -0
  247. package/dist/agents/requirement/utils/llm.cjs +202 -0
  248. package/dist/agents/requirement/utils/llm.cjs.map +1 -0
  249. package/dist/agents/requirement/utils/llm.d.cts +50 -0
  250. package/dist/agents/requirement/utils/llm.d.ts +50 -0
  251. package/dist/agents/requirement/utils/llm.js +199 -0
  252. package/dist/agents/requirement/utils/llm.js.map +1 -0
  253. package/dist/agents/requirement/utils/tool.cjs +94 -0
  254. package/dist/agents/requirement/utils/tool.cjs.map +1 -0
  255. package/dist/agents/requirement/utils/tool.d.cts +24 -0
  256. package/dist/agents/requirement/utils/tool.d.ts +24 -0
  257. package/dist/agents/requirement/utils/tool.js +91 -0
  258. package/dist/agents/requirement/utils/tool.js.map +1 -0
  259. package/dist/agents/requirement/utils/toolCallChecker.cjs +61 -0
  260. package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -0
  261. package/dist/agents/requirement/utils/toolCallChecker.d.cts +28 -0
  262. package/dist/agents/requirement/utils/toolCallChecker.d.ts +28 -0
  263. package/dist/agents/requirement/utils/toolCallChecker.js +59 -0
  264. package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -0
  265. package/dist/agents/toolCalling/agent.cjs +9 -5
  266. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  267. package/dist/agents/toolCalling/agent.d.cts +8 -12
  268. package/dist/agents/toolCalling/agent.d.ts +8 -12
  269. package/dist/agents/toolCalling/agent.js +9 -5
  270. package/dist/agents/toolCalling/agent.js.map +1 -1
  271. package/dist/agents/toolCalling/types.d.cts +1 -1
  272. package/dist/agents/toolCalling/types.d.ts +1 -1
  273. package/dist/agents/types.d.cts +2 -2
  274. package/dist/agents/types.d.ts +2 -2
  275. package/dist/backend/backend.d.cts +2 -2
  276. package/dist/backend/backend.d.ts +2 -2
  277. package/dist/backend/chat.cjs +1 -1
  278. package/dist/backend/chat.cjs.map +1 -1
  279. package/dist/backend/chat.d.cts +2 -2
  280. package/dist/backend/chat.d.ts +2 -2
  281. package/dist/backend/chat.js +1 -1
  282. package/dist/backend/chat.js.map +1 -1
  283. package/dist/backend/core.d.cts +2 -2
  284. package/dist/backend/core.d.ts +2 -2
  285. package/dist/backend/embedding.d.cts +2 -2
  286. package/dist/backend/embedding.d.ts +2 -2
  287. package/dist/backend/message.cjs +59 -3
  288. package/dist/backend/message.cjs.map +1 -1
  289. package/dist/backend/message.d.cts +3 -0
  290. package/dist/backend/message.d.ts +3 -0
  291. package/dist/backend/message.js +59 -3
  292. package/dist/backend/message.js.map +1 -1
  293. package/dist/backend/utils.d.cts +2 -2
  294. package/dist/backend/utils.d.ts +2 -2
  295. package/dist/{base-BsY2baWy.d.ts → base-BurRTBA7.d.ts} +4 -2
  296. package/dist/{base-BP7v-NSL.d.cts → base-v-PYIq5G.d.cts} +4 -2
  297. package/dist/cache/fileCache.cjs.map +1 -1
  298. package/dist/cache/fileCache.js.map +1 -1
  299. package/dist/{chat-W9j8T6UU.d.ts → chat-BbCYMAdE.d.ts} +4 -2
  300. package/dist/{chat-CR4yfOR9.d.cts → chat-DB_cf15S.d.cts} +4 -2
  301. package/dist/context.cjs +22 -5
  302. package/dist/context.cjs.map +1 -1
  303. package/dist/context.d.cts +19 -6
  304. package/dist/context.d.ts +19 -6
  305. package/dist/context.js +23 -7
  306. package/dist/context.js.map +1 -1
  307. package/dist/emitter/emitter.cjs +19 -13
  308. package/dist/emitter/emitter.cjs.map +1 -1
  309. package/dist/emitter/emitter.d.cts +1 -1
  310. package/dist/emitter/emitter.d.ts +1 -1
  311. package/dist/emitter/emitter.js +19 -13
  312. package/dist/emitter/emitter.js.map +1 -1
  313. package/dist/emitter/types.d.cts +1 -1
  314. package/dist/emitter/types.d.ts +1 -1
  315. package/dist/{emitter-DWEsd-ud.d.cts → emitter-CGKd_-kK.d.cts} +6 -5
  316. package/dist/{emitter-C9nwGLt6.d.ts → emitter-CN7I4uSV.d.ts} +6 -5
  317. package/dist/index.d.cts +5 -5
  318. package/dist/index.d.ts +5 -5
  319. package/dist/internals/fetcher.d.cts +1 -1
  320. package/dist/internals/fetcher.d.ts +1 -1
  321. package/dist/internals/helpers/array.cjs +35 -0
  322. package/dist/internals/helpers/array.cjs.map +1 -1
  323. package/dist/internals/helpers/array.d.cts +6 -1
  324. package/dist/internals/helpers/array.d.ts +6 -1
  325. package/dist/internals/helpers/array.js +35 -1
  326. package/dist/internals/helpers/array.js.map +1 -1
  327. package/dist/internals/helpers/object.cjs +30 -5
  328. package/dist/internals/helpers/object.cjs.map +1 -1
  329. package/dist/internals/helpers/object.d.cts +3 -2
  330. package/dist/internals/helpers/object.d.ts +3 -2
  331. package/dist/internals/helpers/object.js +29 -5
  332. package/dist/internals/helpers/object.js.map +1 -1
  333. package/dist/internals/helpers/prototype.cjs +5 -0
  334. package/dist/internals/helpers/prototype.cjs.map +1 -1
  335. package/dist/internals/helpers/prototype.d.cts +2 -1
  336. package/dist/internals/helpers/prototype.d.ts +2 -1
  337. package/dist/internals/helpers/prototype.js +5 -1
  338. package/dist/internals/helpers/prototype.js.map +1 -1
  339. package/dist/internals/types.cjs.map +1 -1
  340. package/dist/internals/types.d.cts +1 -1
  341. package/dist/internals/types.d.ts +1 -1
  342. package/dist/internals/types.js.map +1 -1
  343. package/dist/logger/logger.cjs +8 -4
  344. package/dist/logger/logger.cjs.map +1 -1
  345. package/dist/logger/logger.d.cts +21 -15
  346. package/dist/logger/logger.d.ts +21 -15
  347. package/dist/logger/logger.js +6 -3
  348. package/dist/logger/logger.js.map +1 -1
  349. package/dist/logger/pretty.cjs +2 -2
  350. package/dist/logger/pretty.cjs.map +1 -1
  351. package/dist/logger/pretty.js +2 -2
  352. package/dist/logger/pretty.js.map +1 -1
  353. package/dist/memory/slidingMemory.d.cts +1 -1
  354. package/dist/memory/slidingMemory.d.ts +1 -1
  355. package/dist/memory/summarizeMemory.d.cts +2 -2
  356. package/dist/memory/summarizeMemory.d.ts +2 -2
  357. package/dist/middleware/trajectory.cjs +322 -0
  358. package/dist/middleware/trajectory.cjs.map +1 -0
  359. package/dist/middleware/trajectory.d.cts +115 -0
  360. package/dist/middleware/trajectory.d.ts +115 -0
  361. package/dist/middleware/trajectory.js +320 -0
  362. package/dist/middleware/trajectory.js.map +1 -0
  363. package/dist/parsers/linePrefix.cjs.map +1 -1
  364. package/dist/parsers/linePrefix.d.cts +4 -8
  365. package/dist/parsers/linePrefix.d.ts +4 -8
  366. package/dist/parsers/linePrefix.js.map +1 -1
  367. package/dist/serializer/serializer.cjs +5 -4
  368. package/dist/serializer/serializer.cjs.map +1 -1
  369. package/dist/serializer/serializer.d.cts +1 -1
  370. package/dist/serializer/serializer.d.ts +1 -1
  371. package/dist/serializer/serializer.js +5 -4
  372. package/dist/serializer/serializer.js.map +1 -1
  373. package/dist/serializer/utils.cjs +3 -0
  374. package/dist/serializer/utils.cjs.map +1 -1
  375. package/dist/serializer/utils.d.cts +1 -1
  376. package/dist/serializer/utils.d.ts +1 -1
  377. package/dist/serializer/utils.js +3 -0
  378. package/dist/serializer/utils.js.map +1 -1
  379. package/dist/{serializer-CQxucveV.d.ts → serializer-53t8gGQa.d.ts} +3 -2
  380. package/dist/{serializer-BKn50Vnx.d.cts → serializer-c51B2z6d.d.cts} +3 -2
  381. package/dist/template.cjs +20 -0
  382. package/dist/template.cjs.map +1 -1
  383. package/dist/template.d.cts +1 -0
  384. package/dist/template.d.ts +1 -0
  385. package/dist/template.js +20 -0
  386. package/dist/template.js.map +1 -1
  387. package/dist/tools/arxiv.cjs.map +1 -1
  388. package/dist/tools/arxiv.d.cts +1 -1
  389. package/dist/tools/arxiv.d.ts +1 -1
  390. package/dist/tools/arxiv.js.map +1 -1
  391. package/dist/tools/base.cjs.map +1 -1
  392. package/dist/tools/base.d.cts +3 -2
  393. package/dist/tools/base.d.ts +3 -2
  394. package/dist/tools/base.js.map +1 -1
  395. package/dist/tools/calculator.d.cts +1 -1
  396. package/dist/tools/calculator.d.ts +1 -1
  397. package/dist/tools/custom.d.cts +2 -2
  398. package/dist/tools/custom.d.ts +2 -2
  399. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  400. package/dist/tools/database/elasticsearch.d.cts +1 -1
  401. package/dist/tools/database/elasticsearch.d.ts +1 -1
  402. package/dist/tools/database/elasticsearch.js.map +1 -1
  403. package/dist/tools/database/milvus.cjs +3 -3
  404. package/dist/tools/database/milvus.cjs.map +1 -1
  405. package/dist/tools/database/milvus.d.cts +3 -3
  406. package/dist/tools/database/milvus.d.ts +3 -3
  407. package/dist/tools/database/milvus.js +3 -3
  408. package/dist/tools/database/milvus.js.map +1 -1
  409. package/dist/tools/database/qdrant.cjs +2 -2
  410. package/dist/tools/database/qdrant.cjs.map +1 -1
  411. package/dist/tools/database/qdrant.d.cts +1 -1
  412. package/dist/tools/database/qdrant.d.ts +1 -1
  413. package/dist/tools/database/qdrant.js +2 -2
  414. package/dist/tools/database/qdrant.js.map +1 -1
  415. package/dist/tools/database/sql.cjs.map +1 -1
  416. package/dist/tools/database/sql.d.cts +1 -1
  417. package/dist/tools/database/sql.d.ts +1 -1
  418. package/dist/tools/database/sql.js.map +1 -1
  419. package/dist/tools/llm.d.cts +2 -2
  420. package/dist/tools/llm.d.ts +2 -2
  421. package/dist/tools/mcp.d.cts +1 -1
  422. package/dist/tools/mcp.d.ts +1 -1
  423. package/dist/tools/openapi.d.cts +1 -1
  424. package/dist/tools/openapi.d.ts +1 -1
  425. package/dist/tools/python/output.d.cts +1 -1
  426. package/dist/tools/python/output.d.ts +1 -1
  427. package/dist/tools/python/python.d.cts +2 -2
  428. package/dist/tools/python/python.d.ts +2 -2
  429. package/dist/tools/search/base.cjs.map +1 -1
  430. package/dist/tools/search/base.d.cts +1 -1
  431. package/dist/tools/search/base.d.ts +1 -1
  432. package/dist/tools/search/base.js.map +1 -1
  433. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  434. package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
  435. package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
  436. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  437. package/dist/tools/search/googleSearch.cjs.map +1 -1
  438. package/dist/tools/search/googleSearch.d.cts +1 -1
  439. package/dist/tools/search/googleSearch.d.ts +1 -1
  440. package/dist/tools/search/googleSearch.js.map +1 -1
  441. package/dist/tools/search/searXNGSearch.d.cts +1 -1
  442. package/dist/tools/search/searXNGSearch.d.ts +1 -1
  443. package/dist/tools/search/wikipedia.cjs +25 -0
  444. package/dist/tools/search/wikipedia.cjs.map +1 -1
  445. package/dist/tools/search/wikipedia.d.cts +2 -3
  446. package/dist/tools/search/wikipedia.d.ts +2 -3
  447. package/dist/tools/search/wikipedia.js +23 -0
  448. package/dist/tools/search/wikipedia.js.map +1 -1
  449. package/dist/tools/similarity.d.cts +1 -1
  450. package/dist/tools/similarity.d.ts +1 -1
  451. package/dist/tools/think.cjs +52 -0
  452. package/dist/tools/think.cjs.map +1 -0
  453. package/dist/tools/think.d.cts +47 -0
  454. package/dist/tools/think.d.ts +47 -0
  455. package/dist/tools/think.js +50 -0
  456. package/dist/tools/think.js.map +1 -0
  457. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  458. package/dist/tools/weather/openMeteo.d.cts +1 -1
  459. package/dist/tools/weather/openMeteo.d.ts +1 -1
  460. package/dist/tools/weather/openMeteo.js.map +1 -1
  461. package/dist/tools/web/webCrawler.cjs.map +1 -1
  462. package/dist/tools/web/webCrawler.d.cts +1 -1
  463. package/dist/tools/web/webCrawler.d.ts +1 -1
  464. package/dist/tools/web/webCrawler.js.map +1 -1
  465. package/dist/types-BXkkbABd.d.ts +213 -0
  466. package/dist/types-Cx6f43du.d.cts +213 -0
  467. package/dist/version.cjs +1 -1
  468. package/dist/version.js +1 -1
  469. package/dist/workflows/agent.d.cts +3 -3
  470. package/dist/workflows/agent.d.ts +3 -3
  471. package/dist/workflows/workflow.d.cts +1 -1
  472. package/dist/workflows/workflow.d.ts +1 -1
  473. package/package.json +70 -69
  474. package/dist/adapters/beeai_platform/agents/agent.cjs.map +0 -1
  475. package/dist/adapters/beeai_platform/agents/agent.js.map +0 -1
  476. package/dist/adapters/beeai_platform/agents/events.d.cts +0 -23
  477. package/dist/adapters/beeai_platform/agents/events.d.ts +0 -23
  478. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs +0 -0
  479. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs.map +0 -0
  480. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js +0 -0
  481. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js.map +0 -0
  482. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs +0 -0
  483. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs.map +0 -0
  484. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js +0 -0
  485. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js.map +0 -0
@@ -5,7 +5,7 @@ import { SearchToolOptions, SearchToolResult, SearchToolOutput, SearchToolRunOpt
5
5
  import { Tool, ToolEmitter, ToolInput } from '../base.js';
6
6
  import { z } from 'zod';
7
7
  import { RunContext } from '../../context.js';
8
- import { E as Emitter } from '../../emitter-C9nwGLt6.js';
8
+ import { E as Emitter } from '../../emitter-CN7I4uSV.js';
9
9
  import '../../internals/serializable.js';
10
10
  import '../../internals/types.js';
11
11
  import '../../internals/helpers/guards.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/search/googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":"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","file":"googleSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/googleSearch.ts"],"names":["GoogleSearchToolOutput","SearchToolOutput","results","register","createSnapshot","loadSnapshot","snapshot","Object","assign","GoogleSearchTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","apiKey","cseId","options","maxResults","parseEnv","ValueError","join","ValidationError","message","propertyName","client","GoogleSearchAPI","Customsearch","auth","_run","input","_options","run","paginate","size","handler","cursor","limit","maxChunkSize","data","items","cse","list","cx","q","start","num","Math","safe","signal","nextCursor","length","undefined","map","result","title","snippet","url","link"],"mappings":"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","file":"googleSearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { customsearch_v1 as GoogleSearchAPI } from \"@googleapis/customsearch\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { ToolEmitter, Tool, ToolInput } from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { parseEnv } from \"@/internals/env.js\";\nimport { RunContext } from \"@/context.js\";\nimport { paginate } from \"@/internals/helpers/paginate.js\";\nimport { ValidationError } from \"ajv\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface GoogleSearchToolOptions extends SearchToolOptions {\n apiKey?: string;\n cseId?: string;\n maxResults: number;\n}\n\ntype GoogleSearchToolRunOptions = SearchToolRunOptions;\n\nexport interface GoogleSearchToolResult extends SearchToolResult {}\n\nexport class GoogleSearchToolOutput extends SearchToolOutput<GoogleSearchToolResult> {\n constructor(public readonly results: GoogleSearchToolResult[]) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n results: this.results,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class GoogleSearchTool extends Tool<\n GoogleSearchToolOutput,\n GoogleSearchToolOptions,\n GoogleSearchToolRunOptions\n> {\n name = \"GoogleSearch\";\n description = `Search for online trends, news, current events, real-time information, or research topics.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, GoogleSearchToolOutput> =\n Emitter.root.child({\n namespace: [\"tool\", \"search\", \"google\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n return z.object({\n query: z.string({ description: `Search query` }).min(1).max(2048),\n });\n }\n\n protected apiKey: string;\n protected cseId: string;\n\n public constructor(options: GoogleSearchToolOptions = { maxResults: 10 }) {\n super(options);\n\n this.apiKey = options.apiKey || parseEnv(\"GOOGLE_API_KEY\", z.string());\n this.cseId = options.cseId || parseEnv(\"GOOGLE_CSE_ID\", z.string());\n\n if (!this.apiKey || !this.cseId) {\n throw new ValueError(\n [\n `\"apiKey\" or \"cseId\" must both be provided.`,\n `Either set them directly or put them in ENV (\"GOOGLE_API_KEY\" / \"GOOGLE_CSE_ID\")`,\n ].join(\"\\n\"),\n );\n }\n\n if (options.maxResults < 1 || options.maxResults > 100) {\n throw new ValidationError([\n {\n message: \"Property 'maxResults' must be between 1 and 100\",\n propertyName: \"options.maxResults\",\n },\n ]);\n }\n }\n\n @Cache()\n protected get client(): GoogleSearchAPI.Customsearch {\n return new GoogleSearchAPI.Customsearch({\n auth: this.apiKey,\n });\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n { query: input }: ToolInput<this>,\n _options: Partial<GoogleSearchToolRunOptions>,\n run: RunContext<this>,\n ) {\n const results = await paginate({\n size: this.options.maxResults,\n handler: async ({ cursor = 0, limit }) => {\n const maxChunkSize = 10;\n\n const {\n data: { items = [] },\n } = await this.client.cse.list(\n {\n cx: this.cseId,\n q: input,\n start: cursor,\n num: Math.min(limit, maxChunkSize),\n safe: \"active\",\n },\n {\n signal: run.signal,\n },\n );\n\n return {\n data: items,\n nextCursor: items.length < maxChunkSize ? undefined : cursor + items.length,\n };\n },\n });\n\n return new GoogleSearchToolOutput(\n results.map((result) => ({\n title: result.title || \"\",\n description: result.snippet || \"\",\n url: result.link || \"\",\n })),\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n apiKey: this.apiKey,\n cseId: this.cseId,\n };\n }\n\n loadSnapshot({ apiKey, cseId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n Object.assign(this, {\n apiKey,\n cseId,\n });\n }\n}\n"]}
@@ -11,7 +11,7 @@ import 'promise-based-task';
11
11
  import '../../cache/base.cjs';
12
12
  import '../../internals/helpers/schema.cjs';
13
13
  import 'zod-to-json-schema';
14
- import '../../emitter-DWEsd-ud.cjs';
14
+ import '../../emitter-CGKd_-kK.cjs';
15
15
  import '../../internals/helpers/promise.cjs';
16
16
 
17
17
  /**
@@ -11,7 +11,7 @@ import 'promise-based-task';
11
11
  import '../../cache/base.js';
12
12
  import '../../internals/helpers/schema.js';
13
13
  import 'zod-to-json-schema';
14
- import '../../emitter-C9nwGLt6.js';
14
+ import '../../emitter-CN7I4uSV.js';
15
15
  import '../../internals/helpers/promise.js';
16
16
 
17
17
  /**
@@ -40,6 +40,8 @@ var stringComparison__default = /*#__PURE__*/_interopDefault(stringComparison);
40
40
 
41
41
  var __defProp = Object.defineProperty;
42
42
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
43
+ var getImportMetaUrl = /* @__PURE__ */ __name(() => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href, "getImportMetaUrl");
44
+ var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
43
45
  function _ts_decorate(decorators, target, key, desc) {
44
46
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45
47
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -267,6 +269,7 @@ class WikipediaTool extends base_cjs$1.Tool {
267
269
  }));
268
270
  }
269
271
  async _run({ query: input }, _options) {
272
+ await patchAxiosUserAgent();
270
273
  const runOptions = this._createRunOptions(_options);
271
274
  const { results: searchRawResults, suggestion } = await wiki__default.default.default.search(input, {
272
275
  suggestion: Boolean(_options?.search?.suggestion),
@@ -331,6 +334,28 @@ _ts_decorate([
331
334
  _ts_metadata("design:type", typeof WikipediaToolRunOptions === "undefined" ? Object : WikipediaToolRunOptions),
332
335
  _ts_metadata("design:paramtypes", [])
333
336
  ], WikipediaTool.prototype, "_defaultRunOptions", null);
337
+ async function patchAxiosUserAgent() {
338
+ if (patchAxiosUserAgent.patched) {
339
+ return;
340
+ }
341
+ patchAxiosUserAgent.patched = true;
342
+ const doPatch = /* @__PURE__ */ __name((entry) => {
343
+ entry.defaults.headers.common["User-Agent"] = "BeeAI Framework";
344
+ }, "doPatch");
345
+ const { default: axios } = await import('axios');
346
+ doPatch(axios);
347
+ try {
348
+ const { createRequire } = await import('node:module');
349
+ const require2 = createRequire(importMetaUrl);
350
+ const { default: axiosCjs } = await require2("axios");
351
+ if (axiosCjs !== axios) {
352
+ doPatch(axiosCjs);
353
+ }
354
+ } catch {
355
+ }
356
+ }
357
+ __name(patchAxiosUserAgent, "patchAxiosUserAgent");
358
+ patchAxiosUserAgent.patched = false;
334
359
 
335
360
  exports.WikipediaTool = WikipediaTool;
336
361
  exports.WikipediaToolOutput = WikipediaToolOutput;
@@ -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","searchRawResults","bestCandidates","extractBestCandidates","Promise","all","pageId","redirect","preload","keys","key","asyncProperties","title","resolve","mapValues","value","catch","undefined","candidates","normalize","text","stringComparison","jaccardIndex","sortMatch","candidate","index","pageid","score","rating","sort","a","b","at","enumerable"],"mappings":"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","file":"wikipedia.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Page, pageFunctions, searchOptions } from \"wikipedia\";\nimport wiki from \"wikipedia\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport * as R from \"remeda\";\nimport { keys, mapValues } from \"remeda\";\nimport { ArrayKeys, Common } from \"@/internals/types.js\";\nimport {\n SearchToolOptions,\n SearchToolOutput,\n SearchToolResult,\n SearchToolRunOptions,\n} from \"./base.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { z } from \"zod\";\nimport { Tool, ToolEmitter, ToolInput } from \"@/tools/base.js\";\nimport Turndown from \"turndown\";\n// @ts-expect-error missing types\nimport turndownPlugin from \"joplin-turndown-plugin-gfm\";\nimport stringComparison from \"string-comparison\";\nimport { pageResult } from \"wikipedia/dist/resultTypes.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nwiki.default.setLang(\"en\");\n\nexport interface SearchOptions extends searchOptions {}\n\nexport interface FilterOptions {\n excludeOthersOnExactMatch?: boolean;\n minPageNameSimilarity?: number;\n}\n\nexport type PageFunctions = Record<\n pageFunctions,\n {\n transform?: <T>(output: T) => T;\n }\n> & {\n markdown: {\n transform?: (output: string) => string;\n filter?: (node: HTMLElement) => boolean;\n };\n};\n\nexport interface ExtractionOptions {\n fields?: Partial<PageFunctions>;\n}\n\nexport interface OutputOptions {\n maxSerializedLength?: number;\n maxDescriptionLength?: number;\n}\n\nexport interface WikipediaToolOptions extends SearchToolOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\nexport interface WikipediaToolRunOptions extends SearchToolRunOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\ntype PageWithMarkdown = Page & { markdown: () => Promise<string> };\n\ntype ResultFields = { [K in keyof PageFunctions]: Awaited<ReturnType<PageWithMarkdown[K]>> };\n\nexport interface WikipediaToolResult extends SearchToolResult {\n fields: Partial<ResultFields>;\n}\n\nexport class WikipediaToolOutput extends SearchToolOutput<WikipediaToolResult> {\n constructor(\n public readonly results: WikipediaToolResult[],\n protected readonly maxSerializedLength: number,\n ) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n @Cache()\n getTextContent(): string {\n if (this.isEmpty()) {\n return `No results were found. Try to reformat your query.`;\n }\n\n const target = this.results.length === 1 ? this.results[0] : this.results;\n const response = JSON.stringify(target);\n\n return this.maxSerializedLength < Infinity\n ? response.substring(0, this.maxSerializedLength)\n : response;\n }\n\n createSnapshot() {\n return {\n results: this.results,\n maxSerializedLength: this.maxSerializedLength,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\ninterface SearchResponse {\n results: Pick<pageResult, \"title\" | \"pageid\">[];\n suggestion: string;\n}\n\nexport class WikipediaTool extends Tool<\n WikipediaToolOutput,\n WikipediaToolOptions,\n WikipediaToolRunOptions\n> {\n name = \"Wikipedia\";\n description =\n \"Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WikipediaToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"wikipedia\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z\n .string({ description: `Name of the wikipedia page, for example 'New York'` })\n .min(1)\n .max(128),\n });\n }\n\n public constructor(public readonly config: WikipediaToolOptions = {}) {\n super(config);\n }\n\n static {\n this.register();\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _mappers(): Record<\n keyof PageFunctions,\n (page: Page, runOptions: WikipediaToolRunOptions) => Promise<any>\n > {\n return {\n categories: (page) => page.categories(),\n content: (page) => page.content(),\n html: (page) => page.html(),\n markdown: async (page, runOptions) => {\n const html = await page.html().then((result) => {\n const url = new URL(page.fullurl);\n const base = `${url.protocol}//${[url.hostname, url.port].filter(Boolean).join(\":\")}`;\n return (\n result\n // Missing a protocol\n .replace(/(<img .*src=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n .replace(/(<a .*href=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n\n // Missing a hostname\n .replace(/(<img .*src=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n .replace(/(<a .*href=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n );\n });\n\n const service = new Turndown();\n service.use(turndownPlugin.gfm);\n return service\n .remove((node) => runOptions.extraction?.fields?.markdown?.filter?.(node) === false)\n .turndown(html);\n },\n images: (page) => page.images(),\n intro: (page) => page.intro(),\n infobox: (page) => page.infobox(),\n links: (page) => page.links(),\n coordinates: (page) => page.coordinates(),\n langLinks: (page) => page.langLinks(),\n references: (page) => page.references(),\n related: (page) => page.related(),\n summary: (page) => page.summary(),\n tables: (page) => page.tables(),\n };\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _defaultRunOptions(): WikipediaToolRunOptions {\n const unwrapTags = new Set([\"a\", \"small\", \"sup\"]);\n const unwrapTagsSelector = Array.from(unwrapTags.values()).join(\",\");\n\n const ignoredTags = new Set([\n \"img\",\n \"link\",\n \"style\",\n \"abbr\",\n \"cite\",\n \"input\",\n \"sup\",\n \"bdi\",\n \"q\",\n \"figure\",\n \"audio\",\n \"track\",\n \"figcaption\",\n ]);\n const ignoredClasses = new Set([\n \"toc\",\n \"reflist\",\n \"mw-references-wrap\",\n \"box-More_footnotes_needed\",\n \"navbox\",\n \"navbox-styles\",\n \"mw-editsection\",\n \"sistersitebox\",\n \"navbox-inner\",\n \"refbegin\",\n \"notpageimage\",\n \"mw-file-element\",\n \"box-Unreferenced_section\",\n \"navigation-not-searchable\",\n \"noexcerpt\",\n \"infobox-image\",\n \"mw-tmh-player\",\n \"printfooter\",\n \"ambox\",\n \"infobox\",\n ]);\n const ignoredRoles = new Set([\"navigation\"]);\n\n const ignoredSelector = [\n ...ignoredTags.values(),\n Array.from(ignoredClasses.values()).map((cls) => `.${cls}`),\n Array.from(ignoredRoles.values()).map((role) => `[role=\"${role}\"]`),\n \"table>caption\",\n ].join(\",\");\n\n return {\n extraction: {\n fields: {\n markdown: {\n transform: (output: string) => output.replace(/([^\\\\])(\\$)/g, `$1\\\\$2`),\n filter: (node) => {\n const tagName = node.tagName.toLowerCase();\n if (ignoredTags.has(tagName) || ignoredRoles.has(node.role ?? \"\")) {\n return false;\n }\n\n for (const cls of node.className.trim().split(\" \").filter(Boolean)) {\n if (ignoredClasses.has(cls)) {\n return false;\n }\n }\n\n for (const table of Array.from(node.querySelectorAll(\"table tr>th\"))) {\n let colspan = parseInt(table.getAttribute(\"colspan\") || \"1\");\n while (colspan > 1) {\n table.insertAdjacentHTML(\"afterend\", `<th>&nbsp;</th>`);\n colspan--;\n }\n table.removeAttribute(\"colspan\");\n }\n\n const ignoredTargets = Array.from(\n ignoredSelector ? node.querySelectorAll(ignoredSelector) : [],\n );\n for (const childNode of ignoredTargets) {\n childNode.remove();\n }\n\n const unwrapTargets = Array.from(\n unwrapTagsSelector ? node.querySelectorAll(unwrapTagsSelector) : [],\n ).reverse();\n if (unwrapTags.has(tagName)) {\n unwrapTargets.push(node);\n }\n for (const childNode of unwrapTargets) {\n childNode.outerHTML = childNode.innerHTML;\n }\n\n return true;\n },\n },\n },\n },\n filters: {\n minPageNameSimilarity: 0.5,\n excludeOthersOnExactMatch: true,\n },\n search: {\n limit: 3,\n suggestion: true,\n },\n output: {\n maxSerializedLength: 25_000,\n maxDescriptionLength: 250,\n },\n };\n }\n\n protected _createRunOptions(overrides?: WikipediaToolRunOptions): WikipediaToolRunOptions {\n const baseKeys: ArrayKeys<Common<WikipediaToolRunOptions, WikipediaToolOptions>> = [\n \"filters\",\n \"search\",\n \"extraction\",\n \"retryOptions\",\n \"output\",\n ];\n\n return R.pipe(\n { ...this._defaultRunOptions },\n R.mergeDeep(R.pick(this.options ?? {}, baseKeys)),\n R.mergeDeep({ ...overrides }),\n );\n }\n\n protected async _run(\n { query: input }: ToolInput<WikipediaTool>,\n _options?: WikipediaToolRunOptions,\n ): Promise<WikipediaToolOutput> {\n const runOptions = this._createRunOptions(_options);\n\n const { results: searchRawResults, suggestion }: SearchResponse = await wiki.default.search(\n input,\n {\n suggestion: Boolean(_options?.search?.suggestion),\n ...runOptions.search,\n },\n );\n\n if (searchRawResults.length === 0 && suggestion && runOptions.search?.suggestion) {\n return await this._run({ query: suggestion }, _options);\n }\n\n const bestCandidates = this.extractBestCandidates(\n input,\n searchRawResults,\n runOptions?.filters ?? {},\n );\n\n const results = await Promise.all(\n bestCandidates.map(async ({ pageId }) => {\n // @ts-expect-error wrong library's typing, passing a string would lead to a classic text search instead of a concrete page retrieval\n const page = await wiki.default.page(pageId, {\n redirect: true,\n preload: false,\n fields: keys(runOptions.extraction?.fields ?? {}).filter((key) => key !== \"markdown\"),\n });\n\n return asyncProperties({\n title: page.title,\n description: ((): Promise<string> => {\n const length = runOptions?.output?.maxDescriptionLength ?? 0;\n return length <= 0\n ? Promise.resolve(\"\")\n : page.content().then((content) => content.substring(0, length));\n })(),\n url: page.fullurl,\n fields: asyncProperties(\n mapValues(runOptions?.extraction?.fields ?? {}, (value, key) =>\n this._mappers[key](page, runOptions)\n .then((response) => (value.transform ? value.transform(response) : response))\n .catch(() => undefined),\n ),\n ),\n });\n }),\n );\n return new WikipediaToolOutput(results, runOptions.output?.maxSerializedLength ?? Infinity);\n }\n\n protected extractBestCandidates(\n query: string,\n candidates: SearchResponse[\"results\"],\n options: FilterOptions,\n ) {\n const normalize = (text: string) =>\n text\n .normalize(\"NFKD\")\n .replace(/[^\\w| ]/g, \"\") // remove diacritics and special characters (except whitespace)\n .replace(/\\s\\s+/g, \" \") // collapse multiple whitespaces into one\n .trim();\n\n const bestCandidates = stringComparison.jaccardIndex\n .sortMatch(\n normalize(query),\n candidates.map((candidate) => normalize(candidate.title)),\n )\n .map((result) => ({\n pageId: candidates[result.index].pageid,\n score: result.rating,\n }))\n .filter((result) => result.score >= (options.minPageNameSimilarity ?? 0))\n .sort((a, b) => b.score - a.score);\n\n if (bestCandidates.at(0)?.score === 1 && options.excludeOthersOnExactMatch) {\n bestCandidates.length = 1;\n }\n\n return bestCandidates;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n config: this.config,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
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,11 +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 } from 'wikipedia';
3
+ import { searchOptions, pageFunctions, Page, pageResult } from 'wikipedia';
4
4
  import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOutput } from './base.cjs';
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.cjs';
7
- import { pageResult } from 'wikipedia/dist/resultTypes.js';
8
- import { E as Emitter } from '../../emitter-DWEsd-ud.cjs';
7
+ import { E as Emitter } from '../../emitter-CGKd_-kK.cjs';
9
8
  import '../../internals/serializable.cjs';
10
9
  import '../../internals/types.cjs';
11
10
  import '../../internals/helpers/guards.cjs';
@@ -1,11 +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 } from 'wikipedia';
3
+ import { searchOptions, pageFunctions, Page, pageResult } from 'wikipedia';
4
4
  import { SearchToolOptions, SearchToolRunOptions, SearchToolResult, SearchToolOutput } from './base.js';
5
5
  import { z } from 'zod';
6
6
  import { Tool, ToolEmitter, ToolInput } from '../base.js';
7
- import { pageResult } from 'wikipedia/dist/resultTypes.js';
8
- import { E as Emitter } from '../../emitter-C9nwGLt6.js';
7
+ import { E as Emitter } from '../../emitter-CN7I4uSV.js';
9
8
  import '../../internals/serializable.js';
10
9
  import '../../internals/types.js';
11
10
  import '../../internals/helpers/guards.js';
@@ -240,6 +240,7 @@ class WikipediaTool extends Tool {
240
240
  }));
241
241
  }
242
242
  async _run({ query: input }, _options) {
243
+ await patchAxiosUserAgent();
243
244
  const runOptions = this._createRunOptions(_options);
244
245
  const { results: searchRawResults, suggestion } = await wiki.default.search(input, {
245
246
  suggestion: Boolean(_options?.search?.suggestion),
@@ -304,6 +305,28 @@ _ts_decorate([
304
305
  _ts_metadata("design:type", typeof WikipediaToolRunOptions === "undefined" ? Object : WikipediaToolRunOptions),
305
306
  _ts_metadata("design:paramtypes", [])
306
307
  ], WikipediaTool.prototype, "_defaultRunOptions", null);
308
+ async function patchAxiosUserAgent() {
309
+ if (patchAxiosUserAgent.patched) {
310
+ return;
311
+ }
312
+ patchAxiosUserAgent.patched = true;
313
+ const doPatch = /* @__PURE__ */ __name((entry) => {
314
+ entry.defaults.headers.common["User-Agent"] = "BeeAI Framework";
315
+ }, "doPatch");
316
+ const { default: axios } = await import('axios');
317
+ doPatch(axios);
318
+ try {
319
+ const { createRequire } = await import('node:module');
320
+ const require2 = createRequire(import.meta.url);
321
+ const { default: axiosCjs } = await require2("axios");
322
+ if (axiosCjs !== axios) {
323
+ doPatch(axiosCjs);
324
+ }
325
+ } catch {
326
+ }
327
+ }
328
+ __name(patchAxiosUserAgent, "patchAxiosUserAgent");
329
+ patchAxiosUserAgent.patched = false;
307
330
 
308
331
  export { WikipediaTool, WikipediaToolOutput };
309
332
  //# sourceMappingURL=wikipedia.js.map
@@ -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","searchRawResults","bestCandidates","extractBestCandidates","Promise","all","pageId","redirect","preload","keys","key","asyncProperties","title","resolve","mapValues","value","catch","undefined","candidates","normalize","text","stringComparison","jaccardIndex","sortMatch","candidate","index","pageid","score","rating","sort","a","b","at","enumerable"],"mappings":"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","file":"wikipedia.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 { pageResult } from \"wikipedia/dist/resultTypes.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nwiki.default.setLang(\"en\");\n\nexport interface SearchOptions extends searchOptions {}\n\nexport interface FilterOptions {\n excludeOthersOnExactMatch?: boolean;\n minPageNameSimilarity?: number;\n}\n\nexport type PageFunctions = Record<\n pageFunctions,\n {\n transform?: <T>(output: T) => T;\n }\n> & {\n markdown: {\n transform?: (output: string) => string;\n filter?: (node: HTMLElement) => boolean;\n };\n};\n\nexport interface ExtractionOptions {\n fields?: Partial<PageFunctions>;\n}\n\nexport interface OutputOptions {\n maxSerializedLength?: number;\n maxDescriptionLength?: number;\n}\n\nexport interface WikipediaToolOptions extends SearchToolOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\nexport interface WikipediaToolRunOptions extends SearchToolRunOptions {\n filters?: FilterOptions;\n search?: SearchOptions;\n extraction?: ExtractionOptions;\n output?: OutputOptions;\n}\n\ntype PageWithMarkdown = Page & { markdown: () => Promise<string> };\n\ntype ResultFields = { [K in keyof PageFunctions]: Awaited<ReturnType<PageWithMarkdown[K]>> };\n\nexport interface WikipediaToolResult extends SearchToolResult {\n fields: Partial<ResultFields>;\n}\n\nexport class WikipediaToolOutput extends SearchToolOutput<WikipediaToolResult> {\n constructor(\n public readonly results: WikipediaToolResult[],\n protected readonly maxSerializedLength: number,\n ) {\n super(results);\n }\n\n static {\n this.register();\n }\n\n @Cache()\n getTextContent(): string {\n if (this.isEmpty()) {\n return `No results were found. Try to reformat your query.`;\n }\n\n const target = this.results.length === 1 ? this.results[0] : this.results;\n const response = JSON.stringify(target);\n\n return this.maxSerializedLength < Infinity\n ? response.substring(0, this.maxSerializedLength)\n : response;\n }\n\n createSnapshot() {\n return {\n results: this.results,\n maxSerializedLength: this.maxSerializedLength,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\ninterface SearchResponse {\n results: Pick<pageResult, \"title\" | \"pageid\">[];\n suggestion: string;\n}\n\nexport class WikipediaTool extends Tool<\n WikipediaToolOutput,\n WikipediaToolOptions,\n WikipediaToolRunOptions\n> {\n name = \"Wikipedia\";\n description =\n \"Search factual and historical information, including biography, history, politics, geography, society, culture, science, technology, people, animal species, mathematics, and other subjects.\";\n\n public readonly emitter: ToolEmitter<ToolInput<this>, WikipediaToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"wikipedia\"],\n creator: this,\n });\n\n inputSchema() {\n return z.object({\n query: z\n .string({ description: `Name of the wikipedia page, for example 'New York'` })\n .min(1)\n .max(128),\n });\n }\n\n public constructor(public readonly config: WikipediaToolOptions = {}) {\n super(config);\n }\n\n static {\n this.register();\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _mappers(): Record<\n keyof PageFunctions,\n (page: Page, runOptions: WikipediaToolRunOptions) => Promise<any>\n > {\n return {\n categories: (page) => page.categories(),\n content: (page) => page.content(),\n html: (page) => page.html(),\n markdown: async (page, runOptions) => {\n const html = await page.html().then((result) => {\n const url = new URL(page.fullurl);\n const base = `${url.protocol}//${[url.hostname, url.port].filter(Boolean).join(\":\")}`;\n return (\n result\n // Missing a protocol\n .replace(/(<img .*src=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n .replace(/(<a .*href=)\"(\\/\\/.*)\"/gm, `$1\"${url.protocol}$2\"`)\n\n // Missing a hostname\n .replace(/(<img .*src=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n .replace(/(<a .*href=)\"(\\/.*)\"/gm, `$1\"${base}$2\"`)\n );\n });\n\n const service = new Turndown();\n service.use(turndownPlugin.gfm);\n return service\n .remove((node) => runOptions.extraction?.fields?.markdown?.filter?.(node) === false)\n .turndown(html);\n },\n images: (page) => page.images(),\n intro: (page) => page.intro(),\n infobox: (page) => page.infobox(),\n links: (page) => page.links(),\n coordinates: (page) => page.coordinates(),\n langLinks: (page) => page.langLinks(),\n references: (page) => page.references(),\n related: (page) => page.related(),\n summary: (page) => page.summary(),\n tables: (page) => page.tables(),\n };\n }\n\n @Cache({\n enumerable: false,\n })\n protected get _defaultRunOptions(): WikipediaToolRunOptions {\n const unwrapTags = new Set([\"a\", \"small\", \"sup\"]);\n const unwrapTagsSelector = Array.from(unwrapTags.values()).join(\",\");\n\n const ignoredTags = new Set([\n \"img\",\n \"link\",\n \"style\",\n \"abbr\",\n \"cite\",\n \"input\",\n \"sup\",\n \"bdi\",\n \"q\",\n \"figure\",\n \"audio\",\n \"track\",\n \"figcaption\",\n ]);\n const ignoredClasses = new Set([\n \"toc\",\n \"reflist\",\n \"mw-references-wrap\",\n \"box-More_footnotes_needed\",\n \"navbox\",\n \"navbox-styles\",\n \"mw-editsection\",\n \"sistersitebox\",\n \"navbox-inner\",\n \"refbegin\",\n \"notpageimage\",\n \"mw-file-element\",\n \"box-Unreferenced_section\",\n \"navigation-not-searchable\",\n \"noexcerpt\",\n \"infobox-image\",\n \"mw-tmh-player\",\n \"printfooter\",\n \"ambox\",\n \"infobox\",\n ]);\n const ignoredRoles = new Set([\"navigation\"]);\n\n const ignoredSelector = [\n ...ignoredTags.values(),\n Array.from(ignoredClasses.values()).map((cls) => `.${cls}`),\n Array.from(ignoredRoles.values()).map((role) => `[role=\"${role}\"]`),\n \"table>caption\",\n ].join(\",\");\n\n return {\n extraction: {\n fields: {\n markdown: {\n transform: (output: string) => output.replace(/([^\\\\])(\\$)/g, `$1\\\\$2`),\n filter: (node) => {\n const tagName = node.tagName.toLowerCase();\n if (ignoredTags.has(tagName) || ignoredRoles.has(node.role ?? \"\")) {\n return false;\n }\n\n for (const cls of node.className.trim().split(\" \").filter(Boolean)) {\n if (ignoredClasses.has(cls)) {\n return false;\n }\n }\n\n for (const table of Array.from(node.querySelectorAll(\"table tr>th\"))) {\n let colspan = parseInt(table.getAttribute(\"colspan\") || \"1\");\n while (colspan > 1) {\n table.insertAdjacentHTML(\"afterend\", `<th>&nbsp;</th>`);\n colspan--;\n }\n table.removeAttribute(\"colspan\");\n }\n\n const ignoredTargets = Array.from(\n ignoredSelector ? node.querySelectorAll(ignoredSelector) : [],\n );\n for (const childNode of ignoredTargets) {\n childNode.remove();\n }\n\n const unwrapTargets = Array.from(\n unwrapTagsSelector ? node.querySelectorAll(unwrapTagsSelector) : [],\n ).reverse();\n if (unwrapTags.has(tagName)) {\n unwrapTargets.push(node);\n }\n for (const childNode of unwrapTargets) {\n childNode.outerHTML = childNode.innerHTML;\n }\n\n return true;\n },\n },\n },\n },\n filters: {\n minPageNameSimilarity: 0.5,\n excludeOthersOnExactMatch: true,\n },\n search: {\n limit: 3,\n suggestion: true,\n },\n output: {\n maxSerializedLength: 25_000,\n maxDescriptionLength: 250,\n },\n };\n }\n\n protected _createRunOptions(overrides?: WikipediaToolRunOptions): WikipediaToolRunOptions {\n const baseKeys: ArrayKeys<Common<WikipediaToolRunOptions, WikipediaToolOptions>> = [\n \"filters\",\n \"search\",\n \"extraction\",\n \"retryOptions\",\n \"output\",\n ];\n\n return R.pipe(\n { ...this._defaultRunOptions },\n R.mergeDeep(R.pick(this.options ?? {}, baseKeys)),\n R.mergeDeep({ ...overrides }),\n );\n }\n\n protected async _run(\n { query: input }: ToolInput<WikipediaTool>,\n _options?: WikipediaToolRunOptions,\n ): Promise<WikipediaToolOutput> {\n const runOptions = this._createRunOptions(_options);\n\n const { results: searchRawResults, suggestion }: SearchResponse = await wiki.default.search(\n input,\n {\n suggestion: Boolean(_options?.search?.suggestion),\n ...runOptions.search,\n },\n );\n\n if (searchRawResults.length === 0 && suggestion && runOptions.search?.suggestion) {\n return await this._run({ query: suggestion }, _options);\n }\n\n const bestCandidates = this.extractBestCandidates(\n input,\n searchRawResults,\n runOptions?.filters ?? {},\n );\n\n const results = await Promise.all(\n bestCandidates.map(async ({ pageId }) => {\n // @ts-expect-error wrong library's typing, passing a string would lead to a classic text search instead of a concrete page retrieval\n const page = await wiki.default.page(pageId, {\n redirect: true,\n preload: false,\n fields: keys(runOptions.extraction?.fields ?? {}).filter((key) => key !== \"markdown\"),\n });\n\n return asyncProperties({\n title: page.title,\n description: ((): Promise<string> => {\n const length = runOptions?.output?.maxDescriptionLength ?? 0;\n return length <= 0\n ? Promise.resolve(\"\")\n : page.content().then((content) => content.substring(0, length));\n })(),\n url: page.fullurl,\n fields: asyncProperties(\n mapValues(runOptions?.extraction?.fields ?? {}, (value, key) =>\n this._mappers[key](page, runOptions)\n .then((response) => (value.transform ? value.transform(response) : response))\n .catch(() => undefined),\n ),\n ),\n });\n }),\n );\n return new WikipediaToolOutput(results, runOptions.output?.maxSerializedLength ?? Infinity);\n }\n\n protected extractBestCandidates(\n query: string,\n candidates: SearchResponse[\"results\"],\n options: FilterOptions,\n ) {\n const normalize = (text: string) =>\n text\n .normalize(\"NFKD\")\n .replace(/[^\\w| ]/g, \"\") // remove diacritics and special characters (except whitespace)\n .replace(/\\s\\s+/g, \" \") // collapse multiple whitespaces into one\n .trim();\n\n const bestCandidates = stringComparison.jaccardIndex\n .sortMatch(\n normalize(query),\n candidates.map((candidate) => normalize(candidate.title)),\n )\n .map((result) => ({\n pageId: candidates[result.index].pageid,\n score: result.rating,\n }))\n .filter((result) => result.score >= (options.minPageNameSimilarity ?? 0))\n .sort((a, b) => b.score - a.score);\n\n if (bestCandidates.at(0)?.score === 1 && options.excludeOthersOnExactMatch) {\n bestCandidates.length = 1;\n }\n\n return bestCandidates;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n config: this.config,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/search/wikipedia.ts"],"names":["wiki","default","setLang","WikipediaToolOutput","SearchToolOutput","results","maxSerializedLength","register","getTextContent","isEmpty","target","length","response","JSON","stringify","Infinity","substring","createSnapshot","loadSnapshot","snapshot","Object","assign","WikipediaTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","z","object","query","string","min","max","config","_mappers","categories","page","content","html","markdown","runOptions","then","result","url","URL","fullurl","base","protocol","hostname","port","filter","Boolean","join","replace","service","Turndown","use","turndownPlugin","gfm","remove","node","extraction","fields","turndown","images","intro","infobox","links","coordinates","langLinks","references","related","summary","tables","_defaultRunOptions","unwrapTags","Set","unwrapTagsSelector","Array","from","values","ignoredTags","ignoredClasses","ignoredRoles","ignoredSelector","map","cls","role","transform","output","tagName","toLowerCase","has","className","trim","split","table","querySelectorAll","colspan","parseInt","getAttribute","insertAdjacentHTML","removeAttribute","ignoredTargets","childNode","unwrapTargets","reverse","push","outerHTML","innerHTML","filters","minPageNameSimilarity","excludeOthersOnExactMatch","search","limit","suggestion","maxDescriptionLength","_createRunOptions","overrides","baseKeys","R","pipe","mergeDeep","pick","options","_run","input","_options","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":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2BAA,IAAAA,CAAKC,OAAAA,CAAQC,QAAQ,IAAA,CAAA;AAoDd,MAAMC,4BAA4BC,gBAAAA,CAAAA;AAAAA,EAAAA;;;;;AACvC,EAAA,WAAA,CACkBC,SACGC,mBAAAA,EACnB;AACA,IAAA,KAAA,CAAMD,OAAAA,CAAAA,EAAAA,IAAAA,CAHUA,OAAAA,GAAAA,OAAAA,EAAAA,KACGC,mBAAAA,GAAAA,mBAAAA;AAGrB;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAGAC,cAAAA,GAAyB;AACvB,IAAA,IAAI,IAAA,CAAKC,SAAO,EAAI;AAClB,MAAA,OAAO,CAAA,kDAAA,CAAA;AACT;AAEA,IAAA,MAAMC,MAAAA,GAAS,KAAKL,OAAAA,CAAQM,MAAAA,KAAW,IAAI,IAAA,CAAKN,OAAAA,CAAQ,CAAA,CAAA,GAAK,IAAA,CAAKA,OAAAA;AAClE,IAAA,MAAMO,QAAAA,GAAWC,IAAAA,CAAKC,SAAAA,CAAUJ,MAAAA,CAAAA;AAEhC,IAAA,OAAO,IAAA,CAAKJ,sBAAsBS,QAAAA,GAC9BH,QAAAA,CAASI,UAAU,CAAA,EAAG,IAAA,CAAKV,mBAAmB,CAAA,GAC9CM,QAAAA;AACN;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLZ,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdC,MAAAA,mBAAAA,EAAqB,IAAA,CAAKA;AAC5B,KAAA;AACF;AAEAY,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;;;;;;;AAOO,MAAMG,sBAAsBC,IAAAA,CAAAA;AAAAA,EAAAA;;;;EAKjCC,IAAAA,GAAO,WAAA;EACPC,WAAAA,GACE,+LAAA;EAEcC,OAAAA,GAA6DC,OAAAA,CAAQC,KAAKC,KAAAA,CAAM;IAC9FC,SAAAA,EAAW;AAAC,MAAA,MAAA;AAAQ,MAAA,QAAA;AAAU,MAAA;;IAC9BC,OAAAA,EAAS;GACX,CAAA;EAEAC,WAAAA,GAAc;AACZ,IAAA,OAAOC,EAAEC,MAAAA,CAAO;AACdC,MAAAA,KAAAA,EAAOF,EACJG,MAAAA,CAAO;QAAEX,WAAAA,EAAa,CAAA,kDAAA;AAAqD,OAAA,CAAA,CAC3EY,GAAAA,CAAI,CAAA,CAAA,CACJC,IAAI,GAAA;KACT,CAAA;AACF;EAEA,WAAA,CAAmCC,MAAAA,GAA+B,EAAC,EAAG;AACpE,IAAA,KAAA,CAAMA,MAAAA,CAAAA,EAAAA,IAAAA,CAD2BA,MAAAA,GAAAA,MAAAA;AAEnC;EAEA;AACE,IAAA,IAAA,CAAKhC,QAAAA,EAAQ;AACf;AAEA,EAAA,IAGciC,QAAAA,GAGZ;AACA,IAAA,OAAO;AACLC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,CAACC,IAAAA,KAASA,IAAAA,CAAKD,UAAAA,EAAU,EAAzB,YAAA,CAAA;AACZE,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACD,IAAAA,KAASA,IAAAA,CAAKC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,IAAAA,kBAAM,MAAA,CAAA,CAACF,IAAAA,KAASA,IAAAA,CAAKE,IAAAA,EAAI,EAAnB,MAAA,CAAA;MACNC,QAAAA,kBAAU,MAAA,CAAA,OAAOH,MAAMI,UAAAA,KAAAA;AACrB,QAAA,MAAMF,OAAO,MAAMF,IAAAA,CAAKE,MAAI,CAAGG,IAAAA,CAAK,CAACC,MAAAA,KAAAA;AACnC,UAAA,MAAMC,GAAAA,GAAM,IAAIC,GAAAA,CAAIR,IAAAA,CAAKS,OAAO,CAAA;AAChC,UAAA,MAAMC,IAAAA,GAAO,CAAA,EAAGH,GAAAA,CAAII,QAAQ,CAAA,EAAA,EAAK;YAACJ,GAAAA,CAAIK,QAAAA;YAAUL,GAAAA,CAAIM;AAAMC,WAAAA,CAAAA,MAAAA,CAAOC,OAAAA,CAAAA,CAASC,IAAAA,CAAK,GAAA,CAAA,CAAA,CAAA;AAC/E,UAAA,OACEV,MAAAA,CAEGW,OAAAA,CAAQ,2BAAA,EAA6B,CAAA,GAAA,EAAMV,GAAAA,CAAII,QAAQ,CAAA,GAAA,CAAK,CAAA,CAC5DM,OAAAA,CAAQ,0BAAA,EAA4B,CAAA,GAAA,EAAMV,GAAAA,CAAII,QAAQ,CAAA,GAAA,CAAK,CAAA,CAG3DM,OAAAA,CAAQ,yBAAA,EAA2B,CAAA,GAAA,EAAMP,IAAAA,CAAAA,GAAAA,CAAS,CAAA,CAClDO,OAAAA,CAAQ,wBAAA,EAA0B,CAAA,GAAA,EAAMP,IAAAA,CAAAA,GAAAA,CAAS,CAAA;SAExD,CAAA;AAEA,QAAA,MAAMQ,OAAAA,GAAU,IAAIC,QAAAA,EAAAA;AACpBD,QAAAA,OAAAA,CAAQE,GAAAA,CAAIC,eAAeC,GAAG,CAAA;AAC9B,QAAA,OAAOJ,OAAAA,CACJK,MAAAA,CAAO,CAACC,IAAAA,KAASpB,WAAWqB,UAAAA,EAAYC,MAAAA,EAAQvB,QAAAA,EAAUW,MAAAA,GAASU,IAAAA,CAAAA,KAAU,KAAA,CAAA,CAC7EG,SAASzB,IAAAA,CAAAA;OACd,EArBU,UAAA,CAAA;AAsBV0B,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,CAAC5B,IAAAA,KAASA,IAAAA,CAAK4B,MAAAA,EAAM,EAArB,QAAA,CAAA;AACRC,MAAAA,KAAAA,kBAAO,MAAA,CAAA,CAAC7B,IAAAA,KAASA,IAAAA,CAAK6B,KAAAA,EAAK,EAApB,OAAA,CAAA;AACPC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAAC9B,IAAAA,KAASA,IAAAA,CAAK8B,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,KAAAA,kBAAO,MAAA,CAAA,CAAC/B,IAAAA,KAASA,IAAAA,CAAK+B,KAAAA,EAAK,EAApB,OAAA,CAAA;AACPC,MAAAA,WAAAA,kBAAa,MAAA,CAAA,CAAChC,IAAAA,KAASA,IAAAA,CAAKgC,WAAAA,EAAW,EAA1B,aAAA,CAAA;AACbC,MAAAA,SAAAA,kBAAW,MAAA,CAAA,CAACjC,IAAAA,KAASA,IAAAA,CAAKiC,SAAAA,EAAS,EAAxB,WAAA,CAAA;AACXC,MAAAA,UAAAA,kBAAY,MAAA,CAAA,CAAClC,IAAAA,KAASA,IAAAA,CAAKkC,UAAAA,EAAU,EAAzB,YAAA,CAAA;AACZC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACnC,IAAAA,KAASA,IAAAA,CAAKmC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,OAAAA,kBAAS,MAAA,CAAA,CAACpC,IAAAA,KAASA,IAAAA,CAAKoC,OAAAA,EAAO,EAAtB,SAAA,CAAA;AACTC,MAAAA,MAAAA,kBAAQ,MAAA,CAAA,CAACrC,IAAAA,KAASA,IAAAA,CAAKqC,MAAAA,EAAM,EAArB,QAAA;AACV,KAAA;AACF;AAEA,EAAA,IAGcC,kBAAAA,GAA8C;AAC1D,IAAA,MAAMC,UAAAA,uBAAiBC,GAAAA,CAAI;AAAC,MAAA,GAAA;AAAK,MAAA,OAAA;AAAS,MAAA;AAAM,KAAA,CAAA;AAChD,IAAA,MAAMC,kBAAAA,GAAqBC,MAAMC,IAAAA,CAAKJ,UAAAA,CAAWK,QAAM,CAAA,CAAI5B,KAAK,GAAA,CAAA;AAEhE,IAAA,MAAM6B,WAAAA,uBAAkBL,GAAAA,CAAI;AAC1B,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,KAAA;AACA,MAAA,GAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA;AACD,KAAA,CAAA;AACD,IAAA,MAAMM,cAAAA,uBAAqBN,GAAAA,CAAI;AAC7B,MAAA,KAAA;AACA,MAAA,SAAA;AACA,MAAA,oBAAA;AACA,MAAA,2BAAA;AACA,MAAA,QAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,0BAAA;AACA,MAAA,2BAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,OAAA;AACA,MAAA;AACD,KAAA,CAAA;AACD,IAAA,MAAMO,YAAAA,uBAAmBP,GAAAA,CAAI;AAAC,MAAA;AAAa,KAAA,CAAA;AAE3C,IAAA,MAAMQ,eAAAA,GAAkB;AACnBH,MAAAA,GAAAA,WAAAA,CAAYD,MAAAA,EAAM;MACrBF,KAAAA,CAAMC,IAAAA,CAAKG,cAAAA,CAAeF,MAAAA,EAAM,CAAA,CAAIK,IAAI,CAACC,GAAAA,KAAQ,CAAA,CAAA,EAAIA,GAAAA,CAAAA,CAAK,CAAA;MAC1DR,KAAAA,CAAMC,IAAAA,CAAKI,YAAAA,CAAaH,MAAAA,EAAM,CAAA,CAAIK,IAAI,CAACE,IAAAA,KAAS,CAAA,OAAA,EAAUA,IAAAA,CAAAA,EAAAA,CAAQ,CAAA;AAClE,MAAA;AACAnC,KAAAA,CAAAA,IAAAA,CAAK,GAAA,CAAA;AAEP,IAAA,OAAO;MACLS,UAAAA,EAAY;QACVC,MAAAA,EAAQ;UACNvB,QAAAA,EAAU;AACRiD,YAAAA,SAAAA,0BAAYC,MAAAA,KAAmBA,MAAAA,CAAOpC,OAAAA,CAAQ,cAAA,EAAgB,QAAQ,CAAA,EAA3D,WAAA,CAAA;AACXH,YAAAA,MAAAA,0BAASU,IAAAA,KAAAA;AACP,cAAA,MAAM8B,OAAAA,GAAU9B,IAAAA,CAAK8B,OAAAA,CAAQC,WAAAA,EAAW;AACxC,cAAA,IAAIV,WAAAA,CAAYW,IAAIF,OAAAA,CAAAA,IAAYP,aAAaS,GAAAA,CAAIhC,IAAAA,CAAK2B,IAAAA,IAAQ,EAAA,CAAA,EAAK;AACjE,gBAAA,OAAO,KAAA;AACT;AAEA,cAAA,KAAA,MAAWD,GAAAA,IAAO1B,IAAAA,CAAKiC,SAAAA,CAAUC,IAAAA,EAAI,CAAGC,MAAM,GAAA,CAAA,CAAK7C,MAAAA,CAAOC,OAAAA,CAAAA,EAAU;AAClE,gBAAA,IAAI+B,cAAAA,CAAeU,GAAAA,CAAIN,GAAAA,CAAAA,EAAM;AAC3B,kBAAA,OAAO,KAAA;AACT;AACF;AAEA,cAAA,KAAA,MAAWU,SAASlB,KAAAA,CAAMC,IAAAA,CAAKnB,KAAKqC,gBAAAA,CAAiB,aAAA,CAAA,CAAA,EAAiB;AACpE,gBAAA,IAAIC,UAAUC,QAAAA,CAASH,KAAAA,CAAMI,YAAAA,CAAa,SAAA,KAAc,GAAA,CAAA;AACxD,gBAAA,OAAOF,UAAU,CAAA,EAAG;AAClBF,kBAAAA,KAAAA,CAAMK,kBAAAA,CAAmB,YAAY,CAAA,eAAA,CAAiB,CAAA;AACtDH,kBAAAA,OAAAA,EAAAA;AACF;AACAF,gBAAAA,KAAAA,CAAMM,gBAAgB,SAAA,CAAA;AACxB;AAEA,cAAA,MAAMC,cAAAA,GAAiBzB,MAAMC,IAAAA,CAC3BK,eAAAA,GAAkBxB,KAAKqC,gBAAAA,CAAiBb,eAAAA,CAAAA,GAAmB,EAAE,CAAA;AAE/D,cAAA,KAAA,MAAWoB,aAAaD,cAAAA,EAAgB;AACtCC,gBAAAA,SAAAA,CAAU7C,MAAAA,EAAM;AAClB;AAEA,cAAA,MAAM8C,aAAAA,GAAgB3B,KAAAA,CAAMC,IAAAA,CAC1BF,kBAAAA,GAAqBjB,IAAAA,CAAKqC,gBAAAA,CAAiBpB,kBAAAA,CAAAA,GAAsB,EAAE,CAAA,CACnE6B,OAAAA,EAAO;AACT,cAAA,IAAI/B,UAAAA,CAAWiB,GAAAA,CAAIF,OAAAA,CAAAA,EAAU;AAC3Be,gBAAAA,aAAAA,CAAcE,KAAK/C,IAAAA,CAAAA;AACrB;AACA,cAAA,KAAA,MAAW4C,aAAaC,aAAAA,EAAe;AACrCD,gBAAAA,SAAAA,CAAUI,YAAYJ,SAAAA,CAAUK,SAAAA;AAClC;AAEA,cAAA,OAAO,IAAA;aACT,EAvCQ,QAAA;AAwCV;AACF;AACF,OAAA;MACAC,OAAAA,EAAS;QACPC,qBAAAA,EAAuB,GAAA;QACvBC,yBAAAA,EAA2B;AAC7B,OAAA;MACAC,MAAAA,EAAQ;QACNC,KAAAA,EAAO,CAAA;QACPC,UAAAA,EAAY;AACd,OAAA;MACA1B,MAAAA,EAAQ;QACNzF,mBAAAA,EAAqB,IAAA;QACrBoH,oBAAAA,EAAsB;AACxB;AACF,KAAA;AACF;AAEUC,EAAAA,iBAAAA,CAAkBC,SAAAA,EAA8D;AACxF,IAAA,MAAMC,QAAAA,GAA6E;AACjF,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,cAAA;AACA,MAAA;;AAGF,IAAA,OAAOC,EAAEC,IAAAA,CACP;AAAE,MAAA,GAAG,IAAA,CAAK/C;AAAmB,KAAA,EAC7B8C,CAAAA,CAAEE,SAAAA,CAAUF,CAAAA,CAAEG,IAAAA,CAAK,IAAA,CAAKC,OAAAA,IAAW,EAAC,EAAGL,QAAAA,CAAAA,CAAAA,EACvCC,CAAAA,CAAEE,SAAAA,CAAU;MAAE,GAAGJ;AAAU,KAAA,CAAA,CAAA;AAE/B;AAEA,EAAA,MAAgBO,IAAAA,CACd,EAAEhG,KAAAA,EAAOiG,KAAAA,IACTC,QAAAA,EAC8B;AAC9B,IAAA,MAAMC,mBAAAA,EAAAA;AAEN,IAAA,MAAMxF,UAAAA,GAAa,IAAA,CAAK6E,iBAAAA,CAAkBU,QAAAA,CAAAA;AAE1C,IAAA,MAAM,EAAEhI,SAASkI,gBAAAA,EAAkBd,UAAAA,KAA+B,MAAMzH,IAAAA,CAAKC,OAAAA,CAAQsH,MAAAA,CACnFa,KAAAA,EACA;MACEX,UAAAA,EAAYhE,OAAAA,CAAQ4E,QAAAA,EAAUd,MAAAA,EAAQE,UAAAA,CAAAA;AACtC,MAAA,GAAG3E,UAAAA,CAAWyE;KAChB,CAAA;AAGF,IAAA,IAAIgB,iBAAiB5H,MAAAA,KAAW,CAAA,IAAK8G,UAAAA,IAAc3E,UAAAA,CAAWyE,QAAQE,UAAAA,EAAY;AAChF,MAAA,OAAO,MAAM,KAAKU,IAAAA,CAAK;QAAEhG,KAAAA,EAAOsF;AAAW,OAAA,EAAGY,QAAAA,CAAAA;AAChD;AAEA,IAAA,MAAMG,cAAAA,GAAiB,KAAKC,qBAAAA,CAC1BL,KAAAA,EACAG,kBACAzF,UAAAA,EAAYsE,OAAAA,IAAW,EAAC,CAAA;AAG1B,IAAA,MAAM/G,OAAAA,GAAU,MAAMqI,OAAAA,CAAQC,GAAAA,CAC5BH,eAAe7C,GAAAA,CAAI,OAAO,EAAEiD,MAAAA,EAAM,KAAE;AAElC,MAAA,MAAMlG,IAAAA,GAAO,MAAM1C,IAAAA,CAAKC,OAAAA,CAAQyC,KAAKkG,MAAAA,EAAQ;QAC3CC,QAAAA,EAAU,IAAA;QACVC,OAAAA,EAAS,KAAA;QACT1E,MAAAA,EAAQ2E,IAAAA,CAAKjG,UAAAA,CAAWqB,UAAAA,EAAYC,MAAAA,IAAU,EAAC,CAAA,CAAGZ,MAAAA,CAAO,CAACwF,GAAAA,KAAQA,GAAAA,KAAQ,UAAA;OAC5E,CAAA;AAEA,MAAA,OAAOC,eAAAA,CAAgB;AACrBC,QAAAA,KAAAA,EAAOxG,IAAAA,CAAKwG,KAAAA;AACZzH,QAAAA,WAAAA,EAAAA,CAAc,MAAA;AACZ,UAAA,MAAMd,MAAAA,GAASmC,UAAAA,EAAYiD,MAAAA,EAAQ2B,oBAAAA,IAAwB,CAAA;AAC3D,UAAA,OAAO/G,UAAU,CAAA,GACb+H,OAAAA,CAAQS,OAAAA,CAAQ,EAAA,IAChBzG,IAAAA,CAAKC,OAAAA,EAAO,CAAGI,IAAAA,CAAK,CAACJ,OAAAA,KAAYA,OAAAA,CAAQ3B,SAAAA,CAAU,CAAA,EAAGL,MAAAA,CAAAA,CAAAA;SAC5D,GAAA;AACAsC,QAAAA,GAAAA,EAAKP,IAAAA,CAAKS,OAAAA;AACViB,QAAAA,MAAAA,EAAQ6E,eAAAA,CACNG,SAAAA,CAAUtG,UAAAA,EAAYqB,UAAAA,EAAYC,UAAU,EAAC,EAAG,CAACiF,KAAAA,EAAOL,GAAAA,KACtD,IAAA,CAAKxG,QAAAA,CAASwG,GAAAA,EAAKtG,IAAAA,EAAMI,UAAAA,CAAAA,CACtBC,IAAAA,CAAK,CAACnC,QAAAA,KAAcyI,KAAAA,CAAMvD,SAAAA,GAAYuD,MAAMvD,SAAAA,CAAUlF,QAAAA,CAAAA,GAAYA,QAAAA,CAAAA,CAClE0I,KAAAA,CAAM,MAAMC,MAAAA,CAAAA,CAAAA;OAGrB,CAAA;AACF,KAAA,CAAA,CAAA;AAEF,IAAA,OAAO,IAAIpJ,mBAAAA,CAAoBE,OAAAA,EAASyC,UAAAA,CAAWiD,MAAAA,EAAQzF,uBAAuBS,QAAAA,CAAAA;AACpF;EAEU0H,qBAAAA,CACRtG,KAAAA,EACAqH,YACAtB,OAAAA,EACA;AACA,IAAA,MAAMuB,4BAAY,MAAA,CAAA,CAACC,IAAAA,KACjBA,IAAAA,CACGD,SAAAA,CAAU,MAAA,CAAA,CACV9F,OAAAA,CAAQ,UAAA,EAAY,EAAA,EACpBA,OAAAA,CAAQ,QAAA,EAAU,GAAA,CAAA,CAClByC,MAAI,EALS,WAAA,CAAA;AAOlB,IAAA,MAAMoC,iBAAiBmB,gBAAAA,CAAiBC,YAAAA,CACrCC,UACCJ,SAAAA,CAAUtH,KAAAA,GACVqH,UAAAA,CAAW7D,GAAAA,CAAI,CAACmE,SAAAA,KAAcL,SAAAA,CAAUK,UAAUZ,KAAK,CAAA,CAAA,CAAA,CAExDvD,GAAAA,CAAI,CAAC3C,MAAAA,MAAY;MAChB4F,MAAAA,EAAQY,UAAAA,CAAWxG,MAAAA,CAAO+G,KAAK,CAAA,CAAEC,MAAAA;AACjCC,MAAAA,KAAAA,EAAOjH,MAAAA,CAAOkH;AAChB,KAAA,CAAA,EACC1G,MAAAA,CAAO,CAACR,MAAAA,KAAWA,MAAAA,CAAOiH,UAAU/B,OAAAA,CAAQb,qBAAAA,IAAyB,CAAA,CAAA,CAAA,CACrE8C,KAAK,CAACC,CAAAA,EAAGC,MAAMA,CAAAA,CAAEJ,KAAAA,GAAQG,EAAEH,KAAK,CAAA;AAEnC,IAAA,IAAIzB,eAAe8B,EAAAA,CAAG,CAAA,GAAIL,KAAAA,KAAU,CAAA,IAAK/B,QAAQZ,yBAAAA,EAA2B;AAC1EkB,MAAAA,cAAAA,CAAe7H,MAAAA,GAAS,CAAA;AAC1B;AAEA,IAAA,OAAO6H,cAAAA;AACT;EAEAvH,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTsB,MAAAA,MAAAA,EAAQ,IAAA,CAAKA;AACf,KAAA;AACF;AAEArB,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7D,IAAA,KAAA,CAAMD,aAAaC,QAAAA,CAAAA;AACrB;AACF;;;IAnRIoJ,UAAAA,EAAY;;;;;;;IA8CZA,UAAAA,EAAY;;;;;AAuOhB,eAAejC,mBAAAA,GAAAA;AACb,EAAA,IAAIA,oBAAoBkC,OAAAA,EAAS;AAC/B,IAAA;AACF;AACAlC,EAAAA,mBAAAA,CAAoBkC,OAAAA,GAAU,IAAA;AAE9B,EAAA,MAAMC,OAAAA,2BAAWC,KAAAA,KAAAA;AACfA,IAAAA,KAAAA,CAAMC,QAAAA,CAASC,OAAAA,CAAQC,MAAAA,CAAO,YAAA,CAAA,GAAgB,iBAAA;GAChD,EAFgB,SAAA,CAAA;AAIhB,EAAA,MAAM,EAAE5K,OAAAA,EAAS6K,KAAAA,EAAK,GAAK,MAAM,OAAO,OAAA,CAAA;AACxCL,EAAAA,OAAAA,CAAQK,KAAAA,CAAAA;AAER,EAAA,IAAI;AACF,IAAA,MAAM,EAAEC,aAAAA,EAAa,GAAK,MAAM,OAAO,aAAA,CAAA;AACvC,IAAA,MAAMC,QAAAA,GAAUD,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAY9H,GAAG,CAAA;AAC7C,IAAA,MAAM,EAAEhD,OAAAA,EAASgL,QAAAA,EAAQ,GAAK,MAAMD,SAAQ,OAAA,CAAA;AAC5C,IAAA,IAAIC,aAAaH,KAAAA,EAAO;AACtBL,MAAAA,OAAAA,CAAQQ,QAAAA,CAAAA;AACV;GACF,CAAA,MAAQ;AAER;AACF;AAvBe3C,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAwBfA,mBAAAA,CAAoBkC,OAAAA,GAAU,KAAA","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"]}
@@ -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-DWEsd-ud.cjs';
13
+ import '../emitter-CGKd_-kK.cjs';
14
14
  import '../internals/helpers/promise.cjs';
15
15
 
16
16
  /**
@@ -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-C9nwGLt6.js';
13
+ import '../emitter-CN7I4uSV.js';
14
14
  import '../internals/helpers/promise.js';
15
15
 
16
16
  /**
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+ var base_cjs = require('./base.cjs');
5
+ var emitter_cjs = require('../emitter/emitter.cjs');
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ const ThinkSchema = zod.z.object({
10
+ thoughts: zod.z.string().describe("Precisely describe what you are thinking about.")
11
+ });
12
+ class ThinkTool extends base_cjs.Tool {
13
+ static {
14
+ __name(this, "ThinkTool");
15
+ }
16
+ name = "think";
17
+ description = "Use when you want to think through a problem, clarify your assumptions, or break down complex steps before acting or responding.";
18
+ emitter;
19
+ _inputSchema;
20
+ _toolOutput;
21
+ _extraInstructions;
22
+ constructor(options = {}) {
23
+ super(options);
24
+ this._inputSchema = options.schema ?? ThinkSchema;
25
+ this._toolOutput = options.toolOutput ?? "OK";
26
+ this._extraInstructions = options.extraInstructions ?? "";
27
+ if (this._extraInstructions) {
28
+ this.description += ` ${this._extraInstructions}`;
29
+ }
30
+ this.emitter = this.createEmitter();
31
+ }
32
+ inputSchema() {
33
+ return this._inputSchema;
34
+ }
35
+ async _run(input, _options, _context) {
36
+ const output = typeof this._toolOutput === "function" ? this._toolOutput(input) : this._toolOutput;
37
+ return new base_cjs.StringToolOutput(output);
38
+ }
39
+ createEmitter() {
40
+ return emitter_cjs.Emitter.root.child({
41
+ namespace: [
42
+ "tool",
43
+ "think"
44
+ ],
45
+ creator: this
46
+ });
47
+ }
48
+ }
49
+
50
+ exports.ThinkTool = ThinkTool;
51
+ //# sourceMappingURL=think.cjs.map
52
+ //# sourceMappingURL=think.cjs.map
@@ -0,0 +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"]}
@@ -0,0 +1,47 @@
1
+ import { z, ZodSchema } from 'zod';
2
+ import { BaseToolOptions, StringToolOutput, Tool, BaseToolRunOptions } from './base.cjs';
3
+ import { RunContext } from '../context.cjs';
4
+ import { E as Emitter } from '../emitter-CGKd_-kK.cjs';
5
+ import 'ajv';
6
+ import '../errors.cjs';
7
+ import '../internals/types.cjs';
8
+ import '../internals/helpers/guards.cjs';
9
+ import '../internals/serializable.cjs';
10
+ import 'promise-based-task';
11
+ import '../cache/base.cjs';
12
+ import '../internals/helpers/schema.cjs';
13
+ import 'zod-to-json-schema';
14
+ import '../internals/helpers/promise.cjs';
15
+
16
+ /**
17
+ * Copyright 2025 © BeeAI a Series of LF Projects, LLC
18
+ * SPDX-License-Identifier: Apache-2.0
19
+ */
20
+
21
+ declare const ThinkSchema: z.ZodObject<{
22
+ thoughts: z.ZodString;
23
+ }, "strip", z.ZodTypeAny, {
24
+ thoughts: string;
25
+ }, {
26
+ thoughts: string;
27
+ }>;
28
+ type ThinkInput = z.infer<typeof ThinkSchema>;
29
+ interface ThinkToolOptions extends BaseToolOptions<StringToolOutput> {
30
+ extraInstructions?: string;
31
+ toolOutput?: string | ((input: ThinkInput) => string);
32
+ schema?: ZodSchema;
33
+ }
34
+ declare class ThinkTool extends Tool<StringToolOutput, ThinkToolOptions> {
35
+ name: string;
36
+ description: string;
37
+ readonly emitter: Emitter<any>;
38
+ protected _inputSchema: ZodSchema;
39
+ protected _toolOutput: string | ((input: ThinkInput) => string);
40
+ protected _extraInstructions: string;
41
+ constructor(options?: ThinkToolOptions);
42
+ inputSchema(): ZodSchema;
43
+ _run(input: ThinkInput, _options: BaseToolRunOptions, _context: RunContext<typeof this>): Promise<StringToolOutput>;
44
+ protected createEmitter(): Emitter<any>;
45
+ }
46
+
47
+ export { ThinkTool, type ThinkToolOptions };