@undefineds.co/xpod 0.3.57 → 0.3.61
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/obj.d.ts +9 -0
- package/dist/cli/commands/obj.js +74 -3
- package/dist/cli/commands/obj.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/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 +32 -12
- 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,299 @@
|
|
|
1
|
+
# Applet SDK
|
|
2
|
+
|
|
3
|
+
`@undefineds.co/extension-sdk` defines the boundary between an applet and the
|
|
4
|
+
host that runs it. An applet declares its identity, layout structure, and
|
|
5
|
+
content slots. The host owns authentication, Pod initialization, application
|
|
6
|
+
navigation, native capabilities, and final composition.
|
|
7
|
+
|
|
8
|
+
The first planned product consumer is Xpod. Xpod can use the same layout
|
|
9
|
+
language as Linx while exposing a settings-first entry such as Models, Pod,
|
|
10
|
+
Network, and Services. Linx production layout remains on its current
|
|
11
|
+
composition until a later migration.
|
|
12
|
+
|
|
13
|
+
## Layout responsibilities
|
|
14
|
+
|
|
15
|
+
The SDK has two layout layers:
|
|
16
|
+
|
|
17
|
+
- `AppLayout` is host-owned. It renders the outer application frame, including
|
|
18
|
+
product navigation, host header, and the active applet surface.
|
|
19
|
+
- `SinglePaneLayout`, `TwoPaneLayout`, and `ThreePaneLayout` render applet
|
|
20
|
+
workspaces inside the host frame. They own pane geometry, responsive
|
|
21
|
+
list-to-detail navigation, separators, and scroll containment.
|
|
22
|
+
|
|
23
|
+
Applets do not render product navigation, inspect viewport width, or branch on
|
|
24
|
+
whether they run in Linx, Xpod, or a standalone host.
|
|
25
|
+
|
|
26
|
+
## Define an applet
|
|
27
|
+
|
|
28
|
+
New applets should use a descriptor-based layout module. The manifest keeps the
|
|
29
|
+
legacy layout field for extension discovery, and the `layout.descriptor` gives
|
|
30
|
+
hosts a portable workspace contract.
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import {
|
|
34
|
+
defineApplet,
|
|
35
|
+
defineAppletLayout,
|
|
36
|
+
type WebExtensionHost,
|
|
37
|
+
} from '@undefineds.co/extension-sdk/web'
|
|
38
|
+
|
|
39
|
+
type NotesController = {
|
|
40
|
+
host: WebExtensionHost
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const notesApplet = defineApplet({
|
|
44
|
+
manifest: {
|
|
45
|
+
appId: 'https://example.com/applets/notes',
|
|
46
|
+
name: 'Notes',
|
|
47
|
+
entry: '.',
|
|
48
|
+
commands: [],
|
|
49
|
+
layout: 'two-pane',
|
|
50
|
+
},
|
|
51
|
+
layout: {
|
|
52
|
+
descriptor: defineAppletLayout({ type: 'two-pane' }),
|
|
53
|
+
slots: {
|
|
54
|
+
listHeader: () => <input aria-label="Search notes" />,
|
|
55
|
+
list: () => <nav aria-label="Notes">Notes list</nav>,
|
|
56
|
+
mainHeader: () => <h1>Notes</h1>,
|
|
57
|
+
main: ({ controller }) => {
|
|
58
|
+
const { pod } = controller.host.solid
|
|
59
|
+
return pod.status === 'ready'
|
|
60
|
+
? <main>{pod.current.podUrl}</main>
|
|
61
|
+
: <main>Pod unavailable</main>
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
createController: (host): NotesController => ({ host }),
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Single-pane modules provide `layout.render`. Three-pane modules provide
|
|
70
|
+
`layout.slots.listHeader`, `list`, `mainHeader`, `main`, and `context`, plus
|
|
71
|
+
optional descriptor context:
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
defineAppletLayout({
|
|
75
|
+
type: 'three-pane',
|
|
76
|
+
context: { collapsible: true, initiallyCollapsed: false },
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Compose from a host
|
|
81
|
+
|
|
82
|
+
The host creates one `WebExtensionHost`, calls `useApplet`, and resolves the
|
|
83
|
+
mounted layout variant to SDK workspace layouts. The surrounding `AppLayout`
|
|
84
|
+
belongs to the host, so Xpod and Linx can share geometry while keeping different
|
|
85
|
+
navigation models.
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
import {
|
|
89
|
+
AppLayout,
|
|
90
|
+
SinglePaneLayout,
|
|
91
|
+
ThreePaneLayout,
|
|
92
|
+
TwoPaneLayout,
|
|
93
|
+
useApplet,
|
|
94
|
+
} from '@undefineds.co/extension-sdk/react'
|
|
95
|
+
import type {
|
|
96
|
+
AppletModule,
|
|
97
|
+
WebExtensionHost,
|
|
98
|
+
} from '@undefineds.co/extension-sdk/web'
|
|
99
|
+
|
|
100
|
+
function AppletSurface({
|
|
101
|
+
applet,
|
|
102
|
+
host,
|
|
103
|
+
}: {
|
|
104
|
+
applet: AppletModule
|
|
105
|
+
host: WebExtensionHost
|
|
106
|
+
}) {
|
|
107
|
+
const mounted = useApplet(applet, host)
|
|
108
|
+
|
|
109
|
+
if (!mounted) return null
|
|
110
|
+
|
|
111
|
+
if (mounted.layout === 'single-pane') {
|
|
112
|
+
return <SinglePaneLayout main={mounted.element} />
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (mounted.layout === 'three-pane') {
|
|
116
|
+
return (
|
|
117
|
+
<ThreePaneLayout
|
|
118
|
+
listHeader={mounted.slots.listHeader}
|
|
119
|
+
list={mounted.slots.list}
|
|
120
|
+
mainHeader={mounted.slots.mainHeader}
|
|
121
|
+
main={mounted.slots.main}
|
|
122
|
+
context={mounted.slots.context}
|
|
123
|
+
contextConfig={mounted.contextConfig}
|
|
124
|
+
/>
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<TwoPaneLayout
|
|
130
|
+
listHeader={mounted.slots.listHeader}
|
|
131
|
+
list={mounted.slots.list}
|
|
132
|
+
mainHeader={mounted.slots.mainHeader}
|
|
133
|
+
main={mounted.slots.main}
|
|
134
|
+
/>
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function XpodSettingsHost({
|
|
139
|
+
applet,
|
|
140
|
+
host,
|
|
141
|
+
}: {
|
|
142
|
+
applet: AppletModule
|
|
143
|
+
host: WebExtensionHost
|
|
144
|
+
}) {
|
|
145
|
+
return (
|
|
146
|
+
<AppLayout
|
|
147
|
+
navigation={<nav aria-label="Xpod settings">Models / Pod / Network</nav>}
|
|
148
|
+
>
|
|
149
|
+
<AppletSurface applet={applet} host={host} />
|
|
150
|
+
</AppLayout>
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`useApplet` creates one controller for a stable applet/host pair, calls
|
|
156
|
+
`activate` after mounting, and balances cleanup when disabled, replaced, or
|
|
157
|
+
unmounted. `mountTwoPaneApplet` remains as a low-level compatibility helper;
|
|
158
|
+
new hosts should prefer `useApplet` and the mounted layout union.
|
|
159
|
+
|
|
160
|
+
For stack-mode navigation, hosts may pass a `history` adapter to
|
|
161
|
+
`TwoPaneLayout` or `ThreePaneLayout`. The SDK moves focus to the active pane
|
|
162
|
+
and calls the adapter on user navigation, but it does not write to
|
|
163
|
+
`window.history` directly. Browser hosts can map the adapter to their router or
|
|
164
|
+
to `popstate` handling; embedded hosts can omit it.
|
|
165
|
+
|
|
166
|
+
## Authentication boundary
|
|
167
|
+
|
|
168
|
+
`AuthBoundary` and `LoginView` standardize presentation only. They do not own a
|
|
169
|
+
Solid session, create an Inrupt session, start a second OIDC flow, persist
|
|
170
|
+
tokens, or decide return-path behavior. The host maps its existing session
|
|
171
|
+
runtime into a typed boundary state and passes the login callback.
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
import {
|
|
175
|
+
AuthBoundary,
|
|
176
|
+
type AuthBoundaryState,
|
|
177
|
+
} from '@undefineds.co/extension-sdk/react'
|
|
178
|
+
|
|
179
|
+
function SolidGate({
|
|
180
|
+
state,
|
|
181
|
+
login,
|
|
182
|
+
children,
|
|
183
|
+
}: {
|
|
184
|
+
state: AuthBoundaryState
|
|
185
|
+
login: (issuer: string) => Promise<void>
|
|
186
|
+
children: React.ReactNode
|
|
187
|
+
}) {
|
|
188
|
+
return (
|
|
189
|
+
<AuthBoundary
|
|
190
|
+
state={state}
|
|
191
|
+
login={login}
|
|
192
|
+
loginView={{
|
|
193
|
+
title: 'Connect Solid Pod',
|
|
194
|
+
description: '登录后即可访问当前 Pod 的 applet 数据。',
|
|
195
|
+
defaultIssuer: 'https://solidcommunity.net',
|
|
196
|
+
}}
|
|
197
|
+
>
|
|
198
|
+
{children}
|
|
199
|
+
</AuthBoundary>
|
|
200
|
+
)
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The host remains responsible for Solid OIDC operations, session restoration,
|
|
205
|
+
logout, token refresh, and return-path handling. This is the same contract when
|
|
206
|
+
the applet runs in Linx, Xpod, or an isolated test host.
|
|
207
|
+
|
|
208
|
+
## Solid and data rules
|
|
209
|
+
|
|
210
|
+
An applet receives Solid through `host.solid`:
|
|
211
|
+
|
|
212
|
+
- Use `host.solid.session.fetch` for authenticated network requests.
|
|
213
|
+
- Read the already-opened database and collection state from
|
|
214
|
+
`host.solid.pod`; do not initialize Inrupt OIDC, drizzle-solid, or
|
|
215
|
+
collections inside the applet.
|
|
216
|
+
- Call `host.solid.requireLogin()` when an anonymous standalone host needs
|
|
217
|
+
login. The host supplies the shared login UI and OIDC flow.
|
|
218
|
+
- Import RDF schemas from `@undefineds.co/models`.
|
|
219
|
+
- Perform Pod CRUD with drizzle-solid. Collections own hydration and reactive
|
|
220
|
+
query setup.
|
|
221
|
+
- Never accept or persist bearer tokens, DPoP material, API keys, or refresh
|
|
222
|
+
tokens in browser storage. User AI credentials remain encrypted in the Pod
|
|
223
|
+
through the Xpod service boundary.
|
|
224
|
+
|
|
225
|
+
Applet code must not branch on deployment shape such as local or cloud. Data and
|
|
226
|
+
capabilities should be self-describing through the host contract.
|
|
227
|
+
|
|
228
|
+
## Legacy compatibility
|
|
229
|
+
|
|
230
|
+
The previous applet shape is still supported:
|
|
231
|
+
|
|
232
|
+
```tsx
|
|
233
|
+
defineApplet({
|
|
234
|
+
manifest: {
|
|
235
|
+
appId: 'https://example.com/applets/legacy',
|
|
236
|
+
name: 'Legacy',
|
|
237
|
+
entry: '.',
|
|
238
|
+
commands: [],
|
|
239
|
+
layout: 'two-pane',
|
|
240
|
+
},
|
|
241
|
+
createController: (host) => ({ host }),
|
|
242
|
+
slots: {
|
|
243
|
+
listHeader: () => <input aria-label="Search legacy items" />,
|
|
244
|
+
list: () => <nav>Items</nav>,
|
|
245
|
+
mainHeader: () => <h1>Legacy</h1>,
|
|
246
|
+
main: () => <main>Detail</main>,
|
|
247
|
+
},
|
|
248
|
+
})
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Keep this path for existing applets and tests. Prefer descriptors for new
|
|
252
|
+
applets so hosts can resolve layout structure consistently across products.
|
|
253
|
+
|
|
254
|
+
## Test independently
|
|
255
|
+
|
|
256
|
+
Use the SDK mock host to test applet behavior without launching Linx or
|
|
257
|
+
implementing OIDC. Tests can provide anonymous, ready, or failed Solid
|
|
258
|
+
capabilities.
|
|
259
|
+
|
|
260
|
+
```tsx
|
|
261
|
+
import { render, screen } from '@testing-library/react'
|
|
262
|
+
import { TwoPaneLayout, useApplet } from '@undefineds.co/extension-sdk/react'
|
|
263
|
+
import { createMockWebExtensionHost } from '@undefineds.co/extension-sdk/testing'
|
|
264
|
+
|
|
265
|
+
const host = createMockWebExtensionHost({ solid: readySolidCapability })
|
|
266
|
+
|
|
267
|
+
function Harness() {
|
|
268
|
+
const mounted = useApplet(notesApplet, host)
|
|
269
|
+
return mounted?.layout === 'two-pane'
|
|
270
|
+
? (
|
|
271
|
+
<TwoPaneLayout
|
|
272
|
+
mode="stack"
|
|
273
|
+
listHeader={mounted.slots.listHeader}
|
|
274
|
+
list={mounted.slots.list}
|
|
275
|
+
mainHeader={mounted.slots.mainHeader}
|
|
276
|
+
main={mounted.slots.main}
|
|
277
|
+
/>
|
|
278
|
+
)
|
|
279
|
+
: null
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
render(<Harness />)
|
|
283
|
+
screen.getByRole('heading', { name: 'Notes' })
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
See [`examples/extension-test-host`](../../examples/extension-test-host) for a
|
|
287
|
+
running isolated host that composes `AppLayout`, `AuthBoundary`, SDK workspace
|
|
288
|
+
layouts, and the AI Connection applet.
|
|
289
|
+
|
|
290
|
+
## Public entry points
|
|
291
|
+
|
|
292
|
+
- `@undefineds.co/extension-sdk`: framework-neutral manifest, layout,
|
|
293
|
+
lifecycle, testing, and React exports for package-internal consumers.
|
|
294
|
+
- `@undefineds.co/extension-sdk/manifest`: manifest contracts.
|
|
295
|
+
- `@undefineds.co/extension-sdk/web`: applet definitions, layout descriptors,
|
|
296
|
+
mounting, and host capabilities.
|
|
297
|
+
- `@undefineds.co/extension-sdk/react`: `AppLayout`, workspace layouts,
|
|
298
|
+
`AuthBoundary`, `LoginView`, and `useApplet`.
|
|
299
|
+
- `@undefineds.co/extension-sdk/testing`: deterministic host test doubles.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type AppletLayoutType = 'single-pane' | 'two-pane' | 'three-pane';
|
|
2
|
+
export type SinglePaneAppletLayoutDescriptor = {
|
|
3
|
+
readonly type: 'single-pane';
|
|
4
|
+
};
|
|
5
|
+
export type TwoPaneAppletLayoutDescriptor = {
|
|
6
|
+
readonly type: 'two-pane';
|
|
7
|
+
};
|
|
8
|
+
export type ThreePaneAppletLayoutDescriptor = {
|
|
9
|
+
readonly type: 'three-pane';
|
|
10
|
+
readonly context?: {
|
|
11
|
+
readonly collapsible?: boolean;
|
|
12
|
+
readonly initiallyCollapsed?: boolean;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type AppletLayoutDescriptor = SinglePaneAppletLayoutDescriptor | TwoPaneAppletLayoutDescriptor | ThreePaneAppletLayoutDescriptor;
|
|
16
|
+
export declare function defineAppletLayout<T extends AppletLayoutDescriptor>(descriptor: T): T;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function defineAppletLayout(descriptor) {
|
|
2
|
+
if (!isPlainDescriptorObject(descriptor)) {
|
|
3
|
+
throw new Error('Applet layout descriptor must be an object');
|
|
4
|
+
}
|
|
5
|
+
if (typeof descriptor.type !== 'string') {
|
|
6
|
+
throw new Error('Applet layout descriptor type must be a string');
|
|
7
|
+
}
|
|
8
|
+
switch (descriptor.type) {
|
|
9
|
+
case 'single-pane':
|
|
10
|
+
case 'two-pane':
|
|
11
|
+
assertValidLayoutContext(descriptor.context);
|
|
12
|
+
return descriptor;
|
|
13
|
+
case 'three-pane':
|
|
14
|
+
assertValidLayoutContext(descriptor.context);
|
|
15
|
+
return descriptor;
|
|
16
|
+
default:
|
|
17
|
+
throw new Error(`Unsupported applet layout type: ${descriptor.type}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function isPlainDescriptorObject(value) {
|
|
21
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
function assertValidLayoutContext(context) {
|
|
24
|
+
if (context === undefined) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!isPlainDescriptorObject(context)) {
|
|
28
|
+
throw new Error('Applet layout descriptor context must be an object');
|
|
29
|
+
}
|
|
30
|
+
if ('collapsible' in context && typeof context.collapsible !== 'boolean') {
|
|
31
|
+
throw new Error('Applet layout descriptor context.collapsible must be a boolean');
|
|
32
|
+
}
|
|
33
|
+
if ('initiallyCollapsed' in context && typeof context.initiallyCollapsed !== 'boolean') {
|
|
34
|
+
throw new Error('Applet layout descriptor context.initiallyCollapsed must be a boolean');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const HOST_CAPABILITY_NAMES: readonly ["navigation.openExternal", "aiClientConfiguration"];
|
|
2
|
+
export type HostCapabilityName = (typeof HOST_CAPABILITY_NAMES)[number];
|
|
3
|
+
export type AppletLayoutKind = 'single-pane' | 'two-pane';
|
|
4
|
+
export interface AppletCommandDeclaration {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AppletManifest {
|
|
9
|
+
appId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
entry: string;
|
|
12
|
+
commands: AppletCommandDeclaration[];
|
|
13
|
+
layout: AppletLayoutKind;
|
|
14
|
+
}
|
|
15
|
+
export interface ExtensionManifest {
|
|
16
|
+
extensionId: string;
|
|
17
|
+
name: string;
|
|
18
|
+
version: string;
|
|
19
|
+
sdkVersion: string;
|
|
20
|
+
contributes: {
|
|
21
|
+
applets: AppletManifest[];
|
|
22
|
+
};
|
|
23
|
+
dataModels: string[];
|
|
24
|
+
hostCapabilities: HostCapabilityName[];
|
|
25
|
+
}
|
|
26
|
+
export declare function deriveAppletRouteId(manifest: Pick<AppletManifest, 'appId'>): string;
|
|
27
|
+
export declare function validateExtensionManifest(value: unknown): ExtensionManifest;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export const HOST_CAPABILITY_NAMES = [
|
|
2
|
+
'navigation.openExternal',
|
|
3
|
+
'aiClientConfiguration',
|
|
4
|
+
];
|
|
5
|
+
export function deriveAppletRouteId(manifest) {
|
|
6
|
+
const segments = new URL(manifest.appId).pathname.split('/').filter(Boolean);
|
|
7
|
+
const encodedRouteId = segments[segments.length - 1];
|
|
8
|
+
const routeId = encodedRouteId ? decodeURIComponent(encodedRouteId) : undefined;
|
|
9
|
+
if (!routeId || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(routeId)) {
|
|
10
|
+
throw new Error(`Applet appId cannot produce a safe route id: ${manifest.appId}`);
|
|
11
|
+
}
|
|
12
|
+
return routeId;
|
|
13
|
+
}
|
|
14
|
+
export function validateExtensionManifest(value) {
|
|
15
|
+
const manifest = requireRecord(value, 'Extension manifest');
|
|
16
|
+
requireHttpsUrl(manifest.extensionId, 'extensionId');
|
|
17
|
+
requireString(manifest.name, 'name');
|
|
18
|
+
requireString(manifest.version, 'version');
|
|
19
|
+
requireString(manifest.sdkVersion, 'sdkVersion');
|
|
20
|
+
const contributes = requireRecord(manifest.contributes, 'contributes');
|
|
21
|
+
if (!Array.isArray(contributes.applets) || contributes.applets.length === 0) {
|
|
22
|
+
throw new Error('Extension manifest must contribute at least one Applet');
|
|
23
|
+
}
|
|
24
|
+
const appIds = new Set();
|
|
25
|
+
for (const value of contributes.applets) {
|
|
26
|
+
const applet = requireRecord(value, 'Applet manifest');
|
|
27
|
+
const appId = requireHttpsUrl(applet.appId, 'appId');
|
|
28
|
+
if (appIds.has(appId)) {
|
|
29
|
+
throw new Error(`Extension manifest has duplicate appId: ${appId}`);
|
|
30
|
+
}
|
|
31
|
+
appIds.add(appId);
|
|
32
|
+
requireString(applet.name, 'Applet name');
|
|
33
|
+
requireString(applet.entry, 'Applet entry');
|
|
34
|
+
if (!Array.isArray(applet.commands)) {
|
|
35
|
+
throw new Error('Applet commands must be an array');
|
|
36
|
+
}
|
|
37
|
+
if (applet.layout !== 'single-pane' && applet.layout !== 'two-pane') {
|
|
38
|
+
throw new Error('Applet layout must be single-pane or two-pane');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!Array.isArray(manifest.dataModels)) {
|
|
42
|
+
throw new Error('Extension dataModels must be an array');
|
|
43
|
+
}
|
|
44
|
+
if (!Array.isArray(manifest.hostCapabilities)) {
|
|
45
|
+
throw new Error('Extension hostCapabilities must be an array');
|
|
46
|
+
}
|
|
47
|
+
for (const capability of manifest.hostCapabilities) {
|
|
48
|
+
if (!HOST_CAPABILITY_NAMES.includes(capability)) {
|
|
49
|
+
throw new Error(`Extension manifest requested unknown Host capability: ${String(capability)}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
function requireRecord(value, field) {
|
|
55
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
56
|
+
throw new Error(`${field} must be an object`);
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
function requireString(value, field) {
|
|
61
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
62
|
+
throw new Error(`${field} must be a non-empty string`);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
function requireHttpsUrl(value, field) {
|
|
67
|
+
const text = requireString(value, field);
|
|
68
|
+
let url;
|
|
69
|
+
try {
|
|
70
|
+
url = new URL(text);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
throw new Error(`${field} must be a valid HTTPS URL`);
|
|
74
|
+
}
|
|
75
|
+
if (url.protocol !== 'https:') {
|
|
76
|
+
throw new Error(`${field} must be a valid HTTPS URL`);
|
|
77
|
+
}
|
|
78
|
+
return text;
|
|
79
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface AppLayoutProps {
|
|
3
|
+
navigation: ReactNode;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function AppLayout({ navigation, children, className, }: AppLayoutProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@undefineds.co/shared-ui';
|
|
3
|
+
const appLayoutGridStyle = {
|
|
4
|
+
gridTemplateColumns: '60px minmax(0, 1fr)',
|
|
5
|
+
};
|
|
6
|
+
export function AppLayout({ navigation, children, className, }) {
|
|
7
|
+
return (_jsxs("section", { className: cn('grid h-screen min-h-0 bg-background', className), style: appLayoutGridStyle, "data-app-layout": "workspace", children: [_jsx("aside", { className: "min-h-0 overflow-hidden border-r border-border/50 bg-layout-sidebar", children: navigation }), _jsx("div", { className: "min-h-0 min-w-0 overflow-hidden bg-layout-content", children: children })] }));
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export type AuthBoundaryState = {
|
|
3
|
+
status: 'loading';
|
|
4
|
+
} | {
|
|
5
|
+
status: 'anonymous';
|
|
6
|
+
} | {
|
|
7
|
+
status: 'authenticated';
|
|
8
|
+
} | {
|
|
9
|
+
status: 'error';
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
export interface LoginViewProps {
|
|
13
|
+
title: ReactNode;
|
|
14
|
+
description?: ReactNode;
|
|
15
|
+
defaultIssuer?: string;
|
|
16
|
+
logo?: ReactNode;
|
|
17
|
+
error?: string;
|
|
18
|
+
onLogin: (issuer: string) => void | Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export interface AuthBoundaryProps {
|
|
21
|
+
state: AuthBoundaryState;
|
|
22
|
+
login: (issuer: string) => void | Promise<void>;
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
loginView?: Omit<LoginViewProps, 'error' | 'onLogin'>;
|
|
25
|
+
}
|
|
26
|
+
export declare function LoginView({ title, description, defaultIssuer, logo, error, onLogin, }: LoginViewProps): import("react").JSX.Element;
|
|
27
|
+
export declare function AuthBoundary({ state, login, children, loginView, }: AuthBoundaryProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useId, useMemo, useState } from 'react';
|
|
3
|
+
import { Button, Input } from '@undefineds.co/shared-ui';
|
|
4
|
+
const defaultLoginTitle = 'Connect Solid Pod';
|
|
5
|
+
const safeLoginErrorMessage = '登录失败,请重试。';
|
|
6
|
+
function normalizeLoginError() {
|
|
7
|
+
return safeLoginErrorMessage;
|
|
8
|
+
}
|
|
9
|
+
function AuthSurface({ children, labelledBy, }) {
|
|
10
|
+
return (_jsx("section", { className: "flex min-h-screen items-center justify-center bg-background px-6 py-10 text-foreground", "aria-labelledby": labelledBy, "data-auth-boundary": "surface", children: _jsx("div", { className: "w-full max-w-md rounded-lg border border-border bg-layout-content px-8 py-7 shadow-sm", children: children }) }));
|
|
11
|
+
}
|
|
12
|
+
export function LoginView({ title, description, defaultIssuer = '', logo, error, onLogin, }) {
|
|
13
|
+
const titleId = useId();
|
|
14
|
+
const issuerId = useId();
|
|
15
|
+
const errorId = useId();
|
|
16
|
+
const [issuer, setIssuer] = useState(defaultIssuer);
|
|
17
|
+
const [pending, setPending] = useState(false);
|
|
18
|
+
const [submitError, setSubmitError] = useState();
|
|
19
|
+
const normalizedIssuer = issuer.trim();
|
|
20
|
+
const visibleError = submitError ?? error;
|
|
21
|
+
const describedBy = useMemo(() => (visibleError ? errorId : undefined), [errorId, visibleError]);
|
|
22
|
+
async function handleSubmit(event) {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
if (!normalizedIssuer || pending) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
setPending(true);
|
|
28
|
+
setSubmitError(undefined);
|
|
29
|
+
try {
|
|
30
|
+
await onLogin(normalizedIssuer);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
setSubmitError(normalizeLoginError());
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
setPending(false);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return (_jsx(AuthSurface, { labelledBy: titleId, children: _jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("div", { className: "flex flex-col gap-3 text-center", children: [logo ? (_jsx("div", { className: "flex justify-center", "aria-hidden": "true", children: logo })) : null, _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("h1", { id: titleId, className: "text-2xl font-semibold leading-8 tracking-normal", children: title }), description ? (_jsx("p", { className: "text-sm leading-6 text-muted-foreground", children: description })) : null] })] }), _jsxs("form", { className: "flex flex-col gap-4", onSubmit: (event) => void handleSubmit(event), children: [_jsxs("div", { className: "flex flex-col gap-2 text-left", children: [_jsx("label", { className: "text-sm font-medium leading-5 text-foreground", htmlFor: issuerId, children: "Solid issuer" }), _jsx(Input, { id: issuerId, value: issuer, disabled: pending, "aria-describedby": describedBy, placeholder: "https://solidcommunity.net", onChange: (event) => setIssuer(event.currentTarget.value) })] }), visibleError ? (_jsx("p", { id: errorId, className: "rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm leading-5 text-destructive", role: "alert", children: visibleError })) : null, _jsx(Button, { type: "submit", className: "w-full", disabled: !normalizedIssuer || pending, children: pending ? '登录中...' : '登录' })] })] }) }));
|
|
40
|
+
}
|
|
41
|
+
export function AuthBoundary({ state, login, children, loginView, }) {
|
|
42
|
+
if (state.status === 'authenticated') {
|
|
43
|
+
return _jsx(_Fragment, { children: children });
|
|
44
|
+
}
|
|
45
|
+
if (state.status === 'loading') {
|
|
46
|
+
return (_jsx(AuthSurface, { children: _jsxs("div", { className: "flex flex-col items-center gap-3 text-center text-sm leading-6 text-muted-foreground", role: "status", "aria-label": "\u8BA4\u8BC1\u72B6\u6001", children: [_jsx("span", { className: "h-8 w-8 rounded-full border-2 border-border border-t-primary", "aria-hidden": "true" }), _jsx("span", { children: "\u6B63\u5728\u68C0\u67E5\u767B\u5F55\u72B6\u6001" })] }) }));
|
|
47
|
+
}
|
|
48
|
+
return (_jsx(LoginView, { title: loginView?.title ?? defaultLoginTitle, description: loginView?.description, defaultIssuer: loginView?.defaultIssuer, logo: loginView?.logo, error: state.status === 'error' ? state.message : undefined, onLogin: login }));
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type WorkspaceLayoutMode = 'split' | 'stack';
|
|
2
|
+
export type WorkspaceLayoutPane = 'list' | 'main' | 'context';
|
|
3
|
+
export interface WorkspaceLayoutNavigation {
|
|
4
|
+
mode: WorkspaceLayoutMode;
|
|
5
|
+
activePane: WorkspaceLayoutPane;
|
|
6
|
+
openList(): void;
|
|
7
|
+
openMain(): void;
|
|
8
|
+
openContext(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare const WorkspaceLayoutContext: import("react").Context<WorkspaceLayoutNavigation | null>;
|
|
11
|
+
export declare function useWorkspaceLayout(): WorkspaceLayoutNavigation;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const WorkspaceLayoutContext = createContext(null);
|
|
3
|
+
export function useWorkspaceLayout() {
|
|
4
|
+
const navigation = useContext(WorkspaceLayoutContext);
|
|
5
|
+
if (!navigation) {
|
|
6
|
+
throw new Error('useWorkspaceLayout must be used inside TwoPaneLayout');
|
|
7
|
+
}
|
|
8
|
+
return navigation;
|
|
9
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type WorkspaceLayoutMode, type WorkspaceLayoutPane } from './layout-context';
|
|
3
|
+
export type TwoPaneLayoutMode = 'auto' | WorkspaceLayoutMode;
|
|
4
|
+
export interface TwoPaneLayoutProps {
|
|
5
|
+
listHeader: ReactNode;
|
|
6
|
+
list: ReactNode;
|
|
7
|
+
mainHeader: ReactNode;
|
|
8
|
+
main: ReactNode;
|
|
9
|
+
mode?: TwoPaneLayoutMode;
|
|
10
|
+
history?: WorkspaceLayoutHistoryAdapter;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SinglePaneLayoutProps {
|
|
14
|
+
header?: ReactNode;
|
|
15
|
+
main: ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ThreePaneLayoutContextConfig {
|
|
19
|
+
collapsible?: boolean;
|
|
20
|
+
initiallyCollapsed?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ThreePaneLayoutProps {
|
|
23
|
+
header?: ReactNode;
|
|
24
|
+
list: ReactNode;
|
|
25
|
+
main: ReactNode;
|
|
26
|
+
context: ReactNode;
|
|
27
|
+
mode?: TwoPaneLayoutMode;
|
|
28
|
+
history?: WorkspaceLayoutHistoryAdapter;
|
|
29
|
+
contextConfig?: ThreePaneLayoutContextConfig;
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface WorkspaceLayoutHistoryAdapter {
|
|
33
|
+
push(pane: WorkspaceLayoutPane): void;
|
|
34
|
+
subscribe(listener: (pane: WorkspaceLayoutPane) => void): () => void;
|
|
35
|
+
}
|
|
36
|
+
export declare function TwoPaneLayout({ listHeader, list, mainHeader, main, mode, history, className, }: TwoPaneLayoutProps): import("react").JSX.Element;
|
|
37
|
+
export declare function SinglePaneLayout({ header, main, className, }: SinglePaneLayoutProps): import("react").JSX.Element;
|
|
38
|
+
export declare function ThreePaneLayout({ header, list, main, context, mode, history, contextConfig, className, }: ThreePaneLayoutProps): import("react").JSX.Element;
|