beeai-framework 0.1.15 → 0.1.17

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 (629) hide show
  1. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/acp/agents/agent.d.cts +3 -14
  3. package/dist/adapters/acp/agents/agent.d.ts +3 -14
  4. package/dist/adapters/acp/agents/agent.js.map +1 -1
  5. package/dist/adapters/acp/agents/events.d.cts +2 -13
  6. package/dist/adapters/acp/agents/events.d.ts +2 -13
  7. package/dist/adapters/acp/agents/types.d.cts +1 -12
  8. package/dist/adapters/acp/agents/types.d.ts +1 -12
  9. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  10. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +3 -14
  11. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +3 -14
  12. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  13. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  14. package/dist/adapters/amazon-bedrock/backend/client.d.cts +1 -12
  15. package/dist/adapters/amazon-bedrock/backend/client.d.ts +1 -12
  16. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  17. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  18. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +3 -14
  19. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +3 -14
  20. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  21. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  22. package/dist/adapters/anthropic/backend/chat.d.cts +3 -14
  23. package/dist/adapters/anthropic/backend/chat.d.ts +3 -14
  24. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  25. package/dist/adapters/anthropic/backend/client.cjs +1 -4
  26. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  27. package/dist/adapters/anthropic/backend/client.d.cts +1 -12
  28. package/dist/adapters/anthropic/backend/client.d.ts +1 -12
  29. package/dist/adapters/anthropic/backend/client.js +3 -6
  30. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  31. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  32. package/dist/adapters/anthropic/backend/embedding.d.cts +3 -14
  33. package/dist/adapters/anthropic/backend/embedding.d.ts +3 -14
  34. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  35. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  36. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -14
  37. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -14
  38. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  39. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  40. package/dist/adapters/azure-openai/backend/client.d.cts +1 -12
  41. package/dist/adapters/azure-openai/backend/client.d.ts +1 -12
  42. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  43. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  44. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -14
  45. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -14
  46. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  47. package/dist/adapters/beeai_platform/agents/agent.cjs.map +1 -1
  48. package/dist/adapters/beeai_platform/agents/agent.d.cts +2 -2
  49. package/dist/adapters/beeai_platform/agents/agent.d.ts +2 -2
  50. package/dist/adapters/beeai_platform/agents/agent.js.map +1 -1
  51. package/dist/adapters/beeai_platform/agents/events.d.cts +2 -13
  52. package/dist/adapters/beeai_platform/agents/events.d.ts +2 -13
  53. package/dist/adapters/beeai_platform/agents/types.d.cts +1 -12
  54. package/dist/adapters/beeai_platform/agents/types.d.ts +1 -12
  55. package/dist/adapters/dummy/backend/chat.cjs +9 -9
  56. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  57. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  58. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  59. package/dist/adapters/dummy/backend/chat.js +9 -9
  60. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  61. package/dist/adapters/dummy/backend/embedding.cjs +9 -9
  62. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  63. package/dist/adapters/dummy/backend/embedding.d.cts +3 -14
  64. package/dist/adapters/dummy/backend/embedding.d.ts +3 -14
  65. package/dist/adapters/dummy/backend/embedding.js +9 -9
  66. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  67. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  68. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -14
  69. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -14
  70. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/client.d.cts +1 -12
  73. package/dist/adapters/google-vertex/backend/client.d.ts +1 -12
  74. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/embedding.d.cts +3 -14
  77. package/dist/adapters/google-vertex/backend/embedding.d.ts +3 -14
  78. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  79. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  80. package/dist/adapters/groq/backend/chat.d.cts +3 -14
  81. package/dist/adapters/groq/backend/chat.d.ts +3 -14
  82. package/dist/adapters/groq/backend/chat.js.map +1 -1
  83. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  84. package/dist/adapters/groq/backend/client.d.cts +1 -12
  85. package/dist/adapters/groq/backend/client.d.ts +1 -12
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +3 -14
  89. package/dist/adapters/groq/backend/embedding.d.ts +3 -14
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  92. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  93. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  94. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  95. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  96. package/dist/adapters/langchain/backend/embedding.d.cts +3 -14
  97. package/dist/adapters/langchain/backend/embedding.d.ts +3 -14
  98. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  99. package/dist/adapters/langchain/tools.cjs.map +1 -1
  100. package/dist/adapters/langchain/tools.d.cts +1 -1
  101. package/dist/adapters/langchain/tools.d.ts +1 -1
  102. package/dist/adapters/langchain/tools.js.map +1 -1
  103. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  104. package/dist/adapters/mcp/serve/http_server.d.cts +1 -12
  105. package/dist/adapters/mcp/serve/http_server.d.ts +1 -12
  106. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  107. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  108. package/dist/adapters/mcp/serve/in_memory_store.d.cts +1 -12
  109. package/dist/adapters/mcp/serve/in_memory_store.d.ts +1 -12
  110. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  111. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  112. package/dist/adapters/mcp/serve/server.d.cts +1 -12
  113. package/dist/adapters/mcp/serve/server.d.ts +1 -12
  114. package/dist/adapters/mcp/serve/server.js.map +1 -1
  115. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  116. package/dist/adapters/ollama/backend/chat.d.cts +3 -14
  117. package/dist/adapters/ollama/backend/chat.d.ts +3 -14
  118. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  119. package/dist/adapters/ollama/backend/client.cjs +12 -3
  120. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  121. package/dist/adapters/ollama/backend/client.d.cts +4 -13
  122. package/dist/adapters/ollama/backend/client.d.ts +4 -13
  123. package/dist/adapters/ollama/backend/client.js +13 -4
  124. package/dist/adapters/ollama/backend/client.js.map +1 -1
  125. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  126. package/dist/adapters/ollama/backend/embedding.d.cts +3 -14
  127. package/dist/adapters/ollama/backend/embedding.d.ts +3 -14
  128. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  129. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  130. package/dist/adapters/openai/backend/chat.d.cts +3 -14
  131. package/dist/adapters/openai/backend/chat.d.ts +3 -14
  132. package/dist/adapters/openai/backend/chat.js.map +1 -1
  133. package/dist/adapters/openai/backend/client.cjs +1 -4
  134. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  135. package/dist/adapters/openai/backend/client.d.cts +1 -12
  136. package/dist/adapters/openai/backend/client.d.ts +1 -12
  137. package/dist/adapters/openai/backend/client.js +3 -6
  138. package/dist/adapters/openai/backend/client.js.map +1 -1
  139. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  140. package/dist/adapters/openai/backend/embedding.d.cts +3 -14
  141. package/dist/adapters/openai/backend/embedding.d.ts +3 -14
  142. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  143. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  144. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  145. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  146. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  147. package/dist/adapters/vercel/backend/chat.js +2 -2
  148. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  149. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  150. package/dist/adapters/vercel/backend/embedding.d.cts +3 -14
  151. package/dist/adapters/vercel/backend/embedding.d.ts +3 -14
  152. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  153. package/dist/adapters/vercel/backend/utils.cjs +11 -2
  154. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  155. package/dist/adapters/vercel/backend/utils.d.cts +3 -13
  156. package/dist/adapters/vercel/backend/utils.d.ts +3 -13
  157. package/dist/adapters/vercel/backend/utils.js +11 -3
  158. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  159. package/dist/adapters/watsonx/backend/chat.cjs +13 -13
  160. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  161. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  162. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  163. package/dist/adapters/watsonx/backend/chat.js +13 -13
  164. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  165. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  166. package/dist/adapters/watsonx/backend/client.d.cts +1 -12
  167. package/dist/adapters/watsonx/backend/client.d.ts +1 -12
  168. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  169. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.d.cts +3 -14
  171. package/dist/adapters/watsonx/backend/embedding.d.ts +3 -14
  172. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  173. package/dist/adapters/xai/backend/chat.cjs +24 -0
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -0
  175. package/dist/adapters/xai/backend/chat.d.cts +39 -0
  176. package/dist/adapters/xai/backend/chat.d.ts +39 -0
  177. package/dist/adapters/xai/backend/chat.js +22 -0
  178. package/dist/adapters/xai/backend/chat.js.map +1 -0
  179. package/dist/adapters/xai/backend/client.cjs +26 -0
  180. package/dist/adapters/xai/backend/client.cjs.map +1 -0
  181. package/dist/adapters/xai/backend/client.d.cts +17 -0
  182. package/dist/adapters/xai/backend/client.d.ts +17 -0
  183. package/dist/adapters/xai/backend/client.js +24 -0
  184. package/dist/adapters/xai/backend/client.js.map +1 -0
  185. package/dist/{agent-CgsoqVL5.d.ts → agent-CUzHyTQd.d.ts} +3 -3
  186. package/dist/{agent-Ca5UE2P1.d.cts → agent-Cqh2zuKJ.d.cts} +3 -3
  187. package/dist/agents/base.cjs.map +1 -1
  188. package/dist/agents/base.d.cts +2 -2
  189. package/dist/agents/base.d.ts +2 -2
  190. package/dist/agents/base.js.map +1 -1
  191. package/dist/agents/experimental/replan/agent.cjs +8 -8
  192. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  193. package/dist/agents/experimental/replan/agent.d.cts +4 -15
  194. package/dist/agents/experimental/replan/agent.d.ts +4 -15
  195. package/dist/agents/experimental/replan/agent.js +8 -8
  196. package/dist/agents/experimental/replan/agent.js.map +1 -1
  197. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  198. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  199. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  200. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  201. package/dist/agents/experimental/streamlit/agent.cjs +9 -9
  202. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  203. package/dist/agents/experimental/streamlit/agent.d.cts +4 -15
  204. package/dist/agents/experimental/streamlit/agent.d.ts +4 -15
  205. package/dist/agents/experimental/streamlit/agent.js +9 -9
  206. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  207. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  208. package/dist/agents/experimental/streamlit/prompts.d.cts +1 -12
  209. package/dist/agents/experimental/streamlit/prompts.d.ts +1 -12
  210. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  211. package/dist/agents/react/agent.cjs +8 -8
  212. package/dist/agents/react/agent.cjs.map +1 -1
  213. package/dist/agents/react/agent.d.cts +4 -4
  214. package/dist/agents/react/agent.d.ts +4 -4
  215. package/dist/agents/react/agent.js +8 -8
  216. package/dist/agents/react/agent.js.map +1 -1
  217. package/dist/agents/react/prompts.cjs.map +1 -1
  218. package/dist/agents/react/prompts.d.cts +1 -12
  219. package/dist/agents/react/prompts.d.ts +1 -12
  220. package/dist/agents/react/prompts.js.map +1 -1
  221. package/dist/agents/react/runners/base.cjs +2 -2
  222. package/dist/agents/react/runners/base.cjs.map +1 -1
  223. package/dist/agents/react/runners/base.d.cts +4 -4
  224. package/dist/agents/react/runners/base.d.ts +4 -4
  225. package/dist/agents/react/runners/base.js +2 -2
  226. package/dist/agents/react/runners/base.js.map +1 -1
  227. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  228. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -12
  229. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -12
  230. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  231. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  232. package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
  233. package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
  234. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  235. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  236. package/dist/agents/react/runners/default/runner.d.cts +4 -4
  237. package/dist/agents/react/runners/default/runner.d.ts +4 -4
  238. package/dist/agents/react/runners/default/runner.js.map +1 -1
  239. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  240. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  241. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  242. package/dist/agents/react/runners/granite/prompts.d.cts +1 -12
  243. package/dist/agents/react/runners/granite/prompts.d.ts +1 -12
  244. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  245. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  246. package/dist/agents/react/runners/granite/runner.d.cts +4 -4
  247. package/dist/agents/react/runners/granite/runner.d.ts +4 -4
  248. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  249. package/dist/agents/react/types.d.cts +3 -14
  250. package/dist/agents/react/types.d.ts +3 -14
  251. package/dist/agents/toolCalling/agent.cjs +9 -9
  252. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  253. package/dist/agents/toolCalling/agent.d.cts +4 -15
  254. package/dist/agents/toolCalling/agent.d.ts +4 -15
  255. package/dist/agents/toolCalling/agent.js +9 -9
  256. package/dist/agents/toolCalling/agent.js.map +1 -1
  257. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  258. package/dist/agents/toolCalling/prompts.d.cts +1 -12
  259. package/dist/agents/toolCalling/prompts.d.ts +1 -12
  260. package/dist/agents/toolCalling/prompts.js.map +1 -1
  261. package/dist/agents/toolCalling/types.d.cts +2 -13
  262. package/dist/agents/toolCalling/types.d.ts +2 -13
  263. package/dist/agents/types.d.cts +2 -2
  264. package/dist/agents/types.d.ts +2 -2
  265. package/dist/backend/backend.cjs.map +1 -1
  266. package/dist/backend/backend.d.cts +3 -14
  267. package/dist/backend/backend.d.ts +3 -14
  268. package/dist/backend/backend.js.map +1 -1
  269. package/dist/backend/chat.cjs.map +1 -1
  270. package/dist/backend/chat.d.cts +2 -2
  271. package/dist/backend/chat.d.ts +2 -2
  272. package/dist/backend/chat.js.map +1 -1
  273. package/dist/backend/client.cjs.map +1 -1
  274. package/dist/backend/client.d.cts +1 -12
  275. package/dist/backend/client.d.ts +1 -12
  276. package/dist/backend/client.js.map +1 -1
  277. package/dist/backend/constants.cjs +8 -0
  278. package/dist/backend/constants.cjs.map +1 -1
  279. package/dist/backend/constants.d.cts +6 -12
  280. package/dist/backend/constants.d.ts +6 -12
  281. package/dist/backend/constants.js +8 -0
  282. package/dist/backend/constants.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.cjs.map +1 -1
  286. package/dist/backend/embedding.d.cts +2 -2
  287. package/dist/backend/embedding.d.ts +2 -2
  288. package/dist/backend/embedding.js.map +1 -1
  289. package/dist/backend/errors.cjs.map +1 -1
  290. package/dist/backend/errors.d.cts +1 -12
  291. package/dist/backend/errors.d.ts +1 -12
  292. package/dist/backend/errors.js.map +1 -1
  293. package/dist/backend/message.cjs.map +1 -1
  294. package/dist/backend/message.d.cts +1 -12
  295. package/dist/backend/message.d.ts +1 -12
  296. package/dist/backend/message.js.map +1 -1
  297. package/dist/backend/utils.cjs.map +1 -1
  298. package/dist/backend/utils.d.cts +2 -2
  299. package/dist/backend/utils.d.ts +2 -2
  300. package/dist/backend/utils.js.map +1 -1
  301. package/dist/{base-szR2Izbt.d.cts → base-Bc-Xv1jG.d.cts} +2 -13
  302. package/dist/{base-BOCDDBvG.d.ts → base-BrMAtrc_.d.ts} +2 -13
  303. package/dist/cache/base.cjs.map +1 -1
  304. package/dist/cache/base.d.cts +1 -12
  305. package/dist/cache/base.d.ts +1 -12
  306. package/dist/cache/base.js.map +1 -1
  307. package/dist/cache/decoratorCache.cjs +2 -2
  308. package/dist/cache/decoratorCache.cjs.map +1 -1
  309. package/dist/cache/decoratorCache.d.cts +1 -12
  310. package/dist/cache/decoratorCache.d.ts +1 -12
  311. package/dist/cache/decoratorCache.js +2 -2
  312. package/dist/cache/decoratorCache.js.map +1 -1
  313. package/dist/cache/fileCache.cjs.map +1 -1
  314. package/dist/cache/fileCache.d.cts +1 -12
  315. package/dist/cache/fileCache.d.ts +1 -12
  316. package/dist/cache/fileCache.js.map +1 -1
  317. package/dist/cache/nullCache.cjs.map +1 -1
  318. package/dist/cache/nullCache.d.cts +1 -12
  319. package/dist/cache/nullCache.d.ts +1 -12
  320. package/dist/cache/nullCache.js.map +1 -1
  321. package/dist/cache/slidingCache.cjs.map +1 -1
  322. package/dist/cache/slidingCache.d.cts +1 -12
  323. package/dist/cache/slidingCache.d.ts +1 -12
  324. package/dist/cache/slidingCache.js.map +1 -1
  325. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  326. package/dist/cache/unconstrainedCache.d.cts +1 -12
  327. package/dist/cache/unconstrainedCache.d.ts +1 -12
  328. package/dist/cache/unconstrainedCache.js.map +1 -1
  329. package/dist/{chat-DvMzAHj6.d.cts → chat-CR4yfOR9.d.cts} +3 -14
  330. package/dist/{chat-BdN8hGWn.d.ts → chat-W9j8T6UU.d.ts} +3 -14
  331. package/dist/context.cjs +3 -4
  332. package/dist/context.cjs.map +1 -1
  333. package/dist/context.d.cts +2 -13
  334. package/dist/context.d.ts +2 -13
  335. package/dist/context.js +3 -4
  336. package/dist/context.js.map +1 -1
  337. package/dist/emitter/emitter.cjs.map +1 -1
  338. package/dist/emitter/emitter.d.cts +1 -1
  339. package/dist/emitter/emitter.d.ts +1 -1
  340. package/dist/emitter/emitter.js.map +1 -1
  341. package/dist/emitter/errors.cjs.map +1 -1
  342. package/dist/emitter/errors.d.cts +1 -12
  343. package/dist/emitter/errors.d.ts +1 -12
  344. package/dist/emitter/errors.js.map +1 -1
  345. package/dist/emitter/types.d.cts +1 -1
  346. package/dist/emitter/types.d.ts +1 -1
  347. package/dist/emitter/utils.cjs.map +1 -1
  348. package/dist/emitter/utils.d.cts +1 -12
  349. package/dist/emitter/utils.d.ts +1 -12
  350. package/dist/emitter/utils.js.map +1 -1
  351. package/dist/{emitter-C3dO-s2P.d.ts → emitter-C9nwGLt6.d.ts} +3 -25
  352. package/dist/{emitter-D5Mu0EEH.d.cts → emitter-DWEsd-ud.d.cts} +3 -25
  353. package/dist/errors.cjs.map +1 -1
  354. package/dist/errors.d.cts +1 -12
  355. package/dist/errors.d.ts +1 -12
  356. package/dist/errors.js.map +1 -1
  357. package/dist/index.d.cts +4 -4
  358. package/dist/index.d.ts +4 -4
  359. package/dist/internals/env.cjs.map +1 -1
  360. package/dist/internals/env.d.cts +1 -12
  361. package/dist/internals/env.d.ts +1 -12
  362. package/dist/internals/env.js.map +1 -1
  363. package/dist/internals/fetcher.cjs +8 -8
  364. package/dist/internals/fetcher.cjs.map +1 -1
  365. package/dist/internals/fetcher.d.cts +2 -13
  366. package/dist/internals/fetcher.d.ts +2 -13
  367. package/dist/internals/fetcher.js +8 -8
  368. package/dist/internals/fetcher.js.map +1 -1
  369. package/dist/internals/helpers/array.cjs.map +1 -1
  370. package/dist/internals/helpers/array.d.cts +1 -12
  371. package/dist/internals/helpers/array.d.ts +1 -12
  372. package/dist/internals/helpers/array.js.map +1 -1
  373. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  374. package/dist/internals/helpers/cancellation.d.cts +1 -12
  375. package/dist/internals/helpers/cancellation.d.ts +1 -12
  376. package/dist/internals/helpers/cancellation.js.map +1 -1
  377. package/dist/internals/helpers/counter.cjs.map +1 -1
  378. package/dist/internals/helpers/counter.d.cts +1 -12
  379. package/dist/internals/helpers/counter.d.ts +1 -12
  380. package/dist/internals/helpers/counter.js.map +1 -1
  381. package/dist/internals/helpers/general.cjs.map +1 -1
  382. package/dist/internals/helpers/general.d.cts +1 -12
  383. package/dist/internals/helpers/general.d.ts +1 -12
  384. package/dist/internals/helpers/general.js.map +1 -1
  385. package/dist/internals/helpers/guards.cjs.map +1 -1
  386. package/dist/internals/helpers/guards.d.cts +1 -12
  387. package/dist/internals/helpers/guards.d.ts +1 -12
  388. package/dist/internals/helpers/guards.js.map +1 -1
  389. package/dist/internals/helpers/hash.cjs.map +1 -1
  390. package/dist/internals/helpers/hash.d.cts +1 -12
  391. package/dist/internals/helpers/hash.d.ts +1 -12
  392. package/dist/internals/helpers/hash.js.map +1 -1
  393. package/dist/internals/helpers/map.cjs.map +1 -1
  394. package/dist/internals/helpers/map.d.cts +1 -12
  395. package/dist/internals/helpers/map.d.ts +1 -12
  396. package/dist/internals/helpers/map.js.map +1 -1
  397. package/dist/internals/helpers/math.cjs.map +1 -1
  398. package/dist/internals/helpers/math.d.cts +1 -12
  399. package/dist/internals/helpers/math.d.ts +1 -12
  400. package/dist/internals/helpers/math.js.map +1 -1
  401. package/dist/internals/helpers/number.cjs.map +1 -1
  402. package/dist/internals/helpers/number.d.cts +1 -12
  403. package/dist/internals/helpers/number.d.ts +1 -12
  404. package/dist/internals/helpers/number.js.map +1 -1
  405. package/dist/internals/helpers/object.cjs.map +1 -1
  406. package/dist/internals/helpers/object.d.cts +1 -12
  407. package/dist/internals/helpers/object.d.ts +1 -12
  408. package/dist/internals/helpers/object.js.map +1 -1
  409. package/dist/internals/helpers/paginate.cjs.map +1 -1
  410. package/dist/internals/helpers/paginate.d.cts +1 -12
  411. package/dist/internals/helpers/paginate.d.ts +1 -12
  412. package/dist/internals/helpers/paginate.js.map +1 -1
  413. package/dist/internals/helpers/promise.cjs +1 -3
  414. package/dist/internals/helpers/promise.cjs.map +1 -1
  415. package/dist/internals/helpers/promise.d.cts +1 -12
  416. package/dist/internals/helpers/promise.d.ts +1 -12
  417. package/dist/internals/helpers/promise.js +1 -3
  418. package/dist/internals/helpers/promise.js.map +1 -1
  419. package/dist/internals/helpers/prototype.cjs.map +1 -1
  420. package/dist/internals/helpers/prototype.d.cts +1 -12
  421. package/dist/internals/helpers/prototype.d.ts +1 -12
  422. package/dist/internals/helpers/prototype.js.map +1 -1
  423. package/dist/internals/helpers/retry.cjs.map +1 -1
  424. package/dist/internals/helpers/retry.d.cts +1 -12
  425. package/dist/internals/helpers/retry.d.ts +1 -12
  426. package/dist/internals/helpers/retry.js.map +1 -1
  427. package/dist/internals/helpers/retryable.cjs.map +1 -1
  428. package/dist/internals/helpers/retryable.d.cts +1 -12
  429. package/dist/internals/helpers/retryable.d.ts +1 -12
  430. package/dist/internals/helpers/retryable.js.map +1 -1
  431. package/dist/internals/helpers/schema.cjs.map +1 -1
  432. package/dist/internals/helpers/schema.d.cts +1 -12
  433. package/dist/internals/helpers/schema.d.ts +1 -12
  434. package/dist/internals/helpers/schema.js.map +1 -1
  435. package/dist/internals/helpers/stream.cjs.map +1 -1
  436. package/dist/internals/helpers/stream.d.cts +1 -12
  437. package/dist/internals/helpers/stream.d.ts +1 -12
  438. package/dist/internals/helpers/stream.js.map +1 -1
  439. package/dist/internals/helpers/string.cjs.map +1 -1
  440. package/dist/internals/helpers/string.d.cts +1 -12
  441. package/dist/internals/helpers/string.d.ts +1 -12
  442. package/dist/internals/helpers/string.js.map +1 -1
  443. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  444. package/dist/internals/helpers/weakRef.d.cts +1 -12
  445. package/dist/internals/helpers/weakRef.d.ts +1 -12
  446. package/dist/internals/helpers/weakRef.js.map +1 -1
  447. package/dist/internals/serializable.cjs.map +1 -1
  448. package/dist/internals/serializable.d.cts +1 -12
  449. package/dist/internals/serializable.d.ts +1 -12
  450. package/dist/internals/serializable.js.map +1 -1
  451. package/dist/internals/types.cjs.map +1 -1
  452. package/dist/internals/types.d.cts +1 -12
  453. package/dist/internals/types.d.ts +1 -12
  454. package/dist/internals/types.js.map +1 -1
  455. package/dist/logger/logger.cjs.map +1 -1
  456. package/dist/logger/logger.js.map +1 -1
  457. package/dist/logger/pretty.cjs.map +1 -1
  458. package/dist/logger/pretty.js.map +1 -1
  459. package/dist/memory/base.cjs.map +1 -1
  460. package/dist/memory/base.js.map +1 -1
  461. package/dist/memory/slidingMemory.cjs.map +1 -1
  462. package/dist/memory/slidingMemory.d.cts +1 -1
  463. package/dist/memory/slidingMemory.d.ts +1 -1
  464. package/dist/memory/slidingMemory.js.map +1 -1
  465. package/dist/memory/summarizeMemory.cjs.map +1 -1
  466. package/dist/memory/summarizeMemory.d.cts +2 -2
  467. package/dist/memory/summarizeMemory.d.ts +2 -2
  468. package/dist/memory/summarizeMemory.js.map +1 -1
  469. package/dist/memory/tokenMemory.cjs.map +1 -1
  470. package/dist/memory/tokenMemory.js.map +1 -1
  471. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  472. package/dist/memory/unconstrainedMemory.js.map +1 -1
  473. package/dist/parsers/errors.cjs.map +1 -1
  474. package/dist/parsers/errors.d.cts +1 -12
  475. package/dist/parsers/errors.d.ts +1 -12
  476. package/dist/parsers/errors.js.map +1 -1
  477. package/dist/parsers/field.cjs +2 -2
  478. package/dist/parsers/field.cjs.map +1 -1
  479. package/dist/parsers/field.js +2 -2
  480. package/dist/parsers/field.js.map +1 -1
  481. package/dist/parsers/linePrefix.cjs +15 -15
  482. package/dist/parsers/linePrefix.cjs.map +1 -1
  483. package/dist/parsers/linePrefix.d.cts +2 -13
  484. package/dist/parsers/linePrefix.d.ts +2 -13
  485. package/dist/parsers/linePrefix.js +15 -15
  486. package/dist/parsers/linePrefix.js.map +1 -1
  487. package/dist/serializer/error.cjs.map +1 -1
  488. package/dist/serializer/error.d.cts +1 -12
  489. package/dist/serializer/error.d.ts +1 -12
  490. package/dist/serializer/error.js.map +1 -1
  491. package/dist/serializer/serializer.cjs.map +1 -1
  492. package/dist/serializer/serializer.d.cts +1 -1
  493. package/dist/serializer/serializer.d.ts +1 -1
  494. package/dist/serializer/serializer.js.map +1 -1
  495. package/dist/serializer/utils.cjs +1 -2
  496. package/dist/serializer/utils.cjs.map +1 -1
  497. package/dist/serializer/utils.d.cts +1 -1
  498. package/dist/serializer/utils.d.ts +1 -1
  499. package/dist/serializer/utils.js +1 -2
  500. package/dist/serializer/utils.js.map +1 -1
  501. package/dist/{serializer-Dz4AIM2O.d.cts → serializer-BKn50Vnx.d.cts} +2 -24
  502. package/dist/{serializer-BswFRdT8.d.ts → serializer-CQxucveV.d.ts} +2 -24
  503. package/dist/serve/server.cjs +1 -2
  504. package/dist/serve/server.cjs.map +1 -1
  505. package/dist/serve/server.d.cts +1 -12
  506. package/dist/serve/server.d.ts +1 -12
  507. package/dist/serve/server.js +1 -2
  508. package/dist/serve/server.js.map +1 -1
  509. package/dist/template.cjs.map +1 -1
  510. package/dist/template.d.cts +1 -12
  511. package/dist/template.d.ts +1 -12
  512. package/dist/template.js.map +1 -1
  513. package/dist/tools/arxiv.cjs.map +1 -1
  514. package/dist/tools/arxiv.d.cts +2 -13
  515. package/dist/tools/arxiv.d.ts +2 -13
  516. package/dist/tools/arxiv.js.map +1 -1
  517. package/dist/tools/base.cjs.map +1 -1
  518. package/dist/tools/base.d.cts +1 -1
  519. package/dist/tools/base.d.ts +1 -1
  520. package/dist/tools/base.js.map +1 -1
  521. package/dist/tools/calculator.cjs.map +1 -1
  522. package/dist/tools/calculator.d.cts +2 -13
  523. package/dist/tools/calculator.d.ts +2 -13
  524. package/dist/tools/calculator.js.map +1 -1
  525. package/dist/tools/custom.cjs.map +1 -1
  526. package/dist/tools/custom.d.cts +3 -14
  527. package/dist/tools/custom.d.ts +3 -14
  528. package/dist/tools/custom.js.map +1 -1
  529. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  530. package/dist/tools/database/elasticsearch.d.cts +2 -13
  531. package/dist/tools/database/elasticsearch.d.ts +2 -13
  532. package/dist/tools/database/elasticsearch.js.map +1 -1
  533. package/dist/tools/database/metadata.cjs.map +1 -1
  534. package/dist/tools/database/metadata.d.cts +1 -12
  535. package/dist/tools/database/metadata.d.ts +1 -12
  536. package/dist/tools/database/metadata.js.map +1 -1
  537. package/dist/tools/database/milvus.cjs.map +1 -1
  538. package/dist/tools/database/milvus.d.cts +2 -13
  539. package/dist/tools/database/milvus.d.ts +2 -13
  540. package/dist/tools/database/milvus.js.map +1 -1
  541. package/dist/tools/database/qdrant.cjs.map +1 -1
  542. package/dist/tools/database/qdrant.d.cts +2 -13
  543. package/dist/tools/database/qdrant.d.ts +2 -13
  544. package/dist/tools/database/qdrant.js.map +1 -1
  545. package/dist/tools/database/sql.cjs.map +1 -1
  546. package/dist/tools/database/sql.d.cts +2 -13
  547. package/dist/tools/database/sql.d.ts +2 -13
  548. package/dist/tools/database/sql.js.map +1 -1
  549. package/dist/tools/llm.cjs +3 -3
  550. package/dist/tools/llm.cjs.map +1 -1
  551. package/dist/tools/llm.d.cts +3 -14
  552. package/dist/tools/llm.d.ts +3 -14
  553. package/dist/tools/llm.js +3 -3
  554. package/dist/tools/llm.js.map +1 -1
  555. package/dist/tools/mcp.cjs +2 -1
  556. package/dist/tools/mcp.cjs.map +1 -1
  557. package/dist/tools/mcp.d.cts +2 -13
  558. package/dist/tools/mcp.d.ts +2 -13
  559. package/dist/tools/mcp.js +2 -1
  560. package/dist/tools/mcp.js.map +1 -1
  561. package/dist/tools/openapi.cjs.map +1 -1
  562. package/dist/tools/openapi.d.cts +1 -1
  563. package/dist/tools/openapi.d.ts +1 -1
  564. package/dist/tools/openapi.js.map +1 -1
  565. package/dist/tools/python/output.cjs.map +1 -1
  566. package/dist/tools/python/output.d.cts +2 -13
  567. package/dist/tools/python/output.d.ts +2 -13
  568. package/dist/tools/python/output.js.map +1 -1
  569. package/dist/tools/python/python.cjs.map +1 -1
  570. package/dist/tools/python/python.d.cts +2 -2
  571. package/dist/tools/python/python.d.ts +2 -2
  572. package/dist/tools/python/python.js.map +1 -1
  573. package/dist/tools/python/storage.cjs.map +1 -1
  574. package/dist/tools/python/storage.d.cts +1 -12
  575. package/dist/tools/python/storage.d.ts +1 -12
  576. package/dist/tools/python/storage.js.map +1 -1
  577. package/dist/tools/search/base.cjs.map +1 -1
  578. package/dist/tools/search/base.d.cts +2 -13
  579. package/dist/tools/search/base.d.ts +2 -13
  580. package/dist/tools/search/base.js.map +1 -1
  581. package/dist/tools/search/duckDuckGoSearch.cjs +7 -1
  582. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  583. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -13
  584. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -13
  585. package/dist/tools/search/duckDuckGoSearch.js +7 -1
  586. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  587. package/dist/tools/search/googleSearch.cjs.map +1 -1
  588. package/dist/tools/search/googleSearch.d.cts +1 -1
  589. package/dist/tools/search/googleSearch.d.ts +1 -1
  590. package/dist/tools/search/googleSearch.js.map +1 -1
  591. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  592. package/dist/tools/search/searXNGSearch.d.cts +2 -13
  593. package/dist/tools/search/searXNGSearch.d.ts +2 -13
  594. package/dist/tools/search/searXNGSearch.js.map +1 -1
  595. package/dist/tools/search/wikipedia.cjs +11 -11
  596. package/dist/tools/search/wikipedia.cjs.map +1 -1
  597. package/dist/tools/search/wikipedia.d.cts +1 -1
  598. package/dist/tools/search/wikipedia.d.ts +1 -1
  599. package/dist/tools/search/wikipedia.js +11 -11
  600. package/dist/tools/search/wikipedia.js.map +1 -1
  601. package/dist/tools/similarity.cjs.map +1 -1
  602. package/dist/tools/similarity.d.cts +2 -13
  603. package/dist/tools/similarity.d.ts +2 -13
  604. package/dist/tools/similarity.js.map +1 -1
  605. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  606. package/dist/tools/weather/openMeteo.d.cts +2 -13
  607. package/dist/tools/weather/openMeteo.d.ts +2 -13
  608. package/dist/tools/weather/openMeteo.js.map +1 -1
  609. package/dist/tools/web/webCrawler.cjs.map +1 -1
  610. package/dist/tools/web/webCrawler.d.cts +1 -1
  611. package/dist/tools/web/webCrawler.d.ts +1 -1
  612. package/dist/tools/web/webCrawler.js.map +1 -1
  613. package/dist/version.cjs +1 -1
  614. package/dist/version.cjs.map +1 -1
  615. package/dist/version.d.cts +1 -12
  616. package/dist/version.d.ts +1 -12
  617. package/dist/version.js +1 -1
  618. package/dist/version.js.map +1 -1
  619. package/dist/workflows/agent.cjs.map +1 -1
  620. package/dist/workflows/agent.d.cts +3 -3
  621. package/dist/workflows/agent.d.ts +3 -3
  622. package/dist/workflows/agent.js.map +1 -1
  623. package/dist/workflows/workflow.cjs +3 -3
  624. package/dist/workflows/workflow.cjs.map +1 -1
  625. package/dist/workflows/workflow.d.cts +1 -1
  626. package/dist/workflows/workflow.d.ts +1 -1
  627. package/dist/workflows/workflow.js +3 -3
  628. package/dist/workflows/workflow.js.map +1 -1
  629. package/package.json +37 -82
