beddel 0.2.1 → 0.2.3

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 (332) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +132 -21
  3. package/dist/agents/chat/chat.handler.d.ts +12 -0
  4. package/dist/agents/chat/chat.handler.d.ts.map +1 -0
  5. package/dist/agents/chat/chat.handler.js +143 -0
  6. package/dist/agents/chat/chat.handler.js.map +1 -0
  7. package/dist/agents/chat/chat.schema.d.ts +38 -0
  8. package/dist/agents/chat/chat.schema.d.ts.map +1 -0
  9. package/dist/agents/chat/chat.schema.js +31 -0
  10. package/dist/agents/chat/chat.schema.js.map +1 -0
  11. package/dist/agents/chat/chat.types.d.ts +42 -0
  12. package/dist/agents/chat/chat.types.d.ts.map +1 -0
  13. package/dist/agents/chat/chat.types.js +6 -0
  14. package/dist/agents/chat/chat.types.js.map +1 -0
  15. package/dist/agents/chat/chat.yaml +150 -0
  16. package/dist/agents/chat/index.d.ts +16 -0
  17. package/dist/agents/chat/index.d.ts.map +1 -0
  18. package/dist/agents/chat/index.js +21 -0
  19. package/dist/agents/chat/index.js.map +1 -0
  20. package/dist/agents/chromadb/chromadb.handler.d.ts +12 -0
  21. package/dist/agents/chromadb/chromadb.handler.d.ts.map +1 -0
  22. package/dist/agents/chromadb/chromadb.handler.js +139 -0
  23. package/dist/agents/chromadb/chromadb.handler.js.map +1 -0
  24. package/dist/agents/chromadb/chromadb.schema.d.ts +36 -0
  25. package/dist/agents/chromadb/chromadb.schema.d.ts.map +1 -0
  26. package/dist/agents/chromadb/chromadb.schema.js +33 -0
  27. package/dist/agents/chromadb/chromadb.schema.js.map +1 -0
  28. package/dist/agents/chromadb/chromadb.types.d.ts +49 -0
  29. package/dist/agents/chromadb/chromadb.types.d.ts.map +1 -0
  30. package/dist/agents/chromadb/chromadb.types.js +6 -0
  31. package/dist/agents/chromadb/chromadb.types.js.map +1 -0
  32. package/dist/agents/chromadb/chromadb.yaml +128 -0
  33. package/dist/agents/chromadb/index.d.ts +15 -0
  34. package/dist/agents/chromadb/index.d.ts.map +1 -0
  35. package/dist/agents/chromadb/index.js +20 -0
  36. package/dist/agents/chromadb/index.js.map +1 -0
  37. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts +8 -0
  38. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts.map +1 -0
  39. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js +58 -0
  40. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js.map +1 -0
  41. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts +22 -0
  42. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts.map +1 -0
  43. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js +20 -0
  44. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js.map +1 -0
  45. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts +32 -0
  46. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts.map +1 -0
  47. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js +6 -0
  48. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js.map +1 -0
  49. package/dist/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
  50. package/dist/agents/gemini-vectorize/index.d.ts +15 -0
  51. package/dist/agents/gemini-vectorize/index.d.ts.map +1 -0
  52. package/dist/agents/gemini-vectorize/index.js +20 -0
  53. package/dist/agents/gemini-vectorize/index.js.map +1 -0
  54. package/dist/agents/gitmcp/gitmcp.handler.d.ts +12 -0
  55. package/dist/agents/gitmcp/gitmcp.handler.d.ts.map +1 -0
  56. package/dist/agents/gitmcp/gitmcp.handler.js +95 -0
  57. package/dist/agents/gitmcp/gitmcp.handler.js.map +1 -0
  58. package/dist/agents/gitmcp/gitmcp.schema.d.ts +17 -0
  59. package/dist/agents/gitmcp/gitmcp.schema.d.ts.map +1 -0
  60. package/dist/agents/gitmcp/gitmcp.schema.js +18 -0
  61. package/dist/agents/gitmcp/gitmcp.schema.js.map +1 -0
  62. package/dist/agents/gitmcp/gitmcp.types.d.ts +31 -0
  63. package/dist/agents/gitmcp/gitmcp.types.d.ts.map +1 -0
  64. package/dist/agents/gitmcp/gitmcp.types.js +6 -0
  65. package/dist/agents/gitmcp/gitmcp.types.js.map +1 -0
  66. package/dist/agents/gitmcp/gitmcp.yaml +71 -0
  67. package/dist/agents/gitmcp/index.d.ts +16 -0
  68. package/dist/agents/gitmcp/index.d.ts.map +1 -0
  69. package/dist/agents/gitmcp/index.js +21 -0
  70. package/dist/agents/gitmcp/index.js.map +1 -0
  71. package/dist/agents/image/image.handler.d.ts +8 -0
  72. package/dist/agents/image/image.handler.d.ts.map +1 -0
  73. package/dist/agents/image/image.handler.js +66 -0
  74. package/dist/agents/image/image.handler.js.map +1 -0
  75. package/dist/agents/image/image.schema.d.ts +29 -0
  76. package/dist/agents/image/image.schema.d.ts.map +1 -0
  77. package/dist/agents/image/image.schema.js +26 -0
  78. package/dist/agents/image/image.schema.js.map +1 -0
  79. package/dist/agents/image/image.types.d.ts +42 -0
  80. package/dist/agents/image/image.types.d.ts.map +1 -0
  81. package/dist/agents/image/image.types.js +6 -0
  82. package/dist/agents/image/image.types.js.map +1 -0
  83. package/{src/agents/image-agent.yaml → dist/agents/image/image.yaml} +21 -21
  84. package/dist/agents/image/index.d.ts +14 -0
  85. package/dist/agents/image/index.d.ts.map +1 -0
  86. package/dist/agents/image/index.js +19 -0
  87. package/dist/agents/image/index.js.map +1 -0
  88. package/dist/agents/index.d.ts +95 -0
  89. package/dist/agents/index.d.ts.map +1 -0
  90. package/dist/agents/index.js +76 -0
  91. package/dist/agents/index.js.map +1 -0
  92. package/dist/agents/joker/index.d.ts +14 -0
  93. package/dist/agents/joker/index.d.ts.map +1 -0
  94. package/dist/agents/joker/index.js +19 -0
  95. package/dist/agents/joker/index.js.map +1 -0
  96. package/dist/agents/joker/joker.handler.d.ts +8 -0
  97. package/dist/agents/joker/joker.handler.d.ts.map +1 -0
  98. package/dist/agents/joker/joker.handler.js +48 -0
  99. package/dist/agents/joker/joker.handler.js.map +1 -0
  100. package/dist/agents/joker/joker.schema.d.ts +12 -0
  101. package/dist/agents/joker/joker.schema.d.ts.map +1 -0
  102. package/dist/agents/joker/joker.schema.js +13 -0
  103. package/dist/agents/joker/joker.schema.js.map +1 -0
  104. package/dist/agents/joker/joker.types.d.ts +35 -0
  105. package/dist/agents/joker/joker.types.d.ts.map +1 -0
  106. package/dist/agents/joker/joker.types.js +6 -0
  107. package/dist/agents/joker/joker.types.js.map +1 -0
  108. package/{src/agents/joker-agent.yaml → dist/agents/joker/joker.yaml} +4 -4
  109. package/dist/agents/mcp-tool/index.d.ts +14 -0
  110. package/dist/agents/mcp-tool/index.d.ts.map +1 -0
  111. package/dist/agents/mcp-tool/index.js +19 -0
  112. package/dist/agents/mcp-tool/index.js.map +1 -0
  113. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts +12 -0
  114. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts.map +1 -0
  115. package/dist/agents/mcp-tool/mcp-tool.handler.js +116 -0
  116. package/dist/agents/mcp-tool/mcp-tool.handler.js.map +1 -0
  117. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts +19 -0
  118. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts.map +1 -0
  119. package/dist/agents/mcp-tool/mcp-tool.schema.js +20 -0
  120. package/dist/agents/mcp-tool/mcp-tool.schema.js.map +1 -0
  121. package/dist/agents/mcp-tool/mcp-tool.types.d.ts +31 -0
  122. package/dist/agents/mcp-tool/mcp-tool.types.d.ts.map +1 -0
  123. package/dist/agents/mcp-tool/mcp-tool.types.js +6 -0
  124. package/dist/agents/mcp-tool/mcp-tool.types.js.map +1 -0
  125. package/dist/agents/mcp-tool/mcp-tool.yaml +71 -0
  126. package/dist/agents/rag/index.d.ts +15 -0
  127. package/dist/agents/rag/index.d.ts.map +1 -0
  128. package/dist/agents/rag/index.js +20 -0
  129. package/dist/agents/rag/index.js.map +1 -0
  130. package/dist/agents/rag/rag.handler.d.ts +8 -0
  131. package/dist/agents/rag/rag.handler.d.ts.map +1 -0
  132. package/dist/agents/rag/rag.handler.js +101 -0
  133. package/dist/agents/rag/rag.handler.js.map +1 -0
  134. package/dist/agents/rag/rag.schema.d.ts +27 -0
  135. package/dist/agents/rag/rag.schema.d.ts.map +1 -0
  136. package/dist/agents/rag/rag.schema.js +24 -0
  137. package/dist/agents/rag/rag.schema.js.map +1 -0
  138. package/dist/agents/rag/rag.types.d.ts +47 -0
  139. package/dist/agents/rag/rag.types.d.ts.map +1 -0
  140. package/dist/agents/rag/rag.types.js +6 -0
  141. package/dist/agents/rag/rag.types.js.map +1 -0
  142. package/dist/agents/rag/rag.yaml +89 -0
  143. package/dist/agents/{agentRegistry.d.ts → registry/agentRegistry.d.ts} +25 -1
  144. package/dist/agents/registry/agentRegistry.d.ts.map +1 -0
  145. package/dist/agents/{agentRegistry.js → registry/agentRegistry.js} +154 -4
  146. package/dist/agents/registry/agentRegistry.js.map +1 -0
  147. package/dist/agents/registry/index.d.ts +6 -0
  148. package/dist/agents/registry/index.d.ts.map +1 -0
  149. package/dist/agents/registry/index.js +10 -0
  150. package/dist/agents/registry/index.js.map +1 -0
  151. package/dist/agents/translator/index.d.ts +14 -0
  152. package/dist/agents/translator/index.d.ts.map +1 -0
  153. package/dist/agents/translator/index.js +19 -0
  154. package/dist/agents/translator/index.js.map +1 -0
  155. package/dist/agents/translator/translator.handler.d.ts +8 -0
  156. package/dist/agents/translator/translator.handler.d.ts.map +1 -0
  157. package/dist/agents/translator/translator.handler.js +83 -0
  158. package/dist/agents/translator/translator.handler.js.map +1 -0
  159. package/dist/agents/translator/translator.schema.d.ts +27 -0
  160. package/dist/agents/translator/translator.schema.d.ts.map +1 -0
  161. package/dist/agents/translator/translator.schema.js +28 -0
  162. package/dist/agents/translator/translator.schema.js.map +1 -0
  163. package/dist/agents/translator/translator.types.d.ts +40 -0
  164. package/dist/agents/translator/translator.types.d.ts.map +1 -0
  165. package/dist/agents/translator/translator.types.js +6 -0
  166. package/dist/agents/translator/translator.types.js.map +1 -0
  167. package/{src/agents/translator-agent.yaml → dist/agents/translator/translator.yaml} +27 -27
  168. package/dist/client/index.d.ts +89 -0
  169. package/dist/client/index.d.ts.map +1 -0
  170. package/dist/client/index.js +93 -0
  171. package/dist/client/index.js.map +1 -0
  172. package/dist/client/types.d.ts +17 -0
  173. package/dist/client/types.d.ts.map +1 -0
  174. package/dist/client/types.js +7 -0
  175. package/dist/client/types.js.map +1 -0
  176. package/dist/firebase/tenantManager.d.ts +34 -2
  177. package/dist/firebase/tenantManager.d.ts.map +1 -1
  178. package/dist/firebase/tenantManager.js +67 -1
  179. package/dist/firebase/tenantManager.js.map +1 -1
  180. package/dist/index.d.ts +8 -4
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +22 -7
  183. package/dist/index.js.map +1 -1
  184. package/dist/runtime/declarativeAgentRuntime.d.ts +14 -49
  185. package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -1
  186. package/dist/runtime/declarativeAgentRuntime.js +248 -355
  187. package/dist/runtime/declarativeAgentRuntime.js.map +1 -1
  188. package/dist/runtime/index.d.ts +12 -0
  189. package/dist/runtime/index.d.ts.map +1 -0
  190. package/dist/runtime/index.js +33 -0
  191. package/dist/runtime/index.js.map +1 -0
  192. package/dist/runtime/workflowExecutor.d.ts +30 -0
  193. package/dist/runtime/workflowExecutor.d.ts.map +1 -0
  194. package/dist/runtime/workflowExecutor.js +70 -0
  195. package/dist/runtime/workflowExecutor.js.map +1 -0
  196. package/dist/server/api/graphql.d.ts +1 -1
  197. package/dist/server/api/graphql.d.ts.map +1 -1
  198. package/dist/server/api/graphql.js +104 -62
  199. package/dist/server/api/graphql.js.map +1 -1
  200. package/dist/server/index.d.ts +2 -2
  201. package/dist/server/index.d.ts.map +1 -1
  202. package/dist/server/index.js +2 -2
  203. package/dist/server/index.js.map +1 -1
  204. package/dist/shared/index.d.ts +7 -0
  205. package/dist/shared/index.d.ts.map +1 -0
  206. package/dist/shared/index.js +23 -0
  207. package/dist/shared/index.js.map +1 -0
  208. package/dist/shared/types/agent.types.d.ts +50 -0
  209. package/dist/shared/types/agent.types.d.ts.map +1 -0
  210. package/dist/shared/types/agent.types.js +7 -0
  211. package/dist/shared/types/agent.types.js.map +1 -0
  212. package/dist/shared/types/execution.types.d.ts +42 -0
  213. package/dist/shared/types/execution.types.d.ts.map +1 -0
  214. package/dist/shared/types/execution.types.js +7 -0
  215. package/dist/shared/types/execution.types.js.map +1 -0
  216. package/dist/shared/types/index.d.ts +7 -0
  217. package/dist/shared/types/index.d.ts.map +1 -0
  218. package/dist/shared/types/index.js +23 -0
  219. package/dist/shared/types/index.js.map +1 -0
  220. package/dist/shared/types/schema.types.d.ts +52 -0
  221. package/dist/shared/types/schema.types.d.ts.map +1 -0
  222. package/dist/shared/types/schema.types.js +7 -0
  223. package/dist/shared/types/schema.types.js.map +1 -0
  224. package/dist/shared/utils/index.d.ts +5 -0
  225. package/dist/shared/utils/index.d.ts.map +1 -0
  226. package/dist/shared/utils/index.js +21 -0
  227. package/dist/shared/utils/index.js.map +1 -0
  228. package/dist/shared/utils/validation.d.ts +42 -0
  229. package/dist/shared/utils/validation.d.ts.map +1 -0
  230. package/dist/shared/utils/validation.js +93 -0
  231. package/dist/shared/utils/validation.js.map +1 -0
  232. package/dist/tenant/TenantManager.d.ts +152 -0
  233. package/dist/tenant/TenantManager.d.ts.map +1 -0
  234. package/dist/tenant/TenantManager.js +392 -0
  235. package/dist/tenant/TenantManager.js.map +1 -0
  236. package/dist/tenant/index.d.ts +47 -0
  237. package/dist/tenant/index.d.ts.map +1 -0
  238. package/dist/tenant/index.js +74 -0
  239. package/dist/tenant/index.js.map +1 -0
  240. package/dist/tenant/interfaces.d.ts +170 -0
  241. package/dist/tenant/interfaces.d.ts.map +1 -0
  242. package/dist/tenant/interfaces.js +67 -0
  243. package/dist/tenant/interfaces.js.map +1 -0
  244. package/dist/tenant/providerFactory.d.ts +43 -0
  245. package/dist/tenant/providerFactory.d.ts.map +1 -0
  246. package/dist/tenant/providerFactory.js +70 -0
  247. package/dist/tenant/providerFactory.js.map +1 -0
  248. package/dist/tenant/providerRegistry.d.ts +47 -0
  249. package/dist/tenant/providerRegistry.d.ts.map +1 -0
  250. package/dist/tenant/providerRegistry.js +79 -0
  251. package/dist/tenant/providerRegistry.js.map +1 -0
  252. package/dist/tenant/providers/FirebaseTenantProvider.d.ts +41 -0
  253. package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +1 -0
  254. package/dist/tenant/providers/FirebaseTenantProvider.js +290 -0
  255. package/dist/tenant/providers/FirebaseTenantProvider.js.map +1 -0
  256. package/dist/tenant/providers/InMemoryTenantProvider.d.ts +18 -0
  257. package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +1 -0
  258. package/dist/tenant/providers/InMemoryTenantProvider.js +137 -0
  259. package/dist/tenant/providers/InMemoryTenantProvider.js.map +1 -0
  260. package/package.json +48 -12
  261. package/src/agents/chat/chat.handler.ts +209 -0
  262. package/src/agents/chat/chat.schema.ts +33 -0
  263. package/src/agents/chat/chat.types.ts +46 -0
  264. package/src/agents/chat/chat.yaml +150 -0
  265. package/src/agents/chat/index.ts +21 -0
  266. package/src/agents/chromadb/chromadb.handler.ts +130 -0
  267. package/src/agents/chromadb/chromadb.schema.ts +35 -0
  268. package/src/agents/chromadb/chromadb.types.ts +52 -0
  269. package/src/agents/chromadb/chromadb.yaml +128 -0
  270. package/src/agents/chromadb/index.ts +20 -0
  271. package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +72 -0
  272. package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +22 -0
  273. package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +34 -0
  274. package/src/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
  275. package/src/agents/gemini-vectorize/index.ts +20 -0
  276. package/src/agents/gitmcp/gitmcp.handler.ts +122 -0
  277. package/src/agents/gitmcp/gitmcp.schema.ts +20 -0
  278. package/src/agents/gitmcp/gitmcp.types.ts +33 -0
  279. package/src/agents/gitmcp/gitmcp.yaml +71 -0
  280. package/src/agents/gitmcp/index.ts +21 -0
  281. package/src/agents/image/image.handler.ts +82 -0
  282. package/src/agents/image/image.schema.ts +28 -0
  283. package/src/agents/image/image.types.ts +45 -0
  284. package/src/agents/image/image.yaml +86 -0
  285. package/src/agents/image/index.ts +19 -0
  286. package/src/agents/index.ts +59 -0
  287. package/src/agents/joker/index.ts +19 -0
  288. package/src/agents/joker/joker.handler.ts +60 -0
  289. package/src/agents/joker/joker.schema.ts +15 -0
  290. package/src/agents/joker/joker.types.ts +37 -0
  291. package/src/agents/joker/joker.yaml +47 -0
  292. package/src/agents/mcp-tool/index.ts +19 -0
  293. package/src/agents/mcp-tool/mcp-tool.handler.ts +112 -0
  294. package/src/agents/mcp-tool/mcp-tool.schema.ts +22 -0
  295. package/src/agents/mcp-tool/mcp-tool.types.ts +33 -0
  296. package/src/agents/mcp-tool/mcp-tool.yaml +71 -0
  297. package/src/agents/rag/index.ts +20 -0
  298. package/src/agents/rag/rag.handler.ts +119 -0
  299. package/src/agents/rag/rag.schema.ts +26 -0
  300. package/src/agents/rag/rag.types.ts +51 -0
  301. package/src/agents/rag/rag.yaml +89 -0
  302. package/src/agents/{agentRegistry.ts → registry/agentRegistry.ts} +161 -5
  303. package/src/agents/registry/index.ts +6 -0
  304. package/src/agents/translator/index.ts +19 -0
  305. package/src/agents/translator/translator.handler.ts +99 -0
  306. package/src/agents/translator/translator.schema.ts +30 -0
  307. package/src/agents/translator/translator.types.ts +42 -0
  308. package/src/agents/translator/translator.yaml +80 -0
  309. package/src/client/index.ts +53 -0
  310. package/src/client/types.ts +38 -0
  311. package/src/index.ts +48 -5
  312. package/src/runtime/declarativeAgentRuntime.ts +367 -489
  313. package/src/runtime/index.ts +31 -0
  314. package/src/runtime/workflowExecutor.ts +94 -0
  315. package/src/server/api/graphql.ts +109 -74
  316. package/src/server/index.ts +2 -2
  317. package/src/shared/index.ts +7 -0
  318. package/src/shared/types/agent.types.ts +80 -0
  319. package/src/shared/types/execution.types.ts +45 -0
  320. package/src/shared/types/index.ts +7 -0
  321. package/src/shared/types/schema.types.ts +55 -0
  322. package/src/shared/utils/index.ts +5 -0
  323. package/src/shared/utils/validation.ts +100 -0
  324. package/src/tenant/TenantManager.ts +488 -0
  325. package/src/tenant/index.ts +101 -0
  326. package/src/tenant/interfaces.ts +231 -0
  327. package/src/tenant/providerFactory.ts +75 -0
  328. package/src/tenant/providerRegistry.ts +86 -0
  329. package/src/tenant/providers/InMemoryTenantProvider.ts +168 -0
  330. package/dist/agents/agentRegistry.d.ts.map +0 -1
  331. package/dist/agents/agentRegistry.js.map +0 -1
  332. package/src/firebase/tenantManager.ts +0 -443
