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,33 @@
1
+ /**
2
+ * MCP Tool Agent Types - Shared between client and server
3
+ */
4
+
5
+ /**
6
+ * Parameters for MCP tool invocation
7
+ */
8
+ export interface McpToolHandlerParams {
9
+ server_url: string;
10
+ tool_name: string;
11
+ tool_arguments?: Record<string, unknown>;
12
+ }
13
+
14
+ /**
15
+ * Result from MCP tool invocation
16
+ */
17
+ export interface McpToolHandlerResult {
18
+ success: boolean;
19
+ data?: string;
20
+ tool_names?: string[];
21
+ error?: string;
22
+ }
23
+
24
+ /**
25
+ * MCP Tool agent metadata
26
+ */
27
+ export interface McpToolMetadata {
28
+ id: 'mcp-tool';
29
+ name: string;
30
+ description: string;
31
+ category: 'integration';
32
+ route: '/agents/mcp-tool';
33
+ }
@@ -0,0 +1,71 @@
1
+ # MCP Tool Agent - Native Builtin Agent for Beddel Runtime
2
+ # Route: /agents/mcp-tool
3
+ # Method: mcp-tool.execute
4
+
5
+ agent:
6
+ id: mcp-tool
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "MCP Tool Agent"
12
+ description: "Generic agent for calling MCP server tools via SSE transport"
13
+ category: "integration"
14
+ route: "/agents/mcp-tool"
15
+
16
+ schema:
17
+ input:
18
+ type: "object"
19
+ properties:
20
+ server_url:
21
+ type: "string"
22
+ description: "MCP server SSE endpoint URL"
23
+ tool_name:
24
+ type: "string"
25
+ description: "Name of the MCP tool to invoke (use 'list_tools' to discover available tools)"
26
+ tool_arguments:
27
+ type: "object"
28
+ description: "Arguments to pass to the tool"
29
+ required: ["server_url", "tool_name"]
30
+
31
+ output:
32
+ type: "object"
33
+ properties:
34
+ success:
35
+ type: "boolean"
36
+ data:
37
+ type: "string"
38
+ tool_names:
39
+ type: "array"
40
+ items:
41
+ type: "string"
42
+ error:
43
+ type: "string"
44
+ required: ["success"]
45
+
46
+ logic:
47
+ workflow:
48
+ - name: "call-mcp-tool"
49
+ type: "mcp-tool"
50
+ action:
51
+ server_url: "$input.server_url"
52
+ tool_name: "$input.tool_name"
53
+ tool_arguments: "$input.tool_arguments"
54
+ result: "mcpResult"
55
+
56
+ - name: "deliver-response"
57
+ type: "output-generator"
58
+ action:
59
+ type: "generate"
60
+ output:
61
+ success: "$mcpResult.success"
62
+ data: "$mcpResult.data"
63
+ tool_names: "$mcpResult.toolNames"
64
+ error: "$mcpResult.error"
65
+
66
+ output:
67
+ schema:
68
+ success: "$mcpResult.success"
69
+ data: "$mcpResult.data"
70
+ tool_names: "$mcpResult.toolNames"
71
+ error: "$mcpResult.error"
@@ -0,0 +1,20 @@
1
+ /**
2
+ * RAG Agent - Public exports (client-safe)
3
+ */
4
+
5
+ // Schema exports (client-safe)
6
+ export { RagInputSchema, RagOutputSchema } from './rag.schema';
7
+ export type { RagInput, RagOutput } from './rag.schema';
8
+
9
+ // Type exports (client-safe)
10
+ export type { RagHandlerParams, RagHandlerResult, ConversationMessage, RagMetadata } from './rag.types';
11
+
12
+ // Metadata (client-safe)
13
+ export const ragMetadata = {
14
+ id: 'rag',
15
+ name: 'RAG Intelligence Agent',
16
+ description: 'Generates natural language answers based on provided context using Gemini',
17
+ category: 'intelligence',
18
+ route: '/agents/rag',
19
+ tags: ['rag', 'gemini', 'qa', 'generation'],
20
+ } as const;
@@ -0,0 +1,119 @@
1
+ import 'server-only';
2
+
3
+ /**
4
+ * RAG Agent Handler - Server-only execution logic
5
+ * Generates natural language answers based on provided context using Gemini
6
+ * Supports both RAG mode (with documents) and simple chat mode (conversation only)
7
+ */
8
+
9
+ import { generateText } from 'ai';
10
+ import { createGoogleGenerativeAI } from '@ai-sdk/google';
11
+ import type { ExecutionContext } from '../../types/executionContext';
12
+ import type { RagHandlerParams, RagHandlerResult, ConversationMessage } from './rag.types';
13
+
14
+ const GEMINI_RAG_MODEL = 'models/gemini-2.0-flash-exp';
15
+
16
+ /**
17
+ * Build prompt for simple chat mode (no documents)
18
+ */
19
+ function buildSimpleChatPrompt(query: string, history?: ConversationMessage[]): string {
20
+ const conversationContext = history?.length
21
+ ? `CONVERSATION HISTORY:\n${history.map((m) => `${m.role.toUpperCase()}: ${m.content}`).join('\n')}\n\n`
22
+ : '';
23
+
24
+ return `You are a helpful, friendly assistant.
25
+
26
+ ${conversationContext}USER MESSAGE:
27
+ ${query}
28
+
29
+ INSTRUCTIONS:
30
+ 1. Respond naturally to the user's message.
31
+ 2. Consider the conversation history for context continuity if available.
32
+ 3. Be concise but helpful.
33
+
34
+ RESPONSE:`;
35
+ }
36
+
37
+ /**
38
+ * Build prompt for RAG mode (with documents)
39
+ */
40
+ function buildRagPrompt(query: string, ragContext: string, history?: ConversationMessage[]): string {
41
+ const conversationContext = history?.length
42
+ ? `CONVERSATION HISTORY:\n${history.map((m) => `${m.role.toUpperCase()}: ${m.content}`).join('\n')}\n\n`
43
+ : '';
44
+
45
+ return `You are a helpful and expert assistant for the Beddel Protocol.
46
+
47
+ ${conversationContext}CONTEXT INFORMATION:
48
+ ${ragContext}
49
+
50
+ USER QUESTION:
51
+ ${query}
52
+
53
+ INSTRUCTIONS:
54
+ 1. Answer the user's question based on the CONTEXT INFORMATION provided above.
55
+ 2. Consider the CONVERSATION HISTORY for context continuity if available.
56
+ 3. If the context does not contain the answer, politely state that you don't have enough information in the documentation to answer.
57
+ 4. Be concise but comprehensive.
58
+
59
+ ANSWER:`;
60
+ }
61
+
62
+ /**
63
+ * Execute RAG answer generation
64
+ */
65
+ export async function executeRagHandler(
66
+ params: RagHandlerParams,
67
+ props: Record<string, string>,
68
+ context: ExecutionContext
69
+ ): Promise<RagHandlerResult> {
70
+ const apiKey = props?.gemini_api_key?.trim();
71
+ if (!apiKey) {
72
+ throw new Error('Missing required prop: gemini_api_key');
73
+ }
74
+
75
+ const { query, history, mode = 'rag' } = params;
76
+ const ragContext = params.context || params.documents;
77
+
78
+ if (!query) {
79
+ throw new Error('Missing required RAG input: query');
80
+ }
81
+
82
+ // Simple mode doesn't require documents
83
+ if (mode === 'rag' && !ragContext) {
84
+ throw new Error('Missing required RAG input: context or documents');
85
+ }
86
+
87
+ const google = createGoogleGenerativeAI({ apiKey });
88
+ const model = google(GEMINI_RAG_MODEL);
89
+
90
+ const prompt = mode === 'simple'
91
+ ? buildSimpleChatPrompt(query, history)
92
+ : buildRagPrompt(query, ragContext!, history);
93
+
94
+ try {
95
+ context.log(`[RAG:${mode}] Generating answer for: "${query.substring(0, 50)}..."`);
96
+
97
+ const { text } = await generateText({
98
+ model,
99
+ prompt,
100
+ temperature: mode === 'simple' ? 0.7 : 0.3,
101
+ });
102
+
103
+ return {
104
+ response: text,
105
+ answer: text,
106
+ timestamp: new Date().toISOString(),
107
+ };
108
+
109
+ } catch (error: unknown) {
110
+ const message = error instanceof Error ? error.message : String(error);
111
+ context.log(`[RAG] Error: ${message}`);
112
+ return {
113
+ response: '',
114
+ answer: '',
115
+ timestamp: new Date().toISOString(),
116
+ error: message,
117
+ };
118
+ }
119
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * RAG Agent Schema - Zod validation schemas
3
+ * Safe for both client and server
4
+ */
5
+
6
+ import { z } from 'zod';
7
+
8
+ export const RagInputSchema = z.object({
9
+ query: z.string().min(1),
10
+ context: z.string().optional(),
11
+ documents: z.string().optional(),
12
+ history: z.array(z.object({
13
+ role: z.enum(['user', 'assistant', 'system']),
14
+ content: z.string(),
15
+ })).optional(),
16
+ });
17
+
18
+ export const RagOutputSchema = z.object({
19
+ response: z.string(),
20
+ answer: z.string().optional(),
21
+ timestamp: z.string().optional(),
22
+ error: z.string().optional(),
23
+ });
24
+
25
+ export type RagInput = z.infer<typeof RagInputSchema>;
26
+ export type RagOutput = z.infer<typeof RagOutputSchema>;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * RAG Agent Types - Shared between client and server
3
+ */
4
+
5
+ /**
6
+ * Conversation message
7
+ */
8
+ export interface ConversationMessage {
9
+ role: 'user' | 'assistant' | 'system';
10
+ content: string;
11
+ }
12
+
13
+ /**
14
+ * RAG execution mode
15
+ * - 'rag': Uses provided documents/context for answer generation
16
+ * - 'simple': Direct LLM chat without document context
17
+ */
18
+ export type RagMode = 'rag' | 'simple';
19
+
20
+ /**
21
+ * Parameters for RAG answer generation
22
+ */
23
+ export interface RagHandlerParams {
24
+ query: string;
25
+ context?: string;
26
+ documents?: string;
27
+ history?: ConversationMessage[];
28
+ mode?: RagMode;
29
+ }
30
+
31
+ /**
32
+ * Result from RAG answer generation
33
+ */
34
+ export interface RagHandlerResult {
35
+ response: string;
36
+ answer: string;
37
+ timestamp: string;
38
+ error?: string;
39
+ }
40
+
41
+ /**
42
+ * RAG agent metadata
43
+ */
44
+ export interface RagMetadata {
45
+ id: 'rag';
46
+ name: string;
47
+ description: string;
48
+ category: 'intelligence';
49
+ route: '/agents/rag';
50
+ tags: string[];
51
+ }
@@ -0,0 +1,89 @@
1
+ # RAG Agent - Native Builtin Agent for Beddel Runtime
2
+ # Route: /agents/rag
3
+ # Method: rag.execute
4
+
5
+ agent:
6
+ id: rag
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "RAG Intelligence Agent"
12
+ description: "Generates natural language answers based on provided context using Gemini"
13
+ category: "intelligence"
14
+ route: "/agents/rag"
15
+ tags:
16
+ - "rag"
17
+ - "gemini"
18
+ - "qa"
19
+ - "generation"
20
+
21
+ schema:
22
+ input:
23
+ type: "object"
24
+ properties:
25
+ query:
26
+ type: "string"
27
+ description: "User question to answer"
28
+ context:
29
+ type: "string"
30
+ description: "Retrieved documentation or context for answering"
31
+ documents:
32
+ type: "string"
33
+ description: "Alternative to context - retrieved documents"
34
+ history:
35
+ type: "array"
36
+ items:
37
+ type: "object"
38
+ properties:
39
+ role:
40
+ type: "string"
41
+ enum: ["user", "assistant", "system"]
42
+ content:
43
+ type: "string"
44
+ description: "Conversation history for context continuity"
45
+ required: ["query"]
46
+
47
+ output:
48
+ type: "object"
49
+ properties:
50
+ response:
51
+ type: "string"
52
+ description: "Generated answer"
53
+ answer:
54
+ type: "string"
55
+ description: "Alias for response"
56
+ timestamp:
57
+ type: "string"
58
+ description: "ISO timestamp of generation"
59
+ error:
60
+ type: "string"
61
+ required: ["response"]
62
+
63
+ logic:
64
+ workflow:
65
+ - name: "generate-answer"
66
+ type: "rag"
67
+ action:
68
+ query: "$input.query"
69
+ context: "$input.context"
70
+ documents: "$input.documents"
71
+ history: "$input.history"
72
+ result: "ragResult"
73
+
74
+ - name: "deliver-response"
75
+ type: "output-generator"
76
+ action:
77
+ type: "generate"
78
+ output:
79
+ response: "$ragResult.response"
80
+ answer: "$ragResult.answer"
81
+ timestamp: "$ragResult.timestamp"
82
+ error: "$ragResult.error"
83
+
84
+ output:
85
+ schema:
86
+ response: "$ragResult.response"
87
+ answer: "$ragResult.answer"
88
+ timestamp: "$ragResult.timestamp"
89
+ error: "$ragResult.error"
@@ -5,8 +5,8 @@
5
5
 
6
6
  import { existsSync, readFileSync, readdirSync, statSync } from "fs";
7
7
  import { join } from "path";
8
- import { declarativeInterpreter } from "../runtime/declarativeAgentRuntime";
9
- import { ExecutionContext } from "../types/executionContext";
8
+ import { declarativeInterpreter } from "../../runtime/declarativeAgentRuntime";
9
+ import { ExecutionContext } from "../../types/executionContext";
10
10
 
11
11
  export interface AgentRegistration {
12
12
  id: string;
@@ -210,6 +210,18 @@ export class AgentRegistry {
210
210
  this.registerTranslatorAgent();
211
211
  // Register Image Generator Agent
212
212
  this.registerImageAgent();
213
+ // Register MCP Tool Agent
214
+ this.registerMcpToolAgent();
215
+ // Register Gemini Vectorize Agent
216
+ this.registerGeminiVectorizeAgent();
217
+ // Register ChromaDB Agent
218
+ this.registerChromaDBAgent();
219
+ // Register GitMCP Agent
220
+ this.registerGitMcpAgent();
221
+ // Register RAG Agent
222
+ this.registerRagAgent();
223
+ // Register Chat Agent (Orchestrator)
224
+ this.registerChatAgent();
213
225
  } catch (error) {
214
226
  console.error("Failed to register built-in agents:", error);
215
227
  }
@@ -221,7 +233,7 @@ export class AgentRegistry {
221
233
  private registerJokerAgent(): void {
222
234
  try {
223
235
  // Get the Joker Agent YAML content
224
- const jokerYamlPath = this.resolveAgentPath("joker-agent.yaml");
236
+ const jokerYamlPath = this.resolveAgentPath("joker/joker.yaml");
225
237
  const yamlContent = readFileSync(jokerYamlPath, "utf-8");
226
238
 
227
239
  // Parse YAML to extract metadata
@@ -247,7 +259,7 @@ export class AgentRegistry {
247
259
  */
248
260
  private registerTranslatorAgent(): void {
249
261
  try {
250
- const translatorYamlPath = this.resolveAgentPath("translator-agent.yaml");
262
+ const translatorYamlPath = this.resolveAgentPath("translator/translator.yaml");
251
263
  const yamlContent = readFileSync(translatorYamlPath, "utf-8");
252
264
  const agent = this.parseAgentYaml(yamlContent);
253
265
 
@@ -271,7 +283,7 @@ export class AgentRegistry {
271
283
  */
272
284
  private registerImageAgent(): void {
273
285
  try {
274
- const imageYamlPath = this.resolveAgentPath("image-agent.yaml");
286
+ const imageYamlPath = this.resolveAgentPath("image/image.yaml");
275
287
  const yamlContent = readFileSync(imageYamlPath, "utf-8");
276
288
  const agent = this.parseAgentYaml(yamlContent);
277
289
 
@@ -290,6 +302,150 @@ export class AgentRegistry {
290
302
  }
291
303
  }
292
304
 
305
+ /**
306
+ * Register MCP Tool Agent
307
+ */
308
+ private registerMcpToolAgent(): void {
309
+ try {
310
+ const yamlPath = this.resolveAgentPath("mcp-tool/mcp-tool.yaml");
311
+ const yamlContent = readFileSync(yamlPath, "utf-8");
312
+ const agent = this.parseAgentYaml(yamlContent);
313
+
314
+ this.registerAgent({
315
+ id: agent.agent.id,
316
+ name: "mcp-tool.execute",
317
+ description: agent.metadata.description,
318
+ protocol: agent.agent.protocol,
319
+ route: agent.metadata.route || "/agents/mcp-tool",
320
+ requiredProps: [],
321
+ yamlContent,
322
+ });
323
+ } catch (error) {
324
+ console.error("Failed to register MCP Tool Agent:", error);
325
+ throw error;
326
+ }
327
+ }
328
+
329
+ /**
330
+ * Register Gemini Vectorize Agent
331
+ */
332
+ private registerGeminiVectorizeAgent(): void {
333
+ try {
334
+ const yamlPath = this.resolveAgentPath("gemini-vectorize/gemini-vectorize.yaml");
335
+ const yamlContent = readFileSync(yamlPath, "utf-8");
336
+ const agent = this.parseAgentYaml(yamlContent);
337
+
338
+ this.registerAgent({
339
+ id: agent.agent.id,
340
+ name: "gemini-vectorize.execute",
341
+ description: agent.metadata.description,
342
+ protocol: agent.agent.protocol,
343
+ route: agent.metadata.route || "/agents/gemini-vectorize",
344
+ requiredProps: ["gemini_api_key"],
345
+ yamlContent,
346
+ });
347
+ } catch (error) {
348
+ console.error("Failed to register Gemini Vectorize Agent:", error);
349
+ throw error;
350
+ }
351
+ }
352
+
353
+ /**
354
+ * Register ChromaDB Agent
355
+ */
356
+ private registerChromaDBAgent(): void {
357
+ try {
358
+ const yamlPath = this.resolveAgentPath("chromadb/chromadb.yaml");
359
+ const yamlContent = readFileSync(yamlPath, "utf-8");
360
+ const agent = this.parseAgentYaml(yamlContent);
361
+
362
+ this.registerAgent({
363
+ id: agent.agent.id,
364
+ name: "chromadb.execute",
365
+ description: agent.metadata.description,
366
+ protocol: agent.agent.protocol,
367
+ route: agent.metadata.route || "/agents/chromadb",
368
+ requiredProps: [],
369
+ yamlContent,
370
+ });
371
+ } catch (error) {
372
+ console.error("Failed to register ChromaDB Agent:", error);
373
+ throw error;
374
+ }
375
+ }
376
+
377
+ /**
378
+ * Register GitMCP Agent
379
+ */
380
+ private registerGitMcpAgent(): void {
381
+ try {
382
+ const yamlPath = this.resolveAgentPath("gitmcp/gitmcp.yaml");
383
+ const yamlContent = readFileSync(yamlPath, "utf-8");
384
+ const agent = this.parseAgentYaml(yamlContent);
385
+
386
+ this.registerAgent({
387
+ id: agent.agent.id,
388
+ name: "gitmcp.execute",
389
+ description: agent.metadata.description,
390
+ protocol: agent.agent.protocol,
391
+ route: agent.metadata.route || "/agents/gitmcp",
392
+ requiredProps: [],
393
+ yamlContent,
394
+ });
395
+ } catch (error) {
396
+ console.error("Failed to register GitMCP Agent:", error);
397
+ throw error;
398
+ }
399
+ }
400
+
401
+ /**
402
+ * Register RAG Agent
403
+ */
404
+ private registerRagAgent(): void {
405
+ try {
406
+ const yamlPath = this.resolveAgentPath("rag/rag.yaml");
407
+ const yamlContent = readFileSync(yamlPath, "utf-8");
408
+ const agent = this.parseAgentYaml(yamlContent);
409
+
410
+ this.registerAgent({
411
+ id: agent.agent.id,
412
+ name: "rag.execute",
413
+ description: agent.metadata.description,
414
+ protocol: agent.agent.protocol,
415
+ route: agent.metadata.route || "/agents/rag",
416
+ requiredProps: ["gemini_api_key"],
417
+ yamlContent,
418
+ });
419
+ } catch (error) {
420
+ console.error("Failed to register RAG Agent:", error);
421
+ throw error;
422
+ }
423
+ }
424
+
425
+ /**
426
+ * Register Chat Agent (Orchestrator)
427
+ */
428
+ private registerChatAgent(): void {
429
+ try {
430
+ const yamlPath = this.resolveAgentPath("chat/chat.yaml");
431
+ const yamlContent = readFileSync(yamlPath, "utf-8");
432
+ const agent = this.parseAgentYaml(yamlContent);
433
+
434
+ this.registerAgent({
435
+ id: agent.agent.id,
436
+ name: "chat.execute",
437
+ description: agent.metadata.description,
438
+ protocol: agent.agent.protocol,
439
+ route: agent.metadata.route || "/agents/chat",
440
+ requiredProps: ["gemini_api_key"],
441
+ yamlContent,
442
+ });
443
+ } catch (error) {
444
+ console.error("Failed to register Chat Agent:", error);
445
+ throw error;
446
+ }
447
+ }
448
+
293
449
  /**
294
450
  * Parse agent YAML content
295
451
  */
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Agent Registry - Re-exports
3
+ */
4
+
5
+ export { AgentRegistry, agentRegistry } from './agentRegistry';
6
+ export type { AgentRegistration } from './agentRegistry';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Translator Agent - Public exports (client-safe)
3
+ */
4
+
5
+ // Schema exports (client-safe)
6
+ export { TranslatorInputSchema, TranslatorOutputSchema } from './translator.schema';
7
+ export type { TranslatorInput, TranslatorOutput } from './translator.schema';
8
+
9
+ // Type exports (client-safe)
10
+ export type { TranslationHandlerParams, TranslationHandlerResult, TranslatorMetadata } from './translator.types';
11
+
12
+ // Metadata (client-safe)
13
+ export const translatorMetadata = {
14
+ id: 'translator',
15
+ name: 'Translator Agent',
16
+ description: 'Translates text between languages using Gemini Flash via Genkit',
17
+ category: 'translation',
18
+ route: '/agents/translator',
19
+ } as const;