@undefineds.co/xpod 0.3.58 → 0.3.62
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/README.md +3 -0
- package/config/cli.json +88 -0
- package/config/cloud.json +32 -1
- package/config/components-ignore.json +3 -0
- package/config/extensions.local.initializer.json +44 -0
- package/config/resolver.json +86 -0
- package/config/xpod.base.json +4 -0
- package/dist/agents/AgentExecutorFactory.d.ts +3 -3
- package/dist/agents/AgentExecutorFactory.js +28 -15
- package/dist/agents/AgentExecutorFactory.js.map +1 -1
- package/dist/agents/BaseAgentExecutor.d.ts +2 -1
- package/dist/agents/BaseAgentExecutor.js +1 -0
- package/dist/agents/BaseAgentExecutor.js.map +1 -1
- package/dist/agents/ClaudeExecutor.d.ts +3 -1
- package/dist/agents/ClaudeExecutor.js +18 -12
- package/dist/agents/ClaudeExecutor.js.map +1 -1
- package/dist/agents/config/resolve.js +0 -21
- package/dist/agents/config/resolve.js.map +1 -1
- package/dist/agents/config/types.d.ts +2 -7
- package/dist/agents/config/types.js +2 -1
- package/dist/agents/config/types.js.map +1 -1
- package/dist/agents/types.d.ts +18 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/ai/schema/types.d.ts +2 -1
- package/dist/ai/schema/types.js +1 -0
- package/dist/ai/schema/types.js.map +1 -1
- package/dist/ai/service/CredentialReader.d.ts +3 -1
- package/dist/ai/service/CredentialReader.js.map +1 -1
- package/dist/ai/service/CredentialReaderImpl.d.ts +3 -1
- package/dist/ai/service/CredentialReaderImpl.js +24 -2
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
- package/dist/ai/service/EmbeddingServiceImpl.js +13 -2
- package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.d.ts +4 -0
- package/dist/ai/service/ProviderRegistry.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.jsonld +4 -0
- package/dist/ai/service/ProviderRegistryImpl.d.ts +4 -1
- package/dist/ai/service/ProviderRegistryImpl.js +26 -4
- package/dist/ai/service/ProviderRegistryImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistryImpl.jsonld +12 -0
- package/dist/ai/service/defaultEmbeddingProfile.d.ts +5 -0
- package/dist/ai/service/defaultEmbeddingProfile.js +31 -0
- package/dist/ai/service/defaultEmbeddingProfile.js.map +1 -0
- package/dist/ai/service/index.d.ts +1 -0
- package/dist/ai/service/index.js +1 -0
- package/dist/ai/service/index.js.map +1 -1
- package/dist/ai/service/types.d.ts +1 -0
- package/dist/ai/service/types.js.map +1 -1
- package/dist/api/ApiServer.js +17 -2
- package/dist/api/ApiServer.js.map +1 -1
- package/dist/api/ai-gateway/AiGatewayService.d.ts +106 -0
- package/dist/api/ai-gateway/AiGatewayService.js +527 -0
- package/dist/api/ai-gateway/AiGatewayService.js.map +1 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.d.ts +38 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js +128 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js.map +1 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.d.ts +25 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js +91 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.d.ts +28 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js +162 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.d.ts +56 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js +143 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.d.ts +26 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js +97 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.d.ts +20 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js +37 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js.map +1 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.d.ts +41 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js +221 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.d.ts +54 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js +152 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js.map +1 -0
- package/dist/api/ai-gateway/connect/index.d.ts +367 -0
- package/dist/api/ai-gateway/connect/index.js +1061 -0
- package/dist/api/ai-gateway/connect/index.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.d.ts +40 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js +59 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.d.ts +14 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js +11 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js +3 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js +145 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.d.ts +13 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js +133 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js +62 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js +173 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/errors.d.ts +21 -0
- package/dist/api/ai-gateway/errors.js +50 -0
- package/dist/api/ai-gateway/errors.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js +111 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js +99 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js +232 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/index.d.ts +3 -0
- package/dist/api/ai-gateway/protocol/index.js +10 -0
- package/dist/api/ai-gateway/protocol/index.js.map +1 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.d.ts +7 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +37 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.d.ts +9 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +127 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js +47 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js +57 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.d.ts +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js +6 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.d.ts +13 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +34 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +68 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js +288 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +88 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +645 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +13 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +48 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/index.d.ts +9 -0
- package/dist/api/ai-gateway/providers/index.js +26 -0
- package/dist/api/ai-gateway/providers/index.js.map +1 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js +83 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js +70 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.d.ts +214 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js +511 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/index.d.ts +6 -0
- package/dist/api/ai-gateway/quota/index.js +23 -0
- package/dist/api/ai-gateway/quota/index.js.map +1 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.d.ts +26 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js +67 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/ModelRouter.d.ts +84 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js +274 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js.map +1 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.d.ts +39 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js +122 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.d.ts +49 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js +66 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.d.ts +25 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js +50 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js.map +1 -0
- package/dist/api/ai-gateway/types.d.ts +112 -0
- package/dist/api/ai-gateway/types.js +305 -0
- package/dist/api/ai-gateway/types.js.map +1 -0
- package/dist/api/auth/AuthContext.d.ts +18 -3
- package/dist/api/auth/AuthContext.js +13 -2
- package/dist/api/auth/AuthContext.js.map +1 -1
- package/dist/api/auth/Authenticator.d.ts +3 -0
- package/dist/api/auth/Authenticator.js.map +1 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -6
- package/dist/api/auth/ClientCredentialsAuthenticator.js +12 -30
- package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
- package/dist/api/auth/SolidTokenAuthenticator.d.ts +2 -0
- package/dist/api/auth/SolidTokenAuthenticator.js +88 -2
- package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
- package/dist/api/auth/TokenIdentity.d.ts +6 -0
- package/dist/api/auth/TokenIdentity.js +31 -0
- package/dist/api/auth/TokenIdentity.js.map +1 -0
- package/dist/api/chatkit/ai-provider.d.ts +9 -23
- package/dist/api/chatkit/ai-provider.js +30 -153
- package/dist/api/chatkit/ai-provider.js.map +1 -1
- package/dist/api/chatkit/default-agent.d.ts +24 -15
- package/dist/api/chatkit/default-agent.js +24 -83
- package/dist/api/chatkit/default-agent.js.map +1 -1
- package/dist/api/chatkit/index.d.ts +2 -1
- package/dist/api/chatkit/index.js +3 -1
- package/dist/api/chatkit/index.js.map +1 -1
- package/dist/api/chatkit/pod-store.d.ts +13 -1
- package/dist/api/chatkit/pod-store.js +127 -7
- package/dist/api/chatkit/pod-store.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +0 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js +14 -51
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpRunner.js +2 -1
- package/dist/api/chatkit/runtime/AcpRunner.js.map +1 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +15 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +52 -34
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -1
- package/dist/api/chatkit/service.d.ts +8 -1
- package/dist/api/chatkit/service.js +46 -5
- package/dist/api/chatkit/service.js.map +1 -1
- package/dist/api/chatkit/store.d.ts +23 -1
- package/dist/api/chatkit/store.js +56 -0
- package/dist/api/chatkit/store.js.map +1 -1
- package/dist/api/chatkit/types.d.ts +1 -0
- package/dist/api/chatkit/types.js.map +1 -1
- package/dist/api/container/common.js +286 -13
- package/dist/api/container/common.js.map +1 -1
- package/dist/api/container/index.js +126 -6
- package/dist/api/container/index.js.map +1 -1
- package/dist/api/container/local.js +50 -6
- package/dist/api/container/local.js.map +1 -1
- package/dist/api/container/rdf.d.ts +15 -0
- package/dist/api/container/rdf.js +90 -0
- package/dist/api/container/rdf.js.map +1 -0
- package/dist/api/container/routes.js +151 -11
- package/dist/api/container/routes.js.map +1 -1
- package/dist/api/container/types.d.ts +96 -0
- package/dist/api/container/types.js.map +1 -1
- package/dist/api/handlers/AdminHandler.d.ts +25 -2
- package/dist/api/handlers/AdminHandler.js +60 -10
- package/dist/api/handlers/AdminHandler.js.map +1 -1
- package/dist/api/handlers/AiClientConfigurationHandler.d.ts +7 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js +202 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayHandler.d.ts +23 -0
- package/dist/api/handlers/AiGatewayHandler.js +231 -0
- package/dist/api/handlers/AiGatewayHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayManagementHandler.d.ts +24 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js +503 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js.map +1 -0
- package/dist/api/handlers/ChatHandler.d.ts +11 -12
- package/dist/api/handlers/ChatHandler.js +12 -219
- package/dist/api/handlers/ChatHandler.js.map +1 -1
- package/dist/api/handlers/DashboardHandler.js +22 -116
- package/dist/api/handlers/DashboardHandler.js.map +1 -1
- package/dist/api/handlers/NetworkSettingsHandler.d.ts +97 -0
- package/dist/api/handlers/NetworkSettingsHandler.js +511 -0
- package/dist/api/handlers/NetworkSettingsHandler.js.map +1 -0
- package/dist/api/handlers/PodSettingsHandler.d.ts +79 -0
- package/dist/api/handlers/PodSettingsHandler.js +162 -0
- package/dist/api/handlers/PodSettingsHandler.js.map +1 -0
- package/dist/api/handlers/ProvisionHandler.d.ts +3 -1
- package/dist/api/handlers/ProvisionHandler.js +22 -87
- package/dist/api/handlers/ProvisionHandler.js.map +1 -1
- package/dist/api/handlers/RdfStatsHandler.d.ts +6 -0
- package/dist/api/handlers/RdfStatsHandler.js +85 -0
- package/dist/api/handlers/RdfStatsHandler.js.map +1 -0
- package/dist/api/handlers/SettingsHandler.d.ts +5 -0
- package/dist/api/handlers/SettingsHandler.js +13 -0
- package/dist/api/handlers/SettingsHandler.js.map +1 -0
- package/dist/api/handlers/StaticSpaHandler.d.ts +8 -0
- package/dist/api/handlers/StaticSpaHandler.js +102 -0
- package/dist/api/handlers/StaticSpaHandler.js.map +1 -0
- package/dist/api/handlers/index.d.ts +1 -0
- package/dist/api/handlers/index.js +1 -0
- package/dist/api/handlers/index.js.map +1 -1
- package/dist/api/http/readBoundedJsonBody.d.ts +14 -0
- package/dist/api/http/readBoundedJsonBody.js +58 -0
- package/dist/api/http/readBoundedJsonBody.js.map +1 -0
- package/dist/api/middleware/AuthMiddleware.d.ts +1 -0
- package/dist/api/middleware/AuthMiddleware.js +33 -4
- package/dist/api/middleware/AuthMiddleware.js.map +1 -1
- package/dist/api/runs/AgentRuntimeTypes.d.ts +18 -3
- package/dist/api/runs/AgentRuntimeTypes.js +61 -0
- package/dist/api/runs/AgentRuntimeTypes.js.map +1 -1
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +28 -3
- package/dist/api/runs/InngestRunExecutionBackend.js +26 -3
- package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -1
- package/dist/api/runs/ManagedRunWorker.d.ts +4 -1
- package/dist/api/runs/ManagedRunWorker.js +39 -8
- package/dist/api/runs/ManagedRunWorker.js.map +1 -1
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +5 -1
- package/dist/api/runs/PiAgentRuntimeDriver.js +94 -57
- package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
- package/dist/api/runs/RdfRunContextRetriever.d.ts +46 -0
- package/dist/api/runs/RdfRunContextRetriever.js +277 -0
- package/dist/api/runs/RdfRunContextRetriever.js.map +1 -0
- package/dist/api/runs/RunExecutionBackend.d.ts +38 -0
- package/dist/api/runs/RunExecutionBackend.js.map +1 -1
- package/dist/api/runs/RunStateCenter.d.ts +18 -3
- package/dist/api/runs/RunStateCenter.js +85 -24
- package/dist/api/runs/RunStateCenter.js.map +1 -1
- package/dist/api/runtime.js +163 -3
- package/dist/api/runtime.js.map +1 -1
- package/dist/api/service/AiClientConfigurationService.d.ts +97 -0
- package/dist/api/service/AiClientConfigurationService.js +379 -0
- package/dist/api/service/AiClientConfigurationService.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.d.ts +86 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js +349 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportGate.d.ts +78 -0
- package/dist/api/service/RdfBenchmarkReportGate.js +197 -0
- package/dist/api/service/RdfBenchmarkReportGate.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingService.d.ts +113 -0
- package/dist/api/service/RdfSearchIndexingService.js +272 -0
- package/dist/api/service/RdfSearchIndexingService.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +27 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +90 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js.map +1 -0
- package/dist/api/service/RdfStorageStatsService.d.ts +31 -0
- package/dist/api/service/RdfStorageStatsService.js +97 -0
- package/dist/api/service/RdfStorageStatsService.js.map +1 -0
- package/dist/api/service/VectorStoreService.d.ts +2 -0
- package/dist/api/service/VectorStoreService.js +70 -2
- package/dist/api/service/VectorStoreService.js.map +1 -1
- package/dist/api/service/VercelChatService.d.ts +27 -38
- package/dist/api/service/VercelChatService.js +153 -505
- package/dist/api/service/VercelChatService.js.map +1 -1
- package/dist/api/service/provider-http-transport.d.ts +21 -0
- package/dist/api/service/provider-http-transport.js +108 -2
- package/dist/api/service/provider-http-transport.js.map +1 -1
- package/dist/api/service/provider-registry.d.ts +5 -7
- package/dist/api/service/provider-registry.js +81 -64
- package/dist/api/service/provider-registry.js.map +1 -1
- package/dist/api/tasks/InngestTaskScheduler.d.ts +44 -4
- package/dist/api/tasks/TaskMaterializer.d.ts +10 -1
- package/dist/api/tasks/TaskMaterializer.js +39 -4
- package/dist/api/tasks/TaskMaterializer.js.map +1 -1
- package/dist/api/tasks/TaskService.d.ts +5 -1
- package/dist/api/tasks/TaskService.js +3 -0
- package/dist/api/tasks/TaskService.js.map +1 -1
- package/dist/cli/commands/rdf.d.ts +9 -0
- package/dist/cli/commands/rdf.js +66 -1
- package/dist/cli/commands/rdf.js.map +1 -1
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/lib/solid-auth.d.ts +3 -3
- package/dist/cli/lib/solid-auth.js +4 -4
- package/dist/cli/lib/solid-auth.js.map +1 -1
- package/dist/components/components.jsonld +16 -0
- package/dist/components/context.jsonld +815 -28
- package/dist/document/Chunker.jsonld +110 -0
- package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
- package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
- package/dist/document/DocumentReader.js.map +1 -0
- package/dist/document/DocumentReader.jsonld +82 -0
- package/dist/document/HeadingChunker.jsonld +41 -0
- package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
- package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
- package/dist/document/JinaReader.js.map +1 -0
- package/dist/document/JinaReader.jsonld +133 -0
- package/dist/document/L0SourceSummary.d.ts +103 -0
- package/dist/document/L0SourceSummary.js +157 -0
- package/dist/document/L0SourceSummary.js.map +1 -0
- package/dist/document/L0SourceSummary.jsonld +326 -0
- package/dist/document/PaddleOcrReader.d.ts +40 -0
- package/dist/document/PaddleOcrReader.js +53 -0
- package/dist/document/PaddleOcrReader.js.map +1 -0
- package/dist/document/PaddleOcrReader.jsonld +234 -0
- package/dist/document/ReaderAiConfig.d.ts +50 -0
- package/dist/document/ReaderAiConfig.js +109 -0
- package/dist/document/ReaderAiConfig.js.map +1 -0
- package/dist/document/ReaderAiConfig.jsonld +185 -0
- package/dist/document/ReaderPolicy.d.ts +89 -0
- package/dist/document/ReaderPolicy.js +158 -0
- package/dist/document/ReaderPolicy.js.map +1 -0
- package/dist/document/ReaderPolicy.jsonld +218 -0
- package/dist/document/index.d.ts +6 -2
- package/dist/document/index.js +6 -2
- package/dist/document/index.js.map +1 -1
- package/dist/edge/DdnsManager.d.ts +1 -1
- package/dist/edge/DdnsManager.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.d.ts +4 -0
- package/dist/edge/EdgeNodeAgent.js +6 -0
- package/dist/edge/EdgeNodeAgent.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.jsonld +8 -0
- package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
- package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
- package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
- package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
- package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
- package/dist/edge/acme/AcmeCertificateManager.js +67 -7
- package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
- package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
- package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
- package/dist/edge/acme/ClusterCertificateManager.js +38 -0
- package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
- package/dist/extensions/ExtensionRuntime.d.ts +17 -0
- package/dist/extensions/ExtensionRuntime.js +171 -0
- package/dist/extensions/ExtensionRuntime.js.map +1 -0
- package/dist/extensions/PodCredentialResolver.d.ts +23 -0
- package/dist/extensions/PodCredentialResolver.js +139 -0
- package/dist/extensions/PodCredentialResolver.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/types.d.ts +73 -0
- package/dist/extensions/types.js +3 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
- package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
- package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
- package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
- package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
- package/dist/identity/drizzle/schema.pg.js +1 -1
- package/dist/identity/drizzle/schema.pg.js.map +1 -1
- package/dist/identity/drizzle/schema.sqlite.js +1 -1
- package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
- package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
- package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -1
- package/dist/provision/LocalProvisionState.d.ts +28 -0
- package/dist/provision/LocalProvisionState.js +124 -0
- package/dist/provision/LocalProvisionState.js.map +1 -0
- package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
- package/dist/provision/ProvisionCodeCodec.js +10 -3
- package/dist/provision/ProvisionCodeCodec.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.d.ts +15 -1
- package/dist/provision/ProvisionPodCreator.js +68 -1
- package/dist/provision/ProvisionPodCreator.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.jsonld +31 -0
- package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
- package/dist/provision/ServiceAccessTokenCodec.js +86 -0
- package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
- package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
- package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
- package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
- package/dist/runtime/Proxy.d.ts +10 -0
- package/dist/runtime/Proxy.js +64 -6
- package/dist/runtime/Proxy.js.map +1 -1
- package/dist/runtime/XpodRuntime.js +1 -0
- package/dist/runtime/XpodRuntime.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +1 -0
- package/dist/runtime/bootstrap.js +29 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/css-process.d.ts +1 -0
- package/dist/runtime/css-process.js +1 -0
- package/dist/runtime/css-process.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/lifecycle.d.ts +3 -1
- package/dist/runtime/lifecycle.js +3 -1
- package/dist/runtime/lifecycle.js.map +1 -1
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
- package/dist/runtime/runner/types.d.ts +3 -0
- package/dist/runtime/runner/types.js.map +1 -1
- package/dist/runtime/runtime-types.d.ts +2 -0
- package/dist/runtime/runtime-types.js.map +1 -1
- package/dist/runtime/safe-env.d.ts +15 -0
- package/dist/runtime/safe-env.js +109 -0
- package/dist/runtime/safe-env.js.map +1 -0
- package/dist/security/index.d.ts +1 -0
- package/dist/security/index.js +18 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
- package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
- package/dist/security/secret-cell/SecretCellVault.js +242 -0
- package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
- package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
- package/dist/security/secret-cell/index.d.ts +2 -0
- package/dist/security/secret-cell/index.js +11 -0
- package/dist/security/secret-cell/index.js.map +1 -0
- package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
- package/dist/solidfs/LocalSolidFS.js +25 -1
- package/dist/solidfs/LocalSolidFS.js.map +1 -1
- package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
- package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
- package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
- package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
- package/dist/solidfs/SolidFsMetaNotes.js +103 -0
- package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
- package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
- package/dist/solidfs/SolidFsSyncJournal.js +9 -4
- package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
- package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
- package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
- package/dist/solidfs/WorkspacePrompt.js +42 -0
- package/dist/solidfs/WorkspacePrompt.js.map +1 -0
- package/dist/solidfs/index.d.ts +3 -0
- package/dist/solidfs/index.js +3 -0
- package/dist/solidfs/index.js.map +1 -1
- package/dist/solidfs/types.d.ts +12 -2
- package/dist/solidfs/types.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
- package/dist/storage/accessors/MixDataAccessor.js +222 -23
- package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
- package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
- package/dist/storage/database/PostgresPoolManager.js +2 -2
- package/dist/storage/database/PostgresPoolManager.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
- package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
- package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
- package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
- package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
- package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
- package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
- package/dist/storage/rdf/Rdf3xIndex.js +286 -2
- package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
- package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
- package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
- package/dist/storage/rdf/Rdf3xSchema.js +17 -3
- package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
- package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
- package/dist/storage/rdf/RdfAccessScope.js +345 -0
- package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
- package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
- package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
- package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
- package/dist/storage/rdf/RdfJoinShape.js +31 -0
- package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
- package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
- package/dist/storage/rdf/RdfQuadIndex.js +94 -6
- package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
- package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
- package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
- package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
- package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
- package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
- package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
- package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
- package/dist/storage/rdf/RdfTermDictionary.js +139 -0
- package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
- package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
- package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
- package/dist/storage/rdf/RdfTextIndex.js +810 -114
- package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
- package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
- package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
- package/dist/storage/rdf/RdfTextProjection.js +258 -0
- package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
- package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
- package/dist/storage/rdf/RdfVectorIndex.js +461 -38
- package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
- package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
- package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
- package/dist/storage/rdf/SolidRdfEngine.js +48 -22
- package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
- package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
- package/dist/storage/rdf/index.d.ts +9 -5
- package/dist/storage/rdf/index.js +42 -1
- package/dist/storage/rdf/index.js.map +1 -1
- package/dist/storage/rdf/models-benchmark.d.ts +264 -2
- package/dist/storage/rdf/models-benchmark.js +4207 -155
- package/dist/storage/rdf/models-benchmark.js.map +1 -1
- package/dist/storage/rdf/types.d.ts +833 -4
- package/dist/storage/rdf/types.js.map +1 -1
- package/dist/storage/rdf/types.jsonld +348 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
- package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
- package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
- package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
- package/dist/terminal/sandbox/index.js +2 -1
- package/dist/terminal/sandbox/index.js.map +1 -1
- package/dist/test-utils/no-auth-xpod.js +3 -0
- package/dist/test-utils/no-auth-xpod.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
- package/dist/tunnel/LocalTunnelProvider.js +17 -1
- package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
- package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
- package/dist/tunnel/TunnelProfiles.d.ts +22 -0
- package/dist/tunnel/TunnelProfiles.js +208 -0
- package/dist/tunnel/TunnelProfiles.js.map +1 -0
- package/dist/tunnel/index.d.ts +2 -0
- package/dist/tunnel/index.js +4 -1
- package/dist/tunnel/index.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
- package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
- package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
- package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
- package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
- package/node_modules/@undefineds.co/extensions/README.md +101 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts +25 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js +45 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/langchain.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts +31 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js +50 -0
- package/node_modules/@undefineds.co/extensions/dist/adapters/llamaindex.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/index.d.ts +7 -0
- package/node_modules/@undefineds.co/extensions/dist/index.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/index.js +7 -0
- package/node_modules/@undefineds.co/extensions/dist/index.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts +16 -0
- package/node_modules/@undefineds.co/extensions/dist/paddleocr.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/paddleocr.js +267 -0
- package/node_modules/@undefineds.co/extensions/dist/paddleocr.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/reader.d.ts +18 -0
- package/node_modules/@undefineds.co/extensions/dist/reader.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/reader.js +39 -0
- package/node_modules/@undefineds.co/extensions/dist/reader.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/registry.d.ts +16 -0
- package/node_modules/@undefineds.co/extensions/dist/registry.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/registry.js +97 -0
- package/node_modules/@undefineds.co/extensions/dist/registry.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/types.d.ts +141 -0
- package/node_modules/@undefineds.co/extensions/dist/types.d.ts.map +1 -0
- package/node_modules/@undefineds.co/extensions/dist/types.js +2 -0
- package/node_modules/@undefineds.co/extensions/dist/types.js.map +1 -0
- package/node_modules/@undefineds.co/extensions/package.json +38 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
- package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
- package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
- package/package.json +31 -13
- package/static/app/assets/index-BoYHJ6si.js +230 -0
- package/static/app/assets/inrupt-smoke.js +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +9 -9
- package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
- package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
- package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
- package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
- package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
- package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
- package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
- package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
- package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
- package/static/dashboard/assets/index-RfiFckzb.js +51 -0
- package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
- package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
- package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
- package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
- package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
- package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
- package/static/settings/assets/card-B_bXSIn-.js +1 -0
- package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
- package/static/settings/assets/settings-B30oMfZq.js +305 -0
- package/static/settings/assets/settings-CSdewNeA.css +1 -0
- package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
- package/static/settings/auth.html +21 -0
- package/static/settings/reachability.html +221 -0
- package/static/settings/reachability.svg +7 -0
- package/static/settings/reachability.webmanifest +18 -0
- package/static/settings/settings.html +13 -0
- package/static/settings/signal-pod.html +293 -0
- package/static/settings/vite.svg +1 -0
- package/dist/api/service/ai-gateway-transport.d.ts +0 -25
- package/dist/api/service/ai-gateway-transport.js +0 -136
- package/dist/api/service/ai-gateway-transport.js.map +0 -1
- package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
- package/dist/api/service/chat-protocol-adapters.js +0 -146
- package/dist/api/service/chat-protocol-adapters.js.map +0 -1
- package/dist/api/service/chat-routing.d.ts +0 -8
- package/dist/api/service/chat-routing.js +0 -16
- package/dist/api/service/chat-routing.js.map +0 -1
- package/dist/api/service/platform-ai-config.d.ts +0 -10
- package/dist/api/service/platform-ai-config.js +0 -76
- package/dist/api/service/platform-ai-config.js.map +0 -1
- package/dist/document/DocumentParser.js.map +0 -1
- package/dist/document/JinaDocumentParser.js.map +0 -1
- package/static/app/assets/index-C1yksyT4.js +0 -171
- package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
- package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AMBIENT_AI_PROVIDER_ENV_KEYS = void 0;
|
|
4
|
+
exports.sanitizeRuntimeEnv = sanitizeRuntimeEnv;
|
|
5
|
+
exports.requireAiConnectionRuntimeConfig = requireAiConnectionRuntimeConfig;
|
|
6
|
+
exports.projectAiConnectionEnv = projectAiConnectionEnv;
|
|
7
|
+
exports.projectOpenAiCompatibleEnv = projectOpenAiCompatibleEnv;
|
|
8
|
+
exports.projectAnthropicCompatibleEnv = projectAnthropicCompatibleEnv;
|
|
9
|
+
exports.AMBIENT_AI_PROVIDER_ENV_KEYS = [
|
|
10
|
+
'AI_CONNECTION_API_KEY',
|
|
11
|
+
'AI_CONNECTION_BASE_URL',
|
|
12
|
+
'OPENAI_API_KEY',
|
|
13
|
+
'OPENAI_BASE_URL',
|
|
14
|
+
'OPENAI_API_BASE',
|
|
15
|
+
'OPENAI_ORG_ID',
|
|
16
|
+
'OPENAI_ORGANIZATION',
|
|
17
|
+
'OPENAI_PROJECT',
|
|
18
|
+
'OPENAI_MODEL',
|
|
19
|
+
'CODEX_API_KEY',
|
|
20
|
+
'CODEX_MODEL',
|
|
21
|
+
'ANTHROPIC_API_KEY',
|
|
22
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
23
|
+
'ANTHROPIC_BASE_URL',
|
|
24
|
+
'ANTHROPIC_DEFAULT_SONNET_MODEL',
|
|
25
|
+
'ANTHROPIC_DEFAULT_HAIKU_MODEL',
|
|
26
|
+
'ANTHROPIC_DEFAULT_OPUS_MODEL',
|
|
27
|
+
'DEFAULT_API_KEY',
|
|
28
|
+
'DEFAULT_API_BASE',
|
|
29
|
+
'DEFAULT_PROVIDER',
|
|
30
|
+
'DEFAULT_MODEL',
|
|
31
|
+
];
|
|
32
|
+
const AMBIENT_AI_PROVIDER_ENV_KEY_SET = new Set(exports.AMBIENT_AI_PROVIDER_ENV_KEYS);
|
|
33
|
+
const AMBIENT_AI_PROVIDER_ENV_KEY_PATTERNS = [
|
|
34
|
+
/^ANTHROPIC_DEFAULT_[A-Z0-9_]*MODEL$/u,
|
|
35
|
+
];
|
|
36
|
+
function sanitizeRuntimeEnv(source = process.env) {
|
|
37
|
+
const env = {};
|
|
38
|
+
for (const [key, value] of Object.entries(source)) {
|
|
39
|
+
if (typeof value === 'string' && !isAmbientAiProviderEnvKey(key)) {
|
|
40
|
+
env[key] = value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return env;
|
|
44
|
+
}
|
|
45
|
+
function isAmbientAiProviderEnvKey(key) {
|
|
46
|
+
return AMBIENT_AI_PROVIDER_ENV_KEY_SET.has(key) ||
|
|
47
|
+
AMBIENT_AI_PROVIDER_ENV_KEY_PATTERNS.some((pattern) => pattern.test(key));
|
|
48
|
+
}
|
|
49
|
+
function requireAiConnectionRuntimeConfig(input, context) {
|
|
50
|
+
const baseUrl = input.baseUrl?.trim();
|
|
51
|
+
if (!baseUrl) {
|
|
52
|
+
throw new Error(`${context} requires AI Connection baseUrl`);
|
|
53
|
+
}
|
|
54
|
+
const apiKey = input.apiKey?.trim();
|
|
55
|
+
if (!apiKey) {
|
|
56
|
+
throw new Error(`${context} requires AI Connection API key`);
|
|
57
|
+
}
|
|
58
|
+
const model = input.model?.trim();
|
|
59
|
+
return {
|
|
60
|
+
baseUrl,
|
|
61
|
+
apiKey,
|
|
62
|
+
...(model ? { model } : {}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function projectAiConnectionEnv(config) {
|
|
66
|
+
return {
|
|
67
|
+
AI_CONNECTION_BASE_URL: config.baseUrl,
|
|
68
|
+
AI_CONNECTION_API_KEY: config.apiKey,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function projectOpenAiCompatibleEnv(config) {
|
|
72
|
+
return {
|
|
73
|
+
...projectAiConnectionEnv(config),
|
|
74
|
+
OPENAI_BASE_URL: config.baseUrl,
|
|
75
|
+
OPENAI_API_BASE: config.baseUrl,
|
|
76
|
+
OPENAI_API_KEY: config.apiKey,
|
|
77
|
+
CODEX_API_KEY: config.apiKey,
|
|
78
|
+
...(config.model ? {
|
|
79
|
+
OPENAI_MODEL: config.model,
|
|
80
|
+
CODEX_MODEL: config.model,
|
|
81
|
+
} : {}),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function projectAnthropicCompatibleEnv(config) {
|
|
85
|
+
const baseUrl = normalizeMessagesCompatibleBaseUrl(config.baseUrl);
|
|
86
|
+
const isOpenRouterLike = baseUrl.includes('openrouter.ai');
|
|
87
|
+
return {
|
|
88
|
+
...projectAiConnectionEnv(config),
|
|
89
|
+
ANTHROPIC_BASE_URL: baseUrl,
|
|
90
|
+
...(isOpenRouterLike
|
|
91
|
+
? { ANTHROPIC_AUTH_TOKEN: config.apiKey }
|
|
92
|
+
: { ANTHROPIC_API_KEY: config.apiKey }),
|
|
93
|
+
...(config.model ? {
|
|
94
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: config.model,
|
|
95
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: config.model,
|
|
96
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: config.model,
|
|
97
|
+
} : {}),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function normalizeMessagesCompatibleBaseUrl(baseUrl) {
|
|
101
|
+
if (baseUrl.endsWith('/v1')) {
|
|
102
|
+
return baseUrl.slice(0, -3);
|
|
103
|
+
}
|
|
104
|
+
if (baseUrl.endsWith('/v1/')) {
|
|
105
|
+
return baseUrl.slice(0, -4);
|
|
106
|
+
}
|
|
107
|
+
return baseUrl;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=safe-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-env.js","sourceRoot":"","sources":["../../src/runtime/safe-env.ts"],"names":[],"mappings":"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","sourcesContent":["export const AMBIENT_AI_PROVIDER_ENV_KEYS = [\n 'AI_CONNECTION_API_KEY',\n 'AI_CONNECTION_BASE_URL',\n 'OPENAI_API_KEY',\n 'OPENAI_BASE_URL',\n 'OPENAI_API_BASE',\n 'OPENAI_ORG_ID',\n 'OPENAI_ORGANIZATION',\n 'OPENAI_PROJECT',\n 'OPENAI_MODEL',\n 'CODEX_API_KEY',\n 'CODEX_MODEL',\n 'ANTHROPIC_API_KEY',\n 'ANTHROPIC_AUTH_TOKEN',\n 'ANTHROPIC_BASE_URL',\n 'ANTHROPIC_DEFAULT_SONNET_MODEL',\n 'ANTHROPIC_DEFAULT_HAIKU_MODEL',\n 'ANTHROPIC_DEFAULT_OPUS_MODEL',\n 'DEFAULT_API_KEY',\n 'DEFAULT_API_BASE',\n 'DEFAULT_PROVIDER',\n 'DEFAULT_MODEL',\n] as const;\n\nconst AMBIENT_AI_PROVIDER_ENV_KEY_SET = new Set<string>(AMBIENT_AI_PROVIDER_ENV_KEYS);\nconst AMBIENT_AI_PROVIDER_ENV_KEY_PATTERNS = [\n /^ANTHROPIC_DEFAULT_[A-Z0-9_]*MODEL$/u,\n] as const;\n\nexport interface AiConnectionRuntimeConfig {\n baseUrl: string;\n apiKey: string;\n model?: string;\n}\n\nexport function sanitizeRuntimeEnv(\n source: NodeJS.ProcessEnv | Record<string, string | undefined> = process.env,\n): Record<string, string> {\n const env: Record<string, string> = {};\n for (const [key, value] of Object.entries(source)) {\n if (typeof value === 'string' && !isAmbientAiProviderEnvKey(key)) {\n env[key] = value;\n }\n }\n return env;\n}\n\nfunction isAmbientAiProviderEnvKey(key: string): boolean {\n return AMBIENT_AI_PROVIDER_ENV_KEY_SET.has(key as typeof AMBIENT_AI_PROVIDER_ENV_KEYS[number]) ||\n AMBIENT_AI_PROVIDER_ENV_KEY_PATTERNS.some((pattern) => pattern.test(key));\n}\n\nexport function requireAiConnectionRuntimeConfig(\n input: {\n baseUrl?: string;\n apiKey?: string;\n model?: string;\n },\n context: string,\n): AiConnectionRuntimeConfig {\n const baseUrl = input.baseUrl?.trim();\n if (!baseUrl) {\n throw new Error(`${context} requires AI Connection baseUrl`);\n }\n const apiKey = input.apiKey?.trim();\n if (!apiKey) {\n throw new Error(`${context} requires AI Connection API key`);\n }\n const model = input.model?.trim();\n return {\n baseUrl,\n apiKey,\n ...(model ? { model } : {}),\n };\n}\n\nexport function projectAiConnectionEnv(config: AiConnectionRuntimeConfig): Record<string, string> {\n return {\n AI_CONNECTION_BASE_URL: config.baseUrl,\n AI_CONNECTION_API_KEY: config.apiKey,\n };\n}\n\nexport function projectOpenAiCompatibleEnv(config: AiConnectionRuntimeConfig): Record<string, string> {\n return {\n ...projectAiConnectionEnv(config),\n OPENAI_BASE_URL: config.baseUrl,\n OPENAI_API_BASE: config.baseUrl,\n OPENAI_API_KEY: config.apiKey,\n CODEX_API_KEY: config.apiKey,\n ...(config.model ? {\n OPENAI_MODEL: config.model,\n CODEX_MODEL: config.model,\n } : {}),\n };\n}\n\nexport function projectAnthropicCompatibleEnv(config: AiConnectionRuntimeConfig): Record<string, string> {\n const baseUrl = normalizeMessagesCompatibleBaseUrl(config.baseUrl);\n const isOpenRouterLike = baseUrl.includes('openrouter.ai');\n return {\n ...projectAiConnectionEnv(config),\n ANTHROPIC_BASE_URL: baseUrl,\n ...(isOpenRouterLike\n ? { ANTHROPIC_AUTH_TOKEN: config.apiKey }\n : { ANTHROPIC_API_KEY: config.apiKey }),\n ...(config.model ? {\n ANTHROPIC_DEFAULT_SONNET_MODEL: config.model,\n ANTHROPIC_DEFAULT_HAIKU_MODEL: config.model,\n ANTHROPIC_DEFAULT_OPUS_MODEL: config.model,\n } : {}),\n };\n}\n\nfunction normalizeMessagesCompatibleBaseUrl(baseUrl: string): string {\n if (baseUrl.endsWith('/v1')) {\n return baseUrl.slice(0, -3);\n }\n if (baseUrl.endsWith('/v1/')) {\n return baseUrl.slice(0, -4);\n }\n return baseUrl;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './secret-cell';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./secret-cell"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B","sourcesContent":["export * from './secret-cell';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface RootKeyMaterial {
|
|
2
|
+
keyId: string;
|
|
3
|
+
key: Uint8Array;
|
|
4
|
+
}
|
|
5
|
+
export interface DeploymentRootKeyProviderOptions {
|
|
6
|
+
activeKeyId: string;
|
|
7
|
+
keys: Record<string, Uint8Array>;
|
|
8
|
+
}
|
|
9
|
+
export declare class DeploymentRootKeyProvider {
|
|
10
|
+
private readonly activeKeyId;
|
|
11
|
+
private readonly keys;
|
|
12
|
+
constructor(options: DeploymentRootKeyProviderOptions);
|
|
13
|
+
getActiveKey(): RootKeyMaterial;
|
|
14
|
+
getActiveKeyId(): string;
|
|
15
|
+
getKey(keyId: string): RootKeyMaterial | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare function parseDeploymentRootKeyConfig(value: string): Uint8Array;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeploymentRootKeyProvider = void 0;
|
|
4
|
+
exports.parseDeploymentRootKeyConfig = parseDeploymentRootKeyConfig;
|
|
5
|
+
class DeploymentRootKeyProvider {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.keys = new Map();
|
|
8
|
+
if (!options.activeKeyId) {
|
|
9
|
+
throw new Error('SecretCell active keyId is required');
|
|
10
|
+
}
|
|
11
|
+
for (const [keyId, key] of Object.entries(options.keys)) {
|
|
12
|
+
if (!keyId) {
|
|
13
|
+
throw new Error('SecretCell keyId is required');
|
|
14
|
+
}
|
|
15
|
+
if (key.byteLength !== 32) {
|
|
16
|
+
throw new Error(`SecretCell root key ${keyId} must be 32 bytes`);
|
|
17
|
+
}
|
|
18
|
+
this.keys.set(keyId, new Uint8Array(key));
|
|
19
|
+
}
|
|
20
|
+
if (!this.keys.has(options.activeKeyId)) {
|
|
21
|
+
throw new Error(`SecretCell active root key ${options.activeKeyId} is not configured`);
|
|
22
|
+
}
|
|
23
|
+
this.activeKeyId = options.activeKeyId;
|
|
24
|
+
}
|
|
25
|
+
getActiveKey() {
|
|
26
|
+
const key = this.keys.get(this.activeKeyId);
|
|
27
|
+
if (!key) {
|
|
28
|
+
throw new Error('SecretCell active root key is not available');
|
|
29
|
+
}
|
|
30
|
+
return { keyId: this.activeKeyId, key: new Uint8Array(key) };
|
|
31
|
+
}
|
|
32
|
+
getActiveKeyId() {
|
|
33
|
+
return this.activeKeyId;
|
|
34
|
+
}
|
|
35
|
+
getKey(keyId) {
|
|
36
|
+
const key = this.keys.get(keyId);
|
|
37
|
+
return key ? { keyId, key: new Uint8Array(key) } : undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DeploymentRootKeyProvider = DeploymentRootKeyProvider;
|
|
41
|
+
function parseDeploymentRootKeyConfig(value) {
|
|
42
|
+
if (!isStrictBase64(value)) {
|
|
43
|
+
throw new Error('SecretCell root key must be strict base64');
|
|
44
|
+
}
|
|
45
|
+
const decoded = new Uint8Array(Buffer.from(value, 'base64'));
|
|
46
|
+
if (decoded.byteLength !== 32) {
|
|
47
|
+
decoded.fill(0);
|
|
48
|
+
throw new Error('SecretCell root key must decode to 32 bytes');
|
|
49
|
+
}
|
|
50
|
+
return decoded;
|
|
51
|
+
}
|
|
52
|
+
function isStrictBase64(value) {
|
|
53
|
+
if (value.length === 0 || value.length % 4 !== 0) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return Buffer.from(value, 'base64').toString('base64') === value;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=DeploymentRootKeyProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeploymentRootKeyProvider.js","sourceRoot":"","sources":["../../../src/security/secret-cell/DeploymentRootKeyProvider.ts"],"names":[],"mappings":"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","sourcesContent":["export interface RootKeyMaterial {\n keyId: string;\n key: Uint8Array;\n}\n\nexport interface DeploymentRootKeyProviderOptions {\n activeKeyId: string;\n keys: Record<string, Uint8Array>;\n}\n\nexport class DeploymentRootKeyProvider {\n private readonly activeKeyId: string;\n private readonly keys = new Map<string, Uint8Array>();\n\n public constructor(options: DeploymentRootKeyProviderOptions) {\n if (!options.activeKeyId) {\n throw new Error('SecretCell active keyId is required');\n }\n for (const [keyId, key] of Object.entries(options.keys)) {\n if (!keyId) {\n throw new Error('SecretCell keyId is required');\n }\n if (key.byteLength !== 32) {\n throw new Error(`SecretCell root key ${keyId} must be 32 bytes`);\n }\n this.keys.set(keyId, new Uint8Array(key));\n }\n if (!this.keys.has(options.activeKeyId)) {\n throw new Error(`SecretCell active root key ${options.activeKeyId} is not configured`);\n }\n this.activeKeyId = options.activeKeyId;\n }\n\n public getActiveKey(): RootKeyMaterial {\n const key = this.keys.get(this.activeKeyId);\n if (!key) {\n throw new Error('SecretCell active root key is not available');\n }\n return { keyId: this.activeKeyId, key: new Uint8Array(key) };\n }\n\n public getActiveKeyId(): string {\n return this.activeKeyId;\n }\n\n public getKey(keyId: string): RootKeyMaterial | undefined {\n const key = this.keys.get(keyId);\n return key ? { keyId, key: new Uint8Array(key) } : undefined;\n }\n}\n\nexport function parseDeploymentRootKeyConfig(value: string): Uint8Array {\n if (!isStrictBase64(value)) {\n throw new Error('SecretCell root key must be strict base64');\n }\n const decoded = new Uint8Array(Buffer.from(value, 'base64'));\n if (decoded.byteLength !== 32) {\n decoded.fill(0);\n throw new Error('SecretCell root key must decode to 32 bytes');\n }\n return decoded;\n}\n\nfunction isStrictBase64(value: string): boolean {\n if (value.length === 0 || value.length % 4 !== 0) {\n return false;\n }\n if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) {\n return false;\n }\n return Buffer.from(value, 'base64').toString('base64') === value;\n}\n"]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
|
|
4
|
+
],
|
|
5
|
+
"@id": "npmd:@undefineds.co/xpod",
|
|
6
|
+
"components": [
|
|
7
|
+
{
|
|
8
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider",
|
|
9
|
+
"@type": "Class",
|
|
10
|
+
"requireElement": "DeploymentRootKeyProvider",
|
|
11
|
+
"parameters": [
|
|
12
|
+
{
|
|
13
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_activeKeyId",
|
|
14
|
+
"range": "xsd:string"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys",
|
|
18
|
+
"range": {
|
|
19
|
+
"@type": "ParameterRangeCollectEntries",
|
|
20
|
+
"parameterRangeCollectEntriesParameters": [
|
|
21
|
+
{
|
|
22
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys_key"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys_value",
|
|
26
|
+
"range": {
|
|
27
|
+
"@type": "ParameterRangeWildcard"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"memberFields": [
|
|
35
|
+
{
|
|
36
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_activeKeyId",
|
|
37
|
+
"memberFieldName": "activeKeyId"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_keys",
|
|
41
|
+
"memberFieldName": "keys"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_constructor",
|
|
45
|
+
"memberFieldName": "constructor"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_getActiveKey",
|
|
49
|
+
"memberFieldName": "getActiveKey"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_getActiveKeyId",
|
|
53
|
+
"memberFieldName": "getActiveKeyId"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider__member_getKey",
|
|
57
|
+
"memberFieldName": "getKey"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"constructorArguments": [
|
|
61
|
+
{
|
|
62
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options__constructorArgument",
|
|
63
|
+
"fields": [
|
|
64
|
+
{
|
|
65
|
+
"keyRaw": "activeKeyId",
|
|
66
|
+
"value": {
|
|
67
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_activeKeyId"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"keyRaw": "keys",
|
|
72
|
+
"value": {
|
|
73
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys__constructorArgument",
|
|
74
|
+
"fields": [
|
|
75
|
+
{
|
|
76
|
+
"collectEntries": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys",
|
|
77
|
+
"key": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys_key",
|
|
78
|
+
"value": {
|
|
79
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProvider_options_keys_value"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProviderOptions",
|
|
91
|
+
"@type": "AbstractClass",
|
|
92
|
+
"requireElement": "DeploymentRootKeyProviderOptions",
|
|
93
|
+
"parameters": [],
|
|
94
|
+
"memberFields": [
|
|
95
|
+
{
|
|
96
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProviderOptions__member_activeKeyId",
|
|
97
|
+
"memberFieldName": "activeKeyId"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#DeploymentRootKeyProviderOptions__member_keys",
|
|
101
|
+
"memberFieldName": "keys"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"constructorArguments": []
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#RootKeyMaterial",
|
|
108
|
+
"@type": "AbstractClass",
|
|
109
|
+
"requireElement": "RootKeyMaterial",
|
|
110
|
+
"parameters": [],
|
|
111
|
+
"memberFields": [
|
|
112
|
+
{
|
|
113
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#RootKeyMaterial__member_keyId",
|
|
114
|
+
"memberFieldName": "keyId"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"@id": "undefineds:dist/security/secret-cell/DeploymentRootKeyProvider.jsonld#RootKeyMaterial__member_key",
|
|
118
|
+
"memberFieldName": "key"
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
"constructorArguments": []
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { DeploymentRootKeyProvider } from './DeploymentRootKeyProvider';
|
|
2
|
+
declare const AES_GCM_ALGORITHM: "AES-256-GCM";
|
|
3
|
+
declare const PAYLOAD_AAD_PURPOSE = "xpod.secret-cell.payload";
|
|
4
|
+
declare const DEK_WRAP_AAD_PURPOSE = "xpod.secret-cell.dek-wrap";
|
|
5
|
+
declare const AAD_VERSION = "v1";
|
|
6
|
+
declare const DEK_WRAP_ALGORITHM = "xpod-secret-cell-root-hkdf-aes-256-gcm";
|
|
7
|
+
export interface SecretCellContext {
|
|
8
|
+
ownerWebId: string;
|
|
9
|
+
resourceIri: string;
|
|
10
|
+
predicate: string;
|
|
11
|
+
field: string;
|
|
12
|
+
schemaVersion: string;
|
|
13
|
+
provider?: string;
|
|
14
|
+
extra?: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
export interface SecretCellWrappedDataKey {
|
|
17
|
+
algorithm: typeof DEK_WRAP_ALGORITHM;
|
|
18
|
+
keyId: string;
|
|
19
|
+
aadPurpose: typeof DEK_WRAP_AAD_PURPOSE;
|
|
20
|
+
aadVersion: typeof AAD_VERSION;
|
|
21
|
+
nonce: string;
|
|
22
|
+
ciphertext: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SecretCellEnvelope {
|
|
25
|
+
algorithm: typeof AES_GCM_ALGORITHM;
|
|
26
|
+
aadPurpose: typeof PAYLOAD_AAD_PURPOSE;
|
|
27
|
+
aadVersion: typeof AAD_VERSION;
|
|
28
|
+
context: SecretCellContext;
|
|
29
|
+
nonce: string;
|
|
30
|
+
ciphertext: string;
|
|
31
|
+
wrappedDek: SecretCellWrappedDataKey;
|
|
32
|
+
}
|
|
33
|
+
export interface SecretCellVaultOptions {
|
|
34
|
+
rootKeys: DeploymentRootKeyProvider;
|
|
35
|
+
}
|
|
36
|
+
export declare class SecretCellError extends Error {
|
|
37
|
+
constructor();
|
|
38
|
+
toJSON(): {
|
|
39
|
+
name: string;
|
|
40
|
+
message: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export declare class SecretCellVault {
|
|
44
|
+
private readonly rootKeys;
|
|
45
|
+
constructor(options: SecretCellVaultOptions);
|
|
46
|
+
needsRewrap(keyId: string): boolean;
|
|
47
|
+
seal(plaintext: Uint8Array, context: SecretCellContext): Promise<SecretCellEnvelope>;
|
|
48
|
+
open(envelope: SecretCellEnvelope, context: SecretCellContext): Promise<Uint8Array>;
|
|
49
|
+
rewrap(envelope: SecretCellEnvelope, context: SecretCellContext): Promise<SecretCellEnvelope>;
|
|
50
|
+
wrapDataKey(dek: Uint8Array, context: SecretCellContext): Promise<SecretCellWrappedDataKey>;
|
|
51
|
+
unwrapDataKey(wrapped: SecretCellWrappedDataKey, context: SecretCellContext): Promise<Uint8Array>;
|
|
52
|
+
private assertEnvelopeContext;
|
|
53
|
+
}
|
|
54
|
+
export declare function normalizeContext(context: SecretCellContext): SecretCellContext;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecretCellVault = exports.SecretCellError = void 0;
|
|
4
|
+
exports.normalizeContext = normalizeContext;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const TEXT_ENCODER = new TextEncoder();
|
|
7
|
+
const AES_GCM_ALGORITHM = 'AES-256-GCM';
|
|
8
|
+
const DEK_BYTES = 32;
|
|
9
|
+
const NONCE_BYTES = 12;
|
|
10
|
+
const PAYLOAD_AAD_PURPOSE = 'xpod.secret-cell.payload';
|
|
11
|
+
const DEK_WRAP_AAD_PURPOSE = 'xpod.secret-cell.dek-wrap';
|
|
12
|
+
const AAD_VERSION = 'v1';
|
|
13
|
+
const DEK_WRAP_ALGORITHM = 'xpod-secret-cell-root-hkdf-aes-256-gcm';
|
|
14
|
+
class SecretCellError extends Error {
|
|
15
|
+
constructor() {
|
|
16
|
+
super('Secret cell operation failed');
|
|
17
|
+
this.name = 'SecretCellError';
|
|
18
|
+
}
|
|
19
|
+
toJSON() {
|
|
20
|
+
return {
|
|
21
|
+
name: this.name,
|
|
22
|
+
message: this.message,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.SecretCellError = SecretCellError;
|
|
27
|
+
class SecretCellVault {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
this.rootKeys = options.rootKeys;
|
|
30
|
+
}
|
|
31
|
+
needsRewrap(keyId) {
|
|
32
|
+
return keyId !== this.rootKeys.getActiveKeyId();
|
|
33
|
+
}
|
|
34
|
+
async seal(plaintext, context) {
|
|
35
|
+
const normalizedContext = normalizeContext(context);
|
|
36
|
+
const dek = node_crypto_1.webcrypto.getRandomValues(new Uint8Array(DEK_BYTES));
|
|
37
|
+
const nonce = node_crypto_1.webcrypto.getRandomValues(new Uint8Array(NONCE_BYTES));
|
|
38
|
+
try {
|
|
39
|
+
const key = await importAesGcmKey(dek, ['encrypt']);
|
|
40
|
+
const ciphertext = new Uint8Array(await node_crypto_1.webcrypto.subtle.encrypt({
|
|
41
|
+
name: 'AES-GCM',
|
|
42
|
+
iv: nonce,
|
|
43
|
+
additionalData: payloadAad(normalizedContext),
|
|
44
|
+
}, key, toArrayBuffer(plaintext)));
|
|
45
|
+
return {
|
|
46
|
+
algorithm: AES_GCM_ALGORITHM,
|
|
47
|
+
aadPurpose: PAYLOAD_AAD_PURPOSE,
|
|
48
|
+
aadVersion: AAD_VERSION,
|
|
49
|
+
context: normalizedContext,
|
|
50
|
+
nonce: encodeBase64Url(nonce),
|
|
51
|
+
ciphertext: encodeBase64Url(ciphertext),
|
|
52
|
+
wrappedDek: await this.wrapDataKey(dek, normalizedContext),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (_error) {
|
|
56
|
+
throw new SecretCellError();
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
dek.fill(0);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async open(envelope, context) {
|
|
63
|
+
let dek;
|
|
64
|
+
try {
|
|
65
|
+
const normalizedContext = this.assertEnvelopeContext(envelope, context);
|
|
66
|
+
dek = await this.unwrapDataKey(envelope.wrappedDek, normalizedContext);
|
|
67
|
+
const key = await importAesGcmKey(dek, ['decrypt']);
|
|
68
|
+
const plaintext = await node_crypto_1.webcrypto.subtle.decrypt({
|
|
69
|
+
name: 'AES-GCM',
|
|
70
|
+
iv: decodeBase64Url(envelope.nonce),
|
|
71
|
+
additionalData: payloadAad(normalizedContext),
|
|
72
|
+
}, key, decodeBase64Url(envelope.ciphertext));
|
|
73
|
+
return new Uint8Array(plaintext);
|
|
74
|
+
}
|
|
75
|
+
catch (_error) {
|
|
76
|
+
throw new SecretCellError();
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
dek?.fill(0);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async rewrap(envelope, context) {
|
|
83
|
+
let dek;
|
|
84
|
+
try {
|
|
85
|
+
const normalizedContext = this.assertEnvelopeContext(envelope, context);
|
|
86
|
+
dek = await this.unwrapDataKey(envelope.wrappedDek, normalizedContext);
|
|
87
|
+
return {
|
|
88
|
+
...envelope,
|
|
89
|
+
wrappedDek: await this.wrapDataKey(dek, normalizedContext),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch (_error) {
|
|
93
|
+
throw new SecretCellError();
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
dek?.fill(0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async wrapDataKey(dek, context) {
|
|
100
|
+
const normalizedContext = normalizeContext(context);
|
|
101
|
+
const active = this.rootKeys.getActiveKey();
|
|
102
|
+
const nonce = node_crypto_1.webcrypto.getRandomValues(new Uint8Array(NONCE_BYTES));
|
|
103
|
+
try {
|
|
104
|
+
const key = await deriveRootWrapKey(active.key, active.keyId);
|
|
105
|
+
const ciphertext = new Uint8Array(await node_crypto_1.webcrypto.subtle.encrypt({
|
|
106
|
+
name: 'AES-GCM',
|
|
107
|
+
iv: nonce,
|
|
108
|
+
additionalData: dekWrapAad(normalizedContext, active.keyId),
|
|
109
|
+
}, key, toArrayBuffer(dek)));
|
|
110
|
+
return {
|
|
111
|
+
algorithm: DEK_WRAP_ALGORITHM,
|
|
112
|
+
keyId: active.keyId,
|
|
113
|
+
aadPurpose: DEK_WRAP_AAD_PURPOSE,
|
|
114
|
+
aadVersion: AAD_VERSION,
|
|
115
|
+
nonce: encodeBase64Url(nonce),
|
|
116
|
+
ciphertext: encodeBase64Url(ciphertext),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (_error) {
|
|
120
|
+
throw new SecretCellError();
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
active.key.fill(0);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async unwrapDataKey(wrapped, context) {
|
|
127
|
+
try {
|
|
128
|
+
if (wrapped.algorithm !== DEK_WRAP_ALGORITHM
|
|
129
|
+
|| wrapped.aadPurpose !== DEK_WRAP_AAD_PURPOSE
|
|
130
|
+
|| wrapped.aadVersion !== AAD_VERSION) {
|
|
131
|
+
throw new Error('SecretCell wrapped DEK domain mismatch');
|
|
132
|
+
}
|
|
133
|
+
const root = this.rootKeys.getKey(wrapped.keyId);
|
|
134
|
+
if (!root) {
|
|
135
|
+
throw new Error('SecretCell root key is not configured');
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const key = await deriveRootWrapKey(root.key, root.keyId);
|
|
139
|
+
const dek = await node_crypto_1.webcrypto.subtle.decrypt({
|
|
140
|
+
name: 'AES-GCM',
|
|
141
|
+
iv: decodeBase64Url(wrapped.nonce),
|
|
142
|
+
additionalData: dekWrapAad(normalizeContext(context), root.keyId),
|
|
143
|
+
}, key, decodeBase64Url(wrapped.ciphertext));
|
|
144
|
+
return new Uint8Array(dek);
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
root.key.fill(0);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (_error) {
|
|
151
|
+
throw new SecretCellError();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
assertEnvelopeContext(envelope, context) {
|
|
155
|
+
const normalizedContext = normalizeContext(context);
|
|
156
|
+
if (envelope.algorithm !== AES_GCM_ALGORITHM
|
|
157
|
+
|| envelope.aadPurpose !== PAYLOAD_AAD_PURPOSE
|
|
158
|
+
|| envelope.aadVersion !== AAD_VERSION
|
|
159
|
+
|| canonicalJson(normalizeContext(envelope.context)) !== canonicalJson(normalizedContext)) {
|
|
160
|
+
throw new Error('SecretCell envelope context mismatch');
|
|
161
|
+
}
|
|
162
|
+
return normalizedContext;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.SecretCellVault = SecretCellVault;
|
|
166
|
+
async function importAesGcmKey(keyMaterial, usages) {
|
|
167
|
+
return await node_crypto_1.webcrypto.subtle.importKey('raw', toArrayBuffer(keyMaterial), { name: 'AES-GCM', length: 256 }, false, usages);
|
|
168
|
+
}
|
|
169
|
+
async function deriveRootWrapKey(rootKey, keyId) {
|
|
170
|
+
const hkdfKey = await node_crypto_1.webcrypto.subtle.importKey('raw', toArrayBuffer(rootKey), 'HKDF', false, ['deriveKey']);
|
|
171
|
+
return await node_crypto_1.webcrypto.subtle.deriveKey({
|
|
172
|
+
name: 'HKDF',
|
|
173
|
+
hash: 'SHA-256',
|
|
174
|
+
salt: TEXT_ENCODER.encode(`xpod.secret-cell.root.${keyId}`),
|
|
175
|
+
info: TEXT_ENCODER.encode(`${DEK_WRAP_AAD_PURPOSE}.${AAD_VERSION}`),
|
|
176
|
+
}, hkdfKey, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
|
|
177
|
+
}
|
|
178
|
+
function payloadAad(context) {
|
|
179
|
+
return TEXT_ENCODER.encode(canonicalJson({
|
|
180
|
+
purpose: PAYLOAD_AAD_PURPOSE,
|
|
181
|
+
version: AAD_VERSION,
|
|
182
|
+
context,
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
function dekWrapAad(context, keyId) {
|
|
186
|
+
return TEXT_ENCODER.encode(canonicalJson({
|
|
187
|
+
purpose: DEK_WRAP_AAD_PURPOSE,
|
|
188
|
+
version: AAD_VERSION,
|
|
189
|
+
keyId,
|
|
190
|
+
context,
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
function normalizeContext(context) {
|
|
194
|
+
const normalized = {
|
|
195
|
+
ownerWebId: requireContextField(context.ownerWebId, 'ownerWebId'),
|
|
196
|
+
resourceIri: requireContextField(context.resourceIri, 'resourceIri'),
|
|
197
|
+
predicate: requireContextField(context.predicate, 'predicate'),
|
|
198
|
+
field: requireContextField(context.field, 'field'),
|
|
199
|
+
schemaVersion: requireContextField(context.schemaVersion, 'schemaVersion'),
|
|
200
|
+
};
|
|
201
|
+
if (context.provider !== undefined) {
|
|
202
|
+
normalized.provider = requireContextField(context.provider, 'provider');
|
|
203
|
+
}
|
|
204
|
+
if (context.extra !== undefined) {
|
|
205
|
+
normalized.extra = {};
|
|
206
|
+
for (const [key, value] of Object.entries(context.extra).sort(([left], [right]) => left.localeCompare(right))) {
|
|
207
|
+
normalized.extra[requireContextField(key, 'extra key')] = requireContextField(value, `extra.${key}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return normalized;
|
|
211
|
+
}
|
|
212
|
+
function requireContextField(value, name) {
|
|
213
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
214
|
+
throw new Error(`SecretCell context ${name} is required`);
|
|
215
|
+
}
|
|
216
|
+
return value;
|
|
217
|
+
}
|
|
218
|
+
function canonicalJson(value) {
|
|
219
|
+
return JSON.stringify(sortJson(value));
|
|
220
|
+
}
|
|
221
|
+
function sortJson(value) {
|
|
222
|
+
if (Array.isArray(value)) {
|
|
223
|
+
return value.map(sortJson);
|
|
224
|
+
}
|
|
225
|
+
if (value && typeof value === 'object') {
|
|
226
|
+
return Object.fromEntries(Object.entries(value)
|
|
227
|
+
.filter(([, entryValue]) => entryValue !== undefined)
|
|
228
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
229
|
+
.map(([key, entryValue]) => [key, sortJson(entryValue)]));
|
|
230
|
+
}
|
|
231
|
+
return value;
|
|
232
|
+
}
|
|
233
|
+
function toArrayBuffer(bytes) {
|
|
234
|
+
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
235
|
+
}
|
|
236
|
+
function encodeBase64Url(bytes) {
|
|
237
|
+
return Buffer.from(bytes).toString('base64url');
|
|
238
|
+
}
|
|
239
|
+
function decodeBase64Url(value) {
|
|
240
|
+
return new Uint8Array(Buffer.from(value, 'base64url'));
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=SecretCellVault.js.map
|