@@ -0,0 +1,128 @@
1
+ # ChromaDB Agent - Native Builtin Agent for Beddel Runtime
2
+ # Route: /agents/chromadb
3
+ # Method: chromadb.execute
4
+
5
+ agent:
6
+ id: chromadb
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "ChromaDB Agent"
12
+ description: "Vector storage and retrieval using ChromaDB. Supports local and cloud deployments."
13
+ category: "database"
14
+ route: "/agents/chromadb"
15
+ tags:
16
+ - "chromadb"
17
+ - "storage"
18
+ - "vector-db"
19
+ - "rag"
20
+
21
+ schema:
22
+ input:
23
+ type: "object"
24
+ properties:
25
+ action:
26
+ type: "string"
27
+ enum: ["hasData", "store", "search"]
28
+ description: "Action to perform"
29
+ collection_name:
30
+ type: "string"
31
+ description: "Name of the ChromaDB collection"
32
+ min_count:
33
+ type: "number"
34
+ description: "Minimum document count for hasData action (default: 1)"
35
+ ids:
36
+ type: "array"
37
+ items:
38
+ type: "string"
39
+ description: "Document IDs for store action"
40
+ vectors:
41
+ type: "array"
42
+ items:
43
+ type: "array"
44
+ items:
45
+ type: "number"
46
+ description: "Embedding vectors for store action"
47
+ documents:
48
+ type: "array"
49
+ items:
50
+ type: "string"
51
+ description: "Document texts for store action"
52
+ metadatas:
53
+ type: "array"
54
+ items:
55
+ type: "object"
56
+ description: "Metadata objects for store action"
57
+ query_vector:
58
+ type: "array"
59
+ items:
60
+ type: "number"
61
+ description: "Query embedding vector for search action"
62
+ limit:
63
+ type: "number"
64
+ description: "Maximum results for search action (default: 5)"
65
+ required: ["action", "collection_name"]
66
+
67
+ output:
68
+ type: "object"
69
+ properties:
70
+ success:
71
+ type: "boolean"
72
+ has_data:
73
+ type: "boolean"
74
+ description: "Whether collection has sufficient data (hasData action)"
75
+ count:
76
+ type: "number"
77
+ description: "Document count in collection (hasData action)"
78
+ stored_count:
79
+ type: "number"
80
+ description: "Number of documents stored (store action)"
81
+ results:
82
+ type: "array"
83
+ description: "Search results with text, metadata and distance (search action)"
84
+ documents:
85
+ type: "string"
86
+ description: "Concatenated document texts (search action)"
87
+ error:
88
+ type: "string"
89
+ required: ["success"]
90
+
91
+ logic:
92
+ workflow:
93
+ - name: "chromadb-operation"
94
+ type: "chromadb"
95
+ action:
96
+ action: "$input.action"
97
+ collection_name: "$input.collection_name"
98
+ min_count: "$input.min_count"
99
+ ids: "$input.ids"
100
+ vectors: "$input.vectors"
101
+ documents: "$input.documents"
102
+ metadatas: "$input.metadatas"
103
+ query_vector: "$input.query_vector"
104
+ limit: "$input.limit"
105
+ result: "chromaResult"
106
+
107
+ - name: "deliver-response"
108
+ type: "output-generator"
109
+ action:
110
+ type: "generate"
111
+ output:
112
+ success: "$chromaResult.success"
113
+ has_data: "$chromaResult.has_data"
114
+ count: "$chromaResult.count"
115
+ stored_count: "$chromaResult.stored_count"
116
+ results: "$chromaResult.results"
117
+ documents: "$chromaResult.documents"
118
+ error: "$chromaResult.error"
119
+
120
+ output:
121
+ schema:
122
+ success: "$chromaResult.success"
123
+ has_data: "$chromaResult.has_data"
124
+ count: "$chromaResult.count"
125
+ stored_count: "$chromaResult.stored_count"
126
+ results: "$chromaResult.results"
127
+ documents: "$chromaResult.documents"
128
+ error: "$chromaResult.error"
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ChromaDB Agent - Public exports (client-safe)
3
+ */
4
+
5
+ // Schema exports (client-safe)
6
+ export { ChromaDBInputSchema, ChromaDBOutputSchema } from './chromadb.schema';
7
+ export type { ChromaDBInput, ChromaDBOutput } from './chromadb.schema';
8
+
9
+ // Type exports (client-safe)
10
+ export type { ChromaDBHandlerParams, ChromaDBHandlerResult, ChromaDBSearchResult, ChromaDBMetadata } from './chromadb.types';
11
+
12
+ // Metadata (client-safe)
13
+ export const chromadbMetadata = {
14
+ id: 'chromadb',
15
+ name: 'ChromaDB Agent',
16
+ description: 'Vector storage and retrieval using ChromaDB. Supports local and cloud deployments.',
17
+ category: 'database',
18
+ route: '/agents/chromadb',
19
+ tags: ['chromadb', 'storage', 'vector-db', 'rag'],
20
+ } as const;
@@ -0,0 +1,72 @@
1
+ import 'server-only';
2
+
3
+ /**
4
+ * Gemini Vectorize Agent Handler - Server-only execution logic
5
+ * Generates text embeddings using Google's Gemini text-embedding-004 model
6
+ */
7
+
8
+ import { embed, embedMany } from 'ai';
9
+ import { google } from '@ai-sdk/google';
10
+ import type { ExecutionContext } from '../../types/executionContext';
11
+ import type { VectorizeHandlerParams, VectorizeHandlerResult } from './gemini-vectorize.types';
12
+
13
+ const GEMINI_EMBEDDING_MODEL = 'text-embedding-004';
14
+
15
+ /**
16
+ * Execute vectorization using Gemini embeddings
17
+ */
18
+ export async function executeVectorizeHandler(
19
+ params: VectorizeHandlerParams,
20
+ props: Record<string, string>,
21
+ context: ExecutionContext
22
+ ): Promise<VectorizeHandlerResult> {
23
+ const apiKey = props?.gemini_api_key?.trim();
24
+ if (!apiKey) {
25
+ throw new Error('Missing required prop: gemini_api_key');
26
+ }
27
+
28
+ // Set API key in environment for google provider
29
+ process.env.GOOGLE_GENERATIVE_AI_API_KEY = apiKey;
30
+
31
+ const action = params.action || 'embedSingle';
32
+
33
+ try {
34
+ if (action === 'embedSingle') {
35
+ const text = params.text;
36
+ if (!text) {
37
+ throw new Error('Text input is required for embedSingle');
38
+ }
39
+
40
+ context.log(`[Gemini Vectorize] Embedding single text (${text.length} chars)...`);
41
+
42
+ const { embedding } = await embed({
43
+ model: google.textEmbeddingModel(GEMINI_EMBEDDING_MODEL),
44
+ value: text,
45
+ });
46
+
47
+ return { success: true, vector: embedding };
48
+
49
+ } else if (action === 'embedBatch') {
50
+ const texts = params.texts;
51
+ if (!texts || !Array.isArray(texts)) {
52
+ throw new Error('Texts array input is required for embedBatch');
53
+ }
54
+
55
+ context.log(`[Gemini Vectorize] Embedding batch of ${texts.length} texts...`);
56
+
57
+ const { embeddings } = await embedMany({
58
+ model: google.textEmbeddingModel(GEMINI_EMBEDDING_MODEL),
59
+ values: texts,
60
+ });
61
+
62
+ return { success: true, vectors: embeddings };
63
+
64
+ } else {
65
+ throw new Error(`Unknown vectorize action: ${action}`);
66
+ }
67
+ } catch (error: unknown) {
68
+ const message = error instanceof Error ? error.message : String(error);
69
+ context.log(`[Gemini Vectorize] Error: ${message}`);
70
+ return { success: false, error: message };
71
+ }
72
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Gemini Vectorize Agent Schema - Zod validation schemas
3
+ * Safe for both client and server
4
+ */
5
+
6
+ import { z } from 'zod';
7
+
8
+ export const GeminiVectorizeInputSchema = z.object({
9
+ action: z.enum(['embedSingle', 'embedBatch']),
10
+ text: z.string().optional(),
11
+ texts: z.array(z.string()).optional(),
12
+ });
13
+
14
+ export const GeminiVectorizeOutputSchema = z.object({
15
+ success: z.boolean(),
16
+ vector: z.array(z.number()).optional(),
17
+ vectors: z.array(z.array(z.number())).optional(),
18
+ error: z.string().optional(),
19
+ });
20
+
21
+ export type GeminiVectorizeInput = z.infer<typeof GeminiVectorizeInputSchema>;
22
+ export type GeminiVectorizeOutput = z.infer<typeof GeminiVectorizeOutputSchema>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Gemini Vectorize Agent Types - Shared between client and server
3
+ */
4
+
5
+ /**
6
+ * Parameters for vectorization
7
+ */
8
+ export interface VectorizeHandlerParams {
9
+ action: 'embedSingle' | 'embedBatch';
10
+ text?: string;
11
+ texts?: string[];
12
+ }
13
+
14
+ /**
15
+ * Result from vectorization
16
+ */
17
+ export interface VectorizeHandlerResult {
18
+ success: boolean;
19
+ vector?: number[];
20
+ vectors?: number[][];
21
+ error?: string;
22
+ }
23
+
24
+ /**
25
+ * Gemini Vectorize agent metadata
26
+ */
27
+ export interface GeminiVectorizeMetadata {
28
+ id: 'gemini-vectorize';
29
+ name: string;
30
+ description: string;
31
+ category: 'ai-service';
32
+ route: '/agents/gemini-vectorize';
33
+ tags: string[];
34
+ }
@@ -0,0 +1,84 @@
1
+ # Gemini Vectorize Agent - Native Builtin Agent for Beddel Runtime
2
+ # Route: /agents/gemini-vectorize
3
+ # Method: gemini-vectorize.execute
4
+
5
+ agent:
6
+ id: gemini-vectorize
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "Gemini Vectorize Agent"
12
+ description: "Generates text embeddings using Google's Gemini text-embedding-004 model"
13
+ category: "ai-service"
14
+ route: "/agents/gemini-vectorize"
15
+ tags:
16
+ - "embeddings"
17
+ - "gemini"
18
+ - "ai"
19
+ - "vectorization"
20
+
21
+ schema:
22
+ input:
23
+ type: "object"
24
+ properties:
25
+ action:
26
+ type: "string"
27
+ enum: ["embedSingle", "embedBatch"]
28
+ description: "Action to perform: embedSingle for one text, embedBatch for multiple"
29
+ text:
30
+ type: "string"
31
+ description: "Single text to embed (for embedSingle action)"
32
+ texts:
33
+ type: "array"
34
+ items:
35
+ type: "string"
36
+ description: "Array of texts to embed (for embedBatch action)"
37
+
38
+ output:
39
+ type: "object"
40
+ properties:
41
+ success:
42
+ type: "boolean"
43
+ vector:
44
+ type: "array"
45
+ items:
46
+ type: "number"
47
+ description: "Single embedding vector (for embedSingle)"
48
+ vectors:
49
+ type: "array"
50
+ items:
51
+ type: "array"
52
+ items:
53
+ type: "number"
54
+ description: "Array of embedding vectors (for embedBatch)"
55
+ error:
56
+ type: "string"
57
+ required: ["success"]
58
+
59
+ logic:
60
+ workflow:
61
+ - name: "vectorize"
62
+ type: "gemini-vectorize"
63
+ action:
64
+ action: "$input.action"
65
+ text: "$input.text"
66
+ texts: "$input.texts"
67
+ result: "vectorizeResult"
68
+
69
+ - name: "deliver-response"
70
+ type: "output-generator"
71
+ action:
72
+ type: "generate"
73
+ output:
74
+ success: "$vectorizeResult.success"
75
+ vector: "$vectorizeResult.vector"
76
+ vectors: "$vectorizeResult.vectors"
77
+ error: "$vectorizeResult.error"
78
+
79
+ output:
80
+ schema:
81
+ success: "$vectorizeResult.success"
82
+ vector: "$vectorizeResult.vector"
83
+ vectors: "$vectorizeResult.vectors"
84
+ error: "$vectorizeResult.error"
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Gemini Vectorize Agent - Public exports (client-safe)
3
+ */
4
+
5
+ // Schema exports (client-safe)
6
+ export { GeminiVectorizeInputSchema, GeminiVectorizeOutputSchema } from './gemini-vectorize.schema';
7
+ export type { GeminiVectorizeInput, GeminiVectorizeOutput } from './gemini-vectorize.schema';
8
+
9
+ // Type exports (client-safe)
10
+ export type { VectorizeHandlerParams, VectorizeHandlerResult, GeminiVectorizeMetadata } from './gemini-vectorize.types';
11
+
12
+ // Metadata (client-safe)
13
+ export const geminiVectorizeMetadata = {
14
+ id: 'gemini-vectorize',
15
+ name: 'Gemini Vectorize Agent',
16
+ description: "Generates text embeddings using Google's Gemini text-embedding-004 model",
17
+ category: 'ai-service',
18
+ route: '/agents/gemini-vectorize',
19
+ tags: ['embeddings', 'gemini', 'ai', 'vectorization'],
20
+ } as const;
@@ -0,0 +1,122 @@
1
+ import 'server-only';
2
+
3
+ /**
4
+ * GitMCP Agent Handler - Server-only execution logic
5
+ * Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers
6
+ */
7
+
8
+ import type { ExecutionContext } from '../../types/executionContext';
9
+ import type { GitMcpHandlerParams, GitMcpHandlerResult } from './gitmcp.types';
10
+ import { executeMcpToolHandler } from '../mcp-tool/mcp-tool.handler';
11
+
12
+ /**
13
+ * Split text into chunks preserving paragraphs
14
+ */
15
+ function splitIntoChunks(text: string, chunkSize: number): string[] {
16
+ const paragraphs = text.split(/\n\s*\n/);
17
+ const chunks: string[] = [];
18
+ let currentChunk = '';
19
+
20
+ for (const para of paragraphs) {
21
+ if (currentChunk.length + para.length > chunkSize && currentChunk) {
22
+ chunks.push(currentChunk.trim());
23
+ currentChunk = para;
24
+ } else {
25
+ currentChunk += (currentChunk ? '\n\n' : '') + para;
26
+ }
27
+ }
28
+
29
+ if (currentChunk) chunks.push(currentChunk.trim());
30
+ return chunks;
31
+ }
32
+
33
+ /**
34
+ * Execute GitMCP documentation fetching
35
+ */
36
+ export async function executeGitMcpHandler(
37
+ params: GitMcpHandlerParams,
38
+ props: Record<string, string>,
39
+ context: ExecutionContext
40
+ ): Promise<GitMcpHandlerResult> {
41
+ const gitmcpUrl = params.gitmcp_url;
42
+
43
+ if (!gitmcpUrl) {
44
+ throw new Error('Missing required GitMCP input: gitmcp_url');
45
+ }
46
+
47
+ context.log(`[GitMCP] Fetching content from ${gitmcpUrl}...`);
48
+
49
+ try {
50
+ const sseUrl = `${gitmcpUrl}/sse`;
51
+
52
+ // Use MCP tool to list available tools
53
+ const toolListResult = await executeMcpToolHandler(
54
+ {
55
+ server_url: sseUrl,
56
+ tool_name: 'list_tools',
57
+ tool_arguments: {},
58
+ },
59
+ props,
60
+ context
61
+ );
62
+
63
+ let selectedToolName = '';
64
+ let selectedToolArgs: Record<string, unknown> = {};
65
+
66
+ if (toolListResult?.success && toolListResult?.tool_names) {
67
+ const availableTools = toolListResult.tool_names;
68
+ context.log(`[GitMCP] Discovered tools: ${availableTools.join(', ')}`);
69
+
70
+ // Heuristic tool selection
71
+ if (availableTools.includes('fetch_beddel_alpha_documentation')) {
72
+ selectedToolName = 'fetch_beddel_alpha_documentation';
73
+ selectedToolArgs = { path: '/' };
74
+ } else if (availableTools.includes('read_file')) {
75
+ selectedToolName = 'read_file';
76
+ selectedToolArgs = { path: 'README.md' };
77
+ } else if (availableTools.includes('fetch_generic_url_content')) {
78
+ selectedToolName = 'fetch_generic_url_content';
79
+ selectedToolArgs = { url: gitmcpUrl };
80
+ } else {
81
+ selectedToolName = availableTools.find((t) => t !== 'list_tools' && !t.includes('search')) || availableTools[0];
82
+ selectedToolArgs = { path: '/' };
83
+ }
84
+ } else {
85
+ selectedToolName = 'fetch_beddel_alpha_documentation';
86
+ selectedToolArgs = { path: '/' };
87
+ }
88
+
89
+ context.log(`[GitMCP] Selected tool: ${selectedToolName}`);
90
+
91
+ // Fetch content
92
+ const mcpResult = await executeMcpToolHandler(
93
+ {
94
+ server_url: sseUrl,
95
+ tool_name: selectedToolName,
96
+ tool_arguments: selectedToolArgs,
97
+ },
98
+ props,
99
+ context
100
+ );
101
+
102
+ if (!mcpResult?.success) {
103
+ throw new Error(`Failed to fetch docs via MCP: ${mcpResult?.error}`);
104
+ }
105
+
106
+ const textContent = mcpResult.data;
107
+ if (!textContent) {
108
+ throw new Error('No content returned from MCP tool');
109
+ }
110
+
111
+ // Chunking
112
+ const chunks = splitIntoChunks(textContent, 800);
113
+ context.log(`[GitMCP] Content split into ${chunks.length} chunks`);
114
+
115
+ return { success: true, chunks, source: gitmcpUrl };
116
+
117
+ } catch (error: unknown) {
118
+ const message = error instanceof Error ? error.message : String(error);
119
+ context.log(`[GitMCP] Error: ${message}`);
120
+ return { success: false, chunks: [], error: message };
121
+ }
122
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * GitMCP Agent Schema - Zod validation schemas
3
+ * Safe for both client and server
4
+ */
5
+
6
+ import { z } from 'zod';
7
+
8
+ export const GitMcpInputSchema = z.object({
9
+ gitmcp_url: z.string().url(),
10
+ });
11
+
12
+ export const GitMcpOutputSchema = z.object({
13
+ success: z.boolean(),
14
+ chunks: z.array(z.string()).optional(),
15
+ source: z.string().optional(),
16
+ error: z.string().optional(),
17
+ });
18
+
19
+ export type GitMcpInput = z.infer<typeof GitMcpInputSchema>;
20
+ export type GitMcpOutput = z.infer<typeof GitMcpOutputSchema>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * GitMCP Agent Types - Shared between client and server
3
+ */
4
+
5
+ /**
6
+ * Parameters for GitMCP documentation fetching
7
+ */
8
+ export interface GitMcpHandlerParams {
9
+ gitmcp_url: string;
10
+ }
11
+
12
+ /**
13
+ * Result from GitMCP documentation fetching
14
+ */
15
+ export interface GitMcpHandlerResult {
16
+ success: boolean;
17
+ chunks?: string[];
18
+ source?: string;
19
+ error?: string;
20
+ }
21
+
22
+ /**
23
+ * GitMCP agent metadata
24
+ */
25
+ export interface GitMcpMetadata {
26
+ id: 'gitmcp';
27
+ name: string;
28
+ description: string;
29
+ category: 'integration';
30
+ route: '/agents/gitmcp';
31
+ provides_knowledge: boolean;
32
+ tags: string[];
33
+ }
@@ -0,0 +1,71 @@
1
+ # GitMCP Agent - Native Builtin Agent for Beddel Runtime
2
+ # Route: /agents/gitmcp
3
+ # Method: gitmcp.execute
4
+
5
+ agent:
6
+ id: gitmcp
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "GitMCP Documentation Agent"
12
+ description: "Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers"
13
+ category: "integration"
14
+ route: "/agents/gitmcp"
15
+ provides_knowledge: true
16
+ tags:
17
+ - "gitmcp"
18
+ - "documentation"
19
+ - "github"
20
+ - "mcp"
21
+
22
+ schema:
23
+ input:
24
+ type: "object"
25
+ properties:
26
+ gitmcp_url:
27
+ type: "string"
28
+ description: "GitMCP repository URL (e.g., https://gitmcp.io/owner/repo)"
29
+ required: ["gitmcp_url"]
30
+
31
+ output:
32
+ type: "object"
33
+ properties:
34
+ success:
35
+ type: "boolean"
36
+ chunks:
37
+ type: "array"
38
+ items:
39
+ type: "string"
40
+ description: "Content split into chunks for vectorization"
41
+ source:
42
+ type: "string"
43
+ description: "Source URL of the fetched content"
44
+ error:
45
+ type: "string"
46
+ required: ["success"]
47
+
48
+ logic:
49
+ workflow:
50
+ - name: "fetch-content"
51
+ type: "gitmcp"
52
+ action:
53
+ gitmcp_url: "$input.gitmcp_url"
54
+ result: "gitmcpResult"
55
+
56
+ - name: "deliver-response"
57
+ type: "output-generator"
58
+ action:
59
+ type: "generate"
60
+ output:
61
+ success: "$gitmcpResult.success"
62
+ chunks: "$gitmcpResult.chunks"
63
+ source: "$gitmcpResult.source"
64
+ error: "$gitmcpResult.error"
65
+
66
+ output:
67
+ schema:
68
+ success: "$gitmcpResult.success"
69
+ chunks: "$gitmcpResult.chunks"
70
+ source: "$gitmcpResult.source"
71
+ error: "$gitmcpResult.error"
@@ -0,0 +1,21 @@
1
+ /**
2
+ * GitMCP Agent - Public exports (client-safe)
3
+ */
4
+
5
+ // Schema exports (client-safe)
6
+ export { GitMcpInputSchema, GitMcpOutputSchema } from './gitmcp.schema';
7
+ export type { GitMcpInput, GitMcpOutput } from './gitmcp.schema';
8
+
9
+ // Type exports (client-safe)
10
+ export type { GitMcpHandlerParams, GitMcpHandlerResult, GitMcpMetadata } from './gitmcp.types';
11
+
12
+ // Metadata (client-safe)
13
+ export const gitmcpMetadata = {
14
+ id: 'gitmcp',
15
+ name: 'GitMCP Documentation Agent',
16
+ description: 'Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers',
17
+ category: 'integration',
18
+ route: '/agents/gitmcp',
19
+ provides_knowledge: true,
20
+ tags: ['gitmcp', 'documentation', 'github', 'mcp'],
21
+ } as const;