beddel 0.2.2 → 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 (330) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +117 -14
  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.js +3 -3
  197. package/dist/server/api/graphql.js.map +1 -1
  198. package/dist/server/index.d.ts +2 -2
  199. package/dist/server/index.d.ts.map +1 -1
  200. package/dist/server/index.js +2 -2
  201. package/dist/server/index.js.map +1 -1
  202. package/dist/shared/index.d.ts +7 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +23 -0
  205. package/dist/shared/index.js.map +1 -0
  206. package/dist/shared/types/agent.types.d.ts +50 -0
  207. package/dist/shared/types/agent.types.d.ts.map +1 -0
  208. package/dist/shared/types/agent.types.js +7 -0
  209. package/dist/shared/types/agent.types.js.map +1 -0
  210. package/dist/shared/types/execution.types.d.ts +42 -0
  211. package/dist/shared/types/execution.types.d.ts.map +1 -0
  212. package/dist/shared/types/execution.types.js +7 -0
  213. package/dist/shared/types/execution.types.js.map +1 -0
  214. package/dist/shared/types/index.d.ts +7 -0
  215. package/dist/shared/types/index.d.ts.map +1 -0
  216. package/dist/shared/types/index.js +23 -0
  217. package/dist/shared/types/index.js.map +1 -0
  218. package/dist/shared/types/schema.types.d.ts +52 -0
  219. package/dist/shared/types/schema.types.d.ts.map +1 -0
  220. package/dist/shared/types/schema.types.js +7 -0
  221. package/dist/shared/types/schema.types.js.map +1 -0
  222. package/dist/shared/utils/index.d.ts +5 -0
  223. package/dist/shared/utils/index.d.ts.map +1 -0
  224. package/dist/shared/utils/index.js +21 -0
  225. package/dist/shared/utils/index.js.map +1 -0
  226. package/dist/shared/utils/validation.d.ts +42 -0
  227. package/dist/shared/utils/validation.d.ts.map +1 -0
  228. package/dist/shared/utils/validation.js +93 -0
  229. package/dist/shared/utils/validation.js.map +1 -0
  230. package/dist/tenant/TenantManager.d.ts +152 -0
  231. package/dist/tenant/TenantManager.d.ts.map +1 -0
  232. package/dist/tenant/TenantManager.js +392 -0
  233. package/dist/tenant/TenantManager.js.map +1 -0
  234. package/dist/tenant/index.d.ts +47 -0
  235. package/dist/tenant/index.d.ts.map +1 -0
  236. package/dist/tenant/index.js +74 -0
  237. package/dist/tenant/index.js.map +1 -0
  238. package/dist/tenant/interfaces.d.ts +170 -0
  239. package/dist/tenant/interfaces.d.ts.map +1 -0
  240. package/dist/tenant/interfaces.js +67 -0
  241. package/dist/tenant/interfaces.js.map +1 -0
  242. package/dist/tenant/providerFactory.d.ts +43 -0
  243. package/dist/tenant/providerFactory.d.ts.map +1 -0
  244. package/dist/tenant/providerFactory.js +70 -0
  245. package/dist/tenant/providerFactory.js.map +1 -0
  246. package/dist/tenant/providerRegistry.d.ts +47 -0
  247. package/dist/tenant/providerRegistry.d.ts.map +1 -0
  248. package/dist/tenant/providerRegistry.js +79 -0
  249. package/dist/tenant/providerRegistry.js.map +1 -0
  250. package/dist/tenant/providers/FirebaseTenantProvider.d.ts +41 -0
  251. package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +1 -0
  252. package/dist/tenant/providers/FirebaseTenantProvider.js +290 -0
  253. package/dist/tenant/providers/FirebaseTenantProvider.js.map +1 -0
  254. package/dist/tenant/providers/InMemoryTenantProvider.d.ts +18 -0
  255. package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +1 -0
  256. package/dist/tenant/providers/InMemoryTenantProvider.js +137 -0
  257. package/dist/tenant/providers/InMemoryTenantProvider.js.map +1 -0
  258. package/package.json +46 -12
  259. package/src/agents/chat/chat.handler.ts +209 -0
  260. package/src/agents/chat/chat.schema.ts +33 -0
  261. package/src/agents/chat/chat.types.ts +46 -0
  262. package/src/agents/chat/chat.yaml +150 -0
  263. package/src/agents/chat/index.ts +21 -0
  264. package/src/agents/chromadb/chromadb.handler.ts +130 -0
  265. package/src/agents/chromadb/chromadb.schema.ts +35 -0
  266. package/src/agents/chromadb/chromadb.types.ts +52 -0
  267. package/src/agents/chromadb/chromadb.yaml +128 -0
  268. package/src/agents/chromadb/index.ts +20 -0
  269. package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +72 -0
  270. package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +22 -0
  271. package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +34 -0
  272. package/src/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
  273. package/src/agents/gemini-vectorize/index.ts +20 -0
  274. package/src/agents/gitmcp/gitmcp.handler.ts +122 -0
  275. package/src/agents/gitmcp/gitmcp.schema.ts +20 -0
  276. package/src/agents/gitmcp/gitmcp.types.ts +33 -0
  277. package/src/agents/gitmcp/gitmcp.yaml +71 -0
  278. package/src/agents/gitmcp/index.ts +21 -0
  279. package/src/agents/image/image.handler.ts +82 -0
  280. package/src/agents/image/image.schema.ts +28 -0
  281. package/src/agents/image/image.types.ts +45 -0
  282. package/src/agents/image/image.yaml +86 -0
  283. package/src/agents/image/index.ts +19 -0
  284. package/src/agents/index.ts +59 -0
  285. package/src/agents/joker/index.ts +19 -0
  286. package/src/agents/joker/joker.handler.ts +60 -0
  287. package/src/agents/joker/joker.schema.ts +15 -0
  288. package/src/agents/joker/joker.types.ts +37 -0
  289. package/src/agents/joker/joker.yaml +47 -0
  290. package/src/agents/mcp-tool/index.ts +19 -0
  291. package/src/agents/mcp-tool/mcp-tool.handler.ts +112 -0
  292. package/src/agents/mcp-tool/mcp-tool.schema.ts +22 -0
  293. package/src/agents/mcp-tool/mcp-tool.types.ts +33 -0
  294. package/src/agents/mcp-tool/mcp-tool.yaml +71 -0
  295. package/src/agents/rag/index.ts +20 -0
  296. package/src/agents/rag/rag.handler.ts +119 -0
  297. package/src/agents/rag/rag.schema.ts +26 -0
  298. package/src/agents/rag/rag.types.ts +51 -0
  299. package/src/agents/rag/rag.yaml +89 -0
  300. package/src/agents/{agentRegistry.ts → registry/agentRegistry.ts} +161 -5
  301. package/src/agents/registry/index.ts +6 -0
  302. package/src/agents/translator/index.ts +19 -0
  303. package/src/agents/translator/translator.handler.ts +99 -0
  304. package/src/agents/translator/translator.schema.ts +30 -0
  305. package/src/agents/translator/translator.types.ts +42 -0
  306. package/src/agents/translator/translator.yaml +80 -0
  307. package/src/client/index.ts +53 -0
  308. package/src/client/types.ts +38 -0
  309. package/src/index.ts +48 -5
  310. package/src/runtime/declarativeAgentRuntime.ts +367 -489
  311. package/src/runtime/index.ts +31 -0
  312. package/src/runtime/workflowExecutor.ts +94 -0
  313. package/src/server/api/graphql.ts +1 -1
  314. package/src/server/index.ts +2 -2
  315. package/src/shared/index.ts +7 -0
  316. package/src/shared/types/agent.types.ts +80 -0
  317. package/src/shared/types/execution.types.ts +45 -0
  318. package/src/shared/types/index.ts +7 -0
  319. package/src/shared/types/schema.types.ts +55 -0
  320. package/src/shared/utils/index.ts +5 -0
  321. package/src/shared/utils/validation.ts +100 -0
  322. package/src/tenant/TenantManager.ts +488 -0
  323. package/src/tenant/index.ts +101 -0
  324. package/src/tenant/interfaces.ts +231 -0
  325. package/src/tenant/providerFactory.ts +75 -0
  326. package/src/tenant/providerRegistry.ts +86 -0
  327. package/src/tenant/providers/InMemoryTenantProvider.ts +168 -0
  328. package/dist/agents/agentRegistry.d.ts.map +0 -1
  329. package/dist/agents/agentRegistry.js.map +0 -1
  330. package/src/firebase/tenantManager.ts +0 -443
