beeai-framework 0.1.2

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 (862) hide show
  1. package/README.md +226 -0
  2. package/dist/adapters/amazon-bedrock/backend/chat.cjs +21 -0
  3. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -0
  4. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +49 -0
  5. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +49 -0
  6. package/dist/adapters/amazon-bedrock/backend/chat.js +19 -0
  7. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -0
  8. package/dist/adapters/amazon-bedrock/backend/client.cjs +21 -0
  9. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -0
  10. package/dist/adapters/amazon-bedrock/backend/client.d.cts +28 -0
  11. package/dist/adapters/amazon-bedrock/backend/client.d.ts +28 -0
  12. package/dist/adapters/amazon-bedrock/backend/client.js +19 -0
  13. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -0
  14. package/dist/adapters/amazon-bedrock/backend/embedding.cjs +21 -0
  15. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -0
  16. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +40 -0
  17. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +40 -0
  18. package/dist/adapters/amazon-bedrock/backend/embedding.js +19 -0
  19. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -0
  20. package/dist/adapters/anthropic/backend/chat.cjs +24 -0
  21. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -0
  22. package/dist/adapters/anthropic/backend/chat.d.cts +49 -0
  23. package/dist/adapters/anthropic/backend/chat.d.ts +49 -0
  24. package/dist/adapters/anthropic/backend/chat.js +22 -0
  25. package/dist/adapters/anthropic/backend/chat.js.map +1 -0
  26. package/dist/adapters/anthropic/backend/client.cjs +32 -0
  27. package/dist/adapters/anthropic/backend/client.cjs.map +1 -0
  28. package/dist/adapters/anthropic/backend/client.d.cts +28 -0
  29. package/dist/adapters/anthropic/backend/client.d.ts +28 -0
  30. package/dist/adapters/anthropic/backend/client.js +30 -0
  31. package/dist/adapters/anthropic/backend/client.js.map +1 -0
  32. package/dist/adapters/anthropic/backend/embedding.cjs +21 -0
  33. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -0
  34. package/dist/adapters/anthropic/backend/embedding.d.cts +40 -0
  35. package/dist/adapters/anthropic/backend/embedding.d.ts +40 -0
  36. package/dist/adapters/anthropic/backend/embedding.js +19 -0
  37. package/dist/adapters/anthropic/backend/embedding.js.map +1 -0
  38. package/dist/adapters/azure-openai/backend/chat.cjs +21 -0
  39. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -0
  40. package/dist/adapters/azure-openai/backend/chat.d.cts +49 -0
  41. package/dist/adapters/azure-openai/backend/chat.d.ts +49 -0
  42. package/dist/adapters/azure-openai/backend/chat.js +19 -0
  43. package/dist/adapters/azure-openai/backend/chat.js.map +1 -0
  44. package/dist/adapters/azure-openai/backend/client.cjs +26 -0
  45. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -0
  46. package/dist/adapters/azure-openai/backend/client.d.cts +28 -0
  47. package/dist/adapters/azure-openai/backend/client.d.ts +28 -0
  48. package/dist/adapters/azure-openai/backend/client.js +24 -0
  49. package/dist/adapters/azure-openai/backend/client.js.map +1 -0
  50. package/dist/adapters/azure-openai/backend/embedding.cjs +21 -0
  51. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -0
  52. package/dist/adapters/azure-openai/backend/embedding.d.cts +40 -0
  53. package/dist/adapters/azure-openai/backend/embedding.d.ts +40 -0
  54. package/dist/adapters/azure-openai/backend/embedding.js +19 -0
  55. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -0
  56. package/dist/adapters/dummy/backend/chat.cjs +51 -0
  57. package/dist/adapters/dummy/backend/chat.cjs.map +1 -0
  58. package/dist/adapters/dummy/backend/chat.d.cts +39 -0
  59. package/dist/adapters/dummy/backend/chat.d.ts +39 -0
  60. package/dist/adapters/dummy/backend/chat.js +49 -0
  61. package/dist/adapters/dummy/backend/chat.js.map +1 -0
  62. package/dist/adapters/dummy/backend/embedding.cjs +44 -0
  63. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -0
  64. package/dist/adapters/dummy/backend/embedding.d.cts +41 -0
  65. package/dist/adapters/dummy/backend/embedding.d.ts +41 -0
  66. package/dist/adapters/dummy/backend/embedding.js +42 -0
  67. package/dist/adapters/dummy/backend/embedding.js.map +1 -0
  68. package/dist/adapters/google-vertex/backend/chat.cjs +21 -0
  69. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -0
  70. package/dist/adapters/google-vertex/backend/chat.d.cts +49 -0
  71. package/dist/adapters/google-vertex/backend/chat.d.ts +49 -0
  72. package/dist/adapters/google-vertex/backend/chat.js +19 -0
  73. package/dist/adapters/google-vertex/backend/chat.js.map +1 -0
  74. package/dist/adapters/google-vertex/backend/client.cjs +25 -0
  75. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -0
  76. package/dist/adapters/google-vertex/backend/client.d.cts +28 -0
  77. package/dist/adapters/google-vertex/backend/client.d.ts +28 -0
  78. package/dist/adapters/google-vertex/backend/client.js +23 -0
  79. package/dist/adapters/google-vertex/backend/client.js.map +1 -0
  80. package/dist/adapters/google-vertex/backend/embedding.cjs +21 -0
  81. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -0
  82. package/dist/adapters/google-vertex/backend/embedding.d.cts +40 -0
  83. package/dist/adapters/google-vertex/backend/embedding.d.ts +40 -0
  84. package/dist/adapters/google-vertex/backend/embedding.js +19 -0
  85. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -0
  86. package/dist/adapters/groq/backend/chat.cjs +24 -0
  87. package/dist/adapters/groq/backend/chat.cjs.map +1 -0
  88. package/dist/adapters/groq/backend/chat.d.cts +49 -0
  89. package/dist/adapters/groq/backend/chat.d.ts +49 -0
  90. package/dist/adapters/groq/backend/chat.js +22 -0
  91. package/dist/adapters/groq/backend/chat.js.map +1 -0
  92. package/dist/adapters/groq/backend/client.cjs +24 -0
  93. package/dist/adapters/groq/backend/client.cjs.map +1 -0
  94. package/dist/adapters/groq/backend/client.d.cts +28 -0
  95. package/dist/adapters/groq/backend/client.d.ts +28 -0
  96. package/dist/adapters/groq/backend/client.js +22 -0
  97. package/dist/adapters/groq/backend/client.js.map +1 -0
  98. package/dist/adapters/groq/backend/embedding.cjs +25 -0
  99. package/dist/adapters/groq/backend/embedding.cjs.map +1 -0
  100. package/dist/adapters/groq/backend/embedding.d.cts +40 -0
  101. package/dist/adapters/groq/backend/embedding.d.ts +40 -0
  102. package/dist/adapters/groq/backend/embedding.js +23 -0
  103. package/dist/adapters/groq/backend/embedding.js.map +1 -0
  104. package/dist/adapters/langchain/backend/chat.cjs +117 -0
  105. package/dist/adapters/langchain/backend/chat.cjs.map +1 -0
  106. package/dist/adapters/langchain/backend/chat.d.cts +48 -0
  107. package/dist/adapters/langchain/backend/chat.d.ts +48 -0
  108. package/dist/adapters/langchain/backend/chat.js +115 -0
  109. package/dist/adapters/langchain/backend/chat.js.map +1 -0
  110. package/dist/adapters/langchain/backend/embedding.cjs +56 -0
  111. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -0
  112. package/dist/adapters/langchain/backend/embedding.d.cts +43 -0
  113. package/dist/adapters/langchain/backend/embedding.d.ts +43 -0
  114. package/dist/adapters/langchain/backend/embedding.js +54 -0
  115. package/dist/adapters/langchain/backend/embedding.js.map +1 -0
  116. package/dist/adapters/langchain/tools.cjs +114 -0
  117. package/dist/adapters/langchain/tools.cjs.map +1 -0
  118. package/dist/adapters/langchain/tools.d.cts +44 -0
  119. package/dist/adapters/langchain/tools.d.ts +44 -0
  120. package/dist/adapters/langchain/tools.js +92 -0
  121. package/dist/adapters/langchain/tools.js.map +1 -0
  122. package/dist/adapters/ollama/backend/chat.cjs +28 -0
  123. package/dist/adapters/ollama/backend/chat.cjs.map +1 -0
  124. package/dist/adapters/ollama/backend/chat.d.cts +50 -0
  125. package/dist/adapters/ollama/backend/chat.d.ts +50 -0
  126. package/dist/adapters/ollama/backend/chat.js +26 -0
  127. package/dist/adapters/ollama/backend/chat.js.map +1 -0
  128. package/dist/adapters/ollama/backend/client.cjs +23 -0
  129. package/dist/adapters/ollama/backend/client.cjs.map +1 -0
  130. package/dist/adapters/ollama/backend/client.d.cts +28 -0
  131. package/dist/adapters/ollama/backend/client.d.ts +28 -0
  132. package/dist/adapters/ollama/backend/client.js +21 -0
  133. package/dist/adapters/ollama/backend/client.js.map +1 -0
  134. package/dist/adapters/ollama/backend/embedding.cjs +21 -0
  135. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -0
  136. package/dist/adapters/ollama/backend/embedding.d.cts +40 -0
  137. package/dist/adapters/ollama/backend/embedding.d.ts +40 -0
  138. package/dist/adapters/ollama/backend/embedding.js +19 -0
  139. package/dist/adapters/ollama/backend/embedding.js.map +1 -0
  140. package/dist/adapters/openai/backend/chat.cjs +21 -0
  141. package/dist/adapters/openai/backend/chat.cjs.map +1 -0
  142. package/dist/adapters/openai/backend/chat.d.cts +49 -0
  143. package/dist/adapters/openai/backend/chat.d.ts +49 -0
  144. package/dist/adapters/openai/backend/chat.js +19 -0
  145. package/dist/adapters/openai/backend/chat.js.map +1 -0
  146. package/dist/adapters/openai/backend/client.cjs +33 -0
  147. package/dist/adapters/openai/backend/client.cjs.map +1 -0
  148. package/dist/adapters/openai/backend/client.d.cts +28 -0
  149. package/dist/adapters/openai/backend/client.d.ts +28 -0
  150. package/dist/adapters/openai/backend/client.js +31 -0
  151. package/dist/adapters/openai/backend/client.js.map +1 -0
  152. package/dist/adapters/openai/backend/embedding.cjs +21 -0
  153. package/dist/adapters/openai/backend/embedding.cjs.map +1 -0
  154. package/dist/adapters/openai/backend/embedding.d.cts +40 -0
  155. package/dist/adapters/openai/backend/embedding.d.ts +40 -0
  156. package/dist/adapters/openai/backend/embedding.js +19 -0
  157. package/dist/adapters/openai/backend/embedding.js.map +1 -0
  158. package/dist/adapters/vercel/backend/chat.cjs +184 -0
  159. package/dist/adapters/vercel/backend/chat.cjs.map +1 -0
  160. package/dist/adapters/vercel/backend/chat.d.cts +45 -0
  161. package/dist/adapters/vercel/backend/chat.d.ts +45 -0
  162. package/dist/adapters/vercel/backend/chat.js +182 -0
  163. package/dist/adapters/vercel/backend/chat.js.map +1 -0
  164. package/dist/adapters/vercel/backend/embedding.cjs +63 -0
  165. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -0
  166. package/dist/adapters/vercel/backend/embedding.d.cts +45 -0
  167. package/dist/adapters/vercel/backend/embedding.d.ts +45 -0
  168. package/dist/adapters/vercel/backend/embedding.js +61 -0
  169. package/dist/adapters/vercel/backend/embedding.js.map +1 -0
  170. package/dist/adapters/watsonx/backend/chat.cjs +199 -0
  171. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -0
  172. package/dist/adapters/watsonx/backend/chat.d.cts +56 -0
  173. package/dist/adapters/watsonx/backend/chat.d.ts +56 -0
  174. package/dist/adapters/watsonx/backend/chat.js +193 -0
  175. package/dist/adapters/watsonx/backend/chat.js.map +1 -0
  176. package/dist/adapters/watsonx/backend/client.cjs +48 -0
  177. package/dist/adapters/watsonx/backend/client.cjs.map +1 -0
  178. package/dist/adapters/watsonx/backend/client.d.cts +38 -0
  179. package/dist/adapters/watsonx/backend/client.d.ts +38 -0
  180. package/dist/adapters/watsonx/backend/client.js +46 -0
  181. package/dist/adapters/watsonx/backend/client.js.map +1 -0
  182. package/dist/adapters/watsonx/backend/embedding.cjs +70 -0
  183. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -0
  184. package/dist/adapters/watsonx/backend/embedding.d.cts +50 -0
  185. package/dist/adapters/watsonx/backend/embedding.d.ts +50 -0
  186. package/dist/adapters/watsonx/backend/embedding.js +68 -0
  187. package/dist/adapters/watsonx/backend/embedding.js.map +1 -0
  188. package/dist/agent-BbaHVlob.d.cts +84 -0
  189. package/dist/agent-Bks2fOUl.d.ts +84 -0
  190. package/dist/agents/base.cjs +73 -0
  191. package/dist/agents/base.cjs.map +1 -0
  192. package/dist/agents/base.d.cts +18 -0
  193. package/dist/agents/base.d.ts +18 -0
  194. package/dist/agents/base.js +70 -0
  195. package/dist/agents/base.js.map +1 -0
  196. package/dist/agents/bee/agent.cjs +193 -0
  197. package/dist/agents/bee/agent.cjs.map +1 -0
  198. package/dist/agents/bee/agent.d.cts +32 -0
  199. package/dist/agents/bee/agent.d.ts +32 -0
  200. package/dist/agents/bee/agent.js +171 -0
  201. package/dist/agents/bee/agent.js.map +1 -0
  202. package/dist/agents/bee/prompts.cjs +176 -0
  203. package/dist/agents/bee/prompts.cjs.map +1 -0
  204. package/dist/agents/bee/prompts.d.cts +148 -0
  205. package/dist/agents/bee/prompts.d.ts +148 -0
  206. package/dist/agents/bee/prompts.js +166 -0
  207. package/dist/agents/bee/prompts.js.map +1 -0
  208. package/dist/agents/bee/runners/base.cjs +103 -0
  209. package/dist/agents/bee/runners/base.cjs.map +1 -0
  210. package/dist/agents/bee/runners/base.d.cts +32 -0
  211. package/dist/agents/bee/runners/base.d.ts +32 -0
  212. package/dist/agents/bee/runners/base.js +101 -0
  213. package/dist/agents/bee/runners/base.js.map +1 -0
  214. package/dist/agents/bee/runners/deep-think/prompts.cjs +92 -0
  215. package/dist/agents/bee/runners/deep-think/prompts.cjs.map +1 -0
  216. package/dist/agents/bee/runners/deep-think/prompts.d.cts +145 -0
  217. package/dist/agents/bee/runners/deep-think/prompts.d.ts +145 -0
  218. package/dist/agents/bee/runners/deep-think/prompts.js +84 -0
  219. package/dist/agents/bee/runners/deep-think/prompts.js.map +1 -0
  220. package/dist/agents/bee/runners/deep-think/runner.cjs +124 -0
  221. package/dist/agents/bee/runners/deep-think/runner.cjs.map +1 -0
  222. package/dist/agents/bee/runners/deep-think/runner.d.cts +166 -0
  223. package/dist/agents/bee/runners/deep-think/runner.d.ts +166 -0
  224. package/dist/agents/bee/runners/deep-think/runner.js +122 -0
  225. package/dist/agents/bee/runners/deep-think/runner.js.map +1 -0
  226. package/dist/agents/bee/runners/default/runner.cjs +416 -0
  227. package/dist/agents/bee/runners/default/runner.cjs.map +1 -0
  228. package/dist/agents/bee/runners/default/runner.d.cts +186 -0
  229. package/dist/agents/bee/runners/default/runner.d.ts +186 -0
  230. package/dist/agents/bee/runners/default/runner.js +414 -0
  231. package/dist/agents/bee/runners/default/runner.js.map +1 -0
  232. package/dist/agents/bee/runners/default/runner.spec.cjs +113 -0
  233. package/dist/agents/bee/runners/default/runner.spec.cjs.map +1 -0
  234. package/dist/agents/bee/runners/default/runner.spec.d.cts +2 -0
  235. package/dist/agents/bee/runners/default/runner.spec.d.ts +2 -0
  236. package/dist/agents/bee/runners/default/runner.spec.js +111 -0
  237. package/dist/agents/bee/runners/default/runner.spec.js.map +1 -0
  238. package/dist/agents/bee/runners/granite/prompts.cjs +94 -0
  239. package/dist/agents/bee/runners/granite/prompts.cjs.map +1 -0
  240. package/dist/agents/bee/runners/granite/prompts.d.cts +145 -0
  241. package/dist/agents/bee/runners/granite/prompts.d.ts +145 -0
  242. package/dist/agents/bee/runners/granite/prompts.js +86 -0
  243. package/dist/agents/bee/runners/granite/prompts.js.map +1 -0
  244. package/dist/agents/bee/runners/granite/runner.cjs +102 -0
  245. package/dist/agents/bee/runners/granite/runner.cjs.map +1 -0
  246. package/dist/agents/bee/runners/granite/runner.d.cts +167 -0
  247. package/dist/agents/bee/runners/granite/runner.d.ts +167 -0
  248. package/dist/agents/bee/runners/granite/runner.js +100 -0
  249. package/dist/agents/bee/runners/granite/runner.js.map +1 -0
  250. package/dist/agents/bee/types.cjs +4 -0
  251. package/dist/agents/bee/types.cjs.map +1 -0
  252. package/dist/agents/bee/types.d.cts +164 -0
  253. package/dist/agents/bee/types.d.ts +164 -0
  254. package/dist/agents/bee/types.js +3 -0
  255. package/dist/agents/bee/types.js.map +1 -0
  256. package/dist/agents/experimental/replan/agent.cjs +119 -0
  257. package/dist/agents/experimental/replan/agent.cjs.map +1 -0
  258. package/dist/agents/experimental/replan/agent.d.cts +96 -0
  259. package/dist/agents/experimental/replan/agent.d.ts +96 -0
  260. package/dist/agents/experimental/replan/agent.js +117 -0
  261. package/dist/agents/experimental/replan/agent.js.map +1 -0
  262. package/dist/agents/experimental/replan/prompts.cjs +89 -0
  263. package/dist/agents/experimental/replan/prompts.cjs.map +1 -0
  264. package/dist/agents/experimental/replan/prompts.d.cts +153 -0
  265. package/dist/agents/experimental/replan/prompts.d.ts +153 -0
  266. package/dist/agents/experimental/replan/prompts.js +85 -0
  267. package/dist/agents/experimental/replan/prompts.js.map +1 -0
  268. package/dist/agents/experimental/streamlit/agent.cjs +161 -0
  269. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -0
  270. package/dist/agents/experimental/streamlit/agent.d.cts +95 -0
  271. package/dist/agents/experimental/streamlit/agent.d.ts +95 -0
  272. package/dist/agents/experimental/streamlit/agent.js +159 -0
  273. package/dist/agents/experimental/streamlit/agent.js.map +1 -0
  274. package/dist/agents/experimental/streamlit/prompts.cjs +312 -0
  275. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -0
  276. package/dist/agents/experimental/streamlit/prompts.d.cts +30 -0
  277. package/dist/agents/experimental/streamlit/prompts.d.ts +30 -0
  278. package/dist/agents/experimental/streamlit/prompts.js +310 -0
  279. package/dist/agents/experimental/streamlit/prompts.js.map +1 -0
  280. package/dist/agents/types.cjs +4 -0
  281. package/dist/agents/types.cjs.map +1 -0
  282. package/dist/agents/types.d.cts +18 -0
  283. package/dist/agents/types.d.ts +18 -0
  284. package/dist/agents/types.js +3 -0
  285. package/dist/agents/types.js.map +1 -0
  286. package/dist/backend/backend.cjs +45 -0
  287. package/dist/backend/backend.cjs.map +1 -0
  288. package/dist/backend/backend.d.cts +56 -0
  289. package/dist/backend/backend.d.ts +56 -0
  290. package/dist/backend/backend.js +43 -0
  291. package/dist/backend/backend.js.map +1 -0
  292. package/dist/backend/chat.cjs +270 -0
  293. package/dist/backend/chat.cjs.map +1 -0
  294. package/dist/backend/chat.d.cts +141 -0
  295. package/dist/backend/chat.d.ts +141 -0
  296. package/dist/backend/chat.js +267 -0
  297. package/dist/backend/chat.js.map +1 -0
  298. package/dist/backend/client.cjs +40 -0
  299. package/dist/backend/client.cjs.map +1 -0
  300. package/dist/backend/client.d.cts +33 -0
  301. package/dist/backend/client.d.ts +33 -0
  302. package/dist/backend/client.js +38 -0
  303. package/dist/backend/client.js.map +1 -0
  304. package/dist/backend/constants.cjs +62 -0
  305. package/dist/backend/constants.cjs.map +1 -0
  306. package/dist/backend/constants.d.cts +62 -0
  307. package/dist/backend/constants.d.ts +62 -0
  308. package/dist/backend/constants.js +60 -0
  309. package/dist/backend/constants.js.map +1 -0
  310. package/dist/backend/core.cjs +42 -0
  311. package/dist/backend/core.cjs.map +1 -0
  312. package/dist/backend/core.d.cts +23 -0
  313. package/dist/backend/core.d.ts +23 -0
  314. package/dist/backend/core.js +7 -0
  315. package/dist/backend/core.js.map +1 -0
  316. package/dist/backend/embedding.cjs +70 -0
  317. package/dist/backend/embedding.cjs.map +1 -0
  318. package/dist/backend/embedding.d.cts +50 -0
  319. package/dist/backend/embedding.d.ts +50 -0
  320. package/dist/backend/embedding.js +68 -0
  321. package/dist/backend/embedding.js.map +1 -0
  322. package/dist/backend/errors.cjs +27 -0
  323. package/dist/backend/errors.cjs.map +1 -0
  324. package/dist/backend/errors.d.cts +28 -0
  325. package/dist/backend/errors.d.ts +28 -0
  326. package/dist/backend/errors.js +23 -0
  327. package/dist/backend/errors.js.map +1 -0
  328. package/dist/backend/message.cjs +201 -0
  329. package/dist/backend/message.cjs.map +1 -0
  330. package/dist/backend/message.d.cts +85 -0
  331. package/dist/backend/message.d.ts +85 -0
  332. package/dist/backend/message.js +193 -0
  333. package/dist/backend/message.js.map +1 -0
  334. package/dist/backend/utils.cjs +39 -0
  335. package/dist/backend/utils.cjs.map +1 -0
  336. package/dist/backend/utils.d.cts +29 -0
  337. package/dist/backend/utils.d.ts +29 -0
  338. package/dist/backend/utils.js +36 -0
  339. package/dist/backend/utils.js.map +1 -0
  340. package/dist/base-Csr9guq2.d.cts +66 -0
  341. package/dist/base-DHhpWHQm.d.ts +66 -0
  342. package/dist/cache/base.cjs +16 -0
  343. package/dist/cache/base.cjs.map +1 -0
  344. package/dist/cache/base.d.cts +31 -0
  345. package/dist/cache/base.d.ts +31 -0
  346. package/dist/cache/base.js +14 -0
  347. package/dist/cache/base.js.map +1 -0
  348. package/dist/cache/decoratorCache.cjs +289 -0
  349. package/dist/cache/decoratorCache.cjs.map +1 -0
  350. package/dist/cache/decoratorCache.d.cts +66 -0
  351. package/dist/cache/decoratorCache.d.ts +66 -0
  352. package/dist/cache/decoratorCache.js +259 -0
  353. package/dist/cache/decoratorCache.js.map +1 -0
  354. package/dist/cache/fileCache.cjs +121 -0
  355. package/dist/cache/fileCache.cjs.map +1 -0
  356. package/dist/cache/fileCache.d.cts +48 -0
  357. package/dist/cache/fileCache.d.ts +48 -0
  358. package/dist/cache/fileCache.js +115 -0
  359. package/dist/cache/fileCache.js.map +1 -0
  360. package/dist/cache/nullCache.cjs +40 -0
  361. package/dist/cache/nullCache.cjs.map +1 -0
  362. package/dist/cache/nullCache.d.cts +36 -0
  363. package/dist/cache/nullCache.d.ts +36 -0
  364. package/dist/cache/nullCache.js +38 -0
  365. package/dist/cache/nullCache.js.map +1 -0
  366. package/dist/cache/slidingCache.cjs +81 -0
  367. package/dist/cache/slidingCache.cjs.map +1 -0
  368. package/dist/cache/slidingCache.d.cts +53 -0
  369. package/dist/cache/slidingCache.d.ts +53 -0
  370. package/dist/cache/slidingCache.js +79 -0
  371. package/dist/cache/slidingCache.js.map +1 -0
  372. package/dist/cache/unconstrainedCache.cjs +46 -0
  373. package/dist/cache/unconstrainedCache.cjs.map +1 -0
  374. package/dist/cache/unconstrainedCache.d.cts +37 -0
  375. package/dist/cache/unconstrainedCache.d.ts +37 -0
  376. package/dist/cache/unconstrainedCache.js +44 -0
  377. package/dist/cache/unconstrainedCache.js.map +1 -0
  378. package/dist/context.cjs +162 -0
  379. package/dist/context.cjs.map +1 -0
  380. package/dist/context.d.cts +79 -0
  381. package/dist/context.d.ts +79 -0
  382. package/dist/context.js +159 -0
  383. package/dist/context.js.map +1 -0
  384. package/dist/emitter/emitter.cjs +222 -0
  385. package/dist/emitter/emitter.cjs.map +1 -0
  386. package/dist/emitter/emitter.d.cts +4 -0
  387. package/dist/emitter/emitter.d.ts +4 -0
  388. package/dist/emitter/emitter.js +220 -0
  389. package/dist/emitter/emitter.js.map +1 -0
  390. package/dist/emitter/errors.cjs +15 -0
  391. package/dist/emitter/errors.cjs.map +1 -0
  392. package/dist/emitter/errors.d.cts +24 -0
  393. package/dist/emitter/errors.d.ts +24 -0
  394. package/dist/emitter/errors.js +13 -0
  395. package/dist/emitter/errors.js.map +1 -0
  396. package/dist/emitter/types.cjs +4 -0
  397. package/dist/emitter/types.cjs.map +1 -0
  398. package/dist/emitter/types.d.cts +4 -0
  399. package/dist/emitter/types.d.ts +4 -0
  400. package/dist/emitter/types.js +3 -0
  401. package/dist/emitter/types.js.map +1 -0
  402. package/dist/emitter/utils.cjs +38 -0
  403. package/dist/emitter/utils.cjs.map +1 -0
  404. package/dist/emitter/utils.d.cts +21 -0
  405. package/dist/emitter/utils.d.ts +21 -0
  406. package/dist/emitter/utils.js +33 -0
  407. package/dist/emitter/utils.js.map +1 -0
  408. package/dist/emitter-BWtGHYn0.d.cts +121 -0
  409. package/dist/emitter-l0W9gC1A.d.ts +121 -0
  410. package/dist/errors.cjs +144 -0
  411. package/dist/errors.cjs.map +1 -0
  412. package/dist/errors.d.cts +50 -0
  413. package/dist/errors.d.ts +50 -0
  414. package/dist/errors.js +116 -0
  415. package/dist/errors.js.map +1 -0
  416. package/dist/index.cjs +49 -0
  417. package/dist/index.cjs.map +1 -0
  418. package/dist/index.d.cts +23 -0
  419. package/dist/index.d.ts +23 -0
  420. package/dist/index.js +8 -0
  421. package/dist/index.js.map +1 -0
  422. package/dist/instrumentation/config.cjs +12 -0
  423. package/dist/instrumentation/config.cjs.map +1 -0
  424. package/dist/instrumentation/config.d.cts +19 -0
  425. package/dist/instrumentation/config.d.ts +19 -0
  426. package/dist/instrumentation/config.js +9 -0
  427. package/dist/instrumentation/config.js.map +1 -0
  428. package/dist/instrumentation/create-telemetry-middleware.cjs +239 -0
  429. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -0
  430. package/dist/instrumentation/create-telemetry-middleware.d.cts +26 -0
  431. package/dist/instrumentation/create-telemetry-middleware.d.ts +26 -0
  432. package/dist/instrumentation/create-telemetry-middleware.js +237 -0
  433. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -0
  434. package/dist/instrumentation/helpers/create-span.cjs +36 -0
  435. package/dist/instrumentation/helpers/create-span.cjs.map +1 -0
  436. package/dist/instrumentation/helpers/create-span.d.cts +34 -0
  437. package/dist/instrumentation/helpers/create-span.d.ts +34 -0
  438. package/dist/instrumentation/helpers/create-span.js +34 -0
  439. package/dist/instrumentation/helpers/create-span.js.map +1 -0
  440. package/dist/instrumentation/helpers/get-error-safe.cjs +20 -0
  441. package/dist/instrumentation/helpers/get-error-safe.cjs.map +1 -0
  442. package/dist/instrumentation/helpers/get-error-safe.d.cts +18 -0
  443. package/dist/instrumentation/helpers/get-error-safe.d.ts +18 -0
  444. package/dist/instrumentation/helpers/get-error-safe.js +18 -0
  445. package/dist/instrumentation/helpers/get-error-safe.js.map +1 -0
  446. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs +27 -0
  447. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs.map +1 -0
  448. package/dist/instrumentation/helpers/get-serialized-object-safe.d.cts +18 -0
  449. package/dist/instrumentation/helpers/get-serialized-object-safe.d.ts +18 -0
  450. package/dist/instrumentation/helpers/get-serialized-object-safe.js +25 -0
  451. package/dist/instrumentation/helpers/get-serialized-object-safe.js.map +1 -0
  452. package/dist/instrumentation/helpers/id-name-manager.cjs +34 -0
  453. package/dist/instrumentation/helpers/id-name-manager.cjs.map +1 -0
  454. package/dist/instrumentation/helpers/id-name-manager.d.cts +31 -0
  455. package/dist/instrumentation/helpers/id-name-manager.d.ts +31 -0
  456. package/dist/instrumentation/helpers/id-name-manager.js +32 -0
  457. package/dist/instrumentation/helpers/id-name-manager.js.map +1 -0
  458. package/dist/instrumentation/helpers/trace-serializer.cjs +30 -0
  459. package/dist/instrumentation/helpers/trace-serializer.cjs.map +1 -0
  460. package/dist/instrumentation/helpers/trace-serializer.d.cts +20 -0
  461. package/dist/instrumentation/helpers/trace-serializer.d.ts +20 -0
  462. package/dist/instrumentation/helpers/trace-serializer.js +28 -0
  463. package/dist/instrumentation/helpers/trace-serializer.js.map +1 -0
  464. package/dist/instrumentation/helpers/utils.cjs +14 -0
  465. package/dist/instrumentation/helpers/utils.cjs.map +1 -0
  466. package/dist/instrumentation/helpers/utils.d.cts +40 -0
  467. package/dist/instrumentation/helpers/utils.d.ts +40 -0
  468. package/dist/instrumentation/helpers/utils.js +12 -0
  469. package/dist/instrumentation/helpers/utils.js.map +1 -0
  470. package/dist/instrumentation/logger.cjs +12 -0
  471. package/dist/instrumentation/logger.cjs.map +1 -0
  472. package/dist/instrumentation/logger.d.cts +26 -0
  473. package/dist/instrumentation/logger.d.ts +26 -0
  474. package/dist/instrumentation/logger.js +10 -0
  475. package/dist/instrumentation/logger.js.map +1 -0
  476. package/dist/instrumentation/tracer.cjs +84 -0
  477. package/dist/instrumentation/tracer.cjs.map +1 -0
  478. package/dist/instrumentation/tracer.d.cts +36 -0
  479. package/dist/instrumentation/tracer.d.ts +36 -0
  480. package/dist/instrumentation/tracer.js +76 -0
  481. package/dist/instrumentation/tracer.js.map +1 -0
  482. package/dist/instrumentation/types.cjs +4 -0
  483. package/dist/instrumentation/types.cjs.map +1 -0
  484. package/dist/instrumentation/types.d.cts +39 -0
  485. package/dist/instrumentation/types.d.ts +39 -0
  486. package/dist/instrumentation/types.js +3 -0
  487. package/dist/instrumentation/types.js.map +1 -0
  488. package/dist/internals/env.cjs +43 -0
  489. package/dist/internals/env.cjs.map +1 -0
  490. package/dist/internals/env.d.cts +27 -0
  491. package/dist/internals/env.d.ts +27 -0
  492. package/dist/internals/env.js +39 -0
  493. package/dist/internals/env.js.map +1 -0
  494. package/dist/internals/fetcher.cjs +189 -0
  495. package/dist/internals/fetcher.cjs.map +1 -0
  496. package/dist/internals/fetcher.d.cts +101 -0
  497. package/dist/internals/fetcher.d.ts +101 -0
  498. package/dist/internals/fetcher.js +185 -0
  499. package/dist/internals/fetcher.js.map +1 -0
  500. package/dist/internals/helpers/array.cjs +30 -0
  501. package/dist/internals/helpers/array.cjs.map +1 -0
  502. package/dist/internals/helpers/array.d.cts +21 -0
  503. package/dist/internals/helpers/array.d.ts +21 -0
  504. package/dist/internals/helpers/array.js +26 -0
  505. package/dist/internals/helpers/array.js.map +1 -0
  506. package/dist/internals/helpers/cancellation.cjs +29 -0
  507. package/dist/internals/helpers/cancellation.cjs.map +1 -0
  508. package/dist/internals/helpers/cancellation.d.cts +19 -0
  509. package/dist/internals/helpers/cancellation.d.ts +19 -0
  510. package/dist/internals/helpers/cancellation.js +26 -0
  511. package/dist/internals/helpers/cancellation.js.map +1 -0
  512. package/dist/internals/helpers/counter.cjs +53 -0
  513. package/dist/internals/helpers/counter.cjs.map +1 -0
  514. package/dist/internals/helpers/counter.d.cts +40 -0
  515. package/dist/internals/helpers/counter.d.ts +40 -0
  516. package/dist/internals/helpers/counter.js +51 -0
  517. package/dist/internals/helpers/counter.js.map +1 -0
  518. package/dist/internals/helpers/general.cjs +31 -0
  519. package/dist/internals/helpers/general.cjs.map +1 -0
  520. package/dist/internals/helpers/general.d.cts +25 -0
  521. package/dist/internals/helpers/general.d.ts +25 -0
  522. package/dist/internals/helpers/general.js +28 -0
  523. package/dist/internals/helpers/general.js.map +1 -0
  524. package/dist/internals/helpers/guards.cjs +34 -0
  525. package/dist/internals/helpers/guards.cjs.map +1 -0
  526. package/dist/internals/helpers/guards.d.cts +19 -0
  527. package/dist/internals/helpers/guards.d.ts +19 -0
  528. package/dist/internals/helpers/guards.js +12 -0
  529. package/dist/internals/helpers/guards.js.map +1 -0
  530. package/dist/internals/helpers/hash.cjs +21 -0
  531. package/dist/internals/helpers/hash.cjs.map +1 -0
  532. package/dist/internals/helpers/hash.d.cts +19 -0
  533. package/dist/internals/helpers/hash.d.ts +19 -0
  534. package/dist/internals/helpers/hash.js +18 -0
  535. package/dist/internals/helpers/hash.js.map +1 -0
  536. package/dist/internals/helpers/map.cjs +16 -0
  537. package/dist/internals/helpers/map.cjs.map +1 -0
  538. package/dist/internals/helpers/map.d.cts +18 -0
  539. package/dist/internals/helpers/map.d.ts +18 -0
  540. package/dist/internals/helpers/map.js +14 -0
  541. package/dist/internals/helpers/map.js.map +1 -0
  542. package/dist/internals/helpers/math.cjs +31 -0
  543. package/dist/internals/helpers/math.cjs.map +1 -0
  544. package/dist/internals/helpers/math.d.cts +19 -0
  545. package/dist/internals/helpers/math.d.ts +19 -0
  546. package/dist/internals/helpers/math.js +28 -0
  547. package/dist/internals/helpers/math.js.map +1 -0
  548. package/dist/internals/helpers/number.cjs +48 -0
  549. package/dist/internals/helpers/number.cjs.map +1 -0
  550. package/dist/internals/helpers/number.d.cts +23 -0
  551. package/dist/internals/helpers/number.d.ts +23 -0
  552. package/dist/internals/helpers/number.js +24 -0
  553. package/dist/internals/helpers/number.js.map +1 -0
  554. package/dist/internals/helpers/object.cjs +142 -0
  555. package/dist/internals/helpers/object.cjs.map +1 -0
  556. package/dist/internals/helpers/object.d.cts +35 -0
  557. package/dist/internals/helpers/object.d.ts +35 -0
  558. package/dist/internals/helpers/object.js +108 -0
  559. package/dist/internals/helpers/object.js.map +1 -0
  560. package/dist/internals/helpers/paginate.cjs +28 -0
  561. package/dist/internals/helpers/paginate.cjs.map +1 -0
  562. package/dist/internals/helpers/paginate.d.cts +28 -0
  563. package/dist/internals/helpers/paginate.d.ts +28 -0
  564. package/dist/internals/helpers/paginate.js +26 -0
  565. package/dist/internals/helpers/paginate.js.map +1 -0
  566. package/dist/internals/helpers/promise.cjs +143 -0
  567. package/dist/internals/helpers/promise.cjs.map +1 -0
  568. package/dist/internals/helpers/promise.d.cts +45 -0
  569. package/dist/internals/helpers/promise.d.ts +45 -0
  570. package/dist/internals/helpers/promise.js +132 -0
  571. package/dist/internals/helpers/promise.js.map +1 -0
  572. package/dist/internals/helpers/prototype.cjs +56 -0
  573. package/dist/internals/helpers/prototype.cjs.map +1 -0
  574. package/dist/internals/helpers/prototype.d.cts +24 -0
  575. package/dist/internals/helpers/prototype.d.ts +24 -0
  576. package/dist/internals/helpers/prototype.js +32 -0
  577. package/dist/internals/helpers/prototype.js.map +1 -0
  578. package/dist/internals/helpers/retry.cjs +44 -0
  579. package/dist/internals/helpers/retry.cjs.map +1 -0
  580. package/dist/internals/helpers/retry.d.cts +29 -0
  581. package/dist/internals/helpers/retry.d.ts +29 -0
  582. package/dist/internals/helpers/retry.js +42 -0
  583. package/dist/internals/helpers/retry.js.map +1 -0
  584. package/dist/internals/helpers/retryable.cjs +169 -0
  585. package/dist/internals/helpers/retryable.cjs.map +1 -0
  586. package/dist/internals/helpers/retryable.d.cts +71 -0
  587. package/dist/internals/helpers/retryable.d.ts +71 -0
  588. package/dist/internals/helpers/retryable.js +146 -0
  589. package/dist/internals/helpers/retryable.js.map +1 -0
  590. package/dist/internals/helpers/schema.cjs +78 -0
  591. package/dist/internals/helpers/schema.cjs.map +1 -0
  592. package/dist/internals/helpers/schema.d.cts +36 -0
  593. package/dist/internals/helpers/schema.d.ts +36 -0
  594. package/dist/internals/helpers/schema.js +69 -0
  595. package/dist/internals/helpers/schema.js.map +1 -0
  596. package/dist/internals/helpers/stream.cjs +21 -0
  597. package/dist/internals/helpers/stream.cjs.map +1 -0
  598. package/dist/internals/helpers/stream.d.cts +19 -0
  599. package/dist/internals/helpers/stream.d.ts +19 -0
  600. package/dist/internals/helpers/stream.js +18 -0
  601. package/dist/internals/helpers/stream.js.map +1 -0
  602. package/dist/internals/helpers/string.cjs +230 -0
  603. package/dist/internals/helpers/string.cjs.map +1 -0
  604. package/dist/internals/helpers/string.d.cts +57 -0
  605. package/dist/internals/helpers/string.d.ts +57 -0
  606. package/dist/internals/helpers/string.js +201 -0
  607. package/dist/internals/helpers/string.js.map +1 -0
  608. package/dist/internals/helpers/weakRef.cjs +65 -0
  609. package/dist/internals/helpers/weakRef.cjs.map +1 -0
  610. package/dist/internals/helpers/weakRef.d.cts +29 -0
  611. package/dist/internals/helpers/weakRef.d.ts +29 -0
  612. package/dist/internals/helpers/weakRef.js +61 -0
  613. package/dist/internals/helpers/weakRef.js.map +1 -0
  614. package/dist/internals/serializable.cjs +63 -0
  615. package/dist/internals/serializable.cjs.map +1 -0
  616. package/dist/internals/serializable.d.cts +36 -0
  617. package/dist/internals/serializable.d.ts +36 -0
  618. package/dist/internals/serializable.js +61 -0
  619. package/dist/internals/serializable.js.map +1 -0
  620. package/dist/internals/types.cjs +15 -0
  621. package/dist/internals/types.cjs.map +1 -0
  622. package/dist/internals/types.d.cts +92 -0
  623. package/dist/internals/types.d.ts +92 -0
  624. package/dist/internals/types.js +13 -0
  625. package/dist/internals/types.js.map +1 -0
  626. package/dist/logger/logger.cjs +210 -0
  627. package/dist/logger/logger.cjs.map +1 -0
  628. package/dist/logger/logger.d.cts +48 -0
  629. package/dist/logger/logger.d.ts +48 -0
  630. package/dist/logger/logger.js +181 -0
  631. package/dist/logger/logger.js.map +1 -0
  632. package/dist/logger/pretty.cjs +79 -0
  633. package/dist/logger/pretty.cjs.map +1 -0
  634. package/dist/logger/pretty.d.cts +5 -0
  635. package/dist/logger/pretty.d.ts +5 -0
  636. package/dist/logger/pretty.js +72 -0
  637. package/dist/logger/pretty.js.map +1 -0
  638. package/dist/memory/base.cjs +98 -0
  639. package/dist/memory/base.cjs.map +1 -0
  640. package/dist/memory/base.d.cts +44 -0
  641. package/dist/memory/base.d.ts +44 -0
  642. package/dist/memory/base.js +93 -0
  643. package/dist/memory/base.js.map +1 -0
  644. package/dist/memory/slidingMemory.cjs +79 -0
  645. package/dist/memory/slidingMemory.cjs.map +1 -0
  646. package/dist/memory/slidingMemory.d.cts +30 -0
  647. package/dist/memory/slidingMemory.d.ts +30 -0
  648. package/dist/memory/slidingMemory.js +77 -0
  649. package/dist/memory/slidingMemory.js.map +1 -0
  650. package/dist/memory/summarizeMemory.cjs +82 -0
  651. package/dist/memory/summarizeMemory.cjs.map +1 -0
  652. package/dist/memory/summarizeMemory.d.cts +65 -0
  653. package/dist/memory/summarizeMemory.d.ts +65 -0
  654. package/dist/memory/summarizeMemory.js +79 -0
  655. package/dist/memory/summarizeMemory.js.map +1 -0
  656. package/dist/memory/tokenMemory.cjs +154 -0
  657. package/dist/memory/tokenMemory.cjs.map +1 -0
  658. package/dist/memory/tokenMemory.d.cts +55 -0
  659. package/dist/memory/tokenMemory.d.ts +55 -0
  660. package/dist/memory/tokenMemory.js +133 -0
  661. package/dist/memory/tokenMemory.js.map +1 -0
  662. package/dist/memory/unconstrainedMemory.cjs +43 -0
  663. package/dist/memory/unconstrainedMemory.cjs.map +1 -0
  664. package/dist/memory/unconstrainedMemory.d.cts +20 -0
  665. package/dist/memory/unconstrainedMemory.d.ts +20 -0
  666. package/dist/memory/unconstrainedMemory.js +41 -0
  667. package/dist/memory/unconstrainedMemory.js.map +1 -0
  668. package/dist/parsers/errors.cjs +32 -0
  669. package/dist/parsers/errors.cjs.map +1 -0
  670. package/dist/parsers/errors.d.cts +46 -0
  671. package/dist/parsers/errors.d.ts +46 -0
  672. package/dist/parsers/errors.js +30 -0
  673. package/dist/parsers/errors.js.map +1 -0
  674. package/dist/parsers/field.cjs +192 -0
  675. package/dist/parsers/field.cjs.map +1 -0
  676. package/dist/parsers/field.d.cts +68 -0
  677. package/dist/parsers/field.d.ts +68 -0
  678. package/dist/parsers/field.js +188 -0
  679. package/dist/parsers/field.js.map +1 -0
  680. package/dist/parsers/linePrefix.cjs +312 -0
  681. package/dist/parsers/linePrefix.cjs.map +1 -0
  682. package/dist/parsers/linePrefix.d.cts +127 -0
  683. package/dist/parsers/linePrefix.d.ts +127 -0
  684. package/dist/parsers/linePrefix.js +305 -0
  685. package/dist/parsers/linePrefix.js.map +1 -0
  686. package/dist/serializer/error.cjs +21 -0
  687. package/dist/serializer/error.cjs.map +1 -0
  688. package/dist/serializer/error.d.cts +25 -0
  689. package/dist/serializer/error.d.ts +25 -0
  690. package/dist/serializer/error.js +19 -0
  691. package/dist/serializer/error.js.map +1 -0
  692. package/dist/serializer/serializer.cjs +543 -0
  693. package/dist/serializer/serializer.cjs.map +1 -0
  694. package/dist/serializer/serializer.d.cts +4 -0
  695. package/dist/serializer/serializer.d.ts +4 -0
  696. package/dist/serializer/serializer.js +521 -0
  697. package/dist/serializer/serializer.js.map +1 -0
  698. package/dist/serializer/utils.cjs +261 -0
  699. package/dist/serializer/utils.cjs.map +1 -0
  700. package/dist/serializer/utils.d.cts +4 -0
  701. package/dist/serializer/utils.d.ts +4 -0
  702. package/dist/serializer/utils.js +226 -0
  703. package/dist/serializer/utils.js.map +1 -0
  704. package/dist/serializer-CJx5ZpUx.d.cts +125 -0
  705. package/dist/serializer-VYDhdryk.d.ts +125 -0
  706. package/dist/template.cjs +121 -0
  707. package/dist/template.cjs.map +1 -0
  708. package/dist/template.d.cts +75 -0
  709. package/dist/template.d.ts +75 -0
  710. package/dist/template.js +113 -0
  711. package/dist/template.js.map +1 -0
  712. package/dist/tools/arxiv.cjs +212 -0
  713. package/dist/tools/arxiv.cjs.map +1 -0
  714. package/dist/tools/arxiv.d.cts +196 -0
  715. package/dist/tools/arxiv.d.ts +196 -0
  716. package/dist/tools/arxiv.js +205 -0
  717. package/dist/tools/arxiv.js.map +1 -0
  718. package/dist/tools/base.cjs +434 -0
  719. package/dist/tools/base.cjs.map +1 -0
  720. package/dist/tools/base.d.cts +156 -0
  721. package/dist/tools/base.d.ts +156 -0
  722. package/dist/tools/base.js +407 -0
  723. package/dist/tools/base.js.map +1 -0
  724. package/dist/tools/calculator.cjs +74 -0
  725. package/dist/tools/calculator.cjs.map +1 -0
  726. package/dist/tools/calculator.d.cts +63 -0
  727. package/dist/tools/calculator.d.ts +63 -0
  728. package/dist/tools/calculator.js +72 -0
  729. package/dist/tools/calculator.js.map +1 -0
  730. package/dist/tools/custom.cjs +122 -0
  731. package/dist/tools/custom.cjs.map +1 -0
  732. package/dist/tools/custom.d.cts +110 -0
  733. package/dist/tools/custom.d.ts +110 -0
  734. package/dist/tools/custom.js +118 -0
  735. package/dist/tools/custom.js.map +1 -0
  736. package/dist/tools/database/elasticsearch.cjs +157 -0
  737. package/dist/tools/database/elasticsearch.cjs.map +1 -0
  738. package/dist/tools/database/elasticsearch.d.cts +78 -0
  739. package/dist/tools/database/elasticsearch.d.ts +78 -0
  740. package/dist/tools/database/elasticsearch.js +154 -0
  741. package/dist/tools/database/elasticsearch.js.map +1 -0
  742. package/dist/tools/database/metadata.cjs +114 -0
  743. package/dist/tools/database/metadata.cjs.map +1 -0
  744. package/dist/tools/database/metadata.d.cts +27 -0
  745. package/dist/tools/database/metadata.d.ts +27 -0
  746. package/dist/tools/database/metadata.js +112 -0
  747. package/dist/tools/database/metadata.js.map +1 -0
  748. package/dist/tools/database/milvus.cjs +191 -0
  749. package/dist/tools/database/milvus.cjs.map +1 -0
  750. package/dist/tools/database/milvus.d.cts +89 -0
  751. package/dist/tools/database/milvus.d.ts +89 -0
  752. package/dist/tools/database/milvus.js +188 -0
  753. package/dist/tools/database/milvus.js.map +1 -0
  754. package/dist/tools/database/sql.cjs +174 -0
  755. package/dist/tools/database/sql.cjs.map +1 -0
  756. package/dist/tools/database/sql.d.cts +71 -0
  757. package/dist/tools/database/sql.d.ts +71 -0
  758. package/dist/tools/database/sql.js +170 -0
  759. package/dist/tools/database/sql.js.map +1 -0
  760. package/dist/tools/llm.cjs +74 -0
  761. package/dist/tools/llm.cjs.map +1 -0
  762. package/dist/tools/llm.d.cts +68 -0
  763. package/dist/tools/llm.d.ts +68 -0
  764. package/dist/tools/llm.js +72 -0
  765. package/dist/tools/llm.js.map +1 -0
  766. package/dist/tools/mcp.cjs +73 -0
  767. package/dist/tools/mcp.cjs.map +1 -0
  768. package/dist/tools/mcp.d.cts +52 -0
  769. package/dist/tools/mcp.d.ts +52 -0
  770. package/dist/tools/mcp.js +70 -0
  771. package/dist/tools/mcp.js.map +1 -0
  772. package/dist/tools/openapi.cjs +178 -0
  773. package/dist/tools/openapi.cjs.map +1 -0
  774. package/dist/tools/openapi.d.cts +59 -0
  775. package/dist/tools/openapi.d.ts +59 -0
  776. package/dist/tools/openapi.js +175 -0
  777. package/dist/tools/openapi.js.map +1 -0
  778. package/dist/tools/python/output.cjs +65 -0
  779. package/dist/tools/python/output.cjs.map +1 -0
  780. package/dist/tools/python/output.d.cts +52 -0
  781. package/dist/tools/python/output.d.ts +52 -0
  782. package/dist/tools/python/output.js +63 -0
  783. package/dist/tools/python/output.js.map +1 -0
  784. package/dist/tools/python/python.cjs +163 -0
  785. package/dist/tools/python/python.cjs.map +1 -0
  786. package/dist/tools/python/python.d.cts +91 -0
  787. package/dist/tools/python/python.d.ts +91 -0
  788. package/dist/tools/python/python.js +160 -0
  789. package/dist/tools/python/python.js.map +1 -0
  790. package/dist/tools/python/storage.cjs +170 -0
  791. package/dist/tools/python/storage.cjs.map +1 -0
  792. package/dist/tools/python/storage.d.cts +83 -0
  793. package/dist/tools/python/storage.d.ts +83 -0
  794. package/dist/tools/python/storage.js +142 -0
  795. package/dist/tools/python/storage.js.map +1 -0
  796. package/dist/tools/search/base.cjs +77 -0
  797. package/dist/tools/search/base.cjs.map +1 -0
  798. package/dist/tools/search/base.d.cts +49 -0
  799. package/dist/tools/search/base.d.ts +49 -0
  800. package/dist/tools/search/base.js +55 -0
  801. package/dist/tools/search/base.js.map +1 -0
  802. package/dist/tools/search/duckDuckGoSearch.cjs +146 -0
  803. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -0
  804. package/dist/tools/search/duckDuckGoSearch.d.cts +75 -0
  805. package/dist/tools/search/duckDuckGoSearch.d.ts +75 -0
  806. package/dist/tools/search/duckDuckGoSearch.js +136 -0
  807. package/dist/tools/search/duckDuckGoSearch.js.map +1 -0
  808. package/dist/tools/search/googleSearch.cjs +155 -0
  809. package/dist/tools/search/googleSearch.cjs.map +1 -0
  810. package/dist/tools/search/googleSearch.d.cts +62 -0
  811. package/dist/tools/search/googleSearch.d.ts +62 -0
  812. package/dist/tools/search/googleSearch.js +152 -0
  813. package/dist/tools/search/googleSearch.js.map +1 -0
  814. package/dist/tools/search/searXNGSearch.cjs +86 -0
  815. package/dist/tools/search/searXNGSearch.cjs.map +1 -0
  816. package/dist/tools/search/searXNGSearch.d.cts +61 -0
  817. package/dist/tools/search/searXNGSearch.d.ts +61 -0
  818. package/dist/tools/search/searXNGSearch.js +83 -0
  819. package/dist/tools/search/searXNGSearch.js.map +1 -0
  820. package/dist/tools/search/wikipedia.cjs +338 -0
  821. package/dist/tools/search/wikipedia.cjs.map +1 -0
  822. package/dist/tools/search/wikipedia.d.cts +108 -0
  823. package/dist/tools/search/wikipedia.d.ts +108 -0
  824. package/dist/tools/search/wikipedia.js +310 -0
  825. package/dist/tools/search/wikipedia.js.map +1 -0
  826. package/dist/tools/similarity.cjs +61 -0
  827. package/dist/tools/similarity.cjs.map +1 -0
  828. package/dist/tools/similarity.d.cts +90 -0
  829. package/dist/tools/similarity.d.ts +90 -0
  830. package/dist/tools/similarity.js +58 -0
  831. package/dist/tools/similarity.js.map +1 -0
  832. package/dist/tools/weather/openMeteo.cjs +221 -0
  833. package/dist/tools/weather/openMeteo.cjs.map +1 -0
  834. package/dist/tools/weather/openMeteo.d.cts +123 -0
  835. package/dist/tools/weather/openMeteo.d.ts +123 -0
  836. package/dist/tools/weather/openMeteo.js +218 -0
  837. package/dist/tools/weather/openMeteo.js.map +1 -0
  838. package/dist/tools/web/webCrawler.cjs +111 -0
  839. package/dist/tools/web/webCrawler.cjs.map +1 -0
  840. package/dist/tools/web/webCrawler.d.cts +66 -0
  841. package/dist/tools/web/webCrawler.d.ts +66 -0
  842. package/dist/tools/web/webCrawler.js +108 -0
  843. package/dist/tools/web/webCrawler.js.map +1 -0
  844. package/dist/version.cjs +9 -0
  845. package/dist/version.cjs.map +1 -0
  846. package/dist/version.d.cts +18 -0
  847. package/dist/version.d.ts +18 -0
  848. package/dist/version.js +9 -0
  849. package/dist/version.js.map +1 -0
  850. package/dist/workflows/agent.cjs +95 -0
  851. package/dist/workflows/agent.cjs.map +1 -0
  852. package/dist/workflows/agent.d.cts +166 -0
  853. package/dist/workflows/agent.d.ts +166 -0
  854. package/dist/workflows/agent.js +93 -0
  855. package/dist/workflows/agent.js.map +1 -0
  856. package/dist/workflows/workflow.cjs +222 -0
  857. package/dist/workflows/workflow.cjs.map +1 -0
  858. package/dist/workflows/workflow.d.cts +118 -0
  859. package/dist/workflows/workflow.d.ts +118 -0
  860. package/dist/workflows/workflow.js +219 -0
  861. package/dist/workflows/workflow.js.map +1 -0
  862. package/package.json +339 -0
