beddel 0.2.2 → 0.3.0
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.
- package/CHANGELOG.md +50 -0
- package/README.md +117 -14
- package/dist/agents/chat/chat.handler.d.ts +12 -0
- package/dist/agents/chat/chat.handler.d.ts.map +1 -0
- package/dist/agents/chat/chat.handler.js +145 -0
- package/dist/agents/chat/chat.handler.js.map +1 -0
- package/dist/agents/chat/chat.schema.d.ts +38 -0
- package/dist/agents/chat/chat.schema.d.ts.map +1 -0
- package/dist/agents/chat/chat.schema.js +31 -0
- package/dist/agents/chat/chat.schema.js.map +1 -0
- package/dist/agents/chat/chat.types.d.ts +42 -0
- package/dist/agents/chat/chat.types.d.ts.map +1 -0
- package/dist/agents/chat/chat.types.js +6 -0
- package/dist/agents/chat/chat.types.js.map +1 -0
- package/dist/agents/chat/chat.yaml +148 -0
- package/dist/agents/chat/index.d.ts +16 -0
- package/dist/agents/chat/index.d.ts.map +1 -0
- package/dist/agents/chat/index.js +21 -0
- package/dist/agents/chat/index.js.map +1 -0
- package/dist/agents/chromadb/chromadb.handler.d.ts +12 -0
- package/dist/agents/chromadb/chromadb.handler.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.handler.js +139 -0
- package/dist/agents/chromadb/chromadb.handler.js.map +1 -0
- package/dist/agents/chromadb/chromadb.schema.d.ts +36 -0
- package/dist/agents/chromadb/chromadb.schema.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.schema.js +33 -0
- package/dist/agents/chromadb/chromadb.schema.js.map +1 -0
- package/dist/agents/chromadb/chromadb.types.d.ts +49 -0
- package/dist/agents/chromadb/chromadb.types.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.types.js +6 -0
- package/dist/agents/chromadb/chromadb.types.js.map +1 -0
- package/dist/agents/chromadb/chromadb.yaml +128 -0
- package/dist/agents/chromadb/index.d.ts +15 -0
- package/dist/agents/chromadb/index.d.ts.map +1 -0
- package/dist/agents/chromadb/index.js +20 -0
- package/dist/agents/chromadb/index.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts +8 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js +61 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts +22 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js +20 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts +32 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.js +6 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
- package/dist/agents/gemini-vectorize/index.d.ts +15 -0
- package/dist/agents/gemini-vectorize/index.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/index.js +20 -0
- package/dist/agents/gemini-vectorize/index.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.handler.d.ts +12 -0
- package/dist/agents/gitmcp/gitmcp.handler.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.handler.js +95 -0
- package/dist/agents/gitmcp/gitmcp.handler.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.schema.d.ts +17 -0
- package/dist/agents/gitmcp/gitmcp.schema.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.schema.js +18 -0
- package/dist/agents/gitmcp/gitmcp.schema.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.types.d.ts +31 -0
- package/dist/agents/gitmcp/gitmcp.types.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.types.js +6 -0
- package/dist/agents/gitmcp/gitmcp.types.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.yaml +71 -0
- package/dist/agents/gitmcp/index.d.ts +16 -0
- package/dist/agents/gitmcp/index.d.ts.map +1 -0
- package/dist/agents/gitmcp/index.js +21 -0
- package/dist/agents/gitmcp/index.js.map +1 -0
- package/dist/agents/image/image.handler.d.ts +8 -0
- package/dist/agents/image/image.handler.d.ts.map +1 -0
- package/dist/agents/image/image.handler.js +69 -0
- package/dist/agents/image/image.handler.js.map +1 -0
- package/dist/agents/image/image.schema.d.ts +29 -0
- package/dist/agents/image/image.schema.d.ts.map +1 -0
- package/dist/agents/image/image.schema.js +26 -0
- package/dist/agents/image/image.schema.js.map +1 -0
- package/dist/agents/image/image.types.d.ts +43 -0
- package/dist/agents/image/image.types.d.ts.map +1 -0
- package/dist/agents/image/image.types.js +6 -0
- package/dist/agents/image/image.types.js.map +1 -0
- package/{src/agents/image-agent.yaml → dist/agents/image/image.yaml} +21 -21
- package/dist/agents/image/index.d.ts +14 -0
- package/dist/agents/image/index.d.ts.map +1 -0
- package/dist/agents/image/index.js +19 -0
- package/dist/agents/image/index.js.map +1 -0
- package/dist/agents/index.d.ts +104 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +82 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/joker/index.d.ts +14 -0
- package/dist/agents/joker/index.d.ts.map +1 -0
- package/dist/agents/joker/index.js +19 -0
- package/dist/agents/joker/index.js.map +1 -0
- package/dist/agents/joker/joker.handler.d.ts +8 -0
- package/dist/agents/joker/joker.handler.d.ts.map +1 -0
- package/dist/agents/joker/joker.handler.js +44 -0
- package/dist/agents/joker/joker.handler.js.map +1 -0
- package/dist/agents/joker/joker.schema.d.ts +12 -0
- package/dist/agents/joker/joker.schema.d.ts.map +1 -0
- package/dist/agents/joker/joker.schema.js +13 -0
- package/dist/agents/joker/joker.schema.js.map +1 -0
- package/dist/agents/joker/joker.types.d.ts +36 -0
- package/dist/agents/joker/joker.types.d.ts.map +1 -0
- package/dist/agents/joker/joker.types.js +6 -0
- package/dist/agents/joker/joker.types.js.map +1 -0
- package/{src/agents/joker-agent.yaml → dist/agents/joker/joker.yaml} +4 -4
- package/dist/agents/llm/index.d.ts +15 -0
- package/dist/agents/llm/index.d.ts.map +1 -0
- package/dist/agents/llm/index.js +20 -0
- package/dist/agents/llm/index.js.map +1 -0
- package/dist/agents/llm/llm.handler.d.ts +8 -0
- package/dist/agents/llm/llm.handler.d.ts.map +1 -0
- package/dist/agents/llm/llm.handler.js +64 -0
- package/dist/agents/llm/llm.handler.js.map +1 -0
- package/dist/agents/llm/llm.schema.d.ts +26 -0
- package/dist/agents/llm/llm.schema.d.ts.map +1 -0
- package/dist/agents/llm/llm.schema.js +23 -0
- package/dist/agents/llm/llm.schema.js.map +1 -0
- package/dist/agents/llm/llm.types.d.ts +34 -0
- package/dist/agents/llm/llm.types.d.ts.map +1 -0
- package/dist/agents/llm/llm.types.js +7 -0
- package/dist/agents/llm/llm.types.js.map +1 -0
- package/dist/agents/llm/llm.yaml +87 -0
- package/dist/agents/mcp-tool/index.d.ts +14 -0
- package/dist/agents/mcp-tool/index.d.ts.map +1 -0
- package/dist/agents/mcp-tool/index.js +19 -0
- package/dist/agents/mcp-tool/index.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.d.ts +12 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.js +116 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.d.ts +19 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.js +20 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.types.d.ts +31 -0
- package/dist/agents/mcp-tool/mcp-tool.types.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.types.js +6 -0
- package/dist/agents/mcp-tool/mcp-tool.types.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.yaml +71 -0
- package/dist/agents/rag/index.d.ts +15 -0
- package/dist/agents/rag/index.d.ts.map +1 -0
- package/dist/agents/rag/index.js +20 -0
- package/dist/agents/rag/index.js.map +1 -0
- package/dist/agents/rag/rag.handler.d.ts +9 -0
- package/dist/agents/rag/rag.handler.d.ts.map +1 -0
- package/dist/agents/rag/rag.handler.js +78 -0
- package/dist/agents/rag/rag.handler.js.map +1 -0
- package/dist/agents/rag/rag.schema.d.ts +27 -0
- package/dist/agents/rag/rag.schema.d.ts.map +1 -0
- package/dist/agents/rag/rag.schema.js +24 -0
- package/dist/agents/rag/rag.schema.js.map +1 -0
- package/dist/agents/rag/rag.types.d.ts +42 -0
- package/dist/agents/rag/rag.types.d.ts.map +1 -0
- package/dist/agents/rag/rag.types.js +7 -0
- package/dist/agents/rag/rag.types.js.map +1 -0
- package/dist/agents/rag/rag.yaml +89 -0
- package/dist/agents/{agentRegistry.d.ts → registry/agentRegistry.d.ts} +30 -1
- package/dist/agents/registry/agentRegistry.d.ts.map +1 -0
- package/dist/agents/{agentRegistry.js → registry/agentRegistry.js} +187 -5
- package/dist/agents/registry/agentRegistry.js.map +1 -0
- package/dist/agents/registry/index.d.ts +6 -0
- package/dist/agents/registry/index.d.ts.map +1 -0
- package/dist/agents/registry/index.js +10 -0
- package/dist/agents/registry/index.js.map +1 -0
- package/dist/agents/translator/index.d.ts +14 -0
- package/dist/agents/translator/index.d.ts.map +1 -0
- package/dist/agents/translator/index.js +19 -0
- package/dist/agents/translator/index.js.map +1 -0
- package/dist/agents/translator/translator.handler.d.ts +8 -0
- package/dist/agents/translator/translator.handler.d.ts.map +1 -0
- package/dist/agents/translator/translator.handler.js +81 -0
- package/dist/agents/translator/translator.handler.js.map +1 -0
- package/dist/agents/translator/translator.schema.d.ts +27 -0
- package/dist/agents/translator/translator.schema.d.ts.map +1 -0
- package/dist/agents/translator/translator.schema.js +28 -0
- package/dist/agents/translator/translator.schema.js.map +1 -0
- package/dist/agents/translator/translator.types.d.ts +41 -0
- package/dist/agents/translator/translator.types.d.ts.map +1 -0
- package/dist/agents/translator/translator.types.js +6 -0
- package/dist/agents/translator/translator.types.js.map +1 -0
- package/{src/agents/translator-agent.yaml → dist/agents/translator/translator.yaml} +27 -27
- package/dist/client/index.d.ts +89 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +93 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +17 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +7 -0
- package/dist/client/types.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +34 -2
- package/dist/firebase/tenantManager.d.ts.map +1 -1
- package/dist/firebase/tenantManager.js +67 -1
- package/dist/firebase/tenantManager.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -7
- package/dist/index.js.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.d.ts +17 -52
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.js +259 -361
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -1
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +38 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/llmProviderFactory.d.ts +47 -0
- package/dist/runtime/llmProviderFactory.d.ts.map +1 -0
- package/dist/runtime/llmProviderFactory.js +119 -0
- package/dist/runtime/llmProviderFactory.js.map +1 -0
- package/dist/runtime/workflowExecutor.d.ts +31 -0
- package/dist/runtime/workflowExecutor.d.ts.map +1 -0
- package/dist/runtime/workflowExecutor.js +80 -0
- package/dist/runtime/workflowExecutor.js.map +1 -0
- package/dist/server/api/graphql.js +3 -3
- package/dist/server/api/graphql.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/shared/index.d.ts +7 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +23 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/types/agent.types.d.ts +63 -0
- package/dist/shared/types/agent.types.d.ts.map +1 -0
- package/dist/shared/types/agent.types.js +18 -0
- package/dist/shared/types/agent.types.js.map +1 -0
- package/dist/shared/types/execution.types.d.ts +42 -0
- package/dist/shared/types/execution.types.d.ts.map +1 -0
- package/dist/shared/types/execution.types.js +7 -0
- package/dist/shared/types/execution.types.js.map +1 -0
- package/dist/shared/types/index.d.ts +7 -0
- package/dist/shared/types/index.d.ts.map +1 -0
- package/dist/shared/types/index.js +23 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/types/schema.types.d.ts +52 -0
- package/dist/shared/types/schema.types.d.ts.map +1 -0
- package/dist/shared/types/schema.types.js +7 -0
- package/dist/shared/types/schema.types.js.map +1 -0
- package/dist/shared/utils/index.d.ts +5 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +21 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/shared/utils/validation.d.ts +42 -0
- package/dist/shared/utils/validation.d.ts.map +1 -0
- package/dist/shared/utils/validation.js +93 -0
- package/dist/shared/utils/validation.js.map +1 -0
- package/dist/tenant/TenantManager.d.ts +152 -0
- package/dist/tenant/TenantManager.d.ts.map +1 -0
- package/dist/tenant/TenantManager.js +392 -0
- package/dist/tenant/TenantManager.js.map +1 -0
- package/dist/tenant/index.d.ts +47 -0
- package/dist/tenant/index.d.ts.map +1 -0
- package/dist/tenant/index.js +74 -0
- package/dist/tenant/index.js.map +1 -0
- package/dist/tenant/interfaces.d.ts +170 -0
- package/dist/tenant/interfaces.d.ts.map +1 -0
- package/dist/tenant/interfaces.js +67 -0
- package/dist/tenant/interfaces.js.map +1 -0
- package/dist/tenant/providerFactory.d.ts +43 -0
- package/dist/tenant/providerFactory.d.ts.map +1 -0
- package/dist/tenant/providerFactory.js +70 -0
- package/dist/tenant/providerFactory.js.map +1 -0
- package/dist/tenant/providerRegistry.d.ts +47 -0
- package/dist/tenant/providerRegistry.d.ts.map +1 -0
- package/dist/tenant/providerRegistry.js +79 -0
- package/dist/tenant/providerRegistry.js.map +1 -0
- package/dist/tenant/providers/FirebaseTenantProvider.d.ts +41 -0
- package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +1 -0
- package/dist/tenant/providers/FirebaseTenantProvider.js +290 -0
- package/dist/tenant/providers/FirebaseTenantProvider.js.map +1 -0
- package/dist/tenant/providers/InMemoryTenantProvider.d.ts +18 -0
- package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +1 -0
- package/dist/tenant/providers/InMemoryTenantProvider.js +137 -0
- package/dist/tenant/providers/InMemoryTenantProvider.js.map +1 -0
- package/package.json +46 -10
- package/src/agents/chat/chat.handler.ts +211 -0
- package/src/agents/chat/chat.schema.ts +33 -0
- package/src/agents/chat/chat.types.ts +46 -0
- package/src/agents/chat/chat.yaml +148 -0
- package/src/agents/chat/index.ts +21 -0
- package/src/agents/chromadb/chromadb.handler.ts +130 -0
- package/src/agents/chromadb/chromadb.schema.ts +35 -0
- package/src/agents/chromadb/chromadb.types.ts +52 -0
- package/src/agents/chromadb/chromadb.yaml +128 -0
- package/src/agents/chromadb/index.ts +20 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +75 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +22 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +34 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
- package/src/agents/gemini-vectorize/index.ts +20 -0
- package/src/agents/gitmcp/gitmcp.handler.ts +122 -0
- package/src/agents/gitmcp/gitmcp.schema.ts +20 -0
- package/src/agents/gitmcp/gitmcp.types.ts +33 -0
- package/src/agents/gitmcp/gitmcp.yaml +71 -0
- package/src/agents/gitmcp/index.ts +21 -0
- package/src/agents/image/image.handler.ts +86 -0
- package/src/agents/image/image.schema.ts +28 -0
- package/src/agents/image/image.types.ts +46 -0
- package/src/agents/image/image.yaml +86 -0
- package/src/agents/image/index.ts +19 -0
- package/src/agents/index.ts +63 -0
- package/src/agents/joker/index.ts +19 -0
- package/src/agents/joker/joker.handler.ts +55 -0
- package/src/agents/joker/joker.schema.ts +15 -0
- package/src/agents/joker/joker.types.ts +38 -0
- package/src/agents/joker/joker.yaml +47 -0
- package/src/agents/llm/index.ts +20 -0
- package/src/agents/llm/llm.handler.ts +82 -0
- package/src/agents/llm/llm.schema.ts +25 -0
- package/src/agents/llm/llm.types.ts +37 -0
- package/src/agents/llm/llm.yaml +87 -0
- package/src/agents/mcp-tool/index.ts +19 -0
- package/src/agents/mcp-tool/mcp-tool.handler.ts +112 -0
- package/src/agents/mcp-tool/mcp-tool.schema.ts +22 -0
- package/src/agents/mcp-tool/mcp-tool.types.ts +33 -0
- package/src/agents/mcp-tool/mcp-tool.yaml +71 -0
- package/src/agents/rag/index.ts +20 -0
- package/src/agents/rag/rag.handler.ts +95 -0
- package/src/agents/rag/rag.schema.ts +26 -0
- package/src/agents/rag/rag.types.ts +45 -0
- package/src/agents/rag/rag.yaml +89 -0
- package/src/agents/{agentRegistry.ts → registry/agentRegistry.ts} +195 -6
- package/src/agents/registry/index.ts +6 -0
- package/src/agents/translator/index.ts +19 -0
- package/src/agents/translator/translator.handler.ts +97 -0
- package/src/agents/translator/translator.schema.ts +30 -0
- package/src/agents/translator/translator.types.ts +43 -0
- package/src/agents/translator/translator.yaml +80 -0
- package/src/client/index.ts +53 -0
- package/src/client/types.ts +38 -0
- package/src/index.ts +56 -5
- package/src/runtime/declarativeAgentRuntime.ts +378 -495
- package/src/runtime/index.ts +36 -0
- package/src/runtime/llmProviderFactory.ts +145 -0
- package/src/runtime/workflowExecutor.ts +107 -0
- package/src/server/api/graphql.ts +1 -1
- package/src/server/index.ts +2 -2
- package/src/shared/index.ts +7 -0
- package/src/shared/types/agent.types.ts +100 -0
- package/src/shared/types/execution.types.ts +45 -0
- package/src/shared/types/index.ts +7 -0
- package/src/shared/types/schema.types.ts +55 -0
- package/src/shared/utils/index.ts +5 -0
- package/src/shared/utils/validation.ts +100 -0
- package/src/tenant/TenantManager.ts +488 -0
- package/src/tenant/index.ts +101 -0
- package/src/tenant/interfaces.ts +231 -0
- package/src/tenant/providerFactory.ts +75 -0
- package/src/tenant/providerRegistry.ts +86 -0
- package/src/tenant/providers/InMemoryTenantProvider.ts +168 -0
- package/dist/agents/agentRegistry.d.ts.map +0 -1
- package/dist/agents/agentRegistry.js.map +0 -1
- package/src/firebase/tenantManager.ts +0 -443
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Firebase Tenant Provider
|
|
4
|
+
* Implements ITenantProvider using Firebase Admin SDK
|
|
5
|
+
* Extracted from MultiTenantFirebaseManager for provider-agnostic architecture
|
|
6
|
+
*
|
|
7
|
+
* NOTE: firebase-admin is an optional peer dependency.
|
|
8
|
+
* Install it separately if you want to use Firebase as a tenant provider:
|
|
9
|
+
*
|
|
10
|
+
* ```bash
|
|
11
|
+
* pnpm add firebase-admin
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.FirebaseTenantProvider = void 0;
|
|
49
|
+
const interfaces_1 = require("../interfaces");
|
|
50
|
+
// Lazy-loaded firebase-admin module
|
|
51
|
+
let firebaseAdmin = null;
|
|
52
|
+
/**
|
|
53
|
+
* Dynamically load firebase-admin module
|
|
54
|
+
* @throws Error if firebase-admin is not installed
|
|
55
|
+
*/
|
|
56
|
+
async function loadFirebaseAdmin() {
|
|
57
|
+
if (firebaseAdmin) {
|
|
58
|
+
return firebaseAdmin;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
// Dynamic import to avoid bundling firebase-admin when not used
|
|
62
|
+
firebaseAdmin = await Promise.resolve().then(() => __importStar(require('firebase-admin')));
|
|
63
|
+
return firebaseAdmin;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
throw new Error('firebase-admin is not installed. Install it with: pnpm add firebase-admin\n' +
|
|
67
|
+
'Firebase provider requires firebase-admin as a peer dependency.');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Synchronously get firebase-admin (must be loaded first via loadFirebaseAdmin)
|
|
72
|
+
* @throws Error if firebase-admin was not loaded
|
|
73
|
+
*/
|
|
74
|
+
function getFirebaseAdmin() {
|
|
75
|
+
if (!firebaseAdmin) {
|
|
76
|
+
throw new Error('firebase-admin not loaded. Ensure initialize() was called first.');
|
|
77
|
+
}
|
|
78
|
+
return firebaseAdmin;
|
|
79
|
+
}
|
|
80
|
+
// =============================================================================
|
|
81
|
+
// Firebase Document Implementation
|
|
82
|
+
// =============================================================================
|
|
83
|
+
class FirebaseDocument {
|
|
84
|
+
constructor(docRef) {
|
|
85
|
+
this.docRef = docRef;
|
|
86
|
+
}
|
|
87
|
+
async get() {
|
|
88
|
+
const snapshot = await this.docRef.get();
|
|
89
|
+
if (!snapshot.exists) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return snapshot.data();
|
|
93
|
+
}
|
|
94
|
+
async set(data) {
|
|
95
|
+
await this.docRef.set(data);
|
|
96
|
+
}
|
|
97
|
+
async update(data) {
|
|
98
|
+
const snapshot = await this.docRef.get();
|
|
99
|
+
if (!snapshot.exists) {
|
|
100
|
+
throw new interfaces_1.NotFoundError(`Document '${this.docRef.id}' not found`);
|
|
101
|
+
}
|
|
102
|
+
await this.docRef.update(data);
|
|
103
|
+
}
|
|
104
|
+
async delete() {
|
|
105
|
+
await this.docRef.delete();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// =============================================================================
|
|
109
|
+
// Firebase Collection Implementation
|
|
110
|
+
// =============================================================================
|
|
111
|
+
class FirebaseCollection {
|
|
112
|
+
constructor(collectionRef) {
|
|
113
|
+
this.collectionRef = collectionRef;
|
|
114
|
+
}
|
|
115
|
+
doc(id) {
|
|
116
|
+
return new FirebaseDocument(this.collectionRef.doc(id));
|
|
117
|
+
}
|
|
118
|
+
async add(data) {
|
|
119
|
+
const docRef = await this.collectionRef.add(data);
|
|
120
|
+
return docRef.id;
|
|
121
|
+
}
|
|
122
|
+
async get() {
|
|
123
|
+
const snapshot = await this.collectionRef.get();
|
|
124
|
+
return snapshot.docs.map((doc) => ({
|
|
125
|
+
id: doc.id,
|
|
126
|
+
data: doc.data(),
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// =============================================================================
|
|
131
|
+
// Firebase Database Implementation
|
|
132
|
+
// =============================================================================
|
|
133
|
+
class FirebaseDatabase {
|
|
134
|
+
constructor(firestore, tenantId) {
|
|
135
|
+
this.firestore = firestore;
|
|
136
|
+
this.tenantId = tenantId;
|
|
137
|
+
}
|
|
138
|
+
collection(name) {
|
|
139
|
+
// Namespace collections under tenant ID for isolation
|
|
140
|
+
const namespacedPath = `tenants/${this.tenantId}/${name}`;
|
|
141
|
+
return new FirebaseCollection(this.firestore.collection(namespacedPath));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// =============================================================================
|
|
145
|
+
// Firebase Tenant App Implementation
|
|
146
|
+
// =============================================================================
|
|
147
|
+
class FirebaseTenantApp {
|
|
148
|
+
constructor(tenantId, firebaseApp, _config) {
|
|
149
|
+
this.tenantId = tenantId;
|
|
150
|
+
this.firebaseApp = firebaseApp;
|
|
151
|
+
this._config = _config;
|
|
152
|
+
this.destroyed = false;
|
|
153
|
+
this.database = new FirebaseDatabase(firebaseApp.firestore(), tenantId);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get the tenant configuration
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
getConfig() {
|
|
160
|
+
return this._config;
|
|
161
|
+
}
|
|
162
|
+
getDatabase() {
|
|
163
|
+
if (this.destroyed) {
|
|
164
|
+
throw new interfaces_1.NotFoundError(`Tenant '${this.tenantId}' has been destroyed`);
|
|
165
|
+
}
|
|
166
|
+
return this.database;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get the underlying Firebase app (for advanced operations)
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
getFirebaseApp() {
|
|
173
|
+
if (this.destroyed) {
|
|
174
|
+
throw new interfaces_1.NotFoundError(`Tenant '${this.tenantId}' has been destroyed`);
|
|
175
|
+
}
|
|
176
|
+
return this.firebaseApp;
|
|
177
|
+
}
|
|
178
|
+
async destroy() {
|
|
179
|
+
if (this.destroyed) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
this.destroyed = true;
|
|
183
|
+
await this.firebaseApp.delete();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// =============================================================================
|
|
187
|
+
// Firebase Tenant Provider Implementation
|
|
188
|
+
// =============================================================================
|
|
189
|
+
/**
|
|
190
|
+
* Firebase implementation of ITenantProvider
|
|
191
|
+
* Provides multi-tenant isolation using Firebase Admin SDK
|
|
192
|
+
*
|
|
193
|
+
* NOTE: firebase-admin must be installed separately as a peer dependency.
|
|
194
|
+
*/
|
|
195
|
+
class FirebaseTenantProvider {
|
|
196
|
+
constructor() {
|
|
197
|
+
this.type = 'firebase';
|
|
198
|
+
this.tenants = new Map();
|
|
199
|
+
this.initialized = false;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Ensure firebase-admin is loaded before use
|
|
203
|
+
*/
|
|
204
|
+
async ensureFirebaseLoaded() {
|
|
205
|
+
if (!this.initialized) {
|
|
206
|
+
await loadFirebaseAdmin();
|
|
207
|
+
this.initialized = true;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Validate Firebase-specific provider configuration
|
|
212
|
+
*/
|
|
213
|
+
validateFirebaseConfig(config) {
|
|
214
|
+
if (config.provider !== 'firebase') {
|
|
215
|
+
throw new interfaces_1.ValidationError(`Invalid provider type: expected 'firebase', got '${config.provider}'`);
|
|
216
|
+
}
|
|
217
|
+
const providerConfig = config.providerConfig;
|
|
218
|
+
if (!providerConfig.projectId) {
|
|
219
|
+
throw new interfaces_1.ValidationError('Firebase projectId is required');
|
|
220
|
+
}
|
|
221
|
+
if (!providerConfig.databaseURL) {
|
|
222
|
+
throw new interfaces_1.ValidationError('Firebase databaseURL is required');
|
|
223
|
+
}
|
|
224
|
+
if (!providerConfig.storageBucket) {
|
|
225
|
+
throw new interfaces_1.ValidationError('Firebase storageBucket is required');
|
|
226
|
+
}
|
|
227
|
+
return providerConfig;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Validate tenant configuration
|
|
231
|
+
*/
|
|
232
|
+
validateTenantConfig(config) {
|
|
233
|
+
if (!config.tenantId || config.tenantId.length < 3) {
|
|
234
|
+
throw new interfaces_1.ValidationError('Invalid tenant ID - must be at least 3 characters');
|
|
235
|
+
}
|
|
236
|
+
if (!config.securityProfile) {
|
|
237
|
+
throw new interfaces_1.ValidationError('Security profile is required');
|
|
238
|
+
}
|
|
239
|
+
if (!config.dataRetentionDays) {
|
|
240
|
+
throw new interfaces_1.ValidationError('Data retention days is required');
|
|
241
|
+
}
|
|
242
|
+
if (config.dataRetentionDays < 90) {
|
|
243
|
+
throw new interfaces_1.ValidationError('Data retention minimum 90 days for LGPD compliance');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async initialize(config) {
|
|
247
|
+
// Ensure firebase-admin is loaded
|
|
248
|
+
await this.ensureFirebaseLoaded();
|
|
249
|
+
const admin = getFirebaseAdmin();
|
|
250
|
+
// Validate configurations
|
|
251
|
+
this.validateTenantConfig(config);
|
|
252
|
+
const firebaseConfig = this.validateFirebaseConfig(config);
|
|
253
|
+
// Check if tenant already exists
|
|
254
|
+
if (this.tenants.has(config.tenantId)) {
|
|
255
|
+
throw new interfaces_1.TenantAlreadyExistsError(config.tenantId);
|
|
256
|
+
}
|
|
257
|
+
// Initialize Firebase app for this tenant
|
|
258
|
+
const appName = `tenant-${config.tenantId}`;
|
|
259
|
+
const firebaseApp = admin.initializeApp({
|
|
260
|
+
credential: admin.credential.applicationDefault(),
|
|
261
|
+
projectId: firebaseConfig.projectId,
|
|
262
|
+
databaseURL: firebaseConfig.databaseURL,
|
|
263
|
+
storageBucket: firebaseConfig.storageBucket,
|
|
264
|
+
}, appName);
|
|
265
|
+
// Create tenant app wrapper
|
|
266
|
+
const tenantApp = new FirebaseTenantApp(config.tenantId, firebaseApp, config);
|
|
267
|
+
this.tenants.set(config.tenantId, tenantApp);
|
|
268
|
+
return tenantApp;
|
|
269
|
+
}
|
|
270
|
+
get(tenantId) {
|
|
271
|
+
const app = this.tenants.get(tenantId);
|
|
272
|
+
if (!app) {
|
|
273
|
+
throw new interfaces_1.NotFoundError(`Tenant '${tenantId}' not found`);
|
|
274
|
+
}
|
|
275
|
+
return app;
|
|
276
|
+
}
|
|
277
|
+
async remove(tenantId) {
|
|
278
|
+
const app = this.tenants.get(tenantId);
|
|
279
|
+
if (!app) {
|
|
280
|
+
throw new interfaces_1.NotFoundError(`Tenant '${tenantId}' not found`);
|
|
281
|
+
}
|
|
282
|
+
await app.destroy();
|
|
283
|
+
this.tenants.delete(tenantId);
|
|
284
|
+
}
|
|
285
|
+
list() {
|
|
286
|
+
return Array.from(this.tenants.keys());
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
exports.FirebaseTenantProvider = FirebaseTenantProvider;
|
|
290
|
+
//# sourceMappingURL=FirebaseTenantProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirebaseTenantProvider.js","sourceRoot":"","sources":["../../../src/tenant/providers/FirebaseTenantProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Tenant Provider
|
|
3
|
+
* Implements ITenantProvider for testing without external dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { ITenantProvider, ITenantApp, TenantConfig, ProviderType } from '../interfaces';
|
|
6
|
+
/**
|
|
7
|
+
* In-memory implementation of ITenantProvider
|
|
8
|
+
* Useful for testing without external dependencies
|
|
9
|
+
*/
|
|
10
|
+
export declare class InMemoryTenantProvider implements ITenantProvider {
|
|
11
|
+
readonly type: ProviderType;
|
|
12
|
+
private tenants;
|
|
13
|
+
initialize(config: TenantConfig): Promise<ITenantApp>;
|
|
14
|
+
get(tenantId: string): ITenantApp;
|
|
15
|
+
remove(tenantId: string): Promise<void>;
|
|
16
|
+
list(): string[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=InMemoryTenantProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryTenantProvider.d.ts","sourceRoot":"","sources":["../../../src/tenant/providers/InMemoryTenantProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,UAAU,EAIV,YAAY,EACZ,YAAY,EAGb,MAAM,eAAe,CAAC;AAkHvB;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,SAAgB,IAAI,EAAE,YAAY,CAAY;IAC9C,OAAO,CAAC,OAAO,CAA6C;IAEtD,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAU3D,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAQ3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,IAAI,IAAI,MAAM,EAAE;CAGjB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* In-Memory Tenant Provider
|
|
4
|
+
* Implements ITenantProvider for testing without external dependencies
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.InMemoryTenantProvider = void 0;
|
|
8
|
+
const interfaces_1 = require("../interfaces");
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// In-Memory Document Implementation
|
|
11
|
+
// =============================================================================
|
|
12
|
+
class InMemoryDocument {
|
|
13
|
+
constructor(storage, docId) {
|
|
14
|
+
this.storage = storage;
|
|
15
|
+
this.docId = docId;
|
|
16
|
+
}
|
|
17
|
+
async get() {
|
|
18
|
+
return this.storage.get(this.docId) ?? null;
|
|
19
|
+
}
|
|
20
|
+
async set(data) {
|
|
21
|
+
this.storage.set(this.docId, { ...data });
|
|
22
|
+
}
|
|
23
|
+
async update(data) {
|
|
24
|
+
const existing = this.storage.get(this.docId);
|
|
25
|
+
if (!existing) {
|
|
26
|
+
throw new interfaces_1.NotFoundError(`Document '${this.docId}' not found`);
|
|
27
|
+
}
|
|
28
|
+
this.storage.set(this.docId, { ...existing, ...data });
|
|
29
|
+
}
|
|
30
|
+
async delete() {
|
|
31
|
+
this.storage.delete(this.docId);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// In-Memory Collection Implementation
|
|
36
|
+
// =============================================================================
|
|
37
|
+
class InMemoryCollection {
|
|
38
|
+
constructor(collectionName) {
|
|
39
|
+
this.collectionName = collectionName;
|
|
40
|
+
this.documents = new Map();
|
|
41
|
+
this.autoIdCounter = 0;
|
|
42
|
+
}
|
|
43
|
+
doc(id) {
|
|
44
|
+
return new InMemoryDocument(this.documents, id);
|
|
45
|
+
}
|
|
46
|
+
async add(data) {
|
|
47
|
+
const id = `${this.collectionName}_${++this.autoIdCounter}_${Date.now()}`;
|
|
48
|
+
this.documents.set(id, { ...data });
|
|
49
|
+
return id;
|
|
50
|
+
}
|
|
51
|
+
async get() {
|
|
52
|
+
const results = [];
|
|
53
|
+
for (const [id, data] of this.documents) {
|
|
54
|
+
results.push({ id, data: { ...data } });
|
|
55
|
+
}
|
|
56
|
+
return results;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// In-Memory Database Implementation
|
|
61
|
+
// =============================================================================
|
|
62
|
+
class InMemoryDatabase {
|
|
63
|
+
constructor() {
|
|
64
|
+
this.collections = new Map();
|
|
65
|
+
}
|
|
66
|
+
collection(name) {
|
|
67
|
+
let coll = this.collections.get(name);
|
|
68
|
+
if (!coll) {
|
|
69
|
+
coll = new InMemoryCollection(name);
|
|
70
|
+
this.collections.set(name, coll);
|
|
71
|
+
}
|
|
72
|
+
return coll;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// =============================================================================
|
|
76
|
+
// In-Memory Tenant App Implementation
|
|
77
|
+
// =============================================================================
|
|
78
|
+
class InMemoryTenantApp {
|
|
79
|
+
constructor(tenantId, config) {
|
|
80
|
+
this.tenantId = tenantId;
|
|
81
|
+
this.config = config;
|
|
82
|
+
this.destroyed = false;
|
|
83
|
+
this.database = new InMemoryDatabase();
|
|
84
|
+
}
|
|
85
|
+
getDatabase() {
|
|
86
|
+
if (this.destroyed) {
|
|
87
|
+
throw new interfaces_1.NotFoundError(`Tenant '${this.tenantId}' has been destroyed`);
|
|
88
|
+
}
|
|
89
|
+
return this.database;
|
|
90
|
+
}
|
|
91
|
+
async destroy() {
|
|
92
|
+
this.destroyed = true;
|
|
93
|
+
// Clear internal references to allow garbage collection
|
|
94
|
+
this.database = null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// =============================================================================
|
|
98
|
+
// In-Memory Tenant Provider Implementation
|
|
99
|
+
// =============================================================================
|
|
100
|
+
/**
|
|
101
|
+
* In-memory implementation of ITenantProvider
|
|
102
|
+
* Useful for testing without external dependencies
|
|
103
|
+
*/
|
|
104
|
+
class InMemoryTenantProvider {
|
|
105
|
+
constructor() {
|
|
106
|
+
this.type = 'memory';
|
|
107
|
+
this.tenants = new Map();
|
|
108
|
+
}
|
|
109
|
+
async initialize(config) {
|
|
110
|
+
if (this.tenants.has(config.tenantId)) {
|
|
111
|
+
throw new interfaces_1.TenantAlreadyExistsError(config.tenantId);
|
|
112
|
+
}
|
|
113
|
+
const app = new InMemoryTenantApp(config.tenantId, config);
|
|
114
|
+
this.tenants.set(config.tenantId, app);
|
|
115
|
+
return app;
|
|
116
|
+
}
|
|
117
|
+
get(tenantId) {
|
|
118
|
+
const app = this.tenants.get(tenantId);
|
|
119
|
+
if (!app) {
|
|
120
|
+
throw new interfaces_1.NotFoundError(`Tenant '${tenantId}' not found`);
|
|
121
|
+
}
|
|
122
|
+
return app;
|
|
123
|
+
}
|
|
124
|
+
async remove(tenantId) {
|
|
125
|
+
const app = this.tenants.get(tenantId);
|
|
126
|
+
if (!app) {
|
|
127
|
+
throw new interfaces_1.NotFoundError(`Tenant '${tenantId}' not found`);
|
|
128
|
+
}
|
|
129
|
+
await app.destroy();
|
|
130
|
+
this.tenants.delete(tenantId);
|
|
131
|
+
}
|
|
132
|
+
list() {
|
|
133
|
+
return Array.from(this.tenants.keys());
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.InMemoryTenantProvider = InMemoryTenantProvider;
|
|
137
|
+
//# sourceMappingURL=InMemoryTenantProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryTenantProvider.js","sourceRoot":"","sources":["../../../src/tenant/providers/InMemoryTenantProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beddel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Beddel - A secure YAML parser and OpenAPI endpoint manager for Node.js applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,11 +27,28 @@
|
|
|
27
27
|
"./server/api/graphql": {
|
|
28
28
|
"types": "./dist/server/api/graphql.d.ts",
|
|
29
29
|
"default": "./dist/server/api/graphql.js"
|
|
30
|
+
},
|
|
31
|
+
"./client": {
|
|
32
|
+
"types": "./dist/client/index.d.ts",
|
|
33
|
+
"default": "./dist/client/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./shared": {
|
|
36
|
+
"types": "./dist/shared/index.d.ts",
|
|
37
|
+
"default": "./dist/shared/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./agents": {
|
|
40
|
+
"types": "./dist/agents/index.d.ts",
|
|
41
|
+
"default": "./dist/agents/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./agents/*": {
|
|
44
|
+
"types": "./dist/agents/*/index.d.ts",
|
|
45
|
+
"default": "./dist/agents/*/index.js"
|
|
30
46
|
}
|
|
31
47
|
},
|
|
32
48
|
"scripts": {
|
|
33
49
|
"prepublishOnly": "npm run build",
|
|
34
|
-
"build": "tsc -p tsconfig.build.json",
|
|
50
|
+
"build": "tsc -p tsconfig.build.json && npm run copy-yaml",
|
|
51
|
+
"copy-yaml": "find src/agents -name '*.yaml' -exec sh -c 'mkdir -p dist/agents/$(dirname \"{}\" | sed \"s|src/agents/||\") && cp \"{}\" dist/agents/$(dirname \"{}\" | sed \"s|src/agents/||\")/$(basename \"{}\")' \\;",
|
|
35
52
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
36
53
|
"test": "jest",
|
|
37
54
|
"test:watch": "jest --watch",
|
|
@@ -44,11 +61,16 @@
|
|
|
44
61
|
},
|
|
45
62
|
"keywords": [
|
|
46
63
|
"yaml",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"manager",
|
|
64
|
+
"agents",
|
|
65
|
+
"ai-agents",
|
|
66
|
+
"declarative",
|
|
51
67
|
"secure",
|
|
68
|
+
"sandbox",
|
|
69
|
+
"isolated-vm",
|
|
70
|
+
"multi-tenant",
|
|
71
|
+
"gemini",
|
|
72
|
+
"genkit",
|
|
73
|
+
"workflow",
|
|
52
74
|
"nodejs"
|
|
53
75
|
],
|
|
54
76
|
"author": "Beddel Contributors",
|
|
@@ -63,25 +85,39 @@
|
|
|
63
85
|
"homepage": "https://github.com/botanarede/beddel-alpha#readme",
|
|
64
86
|
"dependencies": {
|
|
65
87
|
"@ai-sdk/google": "^2.0.23",
|
|
88
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
66
89
|
"@upstash/redis": "^1.34.3",
|
|
67
90
|
"ai": "^5.0.70",
|
|
68
|
-
"
|
|
91
|
+
"chromadb": "^3.1.8",
|
|
92
|
+
"eventsource": "^2.0.2",
|
|
69
93
|
"graphql": "^16.10.0",
|
|
70
94
|
"graphql-yoga": "^5.13.5",
|
|
71
95
|
"isolated-vm": "5.0.1",
|
|
72
|
-
"js-yaml": "^4.1.
|
|
96
|
+
"js-yaml": "^4.1.1",
|
|
97
|
+
"server-only": "^0.0.1",
|
|
73
98
|
"zod": "^4.1.12"
|
|
74
99
|
},
|
|
100
|
+
"peerDependencies": {
|
|
101
|
+
"firebase-admin": ">=12.0.0"
|
|
102
|
+
},
|
|
103
|
+
"peerDependenciesMeta": {
|
|
104
|
+
"firebase-admin": {
|
|
105
|
+
"optional": true
|
|
106
|
+
}
|
|
107
|
+
},
|
|
75
108
|
"devDependencies": {
|
|
109
|
+
"@eslint/js": "^9.39.2",
|
|
110
|
+
"@types/eventsource": "^1.1.15",
|
|
111
|
+
"@types/jest": "^29.5.12",
|
|
76
112
|
"@types/js-yaml": "^4.0.9",
|
|
77
113
|
"@types/node": "^22.0.0",
|
|
78
|
-
"@types/jest": "^29.5.12",
|
|
79
114
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
80
115
|
"@typescript-eslint/parser": "^8.0.0",
|
|
81
116
|
"eslint": "^9.0.0",
|
|
82
117
|
"jest": "^29.0.0",
|
|
83
118
|
"ts-jest": "^29.0.0",
|
|
84
|
-
"typescript": "^5.0.0"
|
|
119
|
+
"typescript": "^5.0.0",
|
|
120
|
+
"typescript-eslint": "^8.50.0"
|
|
85
121
|
},
|
|
86
122
|
"engines": {
|
|
87
123
|
"node": ">=18.0.0"
|