@@ -11,14 +11,14 @@ import 'promise-based-task';
11
11
  import '../cache/base.cjs';
12
12
  import '../internals/helpers/schema.cjs';
13
13
  import 'zod-to-json-schema';
14
- import '../emitter-D5Mu0EEH.cjs';
14
+ import '../emitter-DWEsd-ud.cjs';
15
15
  import '../internals/helpers/promise.cjs';
16
16
  import '../template.cjs';
17
17
  import './python/storage.cjs';
18
18
  import 'fs';
19
19
  import './python/output.cjs';
20
20
  import 'node:tls';
21
- import '../chat-DvMzAHj6.cjs';
21
+ import '../chat-CR4yfOR9.cjs';
22
22
  import '../backend/message.cjs';
23
23
  import 'ai';
24
24
  import '../backend/constants.cjs';
@@ -27,18 +27,7 @@ import 'pino';
27
27
 
28
28
  /**
29
29
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
30
- *
31
- * Licensed under the Apache License, Version 2.0 (the "License");
32
- * you may not use this file except in compliance with the License.
33
- * You may obtain a copy of the License at
34
- *
35
- * http://www.apache.org/licenses/LICENSE-2.0
36
- *
37
- * Unless required by applicable law or agreed to in writing, software
38
- * distributed under the License is distributed on an "AS IS" BASIS,
39
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
40
- * See the License for the specific language governing permissions and
41
- * limitations under the License.
30
+ * SPDX-License-Identifier: Apache-2.0
42
31
  */