@@ -0,0 +1,89 @@
1
+ import { BaseToolOptions, Tool, JSONToolOutput, ToolEmitter, ToolInput, BaseToolRunOptions } from '../base.cjs';
2
+ import { AnyToolSchemaLike } from '../../internals/helpers/schema.cjs';
3
+ import { ClientConfig, ShowCollectionsResponse, DescribeCollectionResponse, SearchRes, MilvusClient } from '@zilliz/milvus2-sdk-node';
4
+ import { z } from 'zod';
5
+ import 'ajv';
6
+ import '../../context.cjs';
7
+ import '../../emitter-BWtGHYn0.cjs';
8
+ import '../../internals/types.cjs';
9
+ import '../../internals/helpers/guards.cjs';
10
+ import '../../internals/serializable.cjs';
11
+ import '../../internals/helpers/promise.cjs';
12
+ import '../../errors.cjs';
13
+ import 'promise-based-task';
14
+ import '../../cache/base.cjs';
15
+ import 'zod-to-json-schema';
16
+
17
+ /**
18
+ * Copyright 2025 IBM Corp.
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.
31
+ */
32
+
33
+ interface MilvusToolOptions extends BaseToolOptions {
34
+ connection: ClientConfig;
35
+ }
36
+ type MilvusSearchToolResult = ShowCollectionsResponse | DescribeCollectionResponse | SearchRes;
37
+ declare enum MilvusAction {
38
+ ListCollections = "ListCollections",
39
+ GetCollectionInfo = "GetCollectionInfo",
40
+ Search = "Search",
41
+ Insert = "Insert",
42
+ Delete = "Delete"
43
+ }
44
+ declare class MilvusDatabaseTool extends Tool<JSONToolOutput<MilvusSearchToolResult>, MilvusToolOptions> {
45
+ name: string;
46
+ description: string;
47
+ inputSchema(): z.ZodObject<{
48
+ action: z.ZodNativeEnum<typeof MilvusAction>;
49
+ collectionName: z.ZodOptional<z.ZodString>;
50
+ vector: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
51
+ vectors: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">>;
52
+ topK: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
53
+ filter: z.ZodOptional<z.ZodString>;
54
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
55
+ ids: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">>;
56
+ searchOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ action: MilvusAction;
59
+ filter?: string | undefined;
60
+ topK?: number | undefined;
61
+ metadata?: Record<string, any> | undefined;
62
+ collectionName?: string | undefined;
63
+ vector?: number[] | undefined;
64
+ vectors?: number[][] | undefined;
65
+ ids?: (string | number)[] | undefined;
66
+ searchOutput?: string[] | undefined;
67
+ }, {
68
+ action: MilvusAction;
69
+ filter?: string | undefined;
70
+ topK?: number | undefined;
71
+ metadata?: Record<string, any> | undefined;
72
+ collectionName?: string | undefined;
73
+ vector?: number[] | undefined;
74
+ vectors?: number[][] | undefined;
75
+ ids?: (string | number)[] | undefined;
76
+ searchOutput?: string[] | undefined;
77
+ }>;
78
+ readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<MilvusSearchToolResult>>;
79
+ protected validateInput(schema: AnyToolSchemaLike, input: unknown): asserts input is ToolInput<this>;
80
+ protected client(): Promise<MilvusClient>;
81
+ protected _run(input: ToolInput<this>, _options: Partial<BaseToolRunOptions>): Promise<JSONToolOutput<any>>;
82
+ protected listCollections(): Promise<string[]>;
83
+ protected getCollectionInfo(collectionName: string): Promise<any>;
84
+ protected insert(input: ToolInput<this>): Promise<any>;
85
+ protected search(input: ToolInput<this>): Promise<any>;
86
+ protected delete(input: ToolInput<this>): Promise<any>;
87
+ }
88
+
89
+ export { MilvusAction, MilvusDatabaseTool, type MilvusSearchToolResult, type MilvusToolOptions };
@@ -0,0 +1,89 @@
1
+ import { BaseToolOptions, Tool, JSONToolOutput, ToolEmitter, ToolInput, BaseToolRunOptions } from '../base.js';
2
+ import { AnyToolSchemaLike } from '../../internals/helpers/schema.js';
3
+ import { ClientConfig, ShowCollectionsResponse, DescribeCollectionResponse, SearchRes, MilvusClient } from '@zilliz/milvus2-sdk-node';
4
+ import { z } from 'zod';
5
+ import 'ajv';
6
+ import '../../context.js';
7
+ import '../../emitter-l0W9gC1A.js';
8
+ import '../../internals/types.js';
9
+ import '../../internals/helpers/guards.js';
10
+ import '../../internals/serializable.js';
11
+ import '../../internals/helpers/promise.js';
12
+ import '../../errors.js';
13
+ import 'promise-based-task';
14
+ import '../../cache/base.js';
15
+ import 'zod-to-json-schema';
16
+
17
+ /**
18
+ * Copyright 2025 IBM Corp.
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.
31
+ */
32
+
33
+ interface MilvusToolOptions extends BaseToolOptions {
34
+ connection: ClientConfig;
35
+ }
36
+ type MilvusSearchToolResult = ShowCollectionsResponse | DescribeCollectionResponse | SearchRes;
37
+ declare enum MilvusAction {
38
+ ListCollections = "ListCollections",
39
+ GetCollectionInfo = "GetCollectionInfo",
40
+ Search = "Search",
41
+ Insert = "Insert",
42
+ Delete = "Delete"
43
+ }
44
+ declare class MilvusDatabaseTool extends Tool<JSONToolOutput<MilvusSearchToolResult>, MilvusToolOptions> {
45
+ name: string;
46
+ description: string;
47
+ inputSchema(): z.ZodObject<{
48
+ action: z.ZodNativeEnum<typeof MilvusAction>;
49
+ collectionName: z.ZodOptional<z.ZodString>;
50
+ vector: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
51
+ vectors: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">>;
52
+ topK: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
53
+ filter: z.ZodOptional<z.ZodString>;
54
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
55
+ ids: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">>;
56
+ searchOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ action: MilvusAction;
59
+ filter?: string | undefined;
60
+ topK?: number | undefined;
61
+ metadata?: Record<string, any> | undefined;
62
+ collectionName?: string | undefined;
63
+ vector?: number[] | undefined;
64
+ vectors?: number[][] | undefined;
65
+ ids?: (string | number)[] | undefined;
66
+ searchOutput?: string[] | undefined;
67
+ }, {
68
+ action: MilvusAction;
69
+ filter?: string | undefined;
70
+ topK?: number | undefined;
71
+ metadata?: Record<string, any> | undefined;
72
+ collectionName?: string | undefined;
73
+ vector?: number[] | undefined;
74
+ vectors?: number[][] | undefined;
75
+ ids?: (string | number)[] | undefined;
76
+ searchOutput?: string[] | undefined;
77
+ }>;
78
+ readonly emitter: ToolEmitter<ToolInput<this>, JSONToolOutput<MilvusSearchToolResult>>;
79
+ protected validateInput(schema: AnyToolSchemaLike, input: unknown): asserts input is ToolInput<this>;
80
+ protected client(): Promise<MilvusClient>;
81
+ protected _run(input: ToolInput<this>, _options: Partial<BaseToolRunOptions>): Promise<JSONToolOutput<any>>;
82
+ protected listCollections(): Promise<string[]>;
83
+ protected getCollectionInfo(collectionName: string): Promise<any>;
84
+ protected insert(input: ToolInput<this>): Promise<any>;
85
+ protected search(input: ToolInput<this>): Promise<any>;
86
+ protected delete(input: ToolInput<this>): Promise<any>;
87
+ }
88
+
89
+ export { MilvusAction, MilvusDatabaseTool, type MilvusSearchToolResult, type MilvusToolOptions };
@@ -0,0 +1,188 @@
1
+ import { Tool, ToolInputValidationError, ToolError, JSONToolOutput } from '../base.js';
2
+ import { Cache } from '../../cache/decoratorCache.js';
3
+ import { MilvusClient } from '@zilliz/milvus2-sdk-node';
4
+ import { z } from 'zod';
5
+ import { Emitter } from '../../emitter/emitter.js';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ function _ts_decorate(decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ }
15
+ __name(_ts_decorate, "_ts_decorate");
16
+ function _ts_metadata(k, v) {
17
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18
+ }
19
+ __name(_ts_metadata, "_ts_metadata");
20
+ var MilvusAction = /* @__PURE__ */ function(MilvusAction2) {
21
+ MilvusAction2["ListCollections"] = "ListCollections";
22
+ MilvusAction2["GetCollectionInfo"] = "GetCollectionInfo";
23
+ MilvusAction2["Search"] = "Search";
24
+ MilvusAction2["Insert"] = "Insert";
25
+ MilvusAction2["Delete"] = "Delete";
26
+ return MilvusAction2;
27
+ }({});
28
+ class MilvusDatabaseTool extends Tool {
29
+ static {
30
+ __name(this, "MilvusDatabaseTool");
31
+ }
32
+ name = "MilvusDatabaseTool";
33
+ description = `Can query data from a Milvus database. IMPORTANT: strictly follow this order of actions:
34
+ 1. ${"ListCollections"} - List all the Milvus collections
35
+ 2. ${"GetCollectionInfo"} - Get information about into a Milvus collection
36
+ 3. ${"Insert"} - Insert data into a Milvus collection
37
+ 3. ${"Search"} - Perform search on a Milvus collection
38
+ 4. ${"Delete"} - Delete from a Milvus collection`;
39
+ inputSchema() {
40
+ return z.object({
41
+ action: z.nativeEnum(MilvusAction).describe(`The action to perform. ${"ListCollections"} lists all collections, ${"GetCollectionInfo"} fetches details for a specified collection, ${"Search"} executes a vector search, ${"Insert"} inserts new vectors, and ${"Delete"} removes vectors.`),
42
+ collectionName: z.string().optional().describe(`The name of the collection to query, required for ${"GetCollectionInfo"}, ${"Search"}, ${"Insert"}, and ${"Delete"}`),
43
+ vector: z.array(z.number()).optional().describe(`The vector to search for or insert, required for ${"Search"}`),
44
+ vectors: z.array(z.array(z.number())).optional().describe(`The vectors to insert, required for ${"Insert"}`),
45
+ topK: z.coerce.number().int().min(1).max(1e3).default(10).optional().describe(`The number of nearest neighbors to return for ${"Search"}. Maximum is 1000`),
46
+ filter: z.string().optional().describe(`Optional filter expression for ${"Search"}`),
47
+ metadata: z.record(z.string(), z.any()).optional().describe(`Additional metadata to insert with vectors for ${"Insert"}`),
48
+ ids: z.array(z.string().or(z.number())).optional().describe(`Array of IDs to delete for ${"Delete"}`),
49
+ searchOutput: z.array(z.string()).optional().describe(`Fields to return in search results for ${"Search"}`)
50
+ });
51
+ }
52
+ emitter = Emitter.root.child({
53
+ namespace: [
54
+ "tool",
55
+ "database",
56
+ "milvus"
57
+ ],
58
+ creator: this
59
+ });
60
+ validateInput(schema, input) {
61
+ super.validateInput(schema, input);
62
+ if (input.action === "GetCollectionInfo" && !input.collectionName) {
63
+ throw new ToolInputValidationError(`Collection name is required for ${"GetCollectionInfo"}, ${"Search"}, ${"Insert"}, and ${"Delete"} actions.`);
64
+ }
65
+ if (input.action === "Search" && (!input.collectionName || !input.vector)) {
66
+ throw new ToolInputValidationError(`Both collection name and vector are required for ${"Search"} action.`);
67
+ }
68
+ if (input.action === "Insert" && (!input.collectionName || !input.vectors)) {
69
+ throw new ToolInputValidationError(`Both collection name and vectors are required for ${"Insert"} action.`);
70
+ }
71
+ }
72
+ static {
73
+ this.register();
74
+ }
75
+ async client() {
76
+ try {
77
+ const client = new MilvusClient(this.options.connection);
78
+ await client.listCollections();
79
+ return client;
80
+ } catch (error) {
81
+ throw new ToolError(`Unable to connect to Milvus.`, [
82
+ error
83
+ ], {
84
+ isRetryable: false,
85
+ isFatal: true
86
+ });
87
+ }
88
+ }
89
+ async _run(input, _options) {
90
+ switch (input.action) {
91
+ case "ListCollections": {
92
+ const collections = await this.listCollections();
93
+ return new JSONToolOutput(collections);
94
+ }
95
+ case "GetCollectionInfo": {
96
+ if (!input.collectionName) {
97
+ throw new ToolError("A collection name is required for Milvus GetCollectionInfo action");
98
+ }
99
+ const collectionInfo = await this.getCollectionInfo(input.collectionName);
100
+ return new JSONToolOutput(collectionInfo);
101
+ }
102
+ case "Search": {
103
+ if (!input.collectionName || !input.vector) {
104
+ throw new ToolError("A collection name and vector are required for Milvus Search action");
105
+ }
106
+ const searchResults = await this.search(input);
107
+ return new JSONToolOutput(searchResults);
108
+ }
109
+ case "Insert": {
110
+ if (!input.collectionName || !input.vectors) {
111
+ throw new ToolError("A collection name and vectors are required for Milvus Insert action");
112
+ }
113
+ const insertResults = await this.insert(input);
114
+ return new JSONToolOutput(insertResults);
115
+ }
116
+ case "Delete": {
117
+ if (!input.collectionName || !input.ids) {
118
+ throw new ToolError("Collection name and ids are required for Milvus Delete action");
119
+ }
120
+ const deleteResults = await this.delete(input);
121
+ return new JSONToolOutput(deleteResults);
122
+ }
123
+ default: {
124
+ throw new ToolError(`Invalid action specified: ${input.action}`);
125
+ }
126
+ }
127
+ }
128
+ async listCollections() {
129
+ try {
130
+ const client = await this.client();
131
+ const response = await client.listCollections({});
132
+ if (response && response.data && Array.isArray(response.data)) {
133
+ return response.data.map((collection) => collection.name);
134
+ } else {
135
+ return [];
136
+ }
137
+ } catch (error) {
138
+ throw new ToolError(`Failed to list collections from Milvus: ${error}`);
139
+ }
140
+ }
141
+ async getCollectionInfo(collectionName) {
142
+ const client = await this.client();
143
+ const response = client.describeCollection({
144
+ collection_name: collectionName
145
+ });
146
+ return response;
147
+ }
148
+ async insert(input) {
149
+ const client = await this.client();
150
+ const response = await client.insert({
151
+ collection_name: input.collectionName,
152
+ fields_data: input.vectors.map((vector, index) => ({
153
+ vector,
154
+ ...input.metadata?.[index]
155
+ }))
156
+ });
157
+ return response;
158
+ }
159
+ async search(input) {
160
+ const client = await this.client();
161
+ const response = await client.search({
162
+ collection_name: input.collectionName,
163
+ vector: input.vector,
164
+ limit: input.topK || 10,
165
+ filter: input.filter,
166
+ output_fields: input.searchOutput
167
+ });
168
+ return response.results;
169
+ }
170
+ async delete(input) {
171
+ const client = await this.client();
172
+ const response = client.delete({
173
+ collection_name: input.collectionName,
174
+ filter: `id in [${input.ids?.join(",")}]`
175
+ });
176
+ return response;
177
+ }
178
+ }
179
+ _ts_decorate([
180
+ Cache(),
181
+ _ts_metadata("design:type", Function),
182
+ _ts_metadata("design:paramtypes", []),
183
+ _ts_metadata("design:returntype", Promise)
184
+ ], MilvusDatabaseTool.prototype, "client", null);
185
+
186
+ export { MilvusAction, MilvusDatabaseTool };
187
+ //# sourceMappingURL=milvus.js.map
188
+ //# sourceMappingURL=milvus.js.map
@@ -0,0 +1 @@
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.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\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"]}
@@ -0,0 +1,174 @@
1
+ 'use strict';
2
+
3
+ var base_cjs = require('../base.cjs');
4
+ var zod = require('zod');
5
+ var sequelize = require('sequelize');
6
+ var metadata_cjs = require('./metadata.cjs');
7
+ var decoratorCache_cjs = require('../../cache/decoratorCache.cjs');
8
+ var ajv = require('ajv');
9
+ var emitter_cjs = require('../../emitter/emitter.cjs');
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ function _ts_decorate(decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ }
19
+ __name(_ts_decorate, "_ts_decorate");
20
+ function _ts_metadata(k, v) {
21
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
+ }
23
+ __name(_ts_metadata, "_ts_metadata");
24
+ const SQLToolAction = {
25
+ GetMetadata: "GET_METADATA",
26
+ Query: "QUERY"
27
+ };
28
+ class SQLToolOutput extends base_cjs.JSONToolOutput {
29
+ static {
30
+ __name(this, "SQLToolOutput");
31
+ }
32
+ }
33
+ class SQLTool extends base_cjs.Tool {
34
+ static {
35
+ __name(this, "SQLTool");
36
+ }
37
+ name = "SQLTool";
38
+ description = `Converts natural language to SQL query and executes it. IMPORTANT: strictly follow this order of actions:
39
+ 1. ${SQLToolAction.GetMetadata} - get database tables structure (metadata)
40
+ 2. ${SQLToolAction.Query} - execute the generated SQL query`;
41
+ inputSchema() {
42
+ return zod.z.object({
43
+ action: zod.z.nativeEnum(SQLToolAction).describe(`The action to perform. ${SQLToolAction.GetMetadata} get database tables structure, ${SQLToolAction.Query} execute the SQL query`),
44
+ query: zod.z.string().optional().describe(`The SQL query to be executed, required for ${SQLToolAction.Query} action`)
45
+ });
46
+ }
47
+ emitter = emitter_cjs.Emitter.root.child({
48
+ namespace: [
49
+ "tool",
50
+ "database",
51
+ "sql"
52
+ ],
53
+ creator: this
54
+ });
55
+ constructor(options) {
56
+ super(options);
57
+ if (!options.connection.dialect) {
58
+ throw new ajv.ValidationError([
59
+ {
60
+ message: "Property is required",
61
+ propertyName: "connection.dialect"
62
+ }
63
+ ]);
64
+ }
65
+ if (!options.connection.schema && (options.provider === "oracle" || options.provider === "db2")) {
66
+ throw new ajv.ValidationError([
67
+ {
68
+ message: `Property is required for ${options.provider}`,
69
+ propertyName: "connection.schema"
70
+ }
71
+ ]);
72
+ }
73
+ if (!options.connection.storage && options.provider === "sqlite") {
74
+ throw new ajv.ValidationError([
75
+ {
76
+ message: `Property is required for ${options.provider}`,
77
+ propertyName: "connection.storage"
78
+ }
79
+ ]);
80
+ }
81
+ }
82
+ validateInput(schema, input) {
83
+ super.validateInput(schema, input);
84
+ if (input.action === SQLToolAction.Query && !input.query) {
85
+ throw new base_cjs.ToolInputValidationError(`SQL Query is required for ${SQLToolAction.Query} action.`);
86
+ }
87
+ }
88
+ static {
89
+ this.register();
90
+ }
91
+ async connection() {
92
+ try {
93
+ const sequelize$1 = new sequelize.Sequelize(this.options.connection);
94
+ await sequelize$1.authenticate();
95
+ return sequelize$1;
96
+ } catch (error) {
97
+ throw new base_cjs.ToolError(`Unable to connect to database: ${error}`, [], {
98
+ isRetryable: false,
99
+ isFatal: true
100
+ });
101
+ }
102
+ }
103
+ async _run(input, _options) {
104
+ const { provider, connection } = this.options;
105
+ const { schema } = connection;
106
+ if (input.action === SQLToolAction.GetMetadata) {
107
+ const sequelize = await this.connection();
108
+ const metadata = await metadata_cjs.getMetadata(sequelize, provider, schema);
109
+ return new SQLToolOutput(metadata);
110
+ }
111
+ if (input.action === SQLToolAction.Query) {
112
+ return await this.executeQuery(input.query, provider, schema);
113
+ }
114
+ throw new base_cjs.ToolError(`Invalid action specified: ${input.action}`);
115
+ }
116
+ async executeQuery(query, provider, schema) {
117
+ if (!this.isReadOnlyQuery(query)) {
118
+ return new base_cjs.JSONToolOutput({
119
+ success: false,
120
+ error: "Invalid query. Only SELECT queries are allowed."
121
+ });
122
+ }
123
+ try {
124
+ const sequelize = await this.connection();
125
+ const [results] = await sequelize.query(query);
126
+ if (Array.isArray(results) && results.length > 0) {
127
+ return new base_cjs.JSONToolOutput({
128
+ success: true,
129
+ results
130
+ });
131
+ }
132
+ return new base_cjs.JSONToolOutput({
133
+ success: false,
134
+ message: `No rows selected`
135
+ });
136
+ } catch (error) {
137
+ const schemaHint = schema ? `Fully qualify the table names by appending the schema name "${schema}" as a prefix, for example: ${schema}.table_name` : "";
138
+ const errorMessage = `Generate a correct query that retrieves data using the appropriate ${provider} dialect.
139
+ ${schemaHint}
140
+ The original request was: ${query}, and the error was: ${error.message}.`;
141
+ throw new base_cjs.ToolError(errorMessage);
142
+ }
143
+ }
144
+ isReadOnlyQuery(query) {
145
+ const normalizedQuery = query.trim().toUpperCase();
146
+ return normalizedQuery.startsWith("SELECT") || normalizedQuery.startsWith("SHOW") || normalizedQuery.startsWith("DESC");
147
+ }
148
+ async destroy() {
149
+ const cache = decoratorCache_cjs.Cache.getInstance(this, "connection");
150
+ const entry = cache.get();
151
+ if (entry) {
152
+ cache.clear();
153
+ try {
154
+ await entry.data.close();
155
+ } catch (error) {
156
+ throw new base_cjs.ToolError(`Failed to close the database connection`, [
157
+ error
158
+ ]);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ _ts_decorate([
164
+ decoratorCache_cjs.Cache(),
165
+ _ts_metadata("design:type", Function),
166
+ _ts_metadata("design:paramtypes", []),
167
+ _ts_metadata("design:returntype", Promise)
168
+ ], SQLTool.prototype, "connection", null);
169
+
170
+ exports.SQLTool = SQLTool;
171
+ exports.SQLToolAction = SQLToolAction;
172
+ exports.SQLToolOutput = SQLToolOutput;
173
+ //# sourceMappingURL=sql.cjs.map
174
+ //# sourceMappingURL=sql.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/database/sql.ts"],"names":["SQLToolAction","GetMetadata","Query","SQLToolOutput","JSONToolOutput","SQLTool","Tool","name","description","inputSchema","z","object","action","nativeEnum","describe","query","string","optional","emitter","Emitter","root","child","namespace","creator","options","connection","dialect","ValidationError","message","propertyName","schema","provider","storage","validateInput","input","ToolInputValidationError","register","sequelize","Sequelize","authenticate","error","ToolError","isRetryable","isFatal","_run","_options","metadata","getMetadata","executeQuery","isReadOnlyQuery","success","results","Array","isArray","length","schemaHint","errorMessage","normalizedQuery","trim","toUpperCase","startsWith","destroy","cache","Cache","getInstance","entry","get","clear","data","close"],"mappings":"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","file":"sql.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\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 { z } from \"zod\";\nimport { Sequelize, Options } from \"sequelize\";\nimport { Provider, getMetadata } from \"@/tools/database/metadata.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { ValidationError } from \"ajv\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ninterface ToolOptions extends BaseToolOptions {\n provider: Provider;\n connection: Options;\n}\n\ntype ToolRunOptions = BaseToolRunOptions;\n\nexport const SQLToolAction = {\n GetMetadata: \"GET_METADATA\",\n Query: \"QUERY\",\n} as const;\n\nexport class SQLToolOutput extends JSONToolOutput<any> {}\n\nexport class SQLTool extends Tool<SQLToolOutput, ToolOptions, ToolRunOptions> {\n name = \"SQLTool\";\n\n description = `Converts natural language to SQL query and executes it. IMPORTANT: strictly follow this order of actions:\n 1. ${SQLToolAction.GetMetadata} - get database tables structure (metadata)\n 2. ${SQLToolAction.Query} - execute the generated SQL query`;\n\n inputSchema() {\n return z.object({\n action: z\n .nativeEnum(SQLToolAction)\n .describe(\n `The action to perform. ${SQLToolAction.GetMetadata} get database tables structure, ${SQLToolAction.Query} execute the SQL query`,\n ),\n query: z\n .string()\n .optional()\n .describe(`The SQL query to be executed, required for ${SQLToolAction.Query} action`),\n });\n }\n\n public readonly emitter: ToolEmitter<ToolInput<this>, SQLToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"database\", \"sql\"],\n creator: this,\n });\n\n public constructor(options: ToolOptions) {\n super(options);\n if (!options.connection.dialect) {\n throw new ValidationError([\n {\n message: \"Property is required\",\n propertyName: \"connection.dialect\",\n },\n ]);\n }\n if (\n !options.connection.schema &&\n (options.provider === \"oracle\" || options.provider === \"db2\")\n ) {\n throw new ValidationError([\n {\n message: `Property is required for ${options.provider}`,\n propertyName: \"connection.schema\",\n },\n ]);\n }\n if (!options.connection.storage && options.provider === \"sqlite\") {\n throw new ValidationError([\n {\n message: `Property is required for ${options.provider}`,\n propertyName: \"connection.storage\",\n },\n ]);\n }\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 === SQLToolAction.Query && !input.query) {\n throw new ToolInputValidationError(\n `SQL Query is required for ${SQLToolAction.Query} action.`,\n );\n }\n }\n\n static {\n this.register();\n }\n\n @Cache()\n protected async connection(): Promise<Sequelize> {\n try {\n const sequelize = new Sequelize(this.options.connection);\n\n await sequelize.authenticate();\n return sequelize;\n } catch (error) {\n throw new ToolError(`Unable to connect to database: ${error}`, [], {\n isRetryable: false,\n isFatal: true,\n });\n }\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<ToolRunOptions>,\n ): Promise<SQLToolOutput> {\n const { provider, connection } = this.options;\n const { schema } = connection;\n\n if (input.action === SQLToolAction.GetMetadata) {\n const sequelize = await this.connection();\n const metadata = await getMetadata(sequelize, provider, schema);\n return new SQLToolOutput(metadata);\n }\n\n if (input.action === SQLToolAction.Query) {\n return await this.executeQuery(input.query!, provider, schema);\n }\n\n throw new ToolError(`Invalid action specified: ${input.action}`);\n }\n\n protected async executeQuery(\n query: string,\n provider: Provider,\n schema: string | undefined,\n ): Promise<SQLToolOutput> {\n if (!this.isReadOnlyQuery(query)) {\n return new JSONToolOutput({\n success: false,\n error: \"Invalid query. Only SELECT queries are allowed.\",\n });\n }\n\n try {\n const sequelize = await this.connection();\n const [results] = await sequelize.query(query);\n if (Array.isArray(results) && results.length > 0) {\n return new JSONToolOutput({ success: true, results });\n }\n\n return new JSONToolOutput({\n success: false,\n message: `No rows selected`,\n });\n } catch (error) {\n const schemaHint = schema\n ? `Fully qualify the table names by appending the schema name \"${schema}\" as a prefix, for example: ${schema}.table_name`\n : \"\";\n const errorMessage = `Generate a correct query that retrieves data using the appropriate ${provider} dialect.\n ${schemaHint}\n The original request was: ${query}, and the error was: ${error.message}.`;\n throw new ToolError(errorMessage);\n }\n }\n\n private isReadOnlyQuery(query: string): boolean {\n const normalizedQuery = query.trim().toUpperCase();\n return (\n normalizedQuery.startsWith(\"SELECT\") ||\n normalizedQuery.startsWith(\"SHOW\") ||\n normalizedQuery.startsWith(\"DESC\")\n );\n }\n\n public async destroy(): Promise<void> {\n // @ts-expect-error protected property\n const cache = Cache.getInstance(this, \"connection\");\n const entry = cache.get();\n\n if (entry) {\n cache.clear();\n\n try {\n await entry.data.close();\n } catch (error) {\n throw new ToolError(`Failed to close the database connection`, [error]);\n }\n }\n }\n}\n"]}