@@ -0,0 +1,99 @@
1
+ import 'server-only';
2
+
3
+ /**
4
+ * Translator Agent Handler - Server-only execution logic
5
+ * Translates text between languages using Gemini Flash
6
+ */
7
+
8
+ import { generateText } from 'ai';
9
+ import { createGoogleGenerativeAI } from '@ai-sdk/google';
10
+ import type { ExecutionContext } from '../../types/executionContext';
11
+ import type { TranslationHandlerParams, TranslationHandlerResult } from './translator.types';
12
+
13
+ const GEMINI_MODEL = 'models/gemini-2.5-flash';
14
+ const SUPPORTED_LANGUAGES = ['pt', 'en', 'es', 'fr'];
15
+
16
+ /**
17
+ * Execute translation using Gemini Flash
18
+ */
19
+ export async function executeTranslationHandler(
20
+ params: TranslationHandlerParams,
21
+ props: Record<string, string>,
22
+ context: ExecutionContext
23
+ ): Promise<TranslationHandlerResult> {
24
+ const apiKey = props?.gemini_api_key?.trim();
25
+ if (!apiKey) {
26
+ throw new Error('Missing required prop: gemini_api_key');
27
+ }
28
+
29
+ const text = params.text?.trim();
30
+ const sourceLanguage = params.source_language?.trim().toLowerCase();
31
+ const targetLanguage = params.target_language?.trim().toLowerCase();
32
+
33
+ if (!text || !sourceLanguage || !targetLanguage) {
34
+ throw new Error('Missing required translation parameters: text, source_language, target_language');
35
+ }
36
+
37
+ // Same language bypass
38
+ if (sourceLanguage === targetLanguage) {
39
+ return {
40
+ translated_text: text,
41
+ metadata: {
42
+ model_used: GEMINI_MODEL,
43
+ processing_time: 0,
44
+ confidence: 1,
45
+ supported_languages: SUPPORTED_LANGUAGES,
46
+ requested_languages: {
47
+ source: sourceLanguage,
48
+ target: targetLanguage,
49
+ },
50
+ prompt_used: 'Bypass: source and target languages are the same',
51
+ },
52
+ };
53
+ }
54
+
55
+ const template = params.promptTemplate?.trim() ||
56
+ `Translate the text below from {{source_language}} to {{target_language}}.
57
+ Reply only with the translated text without additional comments.
58
+
59
+ Text:
60
+ {{text}}`;
61
+
62
+ const prompt = template
63
+ .replace(/{{text}}/g, text)
64
+ .replace(/{{source_language}}/g, sourceLanguage)
65
+ .replace(/{{target_language}}/g, targetLanguage)
66
+ .trim();
67
+
68
+ const google = createGoogleGenerativeAI({ apiKey });
69
+ const model = google(GEMINI_MODEL);
70
+ const startTime = Date.now();
71
+
72
+ context.log(`[Translator] Translating from ${sourceLanguage} to ${targetLanguage}`);
73
+
74
+ const { text: translatedText } = await generateText({
75
+ model,
76
+ prompt,
77
+ temperature: 0.2,
78
+ });
79
+
80
+ const finalText = translatedText?.trim() || '';
81
+ if (!finalText) {
82
+ throw new Error('Gemini Flash translation returned empty response');
83
+ }
84
+
85
+ return {
86
+ translated_text: finalText,
87
+ metadata: {
88
+ model_used: GEMINI_MODEL,
89
+ processing_time: Date.now() - startTime,
90
+ confidence: 0.85,
91
+ supported_languages: SUPPORTED_LANGUAGES,
92
+ requested_languages: {
93
+ source: sourceLanguage,
94
+ target: targetLanguage,
95
+ },
96
+ prompt_used: prompt,
97
+ },
98
+ };
99
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Translator Agent Schema - Zod validation schemas
3
+ * Safe for both client and server
4
+ */
5
+
6
+ import { z } from 'zod';
7
+
8
+ export const TranslatorInputSchema = z.object({
9
+ text: z.string().min(1).max(10000),
10
+ source_language: z.string().regex(/^[a-z]{2}$/),
11
+ target_language: z.string().regex(/^[a-z]{2}$/),
12
+ });
13
+
14
+ export const TranslatorOutputSchema = z.object({
15
+ translated_text: z.string(),
16
+ metadata: z.object({
17
+ model_used: z.string(),
18
+ processing_time: z.number(),
19
+ confidence: z.number(),
20
+ supported_languages: z.array(z.string()),
21
+ requested_languages: z.object({
22
+ source: z.string(),
23
+ target: z.string(),
24
+ }),
25
+ prompt_used: z.string(),
26
+ }),
27
+ });
28
+
29
+ export type TranslatorInput = z.infer<typeof TranslatorInputSchema>;
30
+ export type TranslatorOutput = z.infer<typeof TranslatorOutputSchema>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Translator Agent Types - Shared between client and server
3
+ */
4
+
5
+ /**
6
+ * Parameters for translation
7
+ */
8
+ export interface TranslationHandlerParams {
9
+ text: string;
10
+ source_language: string;
11
+ target_language: string;
12
+ promptTemplate?: string;
13
+ }
14
+
15
+ /**
16
+ * Result from translation
17
+ */
18
+ export interface TranslationHandlerResult {
19
+ translated_text: string;
20
+ metadata: {
21
+ model_used: string;
22
+ processing_time: number;
23
+ confidence: number;
24
+ supported_languages: string[];
25
+ requested_languages: {
26
+ source: string;
27
+ target: string;
28
+ };
29
+ prompt_used: string;
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Translator agent metadata
35
+ */
36
+ export interface TranslatorMetadata {
37
+ id: 'translator';
38
+ name: string;
39
+ description: string;
40
+ category: 'translation';
41
+ route: '/agents/translator';
42
+ }
@@ -0,0 +1,80 @@
1
+ # Translator Agent - Declarative Genkit-powered translation workflow
2
+ # Route: /agents/translator
3
+ # Method: translator.execute
4
+
5
+ agent:
6
+ id: translator
7
+ version: 1.0.0
8
+ protocol: beddel-declarative-protocol/v2.0
9
+
10
+ metadata:
11
+ name: "Translator Agent"
12
+ description: "Translates text between languages using Gemini Flash via Genkit"
13
+ category: "translation"
14
+ route: "/agents/translator"
15
+
16
+ schema:
17
+ input:
18
+ type: "object"
19
+ properties:
20
+ text:
21
+ type: "string"
22
+ minLength: 1
23
+ maxLength: 10000
24
+ description: "Original text to be translated"
25
+ source_language:
26
+ type: "string"
27
+ pattern: "^[a-z]{2}$"
28
+ description: "Source language (ISO-639-1, e.g., pt, en)"
29
+ target_language:
30
+ type: "string"
31
+ pattern: "^[a-z]{2}$"
32
+ description: "Target language (ISO-639-1, e.g., en, es)"
33
+ required: ["text", "source_language", "target_language"]
34
+
35
+ output:
36
+ type: "object"
37
+ properties:
38
+ translated_text:
39
+ type: "string"
40
+ metadata:
41
+ type: "object"
42
+ properties:
43
+ model_used:
44
+ type: "string"
45
+ processing_time:
46
+ type: "number"
47
+ confidence:
48
+ type: "number"
49
+ supported_languages:
50
+ type: "array"
51
+ items:
52
+ type: "string"
53
+ requested_languages:
54
+ type: "object"
55
+ properties:
56
+ source:
57
+ type: "string"
58
+ target:
59
+ type: "string"
60
+ required: ["source", "target"]
61
+ prompt_used:
62
+ type: "string"
63
+ required:
64
+ [
65
+ "model_used",
66
+ "processing_time",
67
+ "confidence",
68
+ "supported_languages",
69
+ "requested_languages",
70
+ "prompt_used",
71
+ ]
72
+ required: ["translated_text", "metadata"]
73
+
74
+ logic:
75
+ workflow:
76
+ - name: "translate"
77
+ type: "genkit-translation"
78
+ action:
79
+ type: "translate"
80
+ result: "translationResult"
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Client Module - Safe exports for client-side usage
3
+ *
4
+ * This module exports only types and metadata that are safe for client-side usage.
5
+ * It does NOT export any handlers, runtime logic, or server-only code.
6
+ *
7
+ * IMPORTANT: Never import from '../agents' index as it includes server-only registry!
8
+ * Import directly from individual agent folders instead.
9
+ */
10
+
11
+ // Re-export all shared types and utilities
12
+ export * from '../shared';
13
+
14
+ // Re-export client-specific types
15
+ export * from './types';
16
+
17
+ // Agent metadata exports (client-safe) - import directly from agent folders
18
+ export { jokerMetadata } from '../agents/joker';
19
+ export { translatorMetadata } from '../agents/translator';
20
+ export { imageMetadata } from '../agents/image';
21
+ export { mcpToolMetadata } from '../agents/mcp-tool';
22
+ export { geminiVectorizeMetadata } from '../agents/gemini-vectorize';
23
+ export { chromadbMetadata } from '../agents/chromadb';
24
+ export { gitmcpMetadata } from '../agents/gitmcp';
25
+ export { ragMetadata } from '../agents/rag';
26
+ export { chatMetadata } from '../agents/chat';
27
+
28
+ // Schema exports (client-safe - for validation)
29
+ export { JokerInputSchema, JokerOutputSchema } from '../agents/joker';
30
+ export { TranslatorInputSchema, TranslatorOutputSchema } from '../agents/translator';
31
+ export { ImageInputSchema, ImageOutputSchema } from '../agents/image';
32
+ export { McpToolInputSchema, McpToolOutputSchema } from '../agents/mcp-tool';
33
+ export { GeminiVectorizeInputSchema, GeminiVectorizeOutputSchema } from '../agents/gemini-vectorize';
34
+ export { ChromaDBInputSchema, ChromaDBOutputSchema } from '../agents/chromadb';
35
+ export { GitMcpInputSchema, GitMcpOutputSchema } from '../agents/gitmcp';
36
+ export { RagInputSchema, RagOutputSchema } from '../agents/rag';
37
+ export { ChatInputSchema, ChatOutputSchema } from '../agents/chat';
38
+
39
+ /**
40
+ * All agent metadata for UI display
41
+ * Defined here to avoid importing from agents/index.ts which includes server-only registry
42
+ */
43
+ export const allAgentMetadata = [
44
+ { id: 'joker', name: 'Joker Agent', description: 'Tells jokes using Gemini Flash', category: 'utility', route: '/agents/joker' },
45
+ { id: 'translator', name: 'Translator Agent', description: 'Translates text between languages using Gemini Flash via Genkit', category: 'translation', route: '/agents/translator' },
46
+ { id: 'image', name: 'Image Generator Agent', description: 'Generates images using Gemini Flash with curated styles', category: 'creative', route: '/agents/image' },
47
+ { id: 'mcp-tool', name: 'MCP Tool Agent', description: 'Generic agent for calling MCP server tools via SSE transport', category: 'integration', route: '/agents/mcp-tool' },
48
+ { id: 'gemini-vectorize', name: 'Gemini Vectorize Agent', description: "Generates text embeddings using Google's Gemini text-embedding-004 model", category: 'ai-service', route: '/agents/gemini-vectorize' },
49
+ { id: 'chromadb', name: 'ChromaDB Agent', description: 'Vector storage and retrieval using ChromaDB. Supports local and cloud deployments.', category: 'database', route: '/agents/chromadb' },
50
+ { id: 'gitmcp', name: 'GitMCP Documentation Agent', description: 'Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers', category: 'integration', route: '/agents/gitmcp' },
51
+ { id: 'rag', name: 'RAG Intelligence Agent', description: 'Generates natural language answers based on provided context using Gemini', category: 'intelligence', route: '/agents/rag' },
52
+ { id: 'chat', name: 'Q&A Context Chat Agent', description: 'Orchestrates RAG pipeline: vectorization, storage, retrieval and answer generation', category: 'chat', route: '/agents/chat' },
53
+ ] as const;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Client Types - Safe type re-exports for client-side usage
3
+ * These types contain no sensitive data or server-only logic
4
+ */
5
+
6
+ // Re-export all shared types
7
+ export type {
8
+ AgentMetadata,
9
+ AgentResponse,
10
+ ExecutionStep,
11
+ WorkflowStepType,
12
+ AgentCategory,
13
+ } from '../shared/types/agent.types';
14
+
15
+ export type {
16
+ ExecutionResult,
17
+ ExecutionStatus,
18
+ ExecutionSummary,
19
+ ExecutionLogEntry,
20
+ } from '../shared/types/execution.types';
21
+
22
+ export type {
23
+ SchemaProperty,
24
+ AgentSchemaDefinition,
25
+ ValidationResult,
26
+ ValidationError,
27
+ } from '../shared/types/schema.types';
28
+
29
+ // Agent-specific type exports (client-safe)
30
+ export type { JokerInput, JokerOutput, JokeHandlerParams, JokeHandlerResult } from '../agents/joker';
31
+ export type { TranslatorInput, TranslatorOutput, TranslationHandlerParams, TranslationHandlerResult } from '../agents/translator';
32
+ export type { ImageInput, ImageOutput, ImageStyle, ImageHandlerParams, ImageHandlerResult } from '../agents/image';
33
+ export type { McpToolInput, McpToolOutput, McpToolHandlerParams, McpToolHandlerResult } from '../agents/mcp-tool';
34
+ export type { GeminiVectorizeInput, GeminiVectorizeOutput, VectorizeHandlerParams, VectorizeHandlerResult } from '../agents/gemini-vectorize';
35
+ export type { ChromaDBInput, ChromaDBOutput, ChromaDBHandlerParams, ChromaDBHandlerResult, ChromaDBSearchResult } from '../agents/chromadb';
36
+ export type { GitMcpInput, GitMcpOutput, GitMcpHandlerParams, GitMcpHandlerResult } from '../agents/gitmcp';
37
+ export type { RagInput, RagOutput, RagHandlerParams, RagHandlerResult, ConversationMessage } from '../agents/rag';
38
+ export type { ChatInput, ChatOutput, ChatHandlerParams, ChatHandlerResult } from '../agents/chat';
package/src/index.ts CHANGED
@@ -51,8 +51,8 @@ export {
51
51
  } from "./runtime/schemaCompiler";
52
52
 
53
53
  // Agent registry exports
54
- export { AgentRegistry, agentRegistry } from "./agents/agentRegistry";
55
- export type { AgentRegistration } from "./agents/agentRegistry";
54
+ export { AgentRegistry, agentRegistry } from "./agents/registry";
55
+ export type { AgentRegistration } from "./agents/registry";
56
56
 
57
57
  // Configuration exports
58
58
  export {
@@ -102,12 +102,35 @@ export { AuditService } from "./runtime/audit";
102
102
  export { PerformanceMonitor } from "./performance/monitor";
103
103
  export { default as AutoScaler } from "./performance/autoscaling";
104
104
 
105
- // Multi-Tenant Firebase exports
106
- export { MultiTenantFirebaseManager } from "./firebase/tenantManager";
105
+ // Agnostic Multi-Tenant exports
106
+ export {
107
+ TenantManager,
108
+ ProviderRegistry,
109
+ createProvider,
110
+ isValidProviderType,
111
+ isBuiltInProviderType,
112
+ getSupportedProviders,
113
+ getBuiltInProviders,
114
+ InMemoryTenantProvider,
115
+ TenantError,
116
+ ValidationError,
117
+ NotFoundError,
118
+ NotSupportedError,
119
+ TenantAlreadyExistsError,
120
+ } from "./tenant";
107
121
  export type {
108
122
  TenantConfig,
109
123
  TenantIsolationResult,
110
- } from "./firebase/tenantManager";
124
+ ProviderType,
125
+ BuiltInProviderType,
126
+ FirebaseProviderConfig,
127
+ MemoryProviderConfig,
128
+ ITenantProvider,
129
+ ITenantApp,
130
+ ITenantDatabase,
131
+ ITenantCollection,
132
+ ITenantDocument,
133
+ } from "./tenant";
111
134
 
112
135
  // Compliance exports
113
136
  export { GDPRCompliance } from "./compliance/gdprEngine";
@@ -121,5 +144,25 @@ export { SecureYamlRuntime } from "./integration/secure-yaml-runtime";
121
144
  // Shared types
122
145
  export type { ExecutionContext } from "./types/executionContext";
123
146
 
147
+ // Shared agent types (client-safe)
148
+ export type {
149
+ AgentMetadata,
150
+ AgentResponse,
151
+ ExecutionStep,
152
+ WorkflowStepType,
153
+ AgentCategory,
154
+ } from "./shared/types/agent.types";
155
+
156
+ // Chat agent exports (client-safe)
157
+ export type {
158
+ ChatHandlerParams,
159
+ ChatHandlerResult,
160
+ ChatMetadata,
161
+ } from "./agents/chat/chat.types";
162
+ export { chatMetadata } from "./agents/chat";
163
+
164
+ // RAG types (client-safe)
165
+ export type { ConversationMessage } from "./agents/rag/rag.types";
166
+
124
167
  // Server/runtime exports
125
168
  export * as Server from "./server";