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,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agnostic Multi-Tenant Interfaces
|
|
3
|
+
* Provider-independent abstractions for multi-tenant operations
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// Provider Types
|
|
8
|
+
// =============================================================================
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Built-in provider type
|
|
12
|
+
*/
|
|
13
|
+
export type BuiltInProviderType = 'memory';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Provider type accepts built-in or any registered external type
|
|
17
|
+
*/
|
|
18
|
+
export type ProviderType = BuiltInProviderType | string;
|
|
19
|
+
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// Provider-Specific Configurations
|
|
22
|
+
// =============================================================================
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Firebase-specific provider configuration
|
|
26
|
+
*/
|
|
27
|
+
export interface FirebaseProviderConfig {
|
|
28
|
+
projectId: string;
|
|
29
|
+
databaseURL: string;
|
|
30
|
+
storageBucket: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* In-memory provider configuration (for testing)
|
|
35
|
+
*/
|
|
36
|
+
export interface MemoryProviderConfig {
|
|
37
|
+
persistToDisk?: boolean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// Agnostic Tenant Configuration
|
|
42
|
+
// =============================================================================
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Provider-agnostic tenant configuration
|
|
46
|
+
*/
|
|
47
|
+
export interface TenantConfig {
|
|
48
|
+
tenantId: string;
|
|
49
|
+
securityProfile: 'ultra-secure' | 'tenant-isolated';
|
|
50
|
+
dataRetentionDays: number;
|
|
51
|
+
lgpdEnabled: boolean;
|
|
52
|
+
gdprEnabled: boolean;
|
|
53
|
+
provider: ProviderType;
|
|
54
|
+
providerConfig: FirebaseProviderConfig | MemoryProviderConfig;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// =============================================================================
|
|
58
|
+
// Core Interfaces
|
|
59
|
+
// =============================================================================
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Abstract provider interface for tenant management
|
|
63
|
+
* Implements Strategy pattern for swappable backends
|
|
64
|
+
*/
|
|
65
|
+
export interface ITenantProvider {
|
|
66
|
+
/**
|
|
67
|
+
* Initialize a new tenant with the given configuration
|
|
68
|
+
* @throws TenantAlreadyExistsError if tenant already exists
|
|
69
|
+
* @throws ValidationError if configuration is invalid
|
|
70
|
+
*/
|
|
71
|
+
initialize(config: TenantConfig): Promise<ITenantApp>;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Get an existing tenant app by ID
|
|
75
|
+
* @throws NotFoundError if tenant does not exist
|
|
76
|
+
*/
|
|
77
|
+
get(tenantId: string): ITenantApp;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Remove a tenant and release all associated resources
|
|
81
|
+
* @throws NotFoundError if tenant does not exist
|
|
82
|
+
*/
|
|
83
|
+
remove(tenantId: string): Promise<void>;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* List all active tenant IDs
|
|
87
|
+
*/
|
|
88
|
+
list(): string[];
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The type of this provider
|
|
92
|
+
*/
|
|
93
|
+
readonly type: ProviderType;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Abstract tenant app representing an isolated tenant instance
|
|
98
|
+
*/
|
|
99
|
+
export interface ITenantApp {
|
|
100
|
+
/**
|
|
101
|
+
* Unique identifier for this tenant
|
|
102
|
+
*/
|
|
103
|
+
readonly tenantId: string;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get the database interface for this tenant
|
|
107
|
+
*/
|
|
108
|
+
getDatabase(): ITenantDatabase;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Destroy this tenant app and release resources
|
|
112
|
+
*/
|
|
113
|
+
destroy(): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Abstract database interface for tenant data operations
|
|
118
|
+
*/
|
|
119
|
+
export interface ITenantDatabase {
|
|
120
|
+
/**
|
|
121
|
+
* Get a collection by name
|
|
122
|
+
*/
|
|
123
|
+
collection(name: string): ITenantCollection;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Abstract collection interface for document operations
|
|
128
|
+
*/
|
|
129
|
+
export interface ITenantCollection {
|
|
130
|
+
/**
|
|
131
|
+
* Get a document reference by ID
|
|
132
|
+
*/
|
|
133
|
+
doc(id: string): ITenantDocument;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Add a new document with auto-generated ID
|
|
137
|
+
* @returns The generated document ID
|
|
138
|
+
*/
|
|
139
|
+
add(data: Record<string, unknown>): Promise<string>;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Get all documents in this collection
|
|
143
|
+
*/
|
|
144
|
+
get(): Promise<Array<{ id: string; data: Record<string, unknown> }>>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Abstract document interface for CRUD operations
|
|
149
|
+
*/
|
|
150
|
+
export interface ITenantDocument {
|
|
151
|
+
/**
|
|
152
|
+
* Get the document data
|
|
153
|
+
* @returns Document data or null if not found
|
|
154
|
+
*/
|
|
155
|
+
get(): Promise<Record<string, unknown> | null>;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Set the document data (creates or overwrites)
|
|
159
|
+
*/
|
|
160
|
+
set(data: Record<string, unknown>): Promise<void>;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Update specific fields in the document
|
|
164
|
+
* @throws NotFoundError if document does not exist
|
|
165
|
+
*/
|
|
166
|
+
update(data: Record<string, unknown>): Promise<void>;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Delete the document
|
|
170
|
+
*/
|
|
171
|
+
delete(): Promise<void>;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// =============================================================================
|
|
175
|
+
// Error Types
|
|
176
|
+
// =============================================================================
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Base error for tenant operations
|
|
180
|
+
*/
|
|
181
|
+
export class TenantError extends Error {
|
|
182
|
+
constructor(message: string, public code?: string) {
|
|
183
|
+
super(message);
|
|
184
|
+
this.name = 'TenantError';
|
|
185
|
+
Object.setPrototypeOf(this, TenantError.prototype);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Thrown when configuration validation fails
|
|
191
|
+
*/
|
|
192
|
+
export class ValidationError extends TenantError {
|
|
193
|
+
constructor(message: string) {
|
|
194
|
+
super(message, 'VALIDATION_ERROR');
|
|
195
|
+
this.name = 'ValidationError';
|
|
196
|
+
Object.setPrototypeOf(this, ValidationError.prototype);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Thrown when a requested resource is not found
|
|
202
|
+
*/
|
|
203
|
+
export class NotFoundError extends TenantError {
|
|
204
|
+
constructor(message: string) {
|
|
205
|
+
super(message, 'NOT_FOUND');
|
|
206
|
+
this.name = 'NotFoundError';
|
|
207
|
+
Object.setPrototypeOf(this, NotFoundError.prototype);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Thrown when an operation is not supported by the provider
|
|
213
|
+
*/
|
|
214
|
+
export class NotSupportedError extends TenantError {
|
|
215
|
+
constructor(message: string) {
|
|
216
|
+
super(message, 'NOT_SUPPORTED');
|
|
217
|
+
this.name = 'NotSupportedError';
|
|
218
|
+
Object.setPrototypeOf(this, NotSupportedError.prototype);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Thrown when attempting to create a tenant that already exists
|
|
224
|
+
*/
|
|
225
|
+
export class TenantAlreadyExistsError extends TenantError {
|
|
226
|
+
constructor(tenantId: string) {
|
|
227
|
+
super(`Tenant '${tenantId}' already exists`, 'TENANT_EXISTS');
|
|
228
|
+
this.name = 'TenantAlreadyExistsError';
|
|
229
|
+
Object.setPrototypeOf(this, TenantAlreadyExistsError.prototype);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Factory
|
|
3
|
+
* Factory function for creating tenant providers based on configuration
|
|
4
|
+
* Uses ProviderRegistry for dynamic provider registration
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
ProviderType,
|
|
9
|
+
ITenantProvider,
|
|
10
|
+
BuiltInProviderType,
|
|
11
|
+
} from './interfaces';
|
|
12
|
+
import { ProviderRegistry } from './providerRegistry';
|
|
13
|
+
import { InMemoryTenantProvider } from './providers/InMemoryTenantProvider';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Built-in provider types
|
|
17
|
+
*/
|
|
18
|
+
const BUILTIN_PROVIDERS: readonly BuiltInProviderType[] = ['memory'] as const;
|
|
19
|
+
|
|
20
|
+
// Register built-in provider on module load
|
|
21
|
+
ProviderRegistry.register('memory', () => new InMemoryTenantProvider());
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Check if a value is a valid built-in ProviderType
|
|
25
|
+
*/
|
|
26
|
+
export function isBuiltInProviderType(type: unknown): type is BuiltInProviderType {
|
|
27
|
+
return typeof type === 'string' && BUILTIN_PROVIDERS.includes(type as BuiltInProviderType);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Check if a value is a valid ProviderType (built-in or registered)
|
|
32
|
+
*/
|
|
33
|
+
export function isValidProviderType(type: unknown): type is ProviderType {
|
|
34
|
+
if (typeof type !== 'string') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return isBuiltInProviderType(type) || ProviderRegistry.isRegistered(type);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Create a tenant provider instance based on the specified type
|
|
42
|
+
*
|
|
43
|
+
* @param type - The provider type to create (built-in or registered)
|
|
44
|
+
* @returns An instance of ITenantProvider for the specified type
|
|
45
|
+
* @throws ValidationError if the provider type is not registered
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Create an in-memory provider for testing (built-in)
|
|
50
|
+
* const memoryProvider = createProvider('memory');
|
|
51
|
+
*
|
|
52
|
+
* // Create a Firebase provider (must be registered by application first)
|
|
53
|
+
* // In your app: ProviderRegistry.register('firebase', () => new FirebaseTenantProvider());
|
|
54
|
+
* const firebaseProvider = createProvider('firebase');
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function createProvider(type: ProviderType): ITenantProvider {
|
|
58
|
+
return ProviderRegistry.create(type);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Get the list of supported provider types (built-in + registered)
|
|
63
|
+
* @returns Array of supported provider type strings
|
|
64
|
+
*/
|
|
65
|
+
export function getSupportedProviders(): string[] {
|
|
66
|
+
return ProviderRegistry.getRegisteredTypes();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Get the list of built-in provider types
|
|
71
|
+
* @returns Array of built-in provider type strings
|
|
72
|
+
*/
|
|
73
|
+
export function getBuiltInProviders(): readonly BuiltInProviderType[] {
|
|
74
|
+
return BUILTIN_PROVIDERS;
|
|
75
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Registry
|
|
3
|
+
* Dynamic registration system for external tenant providers
|
|
4
|
+
* Allows applications to register custom providers at runtime
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ITenantProvider, ValidationError } from './interfaces';
|
|
8
|
+
|
|
9
|
+
type ProviderFactory = () => ITenantProvider;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Registry for tenant providers
|
|
13
|
+
* Applications register their providers here before using TenantManager
|
|
14
|
+
*/
|
|
15
|
+
class ProviderRegistryClass {
|
|
16
|
+
private providers: Map<string, ProviderFactory> = new Map();
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Register a provider factory
|
|
20
|
+
* @param type - Unique provider type identifier
|
|
21
|
+
* @param factory - Factory function that creates the provider instance
|
|
22
|
+
* @throws ValidationError if type is already registered
|
|
23
|
+
*/
|
|
24
|
+
register(type: string, factory: ProviderFactory): void {
|
|
25
|
+
if (!type || typeof type !== 'string') {
|
|
26
|
+
throw new ValidationError('Provider type must be a non-empty string');
|
|
27
|
+
}
|
|
28
|
+
if (typeof factory !== 'function') {
|
|
29
|
+
throw new ValidationError('Provider factory must be a function');
|
|
30
|
+
}
|
|
31
|
+
if (this.providers.has(type)) {
|
|
32
|
+
throw new ValidationError(`Provider type '${type}' is already registered`);
|
|
33
|
+
}
|
|
34
|
+
this.providers.set(type, factory);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Unregister a provider
|
|
39
|
+
* @param type - Provider type to remove
|
|
40
|
+
*/
|
|
41
|
+
unregister(type: string): void {
|
|
42
|
+
this.providers.delete(type);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create a provider instance
|
|
47
|
+
* @param type - Provider type to create
|
|
48
|
+
* @throws ValidationError if provider type is not registered
|
|
49
|
+
*/
|
|
50
|
+
create(type: string): ITenantProvider {
|
|
51
|
+
const factory = this.providers.get(type);
|
|
52
|
+
if (!factory) {
|
|
53
|
+
const registered = this.getRegisteredTypes();
|
|
54
|
+
const available = registered.length > 0
|
|
55
|
+
? `Available types: ${registered.join(', ')}`
|
|
56
|
+
: 'No providers registered';
|
|
57
|
+
throw new ValidationError(
|
|
58
|
+
`Unknown provider type: '${type}'. ${available}`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return factory();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Check if a provider type is registered
|
|
66
|
+
*/
|
|
67
|
+
isRegistered(type: string): boolean {
|
|
68
|
+
return this.providers.has(type);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Get all registered provider types
|
|
73
|
+
*/
|
|
74
|
+
getRegisteredTypes(): string[] {
|
|
75
|
+
return Array.from(this.providers.keys());
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Clear all registered providers (useful for testing)
|
|
80
|
+
*/
|
|
81
|
+
clear(): void {
|
|
82
|
+
this.providers.clear();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export const ProviderRegistry = new ProviderRegistryClass();
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Tenant Provider
|
|
3
|
+
* Implements ITenantProvider for testing without external dependencies
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
ITenantProvider,
|
|
8
|
+
ITenantApp,
|
|
9
|
+
ITenantDatabase,
|
|
10
|
+
ITenantCollection,
|
|
11
|
+
ITenantDocument,
|
|
12
|
+
TenantConfig,
|
|
13
|
+
ProviderType,
|
|
14
|
+
NotFoundError,
|
|
15
|
+
TenantAlreadyExistsError,
|
|
16
|
+
} from '../interfaces';
|
|
17
|
+
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// In-Memory Document Implementation
|
|
20
|
+
// =============================================================================
|
|
21
|
+
|
|
22
|
+
class InMemoryDocument implements ITenantDocument {
|
|
23
|
+
constructor(
|
|
24
|
+
private storage: Map<string, Record<string, unknown>>,
|
|
25
|
+
private docId: string
|
|
26
|
+
) {}
|
|
27
|
+
|
|
28
|
+
async get(): Promise<Record<string, unknown> | null> {
|
|
29
|
+
return this.storage.get(this.docId) ?? null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async set(data: Record<string, unknown>): Promise<void> {
|
|
33
|
+
this.storage.set(this.docId, { ...data });
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async update(data: Record<string, unknown>): Promise<void> {
|
|
37
|
+
const existing = this.storage.get(this.docId);
|
|
38
|
+
if (!existing) {
|
|
39
|
+
throw new NotFoundError(`Document '${this.docId}' not found`);
|
|
40
|
+
}
|
|
41
|
+
this.storage.set(this.docId, { ...existing, ...data });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async delete(): Promise<void> {
|
|
45
|
+
this.storage.delete(this.docId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// =============================================================================
|
|
51
|
+
// In-Memory Collection Implementation
|
|
52
|
+
// =============================================================================
|
|
53
|
+
|
|
54
|
+
class InMemoryCollection implements ITenantCollection {
|
|
55
|
+
private documents: Map<string, Record<string, unknown>> = new Map();
|
|
56
|
+
private autoIdCounter = 0;
|
|
57
|
+
|
|
58
|
+
constructor(private collectionName: string) {}
|
|
59
|
+
|
|
60
|
+
doc(id: string): ITenantDocument {
|
|
61
|
+
return new InMemoryDocument(this.documents, id);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async add(data: Record<string, unknown>): Promise<string> {
|
|
65
|
+
const id = `${this.collectionName}_${++this.autoIdCounter}_${Date.now()}`;
|
|
66
|
+
this.documents.set(id, { ...data });
|
|
67
|
+
return id;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async get(): Promise<Array<{ id: string; data: Record<string, unknown> }>> {
|
|
71
|
+
const results: Array<{ id: string; data: Record<string, unknown> }> = [];
|
|
72
|
+
for (const [id, data] of this.documents) {
|
|
73
|
+
results.push({ id, data: { ...data } });
|
|
74
|
+
}
|
|
75
|
+
return results;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// In-Memory Database Implementation
|
|
81
|
+
// =============================================================================
|
|
82
|
+
|
|
83
|
+
class InMemoryDatabase implements ITenantDatabase {
|
|
84
|
+
private collections: Map<string, InMemoryCollection> = new Map();
|
|
85
|
+
|
|
86
|
+
collection(name: string): ITenantCollection {
|
|
87
|
+
let coll = this.collections.get(name);
|
|
88
|
+
if (!coll) {
|
|
89
|
+
coll = new InMemoryCollection(name);
|
|
90
|
+
this.collections.set(name, coll);
|
|
91
|
+
}
|
|
92
|
+
return coll;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
// =============================================================================
|
|
98
|
+
// In-Memory Tenant App Implementation
|
|
99
|
+
// =============================================================================
|
|
100
|
+
|
|
101
|
+
class InMemoryTenantApp implements ITenantApp {
|
|
102
|
+
private database: InMemoryDatabase;
|
|
103
|
+
private destroyed = false;
|
|
104
|
+
|
|
105
|
+
constructor(
|
|
106
|
+
public readonly tenantId: string,
|
|
107
|
+
public readonly config: TenantConfig
|
|
108
|
+
) {
|
|
109
|
+
this.database = new InMemoryDatabase();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
getDatabase(): ITenantDatabase {
|
|
113
|
+
if (this.destroyed) {
|
|
114
|
+
throw new NotFoundError(`Tenant '${this.tenantId}' has been destroyed`);
|
|
115
|
+
}
|
|
116
|
+
return this.database;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async destroy(): Promise<void> {
|
|
120
|
+
this.destroyed = true;
|
|
121
|
+
// Clear internal references to allow garbage collection
|
|
122
|
+
this.database = null as unknown as InMemoryDatabase;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// =============================================================================
|
|
127
|
+
// In-Memory Tenant Provider Implementation
|
|
128
|
+
// =============================================================================
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* In-memory implementation of ITenantProvider
|
|
132
|
+
* Useful for testing without external dependencies
|
|
133
|
+
*/
|
|
134
|
+
export class InMemoryTenantProvider implements ITenantProvider {
|
|
135
|
+
public readonly type: ProviderType = 'memory';
|
|
136
|
+
private tenants: Map<string, InMemoryTenantApp> = new Map();
|
|
137
|
+
|
|
138
|
+
async initialize(config: TenantConfig): Promise<ITenantApp> {
|
|
139
|
+
if (this.tenants.has(config.tenantId)) {
|
|
140
|
+
throw new TenantAlreadyExistsError(config.tenantId);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const app = new InMemoryTenantApp(config.tenantId, config);
|
|
144
|
+
this.tenants.set(config.tenantId, app);
|
|
145
|
+
return app;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
get(tenantId: string): ITenantApp {
|
|
149
|
+
const app = this.tenants.get(tenantId);
|
|
150
|
+
if (!app) {
|
|
151
|
+
throw new NotFoundError(`Tenant '${tenantId}' not found`);
|
|
152
|
+
}
|
|
153
|
+
return app;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
async remove(tenantId: string): Promise<void> {
|
|
157
|
+
const app = this.tenants.get(tenantId);
|
|
158
|
+
if (!app) {
|
|
159
|
+
throw new NotFoundError(`Tenant '${tenantId}' not found`);
|
|
160
|
+
}
|
|
161
|
+
await app.destroy();
|
|
162
|
+
this.tenants.delete(tenantId);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
list(): string[] {
|
|
166
|
+
return Array.from(this.tenants.keys());
|
|
167
|
+
}
|
|
168
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentRegistry.d.ts","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;;IAiBpE;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,cAAc,UAAQ,GAAG,IAAI;IAc5E;;OAEG;IACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,GAAG,CAAC;IAkBf;;OAEG;IACI,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE;;OAEG;IACI,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;;OAGG;IACU,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CvE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmDtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;OAGG;YACW,mBAAmB;IAuCjC;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;CAG7D;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentRegistry.js","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":"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"}
|