43
32
 
44
33
  declare class CustomToolCreateError extends FrameworkError {
@@ -11,14 +11,14 @@ import 'promise-based-task';
11
11
  import '../cache/base.js';
12
12
  import '../internals/helpers/schema.js';
13
13
  import 'zod-to-json-schema';
14
- import '../emitter-C3dO-s2P.js';
14
+ import '../emitter-C9nwGLt6.js';
15
15
  import '../internals/helpers/promise.js';
16
16
  import '../template.js';
17
17
  import './python/storage.js';
18
18
  import 'fs';
19
19
  import './python/output.js';
20
20
  import 'node:tls';
21
- import '../chat-BdN8hGWn.js';
21
+ import '../chat-W9j8T6UU.js';
22
22
  import '../backend/message.js';
23
23
  import 'ai';
24
24
  import '../backend/constants.js';
@@ -27,18 +27,7 @@ import 'pino';
27
27
 
28
28
  /**
29
29
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
30
- *
31
- * Licensed under the Apache License, Version 2.0 (the "License");
32
- * you may not use this file except in compliance with the License.
33
- * You may obtain a copy of the License at
34
- *
35
- * http://www.apache.org/licenses/LICENSE-2.0
36
- *
37
- * Unless required by applicable law or agreed to in writing, software
38
- * distributed under the License is distributed on an "AS IS" BASIS,
39
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
40
- * See the License for the specific language governing permissions and
41
- * limitations under the License.
30
+ * SPDX-License-Identifier: Apache-2.0
42
31
  */
43
32
 
44
33
  declare class CustomToolCreateError extends FrameworkError {
@@ -1 +1 @@
1
- {"version":3,"sources":["custom.ts"],"names":["CustomToolCreateError","FrameworkError","CustomToolExecuteError","toolOptionsSchema","z","object","codeInterpreter","url","string","connectionOptions","any","optional","sourceCode","min","name","description","inputSchema","passthrough","CustomTool","Tool","emitter","Emitter","root","child","namespace","creator","options","register","validate","_run","input","run","result","callCodeInterpreter","body","tool_source_code","tool_input_json","JSON","stringify","env","merge","omitUndefined","signal","stderr","StringToolOutput","tool_output_json","e","ToolError","message","loadSnapshot","snapshot","fromSourceCode","error_messages","join","tool_name","tool_description","parse","tool_input_schema_json"],"mappings":"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","file":"custom.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n StringToolOutput,\n Tool,\n ToolInput,\n} from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { z } from \"zod\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { callCodeInterpreter, CodeInterpreterOptions } from \"./python/python.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { ToolError } from \"@/tools/base.js\";\nimport { merge } from \"remeda\";\nimport { omitUndefined } from \"@/internals/helpers/object.js\";\n\nexport class CustomToolCreateError extends FrameworkError {}\nexport class CustomToolExecuteError extends FrameworkError {}\n\nconst toolOptionsSchema = z\n .object({\n codeInterpreter: z.object({\n url: z.string().url(),\n connectionOptions: z.any().optional(),\n }),\n sourceCode: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n inputSchema: z.any(),\n })\n .passthrough();\n\ntype CustomToolEnv = Record<string, string | boolean | null | undefined | number>;\n\nexport type CustomToolOptions = z.output<typeof toolOptionsSchema> &\n BaseToolOptions & { env?: CustomToolEnv };\n\nexport type CustomToolRunOptions = Pick<CustomToolOptions, \"env\"> & BaseToolRunOptions;\n\nexport class CustomTool extends Tool<StringToolOutput, CustomToolOptions, CustomToolRunOptions> {\n name: string;\n description: string;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, StringToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"custom\"],\n creator: this,\n });\n\n public inputSchema() {\n return this.options.inputSchema;\n }\n\n static {\n this.register();\n }\n\n public constructor(options: CustomToolOptions) {\n validate(options, toolOptionsSchema);\n super(options);\n this.name = options.name;\n this.description = options.description;\n }\n\n protected async _run(\n input: any,\n options: Partial<CustomToolRunOptions>,\n run: RunContext<typeof this>,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${this.options.codeInterpreter.url}/v1/execute-custom-tool`,\n body: {\n tool_source_code: this.options.sourceCode,\n tool_input_json: JSON.stringify(input),\n env: merge(omitUndefined(this.options.env ?? {}), omitUndefined(options.env ?? {})),\n },\n signal: run.signal,\n });\n\n if (result.stderr) {\n throw new CustomToolExecuteError(result.stderr);\n }\n\n return new StringToolOutput(result.tool_output_json);\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolExecuteError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n super.loadSnapshot(snapshot);\n }\n\n static async fromSourceCode(\n { env, ...codeInterpreter }: CodeInterpreterOptions & Pick<CustomToolOptions, \"env\">,\n sourceCode: string,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${codeInterpreter.url}/v1/parse-custom-tool`,\n body: {\n tool_source_code: sourceCode,\n },\n });\n\n if (result.error_messages) {\n throw new CustomToolCreateError(result.error_messages.join(\"\\n\"));\n }\n\n return new CustomTool({\n codeInterpreter,\n sourceCode,\n name: result.tool_name,\n description: result.tool_description,\n inputSchema: JSON.parse(result.tool_input_schema_json),\n env,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolCreateError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/tools/custom.ts"],"names":["CustomToolCreateError","FrameworkError","CustomToolExecuteError","toolOptionsSchema","z","object","codeInterpreter","url","string","connectionOptions","any","optional","sourceCode","min","name","description","inputSchema","passthrough","CustomTool","Tool","emitter","Emitter","root","child","namespace","creator","options","register","validate","_run","input","run","result","callCodeInterpreter","body","tool_source_code","tool_input_json","JSON","stringify","env","merge","omitUndefined","signal","stderr","StringToolOutput","tool_output_json","e","ToolError","message","loadSnapshot","snapshot","fromSourceCode","error_messages","join","tool_name","tool_description","parse","tool_input_schema_json"],"mappings":"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","file":"custom.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n StringToolOutput,\n Tool,\n ToolInput,\n} from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { z } from \"zod\";\nimport { validate } from \"@/internals/helpers/general.js\";\nimport { callCodeInterpreter, CodeInterpreterOptions } from \"./python/python.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { ToolError } from \"@/tools/base.js\";\nimport { merge } from \"remeda\";\nimport { omitUndefined } from \"@/internals/helpers/object.js\";\n\nexport class CustomToolCreateError extends FrameworkError {}\nexport class CustomToolExecuteError extends FrameworkError {}\n\nconst toolOptionsSchema = z\n .object({\n codeInterpreter: z.object({\n url: z.string().url(),\n connectionOptions: z.any().optional(),\n }),\n sourceCode: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n inputSchema: z.any(),\n })\n .passthrough();\n\ntype CustomToolEnv = Record<string, string | boolean | null | undefined | number>;\n\nexport type CustomToolOptions = z.output<typeof toolOptionsSchema> &\n BaseToolOptions & { env?: CustomToolEnv };\n\nexport type CustomToolRunOptions = Pick<CustomToolOptions, \"env\"> & BaseToolRunOptions;\n\nexport class CustomTool extends Tool<StringToolOutput, CustomToolOptions, CustomToolRunOptions> {\n name: string;\n description: string;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, StringToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"custom\"],\n creator: this,\n });\n\n public inputSchema() {\n return this.options.inputSchema;\n }\n\n static {\n this.register();\n }\n\n public constructor(options: CustomToolOptions) {\n validate(options, toolOptionsSchema);\n super(options);\n this.name = options.name;\n this.description = options.description;\n }\n\n protected async _run(\n input: any,\n options: Partial<CustomToolRunOptions>,\n run: RunContext<typeof this>,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${this.options.codeInterpreter.url}/v1/execute-custom-tool`,\n body: {\n tool_source_code: this.options.sourceCode,\n tool_input_json: JSON.stringify(input),\n env: merge(omitUndefined(this.options.env ?? {}), omitUndefined(options.env ?? {})),\n },\n signal: run.signal,\n });\n\n if (result.stderr) {\n throw new CustomToolExecuteError(result.stderr);\n }\n\n return new StringToolOutput(result.tool_output_json);\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolExecuteError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n super.loadSnapshot(snapshot);\n }\n\n static async fromSourceCode(\n { env, ...codeInterpreter }: CodeInterpreterOptions & Pick<CustomToolOptions, \"env\">,\n sourceCode: string,\n ) {\n try {\n const result = await callCodeInterpreter({\n url: `${codeInterpreter.url}/v1/parse-custom-tool`,\n body: {\n tool_source_code: sourceCode,\n },\n });\n\n if (result.error_messages) {\n throw new CustomToolCreateError(result.error_messages.join(\"\\n\"));\n }\n\n return new CustomTool({\n codeInterpreter,\n sourceCode,\n name: result.tool_name,\n description: result.tool_description,\n inputSchema: JSON.parse(result.tool_input_schema_json),\n env,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n throw new CustomToolCreateError(e.message, [e]);\n } else {\n throw e;\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["elasticsearch.ts"],"names":["ElasticSearchAction","ListIndices","GetIndexDetails","Search","ElasticSearchTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","indexName","string","optional","query","start","coerce","number","int","min","default","size","max","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","options","connection","cloud","node","nodes","ValidationError","message","propertyName","client","Client","info","error","ToolError","isRetryable","isFatal","_run","_options","run","indices","listIndices","signal","JSONToolOutput","indexDetails","getIndexDetails","response","search","aggregations","hits","map","hit","_source","cat","expand_wildcards","h","format","filter","record","index","startsWith","getMapping","parsedQuery","parseBrokenJson","searchBody","from","body"],"mappings":"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","file":"elasticsearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { z } from \"zod\";\nimport { ValidationError } from \"ajv\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { Client, ClientOptions, estypes as ESTypes } from \"@elastic/elasticsearch\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ElasticSearchToolOptions extends BaseToolOptions {\n connection: ClientOptions;\n}\n\nexport type ElasticSearchToolResult =\n | ESTypes.CatIndicesResponse\n | ESTypes.IndicesGetMappingResponse\n | ESTypes.SearchResponse;\n\nexport const ElasticSearchAction = {\n ListIndices: \"LIST_INDICES\",\n GetIndexDetails: \"GET_INDEX_DETAILS\",\n Search: \"SEARCH\",\n} as const;\n\nexport class ElasticSearchTool extends Tool<\n JSONToolOutput<ElasticSearchToolResult>,\n ElasticSearchToolOptions\n> {\n name = \"ElasticSearchTool\";\n\n description = `Can query data from an ElasticSearch database. IMPORTANT: strictly follow this order of actions:\n 1. ${ElasticSearchAction.ListIndices} - retrieve a list of available indices\n 2. ${ElasticSearchAction.GetIndexDetails} - get details of index fields\n 3. ${ElasticSearchAction.Search} - perform search or aggregation query on a specific index or pass the original user query without modifications if it's a valid JSON ElasticSearch query after identifying the index`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(ElasticSearchAction)\n .describe(\n `The action to perform. ${ElasticSearchAction.ListIndices} lists all indices, ${ElasticSearchAction.GetIndexDetails} fetches details for a specified index, and ${ElasticSearchAction.Search} executes a search or aggregation query`,\n ),\n indexName: z\n .string()\n .optional()\n .describe(\n `The name of the index to query, required for ${ElasticSearchAction.GetIndexDetails} and ${ElasticSearchAction.Search}`,\n ),\n query: z\n .string()\n .optional()\n .describe(\n `Valid ElasticSearch JSON search or aggregation query for ${ElasticSearchAction.Search} action`,\n ),\n start: z.coerce\n .number()\n .int()\n .min(0)\n .default(0)\n .optional()\n .describe(\n \"The record index from which the query will start. Increase by the size of the query to get the next page of results\",\n ),\n size: z.coerce\n .number()\n .int()\n .min(0)\n .max(10)\n .default(10)\n .optional()\n .describe(\"How many records will be retrieved from the ElasticSearch query. Maximum is 10\"),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<ElasticSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"elasticsearch\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === ElasticSearchAction.GetIndexDetails && !input.indexName) {\n throw new ToolInputValidationError(\n `Index name is required for ${ElasticSearchAction.GetIndexDetails} action.`,\n );\n }\n if (input.action === ElasticSearchAction.Search && (!input.indexName || !input.query)) {\n throw new ToolInputValidationError(\n `Both index name and query are required for ${ElasticSearchAction.Search} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n public constructor(options: ElasticSearchToolOptions) {\n super(options);\n if (!options.connection.cloud && !options.connection.node && !options.connection.nodes) {\n throw new ValidationError([\n {\n message: \"At least one of the properties must be provided\",\n propertyName: \"connection.cloud, connection.node, connection.nodes\",\n },\n ]);\n }\n }\n\n @Cache()\n protected async client(): Promise<Client> {\n try {\n const client = new Client(this.options.connection);\n await client.info();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to ElasticSearch.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ): Promise<JSONToolOutput<any>> {\n if (input.action === ElasticSearchAction.ListIndices) {\n const indices = await this.listIndices(run.signal);\n return new JSONToolOutput(indices);\n } else if (input.action === ElasticSearchAction.GetIndexDetails) {\n const indexDetails = await this.getIndexDetails(input, run.signal);\n return new JSONToolOutput(indexDetails);\n } else if (input.action === ElasticSearchAction.Search) {\n const response = await this.search(input, run.signal);\n if (response.aggregations) {\n return new JSONToolOutput(response.aggregations);\n } else {\n return new JSONToolOutput(response.hits.hits.map((hit: ESTypes.SearchHit) => hit._source));\n }\n } else {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n\n protected async listIndices(signal?: AbortSignal): Promise<ESTypes.CatIndicesResponse> {\n const client = await this.client();\n const response = await client.cat.indices(\n {\n expand_wildcards: \"open\",\n h: \"index\",\n format: \"json\",\n },\n { signal: signal },\n );\n return response\n .filter((record) => record.index && !record.index.startsWith(\".\")) // Exclude system indices\n .map((record) => ({ index: record.index }));\n }\n\n protected async getIndexDetails(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.IndicesGetMappingResponse> {\n const client = await this.client();\n return await client.indices.getMapping(\n {\n index: input.indexName,\n },\n { signal: signal },\n );\n }\n\n protected async search(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.SearchResponse> {\n const parsedQuery = parseBrokenJson(input.query);\n const searchBody: ESTypes.SearchRequest = {\n ...parsedQuery,\n from: parsedQuery.from || input.start,\n size: parsedQuery.size || input.size,\n };\n const client = await this.client();\n return await client.search(\n {\n index: input.indexName,\n body: searchBody,\n },\n { signal: signal },\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/database/elasticsearch.ts"],"names":["ElasticSearchAction","ListIndices","GetIndexDetails","Search","ElasticSearchTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","indexName","string","optional","query","start","coerce","number","int","min","default","size","max","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","options","connection","cloud","node","nodes","ValidationError","message","propertyName","client","Client","info","error","ToolError","isRetryable","isFatal","_run","_options","run","indices","listIndices","signal","JSONToolOutput","indexDetails","getIndexDetails","response","search","aggregations","hits","map","hit","_source","cat","expand_wildcards","h","format","filter","record","index","startsWith","getMapping","parsedQuery","parseBrokenJson","searchBody","from","body"],"mappings":"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","file":"elasticsearch.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { z } from \"zod\";\nimport { ValidationError } from \"ajv\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { Client, ClientOptions, estypes as ESTypes } from \"@elastic/elasticsearch\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ElasticSearchToolOptions extends BaseToolOptions {\n connection: ClientOptions;\n}\n\nexport type ElasticSearchToolResult =\n | ESTypes.CatIndicesResponse\n | ESTypes.IndicesGetMappingResponse\n | ESTypes.SearchResponse;\n\nexport const ElasticSearchAction = {\n ListIndices: \"LIST_INDICES\",\n GetIndexDetails: \"GET_INDEX_DETAILS\",\n Search: \"SEARCH\",\n} as const;\n\nexport class ElasticSearchTool extends Tool<\n JSONToolOutput<ElasticSearchToolResult>,\n ElasticSearchToolOptions\n> {\n name = \"ElasticSearchTool\";\n\n description = `Can query data from an ElasticSearch database. IMPORTANT: strictly follow this order of actions:\n 1. ${ElasticSearchAction.ListIndices} - retrieve a list of available indices\n 2. ${ElasticSearchAction.GetIndexDetails} - get details of index fields\n 3. ${ElasticSearchAction.Search} - perform search or aggregation query on a specific index or pass the original user query without modifications if it's a valid JSON ElasticSearch query after identifying the index`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(ElasticSearchAction)\n .describe(\n `The action to perform. ${ElasticSearchAction.ListIndices} lists all indices, ${ElasticSearchAction.GetIndexDetails} fetches details for a specified index, and ${ElasticSearchAction.Search} executes a search or aggregation query`,\n ),\n indexName: z\n .string()\n .optional()\n .describe(\n `The name of the index to query, required for ${ElasticSearchAction.GetIndexDetails} and ${ElasticSearchAction.Search}`,\n ),\n query: z\n .string()\n .optional()\n .describe(\n `Valid ElasticSearch JSON search or aggregation query for ${ElasticSearchAction.Search} action`,\n ),\n start: z.coerce\n .number()\n .int()\n .min(0)\n .default(0)\n .optional()\n .describe(\n \"The record index from which the query will start. Increase by the size of the query to get the next page of results\",\n ),\n size: z.coerce\n .number()\n .int()\n .min(0)\n .max(10)\n .default(10)\n .optional()\n .describe(\"How many records will be retrieved from the ElasticSearch query. Maximum is 10\"),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<ElasticSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"elasticsearch\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === ElasticSearchAction.GetIndexDetails && !input.indexName) {\n throw new ToolInputValidationError(\n `Index name is required for ${ElasticSearchAction.GetIndexDetails} action.`,\n );\n }\n if (input.action === ElasticSearchAction.Search && (!input.indexName || !input.query)) {\n throw new ToolInputValidationError(\n `Both index name and query are required for ${ElasticSearchAction.Search} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n public constructor(options: ElasticSearchToolOptions) {\n super(options);\n if (!options.connection.cloud && !options.connection.node && !options.connection.nodes) {\n throw new ValidationError([\n {\n message: \"At least one of the properties must be provided\",\n propertyName: \"connection.cloud, connection.node, connection.nodes\",\n },\n ]);\n }\n }\n\n @Cache()\n protected async client(): Promise<Client> {\n try {\n const client = new Client(this.options.connection);\n await client.info();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to ElasticSearch.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ): Promise<JSONToolOutput<any>> {\n if (input.action === ElasticSearchAction.ListIndices) {\n const indices = await this.listIndices(run.signal);\n return new JSONToolOutput(indices);\n } else if (input.action === ElasticSearchAction.GetIndexDetails) {\n const indexDetails = await this.getIndexDetails(input, run.signal);\n return new JSONToolOutput(indexDetails);\n } else if (input.action === ElasticSearchAction.Search) {\n const response = await this.search(input, run.signal);\n if (response.aggregations) {\n return new JSONToolOutput(response.aggregations);\n } else {\n return new JSONToolOutput(response.hits.hits.map((hit: ESTypes.SearchHit) => hit._source));\n }\n } else {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n\n protected async listIndices(signal?: AbortSignal): Promise<ESTypes.CatIndicesResponse> {\n const client = await this.client();\n const response = await client.cat.indices(\n {\n expand_wildcards: \"open\",\n h: \"index\",\n format: \"json\",\n },\n { signal: signal },\n );\n return response\n .filter((record) => record.index && !record.index.startsWith(\".\")) // Exclude system indices\n .map((record) => ({ index: record.index }));\n }\n\n protected async getIndexDetails(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.IndicesGetMappingResponse> {\n const client = await this.client();\n return await client.indices.getMapping(\n {\n index: input.indexName,\n },\n { signal: signal },\n );\n }\n\n protected async search(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.SearchResponse> {\n const parsedQuery = parseBrokenJson(input.query);\n const searchBody: ESTypes.SearchRequest = {\n ...parsedQuery,\n from: parsedQuery.from || input.start,\n size: parsedQuery.size || input.size,\n };\n const client = await this.client();\n return await client.search(\n {\n index: input.indexName,\n body: searchBody,\n },\n { signal: signal },\n );\n }\n}\n"]}
@@ -10,24 +10,13 @@ import '../../internals/helpers/guards.cjs';
10
10
  import '../../internals/serializable.cjs';
11
11
  import 'promise-based-task';
12
12
  import '../../cache/base.cjs';
13
- import '../../emitter-D5Mu0EEH.cjs';
13
+ import '../../emitter-DWEsd-ud.cjs';
14
14
  import '../../internals/helpers/promise.cjs';
15
15
  import 'zod-to-json-schema';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface ElasticSearchToolOptions extends BaseToolOptions {
@@ -10,24 +10,13 @@ import '../../internals/helpers/guards.js';
10
10
  import '../../internals/serializable.js';
11
11
  import 'promise-based-task';
12
12
  import '../../cache/base.js';
13
- import '../../emitter-C3dO-s2P.js';
13
+ import '../../emitter-C9nwGLt6.js';
14
14
  import '../../internals/helpers/promise.js';
15
15
  import 'zod-to-json-schema';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface ElasticSearchToolOptions extends BaseToolOptions {
@@ -1 +1 @@
1
- {"version":3,"sources":["elasticsearch.ts"],"names":["ElasticSearchAction","ListIndices","GetIndexDetails","Search","ElasticSearchTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","indexName","string","optional","query","start","coerce","number","int","min","default","size","max","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","options","connection","cloud","node","nodes","ValidationError","message","propertyName","client","Client","info","error","ToolError","isRetryable","isFatal","_run","_options","run","indices","listIndices","signal","JSONToolOutput","indexDetails","getIndexDetails","response","search","aggregations","hits","map","hit","_source","cat","expand_wildcards","h","format","filter","record","index","startsWith","getMapping","parsedQuery","parseBrokenJson","searchBody","from","body"],"mappings":"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","file":"elasticsearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { z } from \"zod\";\nimport { ValidationError } from \"ajv\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { Client, ClientOptions, estypes as ESTypes } from \"@elastic/elasticsearch\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ElasticSearchToolOptions extends BaseToolOptions {\n connection: ClientOptions;\n}\n\nexport type ElasticSearchToolResult =\n | ESTypes.CatIndicesResponse\n | ESTypes.IndicesGetMappingResponse\n | ESTypes.SearchResponse;\n\nexport const ElasticSearchAction = {\n ListIndices: \"LIST_INDICES\",\n GetIndexDetails: \"GET_INDEX_DETAILS\",\n Search: \"SEARCH\",\n} as const;\n\nexport class ElasticSearchTool extends Tool<\n JSONToolOutput<ElasticSearchToolResult>,\n ElasticSearchToolOptions\n> {\n name = \"ElasticSearchTool\";\n\n description = `Can query data from an ElasticSearch database. IMPORTANT: strictly follow this order of actions:\n 1. ${ElasticSearchAction.ListIndices} - retrieve a list of available indices\n 2. ${ElasticSearchAction.GetIndexDetails} - get details of index fields\n 3. ${ElasticSearchAction.Search} - perform search or aggregation query on a specific index or pass the original user query without modifications if it's a valid JSON ElasticSearch query after identifying the index`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(ElasticSearchAction)\n .describe(\n `The action to perform. ${ElasticSearchAction.ListIndices} lists all indices, ${ElasticSearchAction.GetIndexDetails} fetches details for a specified index, and ${ElasticSearchAction.Search} executes a search or aggregation query`,\n ),\n indexName: z\n .string()\n .optional()\n .describe(\n `The name of the index to query, required for ${ElasticSearchAction.GetIndexDetails} and ${ElasticSearchAction.Search}`,\n ),\n query: z\n .string()\n .optional()\n .describe(\n `Valid ElasticSearch JSON search or aggregation query for ${ElasticSearchAction.Search} action`,\n ),\n start: z.coerce\n .number()\n .int()\n .min(0)\n .default(0)\n .optional()\n .describe(\n \"The record index from which the query will start. Increase by the size of the query to get the next page of results\",\n ),\n size: z.coerce\n .number()\n .int()\n .min(0)\n .max(10)\n .default(10)\n .optional()\n .describe(\"How many records will be retrieved from the ElasticSearch query. Maximum is 10\"),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<ElasticSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"elasticsearch\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === ElasticSearchAction.GetIndexDetails && !input.indexName) {\n throw new ToolInputValidationError(\n `Index name is required for ${ElasticSearchAction.GetIndexDetails} action.`,\n );\n }\n if (input.action === ElasticSearchAction.Search && (!input.indexName || !input.query)) {\n throw new ToolInputValidationError(\n `Both index name and query are required for ${ElasticSearchAction.Search} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n public constructor(options: ElasticSearchToolOptions) {\n super(options);\n if (!options.connection.cloud && !options.connection.node && !options.connection.nodes) {\n throw new ValidationError([\n {\n message: \"At least one of the properties must be provided\",\n propertyName: \"connection.cloud, connection.node, connection.nodes\",\n },\n ]);\n }\n }\n\n @Cache()\n protected async client(): Promise<Client> {\n try {\n const client = new Client(this.options.connection);\n await client.info();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to ElasticSearch.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ): Promise<JSONToolOutput<any>> {\n if (input.action === ElasticSearchAction.ListIndices) {\n const indices = await this.listIndices(run.signal);\n return new JSONToolOutput(indices);\n } else if (input.action === ElasticSearchAction.GetIndexDetails) {\n const indexDetails = await this.getIndexDetails(input, run.signal);\n return new JSONToolOutput(indexDetails);\n } else if (input.action === ElasticSearchAction.Search) {\n const response = await this.search(input, run.signal);\n if (response.aggregations) {\n return new JSONToolOutput(response.aggregations);\n } else {\n return new JSONToolOutput(response.hits.hits.map((hit: ESTypes.SearchHit) => hit._source));\n }\n } else {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n\n protected async listIndices(signal?: AbortSignal): Promise<ESTypes.CatIndicesResponse> {\n const client = await this.client();\n const response = await client.cat.indices(\n {\n expand_wildcards: \"open\",\n h: \"index\",\n format: \"json\",\n },\n { signal: signal },\n );\n return response\n .filter((record) => record.index && !record.index.startsWith(\".\")) // Exclude system indices\n .map((record) => ({ index: record.index }));\n }\n\n protected async getIndexDetails(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.IndicesGetMappingResponse> {\n const client = await this.client();\n return await client.indices.getMapping(\n {\n index: input.indexName,\n },\n { signal: signal },\n );\n }\n\n protected async search(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.SearchResponse> {\n const parsedQuery = parseBrokenJson(input.query);\n const searchBody: ESTypes.SearchRequest = {\n ...parsedQuery,\n from: parsedQuery.from || input.start,\n size: parsedQuery.size || input.size,\n };\n const client = await this.client();\n return await client.search(\n {\n index: input.indexName,\n body: searchBody,\n },\n { signal: signal },\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/database/elasticsearch.ts"],"names":["ElasticSearchAction","ListIndices","GetIndexDetails","Search","ElasticSearchTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","indexName","string","optional","query","start","coerce","number","int","min","default","size","max","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","options","connection","cloud","node","nodes","ValidationError","message","propertyName","client","Client","info","error","ToolError","isRetryable","isFatal","_run","_options","run","indices","listIndices","signal","JSONToolOutput","indexDetails","getIndexDetails","response","search","aggregations","hits","map","hit","_source","cat","expand_wildcards","h","format","filter","record","index","startsWith","getMapping","parsedQuery","parseBrokenJson","searchBody","from","body"],"mappings":"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","file":"elasticsearch.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { RunContext } from \"@/context.js\";\nimport { z } from \"zod\";\nimport { ValidationError } from \"ajv\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { Client, ClientOptions, estypes as ESTypes } from \"@elastic/elasticsearch\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface ElasticSearchToolOptions extends BaseToolOptions {\n connection: ClientOptions;\n}\n\nexport type ElasticSearchToolResult =\n | ESTypes.CatIndicesResponse\n | ESTypes.IndicesGetMappingResponse\n | ESTypes.SearchResponse;\n\nexport const ElasticSearchAction = {\n ListIndices: \"LIST_INDICES\",\n GetIndexDetails: \"GET_INDEX_DETAILS\",\n Search: \"SEARCH\",\n} as const;\n\nexport class ElasticSearchTool extends Tool<\n JSONToolOutput<ElasticSearchToolResult>,\n ElasticSearchToolOptions\n> {\n name = \"ElasticSearchTool\";\n\n description = `Can query data from an ElasticSearch database. IMPORTANT: strictly follow this order of actions:\n 1. ${ElasticSearchAction.ListIndices} - retrieve a list of available indices\n 2. ${ElasticSearchAction.GetIndexDetails} - get details of index fields\n 3. ${ElasticSearchAction.Search} - perform search or aggregation query on a specific index or pass the original user query without modifications if it's a valid JSON ElasticSearch query after identifying the index`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(ElasticSearchAction)\n .describe(\n `The action to perform. ${ElasticSearchAction.ListIndices} lists all indices, ${ElasticSearchAction.GetIndexDetails} fetches details for a specified index, and ${ElasticSearchAction.Search} executes a search or aggregation query`,\n ),\n indexName: z\n .string()\n .optional()\n .describe(\n `The name of the index to query, required for ${ElasticSearchAction.GetIndexDetails} and ${ElasticSearchAction.Search}`,\n ),\n query: z\n .string()\n .optional()\n .describe(\n `Valid ElasticSearch JSON search or aggregation query for ${ElasticSearchAction.Search} action`,\n ),\n start: z.coerce\n .number()\n .int()\n .min(0)\n .default(0)\n .optional()\n .describe(\n \"The record index from which the query will start. Increase by the size of the query to get the next page of results\",\n ),\n size: z.coerce\n .number()\n .int()\n .min(0)\n .max(10)\n .default(10)\n .optional()\n .describe(\"How many records will be retrieved from the ElasticSearch query. Maximum is 10\"),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<ElasticSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"elasticsearch\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === ElasticSearchAction.GetIndexDetails && !input.indexName) {\n throw new ToolInputValidationError(\n `Index name is required for ${ElasticSearchAction.GetIndexDetails} action.`,\n );\n }\n if (input.action === ElasticSearchAction.Search && (!input.indexName || !input.query)) {\n throw new ToolInputValidationError(\n `Both index name and query are required for ${ElasticSearchAction.Search} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n public constructor(options: ElasticSearchToolOptions) {\n super(options);\n if (!options.connection.cloud && !options.connection.node && !options.connection.nodes) {\n throw new ValidationError([\n {\n message: \"At least one of the properties must be provided\",\n propertyName: \"connection.cloud, connection.node, connection.nodes\",\n },\n ]);\n }\n }\n\n @Cache()\n protected async client(): Promise<Client> {\n try {\n const client = new Client(this.options.connection);\n await client.info();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to ElasticSearch.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ): Promise<JSONToolOutput<any>> {\n if (input.action === ElasticSearchAction.ListIndices) {\n const indices = await this.listIndices(run.signal);\n return new JSONToolOutput(indices);\n } else if (input.action === ElasticSearchAction.GetIndexDetails) {\n const indexDetails = await this.getIndexDetails(input, run.signal);\n return new JSONToolOutput(indexDetails);\n } else if (input.action === ElasticSearchAction.Search) {\n const response = await this.search(input, run.signal);\n if (response.aggregations) {\n return new JSONToolOutput(response.aggregations);\n } else {\n return new JSONToolOutput(response.hits.hits.map((hit: ESTypes.SearchHit) => hit._source));\n }\n } else {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n\n protected async listIndices(signal?: AbortSignal): Promise<ESTypes.CatIndicesResponse> {\n const client = await this.client();\n const response = await client.cat.indices(\n {\n expand_wildcards: \"open\",\n h: \"index\",\n format: \"json\",\n },\n { signal: signal },\n );\n return response\n .filter((record) => record.index && !record.index.startsWith(\".\")) // Exclude system indices\n .map((record) => ({ index: record.index }));\n }\n\n protected async getIndexDetails(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.IndicesGetMappingResponse> {\n const client = await this.client();\n return await client.indices.getMapping(\n {\n index: input.indexName,\n },\n { signal: signal },\n );\n }\n\n protected async search(\n input: ToolInput<this>,\n signal: AbortSignal,\n ): Promise<ESTypes.SearchResponse> {\n const parsedQuery = parseBrokenJson(input.query);\n const searchBody: ESTypes.SearchRequest = {\n ...parsedQuery,\n from: parsedQuery.from || input.start,\n size: parsedQuery.size || input.size,\n };\n const client = await this.client();\n return await client.search(\n {\n index: input.indexName,\n body: searchBody,\n },\n { signal: signal },\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["metadata.ts"],"names":["getMetadata","sequelize","provider","schema","query","getMetadataQuery","metadata","tableMap","Map","forEach","tableName","columnName","dataType","has","set","get","push","Array","from","values","map","columns","join","error","ToolError","isRetryable","schemaName","getDefaultSchema","isFatal"],"mappings":"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","file":"metadata.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ToolError } from \"@/tools/base.js\";\nimport { Sequelize } from \"sequelize\";\n\nexport type Provider = \"mysql\" | \"mariadb\" | \"postgres\" | \"mssql\" | \"db2\" | \"sqlite\" | \"oracle\";\n\nexport interface Metadata {\n tableName: string;\n columnName: string;\n dataType: string;\n}\n\nexport async function getMetadata(\n sequelize: Sequelize,\n provider: Provider,\n schema?: string,\n): Promise<string> {\n try {\n const query = getMetadataQuery(provider, schema);\n\n const [metadata] = (await sequelize.query(query)) as [Metadata[], any];\n\n const tableMap = new Map<string, string[]>();\n\n metadata.forEach(({ tableName, columnName, dataType }) => {\n if (!tableMap.has(tableName)) {\n tableMap.set(tableName, [`Table '${tableName}' with columns: ${columnName} (${dataType})`]);\n } else {\n tableMap.get(tableName)!.push(`${columnName} (${dataType})`);\n }\n });\n\n return Array.from(tableMap.values())\n .map((columns) => columns.join(\", \"))\n .join(\"; \");\n } catch (error) {\n throw new ToolError(`Error initializing metadata: ${error}`, [], {\n isRetryable: false,\n });\n }\n}\n\nfunction getMetadataQuery(provider: Provider, schema?: string): string {\n const schemaName = schema ?? getDefaultSchema(provider);\n\n switch (provider) {\n case \"mysql\":\n case \"mariadb\":\n return `\n SELECT t.table_name AS tableName, c.column_name AS columnName, \n c.data_type AS dataType\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = DATABASE();\n `;\n\n case \"postgres\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = lower('${schemaName}');\n `;\n\n case \"mssql\":\n return `\n SELECT t.name AS tableName, c.name AS columnName,\n ty.name AS dataType\n FROM sys.tables t\n JOIN sys.columns c ON t.object_id = c.object_id\n JOIN sys.types ty ON c.user_type_id = ty.user_type_id\n JOIN sys.schemas s ON t.schema_id = s.schema_id\n WHERE t.is_ms_shipped = 0 AND t.type = 'U'\n AND s.name = lower('${schemaName}');\n `;\n\n case \"db2\":\n return `\n SELECT t.tabname AS \"tableName\", c.colname AS \"columnName\", \n c.typename AS \"dataType\"\n FROM SYSCAT.TABLES t\n JOIN SYSCAT.COLUMNS c ON t.tabname = c.tabname\n WHERE t.tabschema = upper('${schemaName}');\n `;\n\n case \"sqlite\":\n return `\n SELECT tbl_name AS \"tableName\", name AS \"columnName\", type AS \"dataType\"\n FROM (\n SELECT name AS tbl_name\n FROM sqlite_master\n WHERE type = 'table'\n )\n JOIN pragma_table_xinfo(tbl_name);\n `;\n\n case \"oracle\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM all_tables t\n JOIN all_tab_columns c ON t.table_name = c.table_name\n WHERE t.owner = upper('${schemaName}');\n `;\n\n default:\n throw new ToolError(`Provider ${provider} is not supported`, [], {\n isFatal: true,\n isRetryable: false,\n });\n }\n}\n\nfunction getDefaultSchema(provider: Provider): string {\n switch (provider) {\n case \"postgres\":\n return \"public\";\n case \"mssql\":\n return \"dbo\";\n case \"db2\":\n case \"oracle\":\n throw new ToolError(`Schema name is required for ${provider}`, [], {\n isRetryable: false,\n isFatal: true,\n });\n default:\n return \"\";\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/database/metadata.ts"],"names":["getMetadata","sequelize","provider","schema","query","getMetadataQuery","metadata","tableMap","Map","forEach","tableName","columnName","dataType","has","set","get","push","Array","from","values","map","columns","join","error","ToolError","isRetryable","schemaName","getDefaultSchema","isFatal"],"mappings":"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","file":"metadata.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolError } from \"@/tools/base.js\";\nimport { Sequelize } from \"sequelize\";\n\nexport type Provider = \"mysql\" | \"mariadb\" | \"postgres\" | \"mssql\" | \"db2\" | \"sqlite\" | \"oracle\";\n\nexport interface Metadata {\n tableName: string;\n columnName: string;\n dataType: string;\n}\n\nexport async function getMetadata(\n sequelize: Sequelize,\n provider: Provider,\n schema?: string,\n): Promise<string> {\n try {\n const query = getMetadataQuery(provider, schema);\n\n const [metadata] = (await sequelize.query(query)) as [Metadata[], any];\n\n const tableMap = new Map<string, string[]>();\n\n metadata.forEach(({ tableName, columnName, dataType }) => {\n if (!tableMap.has(tableName)) {\n tableMap.set(tableName, [`Table '${tableName}' with columns: ${columnName} (${dataType})`]);\n } else {\n tableMap.get(tableName)!.push(`${columnName} (${dataType})`);\n }\n });\n\n return Array.from(tableMap.values())\n .map((columns) => columns.join(\", \"))\n .join(\"; \");\n } catch (error) {\n throw new ToolError(`Error initializing metadata: ${error}`, [], {\n isRetryable: false,\n });\n }\n}\n\nfunction getMetadataQuery(provider: Provider, schema?: string): string {\n const schemaName = schema ?? getDefaultSchema(provider);\n\n switch (provider) {\n case \"mysql\":\n case \"mariadb\":\n return `\n SELECT t.table_name AS tableName, c.column_name AS columnName, \n c.data_type AS dataType\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = DATABASE();\n `;\n\n case \"postgres\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = lower('${schemaName}');\n `;\n\n case \"mssql\":\n return `\n SELECT t.name AS tableName, c.name AS columnName,\n ty.name AS dataType\n FROM sys.tables t\n JOIN sys.columns c ON t.object_id = c.object_id\n JOIN sys.types ty ON c.user_type_id = ty.user_type_id\n JOIN sys.schemas s ON t.schema_id = s.schema_id\n WHERE t.is_ms_shipped = 0 AND t.type = 'U'\n AND s.name = lower('${schemaName}');\n `;\n\n case \"db2\":\n return `\n SELECT t.tabname AS \"tableName\", c.colname AS \"columnName\", \n c.typename AS \"dataType\"\n FROM SYSCAT.TABLES t\n JOIN SYSCAT.COLUMNS c ON t.tabname = c.tabname\n WHERE t.tabschema = upper('${schemaName}');\n `;\n\n case \"sqlite\":\n return `\n SELECT tbl_name AS \"tableName\", name AS \"columnName\", type AS \"dataType\"\n FROM (\n SELECT name AS tbl_name\n FROM sqlite_master\n WHERE type = 'table'\n )\n JOIN pragma_table_xinfo(tbl_name);\n `;\n\n case \"oracle\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM all_tables t\n JOIN all_tab_columns c ON t.table_name = c.table_name\n WHERE t.owner = upper('${schemaName}');\n `;\n\n default:\n throw new ToolError(`Provider ${provider} is not supported`, [], {\n isFatal: true,\n isRetryable: false,\n });\n }\n}\n\nfunction getDefaultSchema(provider: Provider): string {\n switch (provider) {\n case \"postgres\":\n return \"public\";\n case \"mssql\":\n return \"dbo\";\n case \"db2\":\n case \"oracle\":\n throw new ToolError(`Schema name is required for ${provider}`, [], {\n isRetryable: false,\n isFatal: true,\n });\n default:\n return \"\";\n }\n}\n"]}
@@ -2,18 +2,7 @@ import { Sequelize } from 'sequelize';
2
2
 
3
3
  /**
4
4
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
5
+ * SPDX-License-Identifier: Apache-2.0
17
6
  */
18
7
 
19
8
  type Provider = "mysql" | "mariadb" | "postgres" | "mssql" | "db2" | "sqlite" | "oracle";
@@ -2,18 +2,7 @@ import { Sequelize } from 'sequelize';
2
2
 
3
3
  /**
4
4
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
5
+ * SPDX-License-Identifier: Apache-2.0
17
6
  */
18
7
 
19
8
  type Provider = "mysql" | "mariadb" | "postgres" | "mssql" | "db2" | "sqlite" | "oracle";
@@ -1 +1 @@
1
- {"version":3,"sources":["metadata.ts"],"names":["getMetadata","sequelize","provider","schema","query","getMetadataQuery","metadata","tableMap","Map","forEach","tableName","columnName","dataType","has","set","get","push","Array","from","values","map","columns","join","error","ToolError","isRetryable","schemaName","getDefaultSchema","isFatal"],"mappings":";;;;AA2BA,eAAsBA,WAAAA,CACpBC,SACAC,EAAAA,QAAAA,EACAC,MAAe,EAAA;AAEf,EAAI,IAAA;AACF,IAAMC,MAAAA,KAAAA,GAAQC,gBAAiBH,CAAAA,QAAAA,EAAUC,MAAAA,CAAAA;AAEzC,IAAA,MAAM,CAACG,QAAAA,CAAAA,GAAa,MAAML,SAAAA,CAAUG,MAAMA,KAAAA,CAAAA;AAE1C,IAAMG,MAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;AAErBF,IAAAA,QAAAA,CAASG,QAAQ,CAAC,EAAEC,SAAWC,EAAAA,UAAAA,EAAYC,UAAU,KAAA;AACnD,MAAA,IAAI,CAACL,QAAAA,CAASM,GAAIH,CAAAA,SAAAA,CAAY,EAAA;AAC5BH,QAAAA,QAAAA,CAASO,IAAIJ,SAAW,EAAA;AAAC,UAAA,CAAA,OAAA,EAAUA,SAAAA,CAAAA,gBAAAA,EAA4BC,UAAAA,CAAAA,EAAAA,EAAeC,QAAAA,CAAAA,CAAAA;AAAY,SAAA,CAAA;OACrF,MAAA;AACLL,QAASQ,QAAAA,CAAAA,GAAAA,CAAIL,SAAAA,CAAYM,CAAAA,IAAAA,CAAK,GAAGL,UAAAA,CAAAA,EAAAA,EAAeC,QAAAA,CAAW,CAAA,CAAA,CAAA;AAC7D;KACF,CAAA;AAEA,IAAA,OAAOK,KAAMC,CAAAA,IAAAA,CAAKX,QAASY,CAAAA,MAAAA,EAAM,CAC9BC,CAAAA,GAAAA,CAAI,CAACC,OAAAA,KAAYA,QAAQC,IAAK,CAAA,IAAA,CAAA,CAAA,CAC9BA,KAAK,IAAA,CAAA;AACV,GAAA,CAAA,OAASC,KAAO,EAAA;AACd,IAAA,MAAM,IAAIC,SAAU,CAAA,CAAA,6BAAA,EAAgCD,KAAAA,CAAAA,CAAAA,EAAS,EAAI,EAAA;MAC/DE,WAAa,EAAA;KACf,CAAA;AACF;AACF;AA5BsBzB,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AA8BtB,SAASK,gBAAAA,CAAiBH,UAAoBC,MAAe,EAAA;AAC3D,EAAMuB,MAAAA,UAAAA,GAAavB,MAAUwB,IAAAA,gBAAAA,CAAiBzB,QAAAA,CAAAA;AAE9C,EAAA,QAAQA,QAAAA;IACN,KAAK,OAAA;IACL,KAAK,SAAA;AACH,MAAO,OAAA;;;;;;;IAQT,KAAK,UAAA;AACH,MAAO,OAAA;;;;;0CAK6BwB,UAAAA,CAAAA;;IAGtC,KAAK,OAAA;AACH,MAAO,OAAA;;;;;;;;sCAQyBA,UAAAA,CAAAA;;IAGlC,KAAK,KAAA;AACH,MAAO,OAAA;;;;;uCAK0BA,UAAAA,CAAAA;;IAGnC,KAAK,QAAA;AACH,MAAO,OAAA;;;;;;;;;IAUT,KAAK,QAAA;AACH,MAAO,OAAA;;;;;mCAKsBA,UAAAA,CAAAA;;AAG/B,IAAA;AACE,MAAA,MAAM,IAAIF,SAAU,CAAA,CAAA,SAAA,EAAYtB,QAAAA,CAAAA,iBAAAA,CAAAA,EAA6B,EAAI,EAAA;QAC/D0B,OAAS,EAAA,IAAA;QACTH,WAAa,EAAA;OACf,CAAA;AACJ;AACF;AAtESpB,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAwET,SAASsB,iBAAiBzB,QAAkB,EAAA;AAC1C,EAAA,QAAQA,QAAAA;IACN,KAAK,UAAA;AACH,MAAO,OAAA,QAAA;IACT,KAAK,OAAA;AACH,MAAO,OAAA,KAAA;IACT,KAAK,KAAA;IACL,KAAK,QAAA;AACH,MAAA,MAAM,IAAIsB,SAAU,CAAA,CAAA,4BAAA,EAA+BtB,QAAAA,CAAAA,CAAAA,EAAY,EAAI,EAAA;QACjEuB,WAAa,EAAA,KAAA;QACbG,OAAS,EAAA;OACX,CAAA;AACF,IAAA;AACE,MAAO,OAAA,EAAA;AACX;AACF;AAfSD,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"metadata.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ToolError } from \"@/tools/base.js\";\nimport { Sequelize } from \"sequelize\";\n\nexport type Provider = \"mysql\" | \"mariadb\" | \"postgres\" | \"mssql\" | \"db2\" | \"sqlite\" | \"oracle\";\n\nexport interface Metadata {\n tableName: string;\n columnName: string;\n dataType: string;\n}\n\nexport async function getMetadata(\n sequelize: Sequelize,\n provider: Provider,\n schema?: string,\n): Promise<string> {\n try {\n const query = getMetadataQuery(provider, schema);\n\n const [metadata] = (await sequelize.query(query)) as [Metadata[], any];\n\n const tableMap = new Map<string, string[]>();\n\n metadata.forEach(({ tableName, columnName, dataType }) => {\n if (!tableMap.has(tableName)) {\n tableMap.set(tableName, [`Table '${tableName}' with columns: ${columnName} (${dataType})`]);\n } else {\n tableMap.get(tableName)!.push(`${columnName} (${dataType})`);\n }\n });\n\n return Array.from(tableMap.values())\n .map((columns) => columns.join(\", \"))\n .join(\"; \");\n } catch (error) {\n throw new ToolError(`Error initializing metadata: ${error}`, [], {\n isRetryable: false,\n });\n }\n}\n\nfunction getMetadataQuery(provider: Provider, schema?: string): string {\n const schemaName = schema ?? getDefaultSchema(provider);\n\n switch (provider) {\n case \"mysql\":\n case \"mariadb\":\n return `\n SELECT t.table_name AS tableName, c.column_name AS columnName, \n c.data_type AS dataType\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = DATABASE();\n `;\n\n case \"postgres\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = lower('${schemaName}');\n `;\n\n case \"mssql\":\n return `\n SELECT t.name AS tableName, c.name AS columnName,\n ty.name AS dataType\n FROM sys.tables t\n JOIN sys.columns c ON t.object_id = c.object_id\n JOIN sys.types ty ON c.user_type_id = ty.user_type_id\n JOIN sys.schemas s ON t.schema_id = s.schema_id\n WHERE t.is_ms_shipped = 0 AND t.type = 'U'\n AND s.name = lower('${schemaName}');\n `;\n\n case \"db2\":\n return `\n SELECT t.tabname AS \"tableName\", c.colname AS \"columnName\", \n c.typename AS \"dataType\"\n FROM SYSCAT.TABLES t\n JOIN SYSCAT.COLUMNS c ON t.tabname = c.tabname\n WHERE t.tabschema = upper('${schemaName}');\n `;\n\n case \"sqlite\":\n return `\n SELECT tbl_name AS \"tableName\", name AS \"columnName\", type AS \"dataType\"\n FROM (\n SELECT name AS tbl_name\n FROM sqlite_master\n WHERE type = 'table'\n )\n JOIN pragma_table_xinfo(tbl_name);\n `;\n\n case \"oracle\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM all_tables t\n JOIN all_tab_columns c ON t.table_name = c.table_name\n WHERE t.owner = upper('${schemaName}');\n `;\n\n default:\n throw new ToolError(`Provider ${provider} is not supported`, [], {\n isFatal: true,\n isRetryable: false,\n });\n }\n}\n\nfunction getDefaultSchema(provider: Provider): string {\n switch (provider) {\n case \"postgres\":\n return \"public\";\n case \"mssql\":\n return \"dbo\";\n case \"db2\":\n case \"oracle\":\n throw new ToolError(`Schema name is required for ${provider}`, [], {\n isRetryable: false,\n isFatal: true,\n });\n default:\n return \"\";\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/database/metadata.ts"],"names":["getMetadata","sequelize","provider","schema","query","getMetadataQuery","metadata","tableMap","Map","forEach","tableName","columnName","dataType","has","set","get","push","Array","from","values","map","columns","join","error","ToolError","isRetryable","schemaName","getDefaultSchema","isFatal"],"mappings":"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","file":"metadata.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolError } from \"@/tools/base.js\";\nimport { Sequelize } from \"sequelize\";\n\nexport type Provider = \"mysql\" | \"mariadb\" | \"postgres\" | \"mssql\" | \"db2\" | \"sqlite\" | \"oracle\";\n\nexport interface Metadata {\n tableName: string;\n columnName: string;\n dataType: string;\n}\n\nexport async function getMetadata(\n sequelize: Sequelize,\n provider: Provider,\n schema?: string,\n): Promise<string> {\n try {\n const query = getMetadataQuery(provider, schema);\n\n const [metadata] = (await sequelize.query(query)) as [Metadata[], any];\n\n const tableMap = new Map<string, string[]>();\n\n metadata.forEach(({ tableName, columnName, dataType }) => {\n if (!tableMap.has(tableName)) {\n tableMap.set(tableName, [`Table '${tableName}' with columns: ${columnName} (${dataType})`]);\n } else {\n tableMap.get(tableName)!.push(`${columnName} (${dataType})`);\n }\n });\n\n return Array.from(tableMap.values())\n .map((columns) => columns.join(\", \"))\n .join(\"; \");\n } catch (error) {\n throw new ToolError(`Error initializing metadata: ${error}`, [], {\n isRetryable: false,\n });\n }\n}\n\nfunction getMetadataQuery(provider: Provider, schema?: string): string {\n const schemaName = schema ?? getDefaultSchema(provider);\n\n switch (provider) {\n case \"mysql\":\n case \"mariadb\":\n return `\n SELECT t.table_name AS tableName, c.column_name AS columnName, \n c.data_type AS dataType\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = DATABASE();\n `;\n\n case \"postgres\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM information_schema.tables t\n JOIN information_schema.columns c ON t.table_name = c.table_name\n WHERE t.table_schema = lower('${schemaName}');\n `;\n\n case \"mssql\":\n return `\n SELECT t.name AS tableName, c.name AS columnName,\n ty.name AS dataType\n FROM sys.tables t\n JOIN sys.columns c ON t.object_id = c.object_id\n JOIN sys.types ty ON c.user_type_id = ty.user_type_id\n JOIN sys.schemas s ON t.schema_id = s.schema_id\n WHERE t.is_ms_shipped = 0 AND t.type = 'U'\n AND s.name = lower('${schemaName}');\n `;\n\n case \"db2\":\n return `\n SELECT t.tabname AS \"tableName\", c.colname AS \"columnName\", \n c.typename AS \"dataType\"\n FROM SYSCAT.TABLES t\n JOIN SYSCAT.COLUMNS c ON t.tabname = c.tabname\n WHERE t.tabschema = upper('${schemaName}');\n `;\n\n case \"sqlite\":\n return `\n SELECT tbl_name AS \"tableName\", name AS \"columnName\", type AS \"dataType\"\n FROM (\n SELECT name AS tbl_name\n FROM sqlite_master\n WHERE type = 'table'\n )\n JOIN pragma_table_xinfo(tbl_name);\n `;\n\n case \"oracle\":\n return `\n SELECT t.table_name AS \"tableName\", c.column_name AS \"columnName\", \n c.data_type AS \"dataType\"\n FROM all_tables t\n JOIN all_tab_columns c ON t.table_name = c.table_name\n WHERE t.owner = upper('${schemaName}');\n `;\n\n default:\n throw new ToolError(`Provider ${provider} is not supported`, [], {\n isFatal: true,\n isRetryable: false,\n });\n }\n}\n\nfunction getDefaultSchema(provider: Provider): string {\n switch (provider) {\n case \"postgres\":\n return \"public\";\n case \"mssql\":\n return \"dbo\";\n case \"db2\":\n case \"oracle\":\n throw new ToolError(`Schema name is required for ${provider}`, [], {\n isRetryable: false,\n isFatal: true,\n });\n default:\n return \"\";\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["milvus.ts"],"names":["MilvusAction","MilvusDatabaseTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","collectionName","string","optional","vector","array","number","vectors","topK","coerce","int","min","max","default","filter","metadata","record","any","ids","or","searchOutput","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","client","MilvusClient","options","connection","listCollections","error","ToolError","isRetryable","isFatal","_run","_options","collections","JSONToolOutput","collectionInfo","getCollectionInfo","searchResults","search","insertResults","insert","deleteResults","delete","response","data","Array","isArray","map","collection","describeCollection","collection_name","fields_data","index","limit","output_fields","results","join"],"mappings":"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","file":"milvus.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport {\n ClientConfig,\n MilvusClient,\n SearchRes,\n ShowCollectionsResponse,\n DescribeCollectionResponse,\n} from \"@zilliz/milvus2-sdk-node\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface MilvusToolOptions extends BaseToolOptions {\n connection: ClientConfig;\n}\n\nexport type MilvusSearchToolResult =\n | ShowCollectionsResponse\n | DescribeCollectionResponse\n | SearchRes;\n\nexport enum MilvusAction {\n ListCollections = \"ListCollections\",\n GetCollectionInfo = \"GetCollectionInfo\",\n Search = \"Search\",\n Insert = \"Insert\",\n Delete = \"Delete\",\n}\n\nexport class MilvusDatabaseTool extends Tool<\n JSONToolOutput<MilvusSearchToolResult>,\n MilvusToolOptions\n> {\n name = \"MilvusDatabaseTool\";\n\n description = `Can query data from a Milvus database. IMPORTANT: strictly follow this order of actions:\n 1. ${MilvusAction.ListCollections} - List all the Milvus collections\n 2. ${MilvusAction.GetCollectionInfo} - Get information about into a Milvus collection\n 3. ${MilvusAction.Insert} - Insert data into a Milvus collection\n 3. ${MilvusAction.Search} - Perform search on a Milvus collection\n 4. ${MilvusAction.Delete} - Delete from a Milvus collection`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(MilvusAction)\n .describe(\n `The action to perform. ${MilvusAction.ListCollections} lists all collections, ${MilvusAction.GetCollectionInfo} fetches details for a specified collection, ${MilvusAction.Search} executes a vector search, ${MilvusAction.Insert} inserts new vectors, and ${MilvusAction.Delete} removes vectors.`,\n ),\n collectionName: z\n .string()\n .optional()\n .describe(\n `The name of the collection to query, required for ${MilvusAction.GetCollectionInfo}, ${MilvusAction.Search}, ${MilvusAction.Insert}, and ${MilvusAction.Delete}`,\n ),\n vector: z\n .array(z.number())\n .optional()\n .describe(`The vector to search for or insert, required for ${MilvusAction.Search}`),\n vectors: z\n .array(z.array(z.number()))\n .optional()\n .describe(`The vectors to insert, required for ${MilvusAction.Insert}`),\n topK: z.coerce\n .number()\n .int()\n .min(1)\n .max(1000)\n .default(10)\n .optional()\n .describe(\n `The number of nearest neighbors to return for ${MilvusAction.Search}. Maximum is 1000`,\n ),\n filter: z\n .string()\n .optional()\n .describe(`Optional filter expression for ${MilvusAction.Search}`),\n metadata: z\n .record(z.string(), z.any())\n .optional()\n .describe(`Additional metadata to insert with vectors for ${MilvusAction.Insert}`),\n ids: z\n .array(z.string().or(z.number()))\n .optional()\n .describe(`Array of IDs to delete for ${MilvusAction.Delete}`),\n searchOutput: z\n .array(z.string())\n .optional()\n .describe(`Fields to return in search results for ${MilvusAction.Search}`),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<MilvusSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"milvus\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === MilvusAction.GetCollectionInfo && !input.collectionName) {\n throw new ToolInputValidationError(\n `Collection name is required for ${MilvusAction.GetCollectionInfo}, ${MilvusAction.Search}, ${MilvusAction.Insert}, and ${MilvusAction.Delete} actions.`,\n );\n }\n if (input.action === MilvusAction.Search && (!input.collectionName || !input.vector)) {\n throw new ToolInputValidationError(\n `Both collection name and vector are required for ${MilvusAction.Search} action.`,\n );\n }\n if (input.action === MilvusAction.Insert && (!input.collectionName || !input.vectors)) {\n throw new ToolInputValidationError(\n `Both collection name and vectors are required for ${MilvusAction.Insert} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n @Cache()\n protected async client(): Promise<MilvusClient> {\n try {\n const client = new MilvusClient(this.options.connection);\n // operation expected to fail if connection is not established correctly.\n await client.listCollections();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to Milvus.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n ): Promise<JSONToolOutput<any>> {\n switch (input.action) {\n case MilvusAction.ListCollections: {\n const collections = await this.listCollections();\n return new JSONToolOutput(collections);\n }\n\n case MilvusAction.GetCollectionInfo: {\n if (!input.collectionName) {\n throw new ToolError(\"A collection name is required for Milvus GetCollectionInfo action\");\n }\n const collectionInfo = await this.getCollectionInfo(input.collectionName);\n return new JSONToolOutput(collectionInfo);\n }\n\n case MilvusAction.Search: {\n if (!input.collectionName || !input.vector) {\n throw new ToolError(\"A collection name and vector are required for Milvus Search action\");\n }\n const searchResults = await this.search(input);\n return new JSONToolOutput(searchResults);\n }\n\n case MilvusAction.Insert: {\n if (!input.collectionName || !input.vectors) {\n throw new ToolError(\n \"A collection name and vectors are required for Milvus Insert action\",\n );\n }\n const insertResults = await this.insert(input);\n return new JSONToolOutput(insertResults);\n }\n\n case MilvusAction.Delete: {\n if (!input.collectionName || !input.ids) {\n throw new ToolError(\"Collection name and ids are required for Milvus Delete action\");\n }\n const deleteResults = await this.delete(input);\n return new JSONToolOutput(deleteResults);\n }\n\n default: {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n }\n\n protected async listCollections(): Promise<string[]> {\n try {\n const client = await this.client();\n const response = await client.listCollections({});\n\n if (response && response.data && Array.isArray(response.data)) {\n return response.data.map((collection) => collection.name);\n } else {\n return [];\n }\n } catch (error) {\n throw new ToolError(`Failed to list collections from Milvus: ${error}`);\n }\n }\n\n protected async getCollectionInfo(collectionName: string): Promise<any> {\n const client = await this.client();\n const response = client.describeCollection({ collection_name: collectionName });\n return response;\n }\n\n protected async insert(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = await client.insert({\n collection_name: input.collectionName as string,\n fields_data: input.vectors!.map((vector, index) => ({\n vector: vector,\n ...input.metadata?.[index],\n })),\n });\n return response;\n }\n\n protected async search(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = await client.search({\n collection_name: input.collectionName as string,\n vector: input.vector,\n limit: input.topK || 10,\n filter: input.filter,\n output_fields: input.searchOutput,\n });\n return response.results;\n }\n\n protected async delete(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = client.delete({\n collection_name: input.collectionName as string,\n filter: `id in [${input.ids?.join(\",\")}]`,\n });\n return response;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/tools/database/milvus.ts"],"names":["MilvusAction","MilvusDatabaseTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","collectionName","string","optional","vector","array","number","vectors","topK","coerce","int","min","max","default","filter","metadata","record","any","ids","or","searchOutput","emitter","Emitter","root","child","namespace","creator","validateInput","schema","input","ToolInputValidationError","register","client","MilvusClient","options","connection","listCollections","error","ToolError","isRetryable","isFatal","_run","_options","collections","JSONToolOutput","collectionInfo","getCollectionInfo","searchResults","search","insertResults","insert","deleteResults","delete","response","data","Array","isArray","map","collection","describeCollection","collection_name","fields_data","index","limit","output_fields","results","join"],"mappings":"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","file":"milvus.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Tool,\n ToolInput,\n ToolError,\n BaseToolOptions,\n BaseToolRunOptions,\n JSONToolOutput,\n ToolInputValidationError,\n ToolEmitter,\n} from \"@/tools/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport {\n ClientConfig,\n MilvusClient,\n SearchRes,\n ShowCollectionsResponse,\n DescribeCollectionResponse,\n} from \"@zilliz/milvus2-sdk-node\";\nimport { z } from \"zod\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport interface MilvusToolOptions extends BaseToolOptions {\n connection: ClientConfig;\n}\n\nexport type MilvusSearchToolResult =\n | ShowCollectionsResponse\n | DescribeCollectionResponse\n | SearchRes;\n\nexport enum MilvusAction {\n ListCollections = \"ListCollections\",\n GetCollectionInfo = \"GetCollectionInfo\",\n Search = \"Search\",\n Insert = \"Insert\",\n Delete = \"Delete\",\n}\n\nexport class MilvusDatabaseTool extends Tool<\n JSONToolOutput<MilvusSearchToolResult>,\n MilvusToolOptions\n> {\n name = \"MilvusDatabaseTool\";\n\n description = `Can query data from a Milvus database. IMPORTANT: strictly follow this order of actions:\n 1. ${MilvusAction.ListCollections} - List all the Milvus collections\n 2. ${MilvusAction.GetCollectionInfo} - Get information about into a Milvus collection\n 3. ${MilvusAction.Insert} - Insert data into a Milvus collection\n 3. ${MilvusAction.Search} - Perform search on a Milvus collection\n 4. ${MilvusAction.Delete} - Delete from a Milvus collection`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(MilvusAction)\n .describe(\n `The action to perform. ${MilvusAction.ListCollections} lists all collections, ${MilvusAction.GetCollectionInfo} fetches details for a specified collection, ${MilvusAction.Search} executes a vector search, ${MilvusAction.Insert} inserts new vectors, and ${MilvusAction.Delete} removes vectors.`,\n ),\n collectionName: z\n .string()\n .optional()\n .describe(\n `The name of the collection to query, required for ${MilvusAction.GetCollectionInfo}, ${MilvusAction.Search}, ${MilvusAction.Insert}, and ${MilvusAction.Delete}`,\n ),\n vector: z\n .array(z.number())\n .optional()\n .describe(`The vector to search for or insert, required for ${MilvusAction.Search}`),\n vectors: z\n .array(z.array(z.number()))\n .optional()\n .describe(`The vectors to insert, required for ${MilvusAction.Insert}`),\n topK: z.coerce\n .number()\n .int()\n .min(1)\n .max(1000)\n .default(10)\n .optional()\n .describe(\n `The number of nearest neighbors to return for ${MilvusAction.Search}. Maximum is 1000`,\n ),\n filter: z\n .string()\n .optional()\n .describe(`Optional filter expression for ${MilvusAction.Search}`),\n metadata: z\n .record(z.string(), z.any())\n .optional()\n .describe(`Additional metadata to insert with vectors for ${MilvusAction.Insert}`),\n ids: z\n .array(z.string().or(z.number()))\n .optional()\n .describe(`Array of IDs to delete for ${MilvusAction.Delete}`),\n searchOutput: z\n .array(z.string())\n .optional()\n .describe(`Fields to return in search results for ${MilvusAction.Search}`),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<MilvusSearchToolResult>> =\n Emitter.root.child({\n namespace: [\"tool\", \"database\", \"milvus\"],\n creator: this,\n });\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n input: unknown,\n ): asserts input is ToolInput<this> {\n super.validateInput(schema, input);\n if (input.action === MilvusAction.GetCollectionInfo && !input.collectionName) {\n throw new ToolInputValidationError(\n `Collection name is required for ${MilvusAction.GetCollectionInfo}, ${MilvusAction.Search}, ${MilvusAction.Insert}, and ${MilvusAction.Delete} actions.`,\n );\n }\n if (input.action === MilvusAction.Search && (!input.collectionName || !input.vector)) {\n throw new ToolInputValidationError(\n `Both collection name and vector are required for ${MilvusAction.Search} action.`,\n );\n }\n if (input.action === MilvusAction.Insert && (!input.collectionName || !input.vectors)) {\n throw new ToolInputValidationError(\n `Both collection name and vectors are required for ${MilvusAction.Insert} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n @Cache()\n protected async client(): Promise<MilvusClient> {\n try {\n const client = new MilvusClient(this.options.connection);\n // operation expected to fail if connection is not established correctly.\n await client.listCollections();\n return client;\n } catch (error) {\n throw new ToolError(`Unable to connect to Milvus.`, [error], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n ): Promise<JSONToolOutput<any>> {\n switch (input.action) {\n case MilvusAction.ListCollections: {\n const collections = await this.listCollections();\n return new JSONToolOutput(collections);\n }\n\n case MilvusAction.GetCollectionInfo: {\n if (!input.collectionName) {\n throw new ToolError(\"A collection name is required for Milvus GetCollectionInfo action\");\n }\n const collectionInfo = await this.getCollectionInfo(input.collectionName);\n return new JSONToolOutput(collectionInfo);\n }\n\n case MilvusAction.Search: {\n if (!input.collectionName || !input.vector) {\n throw new ToolError(\"A collection name and vector are required for Milvus Search action\");\n }\n const searchResults = await this.search(input);\n return new JSONToolOutput(searchResults);\n }\n\n case MilvusAction.Insert: {\n if (!input.collectionName || !input.vectors) {\n throw new ToolError(\n \"A collection name and vectors are required for Milvus Insert action\",\n );\n }\n const insertResults = await this.insert(input);\n return new JSONToolOutput(insertResults);\n }\n\n case MilvusAction.Delete: {\n if (!input.collectionName || !input.ids) {\n throw new ToolError(\"Collection name and ids are required for Milvus Delete action\");\n }\n const deleteResults = await this.delete(input);\n return new JSONToolOutput(deleteResults);\n }\n\n default: {\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n }\n }\n\n protected async listCollections(): Promise<string[]> {\n try {\n const client = await this.client();\n const response = await client.listCollections({});\n\n if (response && response.data && Array.isArray(response.data)) {\n return response.data.map((collection) => collection.name);\n } else {\n return [];\n }\n } catch (error) {\n throw new ToolError(`Failed to list collections from Milvus: ${error}`);\n }\n }\n\n protected async getCollectionInfo(collectionName: string): Promise<any> {\n const client = await this.client();\n const response = client.describeCollection({ collection_name: collectionName });\n return response;\n }\n\n protected async insert(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = await client.insert({\n collection_name: input.collectionName as string,\n fields_data: input.vectors!.map((vector, index) => ({\n vector: vector,\n ...input.metadata?.[index],\n })),\n });\n return response;\n }\n\n protected async search(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = await client.search({\n collection_name: input.collectionName as string,\n vector: input.vector,\n limit: input.topK || 10,\n filter: input.filter,\n output_fields: input.searchOutput,\n });\n return response.results;\n }\n\n protected async delete(input: ToolInput<this>): Promise<any> {\n const client = await this.client();\n const response = client.delete({\n collection_name: input.collectionName as string,\n filter: `id in [${input.ids?.join(\",\")}]`,\n });\n return response;\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { ClientConfig, ShowCollectionsResponse, DescribeCollectionResponse, Sear
4
4
  import { z } from 'zod';
5
5
  import 'ajv';
6
6
  import '../../context.cjs';
7
- import '../../emitter-D5Mu0EEH.cjs';
7
+ import '../../emitter-DWEsd-ud.cjs';
8
8
  import '../../internals/types.cjs';
9
9
  import '../../internals/helpers/guards.cjs';
10
10
  import '../../internals/serializable.cjs';
@@ -16,18 +16,7 @@ import 'zod-to-json-schema';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface MilvusToolOptions extends BaseToolOptions {
@@ -4,7 +4,7 @@ import { ClientConfig, ShowCollectionsResponse, DescribeCollectionResponse, Sear
4
4
  import { z } from 'zod';
5
5
  import 'ajv';
6
6
  import '../../context.js';
7
- import '../../emitter-C3dO-s2P.js';
7
+ import '../../emitter-C9nwGLt6.js';
8
8
  import '../../internals/types.js';
9
9
  import '../../internals/helpers/guards.js';
10
10
  import '../../internals/serializable.js';
@@ -16,18 +16,7 @@ import 'zod-to-json-schema';
16
16
 
17
17
  /**
18
18
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
19
+ * SPDX-License-Identifier: Apache-2.0
31
20
  */
32
21
 
33
22
  interface MilvusToolOptions extends BaseToolOptions {