@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RdfVectorIndex.js","sourceRoot":"","sources":["../../../src/storage/rdf/RdfVectorIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, mkdirSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { createSqliteRuntime, type SqliteDatabase } from '../SqliteRuntime';\nimport type {\n RdfVectorChunkInput,\n RdfVectorChunkRow,\n RdfVectorDistanceMetric,\n RdfSearchCardinalityEstimate,\n RdfVectorIndexOptions,\n RdfVectorIndexStats,\n RdfVectorModelDistribution,\n RdfVectorSearchOrder,\n RdfVectorSearchOptions,\n RdfVectorSearchResult,\n RdfVectorSourceInput,\n} from './types';\n\ninterface RdfVectorSourceRow {\n id: number;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n updated_at: string;\n}\n\ninterface RdfVectorScoredChunkRow extends RdfVectorChunkRow {\n dot_product: number;\n vector_score: number;\n vector_distance: number | null;\n vector_distance_squared: number | null;\n}\n\nexport class RdfVectorIndex {\n private readonly sqliteRuntime = createSqliteRuntime();\n private db: SqliteDatabase | null = null;\n\n public constructor(private readonly options: RdfVectorIndexOptions) {}\n\n public open(): void {\n if (this.db) {\n return;\n }\n\n if (this.options.path !== ':memory:') {\n const dir = dirname(this.options.path);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n }\n\n this.db = this.sqliteRuntime.openDatabase(this.options.path);\n this.initializeSchema();\n }\n\n public close(): void {\n this.db?.close();\n this.db = null;\n }\n\n public clear(): void {\n this.requireDb().exec('DELETE FROM rdf_vector_components; DELETE FROM rdf_vector_chunks; DELETE FROM rdf_vector_sources;');\n }\n\n public indexVector(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): void {\n const db = this.requireDb();\n const sourceId = this.upsertSource(source);\n const insertChunk = db.prepare(`\n INSERT INTO rdf_vector_chunks (\n source_id,\n chunk_key,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n embedding_json,\n dimensions,\n magnitude,\n model,\n updated_at\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n const insertComponent = db.prepare(`\n INSERT INTO rdf_vector_components (\n chunk_id,\n dimension,\n value,\n updated_at\n )\n VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n\n db.transaction(() => {\n db.prepare(`\n DELETE FROM rdf_vector_components\n WHERE chunk_id IN (\n SELECT id FROM rdf_vector_chunks WHERE source_id = ?\n )\n `).run(sourceId);\n db.prepare('DELETE FROM rdf_vector_chunks WHERE source_id = ?').run(sourceId);\n for (const chunk of chunks) {\n const embedding = normalizeEmbedding(chunk.embedding);\n const result = insertChunk.run(\n sourceId,\n chunk.chunkKey,\n chunk.ordinal,\n chunk.level,\n chunk.heading || null,\n JSON.stringify(chunk.path ?? []),\n chunk.content,\n chunk.startOffset,\n chunk.endOffset,\n JSON.stringify(embedding),\n embedding.length,\n vectorMagnitude(embedding),\n chunk.model ?? '',\n );\n insertVectorComponents(insertComponent, Number(result.lastInsertRowid), embedding);\n }\n })();\n }\n\n public deleteSource(source: string): number {\n const db = this.requireDb();\n const row = db.prepare<{ id: number }>('SELECT id FROM rdf_vector_sources WHERE source = ?').get(source);\n if (!row) {\n return 0;\n }\n\n return db.transaction(() => {\n db.prepare(`\n DELETE FROM rdf_vector_components\n WHERE chunk_id IN (\n SELECT id FROM rdf_vector_chunks WHERE source_id = ?\n )\n `).run(row.id);\n const deletedChunks = db.prepare('DELETE FROM rdf_vector_chunks WHERE source_id = ?').run(row.id).changes;\n db.prepare('DELETE FROM rdf_vector_sources WHERE id = ?').run(row.id);\n return deletedChunks;\n })();\n }\n\n public search(options: RdfVectorSearchOptions): RdfVectorSearchResult[] {\n const embedding = normalizeEmbedding(options.embedding);\n if (embedding.length === 0) {\n return [];\n }\n\n const metric = options.metric ?? this.options.defaultMetric ?? 'cosine';\n if (metric === 'cosine' && vectorMagnitude(embedding) === 0) {\n return [];\n }\n const scoredQuery = buildVectorScoredRowsQuery(embedding, metric, options);\n return this.requireDb()\n .prepare<RdfVectorScoredChunkRow>(scoredQuery.sql)\n .all(...scoredQuery.params)\n .map((row) => {\n const rowEmbedding = parseEmbedding(row.embedding_json);\n const distance = scoredVectorDistance(row, metric);\n return this.toSearchResult(row, rowEmbedding, vectorScore(distance, metric), distance);\n });\n }\n\n public estimateSearchCardinality(options: RdfVectorSearchOptions): RdfSearchCardinalityEstimate {\n const embedding = normalizeEmbedding(options.embedding);\n if (embedding.length === 0) {\n return {\n rows: 0,\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n const metric = options.metric ?? this.options.defaultMetric ?? 'cosine';\n if (metric === 'cosine' && vectorMagnitude(embedding) === 0) {\n return {\n rows: 0,\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n if (options.threshold !== undefined) {\n const countQuery = buildVectorScoredCountQuery(embedding, metric, options);\n const rows = this.requireDb().prepare<{ count: number }>(countQuery.sql).get(...countQuery.params)?.count ?? 0;\n return {\n rows: applyResultWindow(rows, options.offset, options.limit),\n source: 'vector-component-score',\n indexChoice: 'vector-component-score',\n };\n }\n\n const params: unknown[] = [embedding.length];\n const conditions = ['chunk.dimensions = ?'];\n\n if (options.workspace) {\n conditions.push('source.workspace = ?');\n params.push(options.workspace);\n }\n if (options.source) {\n conditions.push('source.source = ?');\n params.push(options.source);\n }\n if (options.sourcePrefix) {\n conditions.push('source.source >= ? AND source.source < ?');\n params.push(options.sourcePrefix, `${options.sourcePrefix}\\uffff`);\n }\n if (options.model !== undefined) {\n conditions.push('chunk.model = ?');\n params.push(options.model);\n }\n\n const rows = this.requireDb().prepare<{ count: number }>(`\n SELECT COUNT(*) AS count\n FROM rdf_vector_chunks chunk\n JOIN rdf_vector_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n `).get(...params)?.count ?? 0;\n\n return {\n rows: applyResultWindow(rows, options.offset, options.limit),\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n public stats(): RdfVectorIndexStats {\n const db = this.requireDb();\n return {\n sourceCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_sources').get()?.count ?? 0,\n chunkCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_chunks').get()?.count ?? 0,\n componentCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_components').get()?.count ?? 0,\n databaseBytes: this.estimateDatabaseBytes(),\n modelDistribution: this.modelDistribution(),\n };\n }\n\n public modelDistribution(): RdfVectorModelDistribution[] {\n const rows = this.requireDb().prepare<{\n model: string;\n dimensions: number;\n source_count: number;\n chunk_count: number;\n min_magnitude: number | null;\n max_magnitude: number | null;\n average_magnitude: number | null;\n }>(`\n SELECT\n chunk.model,\n chunk.dimensions,\n COUNT(DISTINCT chunk.source_id) AS source_count,\n COUNT(*) AS chunk_count,\n MIN(chunk.magnitude) AS min_magnitude,\n MAX(chunk.magnitude) AS max_magnitude,\n AVG(chunk.magnitude) AS average_magnitude\n FROM rdf_vector_chunks chunk\n GROUP BY chunk.model, chunk.dimensions\n ORDER BY chunk_count DESC, source_count DESC, chunk.model ASC, chunk.dimensions ASC\n `).all();\n\n return rows.map((row) => ({\n model: row.model,\n dimensions: row.dimensions,\n sourceCount: row.source_count,\n chunkCount: row.chunk_count,\n minMagnitude: row.min_magnitude ?? 0,\n maxMagnitude: row.max_magnitude ?? 0,\n averageMagnitude: row.average_magnitude ?? 0,\n }));\n }\n\n private initializeSchema(): void {\n this.requireDb().exec(`\n CREATE TABLE IF NOT EXISTS rdf_vector_sources (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n source TEXT NOT NULL UNIQUE,\n workspace TEXT NOT NULL,\n local_path TEXT,\n content_type TEXT,\n source_version TEXT,\n source_hash TEXT,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n );\n\n CREATE TABLE IF NOT EXISTS rdf_vector_chunks (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n source_id INTEGER NOT NULL,\n chunk_key TEXT NOT NULL,\n ordinal INTEGER NOT NULL,\n level INTEGER NOT NULL,\n heading TEXT,\n path TEXT,\n content TEXT NOT NULL,\n start_offset INTEGER NOT NULL,\n end_offset INTEGER NOT NULL,\n embedding_json TEXT NOT NULL,\n dimensions INTEGER NOT NULL,\n magnitude REAL NOT NULL,\n model TEXT NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n UNIQUE (source_id, chunk_key),\n FOREIGN KEY (source_id) REFERENCES rdf_vector_sources(id)\n );\n\n CREATE TABLE IF NOT EXISTS rdf_vector_components (\n chunk_id INTEGER NOT NULL,\n dimension INTEGER NOT NULL,\n value REAL NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n PRIMARY KEY (chunk_id, dimension),\n FOREIGN KEY (chunk_id) REFERENCES rdf_vector_chunks(id)\n );\n\n CREATE INDEX IF NOT EXISTS rdf_vector_sources_workspace ON rdf_vector_sources(workspace);\n CREATE INDEX IF NOT EXISTS rdf_vector_sources_source ON rdf_vector_sources(source);\n CREATE INDEX IF NOT EXISTS rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);\n CREATE INDEX IF NOT EXISTS rdf_vector_chunks_model_dimensions ON rdf_vector_chunks(model, dimensions);\n CREATE INDEX IF NOT EXISTS rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);\n `);\n this.backfillVectorComponents();\n }\n\n private backfillVectorComponents(): void {\n const db = this.requireDb();\n const rows = db.prepare<{\n id: number;\n dimensions: number;\n embedding_json: string;\n component_count: number;\n }>(`\n SELECT\n chunk.id,\n chunk.dimensions,\n chunk.embedding_json,\n COUNT(component.dimension) AS component_count\n FROM rdf_vector_chunks chunk\n LEFT JOIN rdf_vector_components component ON component.chunk_id = chunk.id\n WHERE chunk.dimensions > 0\n GROUP BY chunk.id\n HAVING component_count <> chunk.dimensions\n `).all();\n if (rows.length === 0) {\n return;\n }\n\n const deleteComponents = db.prepare('DELETE FROM rdf_vector_components WHERE chunk_id = ?');\n const insertComponent = db.prepare(`\n INSERT INTO rdf_vector_components (\n chunk_id,\n dimension,\n value,\n updated_at\n )\n VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n db.transaction(() => {\n for (const row of rows) {\n deleteComponents.run(row.id);\n insertVectorComponents(insertComponent, row.id, parseEmbedding(row.embedding_json));\n }\n })();\n }\n\n private upsertSource(source: RdfVectorSourceInput): number {\n const db = this.requireDb();\n db.prepare(`\n INSERT INTO rdf_vector_sources (\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n updated_at\n )\n VALUES (?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n ON CONFLICT (source)\n DO UPDATE SET\n workspace = excluded.workspace,\n local_path = excluded.local_path,\n content_type = excluded.content_type,\n source_version = excluded.source_version,\n source_hash = excluded.source_hash,\n updated_at = excluded.updated_at\n `).run(\n source.source,\n source.workspace,\n source.localPath ?? null,\n source.contentType ?? null,\n source.sourceVersion ?? null,\n source.sourceHash ?? null,\n );\n\n const row = db.prepare<RdfVectorSourceRow>('SELECT * FROM rdf_vector_sources WHERE source = ?').get(source.source);\n if (!row) {\n throw new Error(`Failed to upsert RDF vector source: ${source.source}`);\n }\n return row.id;\n }\n\n private estimateDatabaseBytes(): number {\n const db = this.requireDb();\n try {\n const pageCount = db.prepare<{ page_count: number }>('PRAGMA page_count').get()?.page_count ?? 0;\n const pageSize = db.prepare<{ page_size: number }>('PRAGMA page_size').get()?.page_size ?? 0;\n return pageCount * pageSize;\n } catch {\n return 0;\n }\n }\n\n private toSearchResult(\n row: RdfVectorChunkRow,\n embedding: number[],\n score: number,\n distance: number,\n ): RdfVectorSearchResult {\n return {\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n chunkKey: row.chunk_key,\n ordinal: row.ordinal,\n level: row.level,\n heading: row.heading ?? undefined,\n path: parsePath(row.path),\n content: row.content,\n startOffset: row.start_offset,\n endOffset: row.end_offset,\n embedding,\n model: row.model || undefined,\n score,\n distance,\n };\n }\n\n private requireDb(): SqliteDatabase {\n if (!this.db) {\n throw new Error('RdfVectorIndex is not open');\n }\n return this.db;\n }\n}\n\nfunction normalizeEmbedding(embedding: number[]): number[] {\n return embedding.filter((value) => Number.isFinite(value));\n}\n\nfunction parseEmbedding(value: string): number[] {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? normalizeEmbedding(parsed) : [];\n } catch {\n return [];\n }\n}\n\nfunction vectorMagnitude(embedding: number[]): number {\n return Math.sqrt(embedding.reduce((sum, value) => sum + value * value, 0));\n}\n\nfunction vectorScore(distance: number, metric: RdfVectorDistanceMetric): number {\n if (!Number.isFinite(distance)) {\n return Number.NEGATIVE_INFINITY;\n }\n if (metric === 'cosine') {\n return 1 - distance;\n }\n return -distance;\n}\n\nfunction scoredVectorDistance(row: RdfVectorScoredChunkRow, metric: RdfVectorDistanceMetric): number {\n if (metric === 'euclidean') {\n const squared = row.vector_distance_squared ?? Number.POSITIVE_INFINITY;\n const stableSquared = Math.abs(squared) < 1e-12 ? 0 : squared;\n return Math.sqrt(Math.max(0, stableSquared));\n }\n return row.vector_distance ?? Number.POSITIVE_INFINITY;\n}\n\nfunction dotProduct(left: number[], right: number[]): number {\n let sum = 0;\n for (let index = 0; index < left.length; index++) {\n sum += left[index] * right[index];\n }\n return sum;\n}\n\nfunction insertVectorComponents(insertComponent: { run(...params: unknown[]): unknown }, chunkId: number, embedding: number[]): void {\n for (let dimension = 0; dimension < embedding.length; dimension++) {\n insertComponent.run(chunkId, dimension, embedding[dimension]);\n }\n}\n\nfunction parsePath(value: string | null): string[] {\n if (!value) {\n return [];\n }\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction buildVectorScoredRowsQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): { sql: string; params: unknown[] } {\n const scored = buildVectorScoredBaseQuery(embedding, metric, options);\n const orderBy = buildVectorOrderClause(metric, options.orderBy);\n const window = buildVectorWindowClause(options.limit, options.offset);\n return {\n sql: `\n ${scored.withSql}\n SELECT\n scored.*,\n scored.dot_product AS dot_product,\n ${vectorScoreSql(metric, scored.queryMagnitude)} AS vector_score,\n ${vectorDistanceSql(metric, scored.queryMagnitude)} AS vector_distance,\n ${vectorSquaredDistanceSql(scored.queryMagnitude)} AS vector_distance_squared\n FROM scored\n ${scored.thresholdWhere}\n ORDER BY ${orderBy}\n ${window.sql}\n `,\n params: [...scored.params, ...window.params],\n };\n}\n\nfunction buildVectorScoredCountQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): { sql: string; params: unknown[] } {\n const scored = buildVectorScoredBaseQuery(embedding, metric, options);\n return {\n sql: `\n ${scored.withSql}\n SELECT COUNT(*) AS count\n FROM scored\n ${scored.thresholdWhere}\n `,\n params: scored.params,\n };\n}\n\nfunction buildVectorScoredBaseQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): {\n withSql: string;\n params: unknown[];\n thresholdWhere: string;\n queryMagnitude: number;\n} {\n const queryMagnitude = vectorMagnitude(embedding);\n const vectorValues = embedding.map(() => '(?, ?)').join(', ');\n const vectorParams = embedding.flatMap((value, dimension) => [dimension, value]);\n const conditions = ['chunk.dimensions = ?'];\n const params: unknown[] = [...vectorParams, embedding.length];\n\n if (metric === 'cosine') {\n conditions.push('chunk.magnitude > 0');\n }\n if (options.workspace) {\n conditions.push('source.workspace = ?');\n params.push(options.workspace);\n }\n if (options.source) {\n conditions.push('source.source = ?');\n params.push(options.source);\n }\n if (options.sourcePrefix) {\n conditions.push('source.source >= ? AND source.source < ?');\n params.push(options.sourcePrefix, `${options.sourcePrefix}\\uffff`);\n }\n if (options.model !== undefined) {\n conditions.push('chunk.model = ?');\n params.push(options.model);\n }\n\n const thresholdWhere = options.threshold === undefined\n ? ''\n : `WHERE ${vectorThresholdSql(metric, queryMagnitude, options.threshold)}`;\n\n return {\n withSql: `\n WITH query_vector(dimension, value) AS (\n VALUES ${vectorValues}\n ),\n scored AS (\n SELECT\n chunk.id,\n chunk.source_id,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.embedding_json,\n chunk.dimensions,\n chunk.magnitude,\n chunk.model,\n chunk.updated_at,\n SUM(component.value * query_vector.value) AS dot_product\n FROM rdf_vector_chunks chunk\n JOIN rdf_vector_sources source ON source.id = chunk.source_id\n JOIN rdf_vector_components component ON component.chunk_id = chunk.id\n JOIN query_vector ON query_vector.dimension = component.dimension\n WHERE ${conditions.join(' AND ')}\n GROUP BY chunk.id\n HAVING COUNT(component.dimension) = ${sqlInteger(embedding.length)}\n )\n `,\n params,\n thresholdWhere,\n queryMagnitude,\n };\n}\n\nfunction buildVectorOrderClause(\n metric: RdfVectorDistanceMetric,\n orderBy: RdfVectorSearchOrder[] | undefined,\n): string {\n const order = orderBy?.length ? orderBy : [{ field: 'score' as const, direction: 'desc' as const }];\n const entries = order.map((entry) => `${vectorOrderExpression(metric, entry.field)} ${entry.direction === 'desc' ? 'DESC' : 'ASC'}`);\n return [...entries, 'source_id ASC', 'ordinal ASC'].join(', ');\n}\n\nfunction vectorOrderExpression(metric: RdfVectorDistanceMetric, field: RdfVectorSearchOrder['field']): string {\n switch (field) {\n case 'score':\n return 'vector_score';\n case 'distance':\n return metric === 'euclidean' ? 'vector_distance_squared' : 'vector_distance';\n case 'source':\n return 'source';\n case 'localPath':\n return \"COALESCE(local_path, '')\";\n case 'ordinal':\n return 'ordinal';\n case 'startOffset':\n return 'start_offset';\n case 'endOffset':\n return 'end_offset';\n default: {\n const exhaustive: never = field;\n throw new Error(`Unsupported RDF vector search order field: ${exhaustive}`);\n }\n }\n}\n\nfunction buildVectorWindowClause(limit: number | undefined, offset: number | undefined): { sql: string; params: unknown[] } {\n const hasLimit = limit !== undefined;\n const hasOffset = offset !== undefined;\n if (!hasLimit && !hasOffset) {\n return { sql: '', params: [] };\n }\n if (hasLimit) {\n const params: unknown[] = [Math.max(0, limit)];\n if (hasOffset) {\n params.push(Math.max(0, offset));\n return { sql: 'LIMIT ? OFFSET ?', params };\n }\n return { sql: 'LIMIT ?', params };\n }\n return { sql: 'LIMIT -1 OFFSET ?', params: [Math.max(0, offset ?? 0)] };\n}\n\nfunction vectorScoreSql(metric: RdfVectorDistanceMetric, queryMagnitude: number): string {\n switch (metric) {\n case 'cosine':\n return `dot_product / (${sqlNumber(queryMagnitude)} * magnitude)`;\n case 'dot':\n return 'dot_product';\n case 'euclidean':\n return `-(${vectorSquaredDistanceSql(queryMagnitude)})`;\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nfunction vectorDistanceSql(metric: RdfVectorDistanceMetric, queryMagnitude: number): string {\n switch (metric) {\n case 'cosine':\n return `1 - (${vectorScoreSql(metric, queryMagnitude)})`;\n case 'dot':\n return '-dot_product';\n case 'euclidean':\n return 'NULL';\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nfunction vectorSquaredDistanceSql(queryMagnitude: number): string {\n return `(${sqlNumber(queryMagnitude * queryMagnitude)} + magnitude * magnitude - 2 * dot_product)`;\n}\n\nfunction vectorThresholdSql(metric: RdfVectorDistanceMetric, queryMagnitude: number, threshold: number): string {\n if (!Number.isFinite(threshold)) {\n return threshold === Number.NEGATIVE_INFINITY ? '1 = 1' : '1 = 0';\n }\n\n switch (metric) {\n case 'cosine':\n case 'dot':\n return `${vectorScoreSql(metric, queryMagnitude)} >= ${sqlNumber(threshold)}`;\n case 'euclidean':\n return threshold <= 0\n ? `${vectorSquaredDistanceSql(queryMagnitude)} <= ${sqlNumber(threshold * threshold)}`\n : '1 = 0';\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nfunction applyResultWindow(rows: number, offset: number | undefined, limit: number | undefined): number {\n const start = Math.max(0, offset ?? 0);\n if (rows <= start) {\n return 0;\n }\n const remaining = rows - start;\n return limit === undefined ? remaining : Math.min(remaining, Math.max(0, limit));\n}\n\nfunction sqlInteger(value: number): string {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error(`Invalid RDF vector SQL integer: ${value}`);\n }\n return String(value);\n}\n\nfunction sqlNumber(value: number): string {\n if (!Number.isFinite(value)) {\n throw new Error(`Invalid RDF vector SQL number: ${value}`);\n }\n return String(value);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RdfVectorIndex.js","sourceRoot":"","sources":["../../../src/storage/rdf/RdfVectorIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, mkdirSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { createSqliteRuntime, type SqliteDatabase } from '../SqliteRuntime';\nimport type {\n RdfVectorChunkInput,\n RdfVectorChunkRow,\n RdfVectorDistanceMetric,\n RdfSearchCardinalityEstimate,\n RdfVectorIndexOptions,\n RdfVectorIndexSyncLike,\n RdfVectorIndexStats,\n RdfVectorModelDistribution,\n RdfVectorSearchOrder,\n RdfVectorSearchOptions,\n RdfVectorSearchResult,\n RdfVectorSourceInput,\n RdfVectorScoreComponents,\n RdfVectorSummaryLifecycleEntry,\n RdfVectorSummaryLifecycleOptions,\n RdfVectorSummaryMetadata,\n} from './types';\nimport { appendRdfSearchSourceFilters } from './RdfSearchSourceFilter';\n\ninterface RdfVectorSourceRow {\n id: number;\n source_key: string;\n source: string;\n workspace: string;\n local_path: string | null;\n content_type: string | null;\n source_version: string | null;\n source_hash: string | null;\n updated_at: string;\n}\n\nexport interface RdfVectorScoredChunkRow extends RdfVectorChunkRow {\n dot_product: number;\n vector_score: number;\n vector_distance: number | null;\n vector_distance_squared: number | null;\n}\n\nexport class RdfVectorIndex implements RdfVectorIndexSyncLike {\n private readonly sqliteRuntime = createSqliteRuntime();\n private db: SqliteDatabase | null = null;\n\n public constructor(private readonly options: RdfVectorIndexOptions) {}\n\n public open(): void {\n if (this.db) {\n return;\n }\n\n if (this.options.path !== ':memory:') {\n const dir = dirname(this.options.path);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n }\n\n this.db = this.sqliteRuntime.openDatabase(this.options.path);\n this.initializeSchema();\n }\n\n public close(): void {\n this.db?.close();\n this.db = null;\n }\n\n public clear(): void {\n this.requireDb().exec('DELETE FROM rdf_vector_components; DELETE FROM rdf_vector_chunks; DELETE FROM rdf_vector_sources;');\n }\n\n public indexVector(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): void {\n const db = this.requireDb();\n const sourceId = this.upsertSource(source);\n const insertChunk = db.prepare(`\n INSERT INTO rdf_vector_chunks (\n source_id,\n chunk_key,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n embedding_json,\n summary_metadata,\n dimensions,\n magnitude,\n provider,\n model,\n model_version,\n input_kind,\n input_hash,\n projection_policy_version,\n updated_at\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n const insertComponent = db.prepare(`\n INSERT INTO rdf_vector_components (\n chunk_id,\n dimension,\n value,\n updated_at\n )\n VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n\n db.transaction(() => {\n if (chunks.length === 0) {\n db.prepare(`\n DELETE FROM rdf_vector_components\n WHERE chunk_id IN (\n SELECT id FROM rdf_vector_chunks WHERE source_id = ?\n )\n `).run(sourceId);\n db.prepare('DELETE FROM rdf_vector_chunks WHERE source_id = ?').run(sourceId);\n return;\n }\n const deleteComponents = db.prepare(`\n DELETE FROM rdf_vector_components\n WHERE chunk_id IN (\n SELECT id FROM rdf_vector_chunks\n WHERE source_id = ?\n AND provider = ?\n AND model = ?\n AND model_version = ?\n AND input_kind = ?\n AND projection_policy_version = ?\n )\n `);\n const deleteChunks = db.prepare(`\n DELETE FROM rdf_vector_chunks\n WHERE source_id = ?\n AND provider = ?\n AND model = ?\n AND model_version = ?\n AND input_kind = ?\n AND projection_policy_version = ?\n `);\n const deletedIdentities = new Set<string>();\n for (const chunk of chunks) {\n const identity = normalizeVectorIdentity(chunk);\n const identityKey = vectorIdentityKey(identity);\n if (!deletedIdentities.has(identityKey)) {\n deleteComponents.run(\n sourceId,\n identity.provider,\n identity.model,\n identity.modelVersion,\n identity.inputKind,\n identity.projectionPolicyVersion,\n );\n deleteChunks.run(\n sourceId,\n identity.provider,\n identity.model,\n identity.modelVersion,\n identity.inputKind,\n identity.projectionPolicyVersion,\n );\n deletedIdentities.add(identityKey);\n }\n const embedding = normalizeEmbedding(chunk.embedding);\n const result = insertChunk.run(\n sourceId,\n chunk.chunkKey,\n chunk.ordinal,\n chunk.level,\n chunk.heading || null,\n JSON.stringify(chunk.path ?? []),\n chunk.content,\n chunk.startOffset,\n chunk.endOffset,\n JSON.stringify(embedding),\n chunk.summaryMetadata ? JSON.stringify(chunk.summaryMetadata) : null,\n embedding.length,\n vectorMagnitude(embedding),\n identity.provider,\n identity.model,\n identity.modelVersion,\n identity.inputKind,\n chunk.inputHash ?? '',\n identity.projectionPolicyVersion,\n );\n insertVectorComponents(insertComponent, Number(result.lastInsertRowid), embedding);\n }\n })();\n }\n\n public deleteSource(source: string): number {\n const db = this.requireDb();\n const row = db.prepare<{ id: number }>('SELECT id FROM rdf_vector_sources WHERE source = ?').get(source);\n if (!row) {\n return 0;\n }\n\n return db.transaction(() => {\n db.prepare(`\n DELETE FROM rdf_vector_components\n WHERE chunk_id IN (\n SELECT id FROM rdf_vector_chunks WHERE source_id = ?\n )\n `).run(row.id);\n const deletedChunks = db.prepare('DELETE FROM rdf_vector_chunks WHERE source_id = ?').run(row.id).changes;\n db.prepare('DELETE FROM rdf_vector_sources WHERE id = ?').run(row.id);\n return deletedChunks;\n })();\n }\n\n public search(options: RdfVectorSearchOptions): RdfVectorSearchResult[] {\n const embedding = normalizeEmbedding(options.embedding);\n if (embedding.length === 0) {\n return [];\n }\n\n const metric = options.metric ?? this.options.defaultMetric ?? 'cosine';\n if (metric === 'cosine' && vectorMagnitude(embedding) === 0) {\n return [];\n }\n const scoredQuery = buildVectorScoredRowsQuery(embedding, metric, options);\n return this.requireDb()\n .prepare<RdfVectorScoredChunkRow>(scoredQuery.sql)\n .all(...scoredQuery.params)\n .map((row) => {\n const rowEmbedding = parseEmbedding(row.embedding_json);\n const distance = scoredVectorDistance(row, metric);\n return this.toSearchResult(row, rowEmbedding, metric, vectorMagnitude(embedding), vectorScore(distance, metric), distance);\n });\n }\n\n public summaryLifecycle(options: RdfVectorSummaryLifecycleOptions = {}): RdfVectorSummaryLifecycleEntry[] {\n const params: unknown[] = [];\n const conditions = ['chunk.summary_metadata IS NOT NULL'];\n if (options.workspace) {\n conditions.push('source.workspace = ?');\n params.push(options.workspace);\n }\n appendRdfSearchSourceFilters(options, conditions, params);\n appendVectorIdentityFilters(options, conditions, params);\n\n const limitSql = options.limit === undefined ? '' : 'LIMIT ?';\n if (options.limit !== undefined) {\n params.push(Math.max(0, options.limit));\n }\n\n const rows = this.requireDb().prepare<RdfVectorChunkRow>(`\n SELECT\n chunk.id,\n chunk.source_id,\n source.source_key,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.embedding_json,\n chunk.summary_metadata,\n chunk.dimensions,\n chunk.magnitude,\n chunk.provider,\n chunk.model,\n chunk.model_version,\n chunk.input_kind,\n chunk.input_hash,\n chunk.projection_policy_version,\n chunk.updated_at\n FROM rdf_vector_chunks chunk\n JOIN rdf_vector_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n ORDER BY source.source ASC, chunk.ordinal ASC, chunk.chunk_key ASC\n ${limitSql}\n `).all(...params);\n\n return rows.flatMap((row) => {\n const entry = toSummaryLifecycleEntry(row);\n return entry ? [entry] : [];\n });\n }\n\n public estimateSearchCardinality(options: RdfVectorSearchOptions): RdfSearchCardinalityEstimate {\n const embedding = normalizeEmbedding(options.embedding);\n if (embedding.length === 0) {\n return {\n rows: 0,\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n const metric = options.metric ?? this.options.defaultMetric ?? 'cosine';\n if (metric === 'cosine' && vectorMagnitude(embedding) === 0) {\n return {\n rows: 0,\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n if (options.threshold !== undefined) {\n const countQuery = buildVectorScoredCountQuery(embedding, metric, options);\n const rows = this.requireDb().prepare<{ count: number }>(countQuery.sql).get(...countQuery.params)?.count ?? 0;\n return {\n rows: applyResultWindow(rows, options.offset, options.limit),\n source: 'vector-component-score',\n indexChoice: 'vector-component-score',\n };\n }\n\n const params: unknown[] = [embedding.length];\n const conditions = ['chunk.dimensions = ?'];\n\n if (options.workspace) {\n conditions.push('source.workspace = ?');\n params.push(options.workspace);\n }\n appendRdfSearchSourceFilters(options, conditions, params);\n appendVectorIdentityFilters(options, conditions, params);\n\n const rows = this.requireDb().prepare<{ count: number }>(`\n SELECT COUNT(*) AS count\n FROM rdf_vector_chunks chunk\n JOIN rdf_vector_sources source ON source.id = chunk.source_id\n WHERE ${conditions.join(' AND ')}\n `).get(...params)?.count ?? 0;\n\n return {\n rows: applyResultWindow(rows, options.offset, options.limit),\n source: 'vector-candidate-count',\n indexChoice: 'vector-candidate-count',\n };\n }\n\n public stats(): RdfVectorIndexStats {\n const db = this.requireDb();\n return {\n sourceCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_sources').get()?.count ?? 0,\n chunkCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_chunks').get()?.count ?? 0,\n componentCount: db.prepare<{ count: number }>('SELECT COUNT(*) AS count FROM rdf_vector_components').get()?.count ?? 0,\n databaseBytes: this.estimateDatabaseBytes(),\n modelDistribution: this.modelDistribution(),\n };\n }\n\n public modelDistribution(): RdfVectorModelDistribution[] {\n const rows = this.requireDb().prepare<{\n provider: string;\n model: string;\n model_version: string;\n input_kind: string;\n projection_policy_version: string;\n dimensions: number;\n source_count: number;\n chunk_count: number;\n min_magnitude: number | null;\n max_magnitude: number | null;\n average_magnitude: number | null;\n }>(`\n SELECT\n chunk.provider,\n chunk.model,\n chunk.model_version,\n chunk.input_kind,\n chunk.projection_policy_version,\n chunk.dimensions,\n COUNT(DISTINCT chunk.source_id) AS source_count,\n COUNT(*) AS chunk_count,\n MIN(chunk.magnitude) AS min_magnitude,\n MAX(chunk.magnitude) AS max_magnitude,\n AVG(chunk.magnitude) AS average_magnitude\n FROM rdf_vector_chunks chunk\n GROUP BY chunk.provider, chunk.model, chunk.model_version, chunk.input_kind, chunk.projection_policy_version, chunk.dimensions\n ORDER BY chunk_count DESC, source_count DESC, chunk.provider ASC, chunk.model ASC, chunk.model_version ASC, chunk.input_kind ASC, chunk.projection_policy_version ASC, chunk.dimensions ASC\n `).all();\n\n return rows.map((row) => ({\n provider: row.provider || undefined,\n model: row.model,\n modelVersion: row.model_version || undefined,\n inputKind: row.input_kind || undefined,\n projectionPolicyVersion: row.projection_policy_version || undefined,\n dimensions: row.dimensions,\n sourceCount: row.source_count,\n chunkCount: row.chunk_count,\n minMagnitude: row.min_magnitude ?? 0,\n maxMagnitude: row.max_magnitude ?? 0,\n averageMagnitude: row.average_magnitude ?? 0,\n }));\n }\n\n private initializeSchema(): void {\n this.requireDb().exec(`\n CREATE TABLE IF NOT EXISTS rdf_vector_sources (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n source_key TEXT,\n source TEXT NOT NULL UNIQUE,\n workspace TEXT NOT NULL,\n local_path TEXT,\n content_type TEXT,\n source_version TEXT,\n source_hash TEXT,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n );\n\n CREATE TABLE IF NOT EXISTS rdf_vector_chunks (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n source_id INTEGER NOT NULL,\n chunk_key TEXT NOT NULL,\n ordinal INTEGER NOT NULL,\n level INTEGER NOT NULL,\n heading TEXT,\n path TEXT,\n content TEXT NOT NULL,\n start_offset INTEGER NOT NULL,\n end_offset INTEGER NOT NULL,\n embedding_json TEXT NOT NULL,\n summary_metadata TEXT,\n dimensions INTEGER NOT NULL,\n magnitude REAL NOT NULL,\n provider TEXT NOT NULL DEFAULT '',\n model TEXT NOT NULL,\n model_version TEXT NOT NULL DEFAULT '',\n input_kind TEXT NOT NULL DEFAULT '',\n input_hash TEXT NOT NULL DEFAULT '',\n projection_policy_version TEXT NOT NULL DEFAULT '',\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n UNIQUE (\n source_id,\n chunk_key,\n provider,\n model,\n model_version,\n input_kind,\n projection_policy_version,\n input_hash\n ),\n FOREIGN KEY (source_id) REFERENCES rdf_vector_sources(id)\n );\n\n CREATE TABLE IF NOT EXISTS rdf_vector_components (\n chunk_id INTEGER NOT NULL,\n dimension INTEGER NOT NULL,\n value REAL NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n PRIMARY KEY (chunk_id, dimension),\n FOREIGN KEY (chunk_id) REFERENCES rdf_vector_chunks(id)\n );\n\n CREATE INDEX IF NOT EXISTS rdf_vector_sources_workspace ON rdf_vector_sources(workspace);\n CREATE INDEX IF NOT EXISTS rdf_vector_sources_source ON rdf_vector_sources(source);\n CREATE INDEX IF NOT EXISTS rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);\n CREATE INDEX IF NOT EXISTS rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);\n `);\n this.ensureSourceKeyColumn();\n this.ensureVectorIdentityColumns();\n this.backfillVectorComponents();\n }\n\n private ensureSourceKeyColumn(): void {\n const db = this.requireDb();\n const columns = db.prepare<{ name: string }>('PRAGMA table_info(rdf_vector_sources)').all();\n if (!columns.some((column) => column.name === 'source_key')) {\n db.exec('ALTER TABLE rdf_vector_sources ADD COLUMN source_key TEXT');\n }\n db.exec('UPDATE rdf_vector_sources SET source_key = source WHERE source_key IS NULL OR source_key = \\'\\';');\n }\n\n private ensureVectorIdentityColumns(): void {\n const db = this.requireDb();\n const columns = db.prepare<{ name: string }>('PRAGMA table_info(rdf_vector_chunks)').all();\n const names = new Set(columns.map((column) => column.name));\n for (const [name, definition] of [\n ['provider', 'TEXT NOT NULL DEFAULT \\'\\''],\n ['model_version', 'TEXT NOT NULL DEFAULT \\'\\''],\n ['input_kind', 'TEXT NOT NULL DEFAULT \\'\\''],\n ['input_hash', 'TEXT NOT NULL DEFAULT \\'\\''],\n ['projection_policy_version', 'TEXT NOT NULL DEFAULT \\'\\''],\n ['summary_metadata', 'TEXT'],\n ] as const) {\n if (!names.has(name)) {\n db.exec(`ALTER TABLE rdf_vector_chunks ADD COLUMN ${name} ${definition}`);\n }\n }\n db.exec(`\n UPDATE rdf_vector_chunks\n SET\n provider = COALESCE(provider, ''),\n model_version = COALESCE(model_version, ''),\n input_kind = COALESCE(input_kind, ''),\n input_hash = COALESCE(input_hash, ''),\n projection_policy_version = COALESCE(projection_policy_version, '')\n `);\n this.ensureVectorChunkIdentityUniqueConstraint();\n db.exec(`\n CREATE INDEX IF NOT EXISTS rdf_vector_chunks_model_dimensions\n ON rdf_vector_chunks(provider, model, model_version, input_kind, projection_policy_version, dimensions)\n `);\n }\n\n private ensureVectorChunkIdentityUniqueConstraint(): void {\n const db = this.requireDb();\n const indexes = db.prepare<{ name: string; unique: number }>('PRAGMA index_list(rdf_vector_chunks)').all();\n const hasLegacyUnique = indexes.some((index) => {\n if (!index.unique) {\n return false;\n }\n const columns = db.prepare<{ name: string }>(`PRAGMA index_info(${sqliteStringLiteral(index.name)})`).all();\n return columns.map((column) => column.name).join(',') === 'source_id,chunk_key';\n });\n if (!hasLegacyUnique) {\n return;\n }\n\n db.exec(`\n ALTER TABLE rdf_vector_components RENAME TO rdf_vector_components_legacy_unique;\n ALTER TABLE rdf_vector_chunks RENAME TO rdf_vector_chunks_legacy_unique;\n\n CREATE TABLE rdf_vector_chunks (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n source_id INTEGER NOT NULL,\n chunk_key TEXT NOT NULL,\n ordinal INTEGER NOT NULL,\n level INTEGER NOT NULL,\n heading TEXT,\n path TEXT,\n content TEXT NOT NULL,\n start_offset INTEGER NOT NULL,\n end_offset INTEGER NOT NULL,\n embedding_json TEXT NOT NULL,\n summary_metadata TEXT,\n dimensions INTEGER NOT NULL,\n magnitude REAL NOT NULL,\n provider TEXT NOT NULL DEFAULT '',\n model TEXT NOT NULL,\n model_version TEXT NOT NULL DEFAULT '',\n input_kind TEXT NOT NULL DEFAULT '',\n input_hash TEXT NOT NULL DEFAULT '',\n projection_policy_version TEXT NOT NULL DEFAULT '',\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n UNIQUE (\n source_id,\n chunk_key,\n provider,\n model,\n model_version,\n input_kind,\n projection_policy_version,\n input_hash\n ),\n FOREIGN KEY (source_id) REFERENCES rdf_vector_sources(id)\n );\n\n CREATE TABLE rdf_vector_components (\n chunk_id INTEGER NOT NULL,\n dimension INTEGER NOT NULL,\n value REAL NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),\n PRIMARY KEY (chunk_id, dimension),\n FOREIGN KEY (chunk_id) REFERENCES rdf_vector_chunks(id)\n );\n\n INSERT INTO rdf_vector_chunks (\n id,\n source_id,\n chunk_key,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n embedding_json,\n summary_metadata,\n dimensions,\n magnitude,\n provider,\n model,\n model_version,\n input_kind,\n input_hash,\n projection_policy_version,\n updated_at\n )\n SELECT\n id,\n source_id,\n chunk_key,\n ordinal,\n level,\n heading,\n path,\n content,\n start_offset,\n end_offset,\n embedding_json,\n NULL AS summary_metadata,\n dimensions,\n magnitude,\n COALESCE(provider, ''),\n model,\n COALESCE(model_version, ''),\n COALESCE(input_kind, ''),\n COALESCE(input_hash, ''),\n COALESCE(projection_policy_version, ''),\n updated_at\n FROM rdf_vector_chunks_legacy_unique;\n\n INSERT INTO rdf_vector_components (\n chunk_id,\n dimension,\n value,\n updated_at\n )\n SELECT\n chunk_id,\n dimension,\n value,\n updated_at\n FROM rdf_vector_components_legacy_unique;\n\n DROP TABLE rdf_vector_components_legacy_unique;\n DROP TABLE rdf_vector_chunks_legacy_unique;\n CREATE INDEX IF NOT EXISTS rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);\n CREATE INDEX IF NOT EXISTS rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);\n `);\n }\n\n private backfillVectorComponents(): void {\n const db = this.requireDb();\n const rows = db.prepare<{\n id: number;\n dimensions: number;\n embedding_json: string;\n component_count: number;\n }>(`\n SELECT\n chunk.id,\n chunk.dimensions,\n chunk.embedding_json,\n COUNT(component.dimension) AS component_count\n FROM rdf_vector_chunks chunk\n LEFT JOIN rdf_vector_components component ON component.chunk_id = chunk.id\n WHERE chunk.dimensions > 0\n GROUP BY chunk.id\n HAVING component_count <> chunk.dimensions\n `).all();\n if (rows.length === 0) {\n return;\n }\n\n const deleteComponents = db.prepare('DELETE FROM rdf_vector_components WHERE chunk_id = ?');\n const insertComponent = db.prepare(`\n INSERT INTO rdf_vector_components (\n chunk_id,\n dimension,\n value,\n updated_at\n )\n VALUES (?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n `);\n db.transaction(() => {\n for (const row of rows) {\n deleteComponents.run(row.id);\n insertVectorComponents(insertComponent, row.id, parseEmbedding(row.embedding_json));\n }\n })();\n }\n\n private upsertSource(source: RdfVectorSourceInput): number {\n const db = this.requireDb();\n db.prepare(`\n INSERT INTO rdf_vector_sources (\n source_key,\n source,\n workspace,\n local_path,\n content_type,\n source_version,\n source_hash,\n updated_at\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n ON CONFLICT (source)\n DO UPDATE SET\n source_key = COALESCE(excluded.source_key, rdf_vector_sources.source_key, excluded.source),\n workspace = excluded.workspace,\n local_path = excluded.local_path,\n content_type = excluded.content_type,\n source_version = excluded.source_version,\n source_hash = excluded.source_hash,\n updated_at = excluded.updated_at\n `).run(\n source.sourceKey ?? source.source,\n source.source,\n source.workspace,\n source.localPath ?? null,\n source.contentType ?? null,\n source.sourceVersion ?? null,\n source.sourceHash ?? null,\n );\n\n const row = db.prepare<RdfVectorSourceRow>('SELECT * FROM rdf_vector_sources WHERE source = ?').get(source.source);\n if (!row) {\n throw new Error(`Failed to upsert RDF vector source: ${source.source}`);\n }\n return row.id;\n }\n\n private estimateDatabaseBytes(): number {\n const db = this.requireDb();\n try {\n const pageCount = db.prepare<{ page_count: number }>('PRAGMA page_count').get()?.page_count ?? 0;\n const pageSize = db.prepare<{ page_size: number }>('PRAGMA page_size').get()?.page_size ?? 0;\n return pageCount * pageSize;\n } catch {\n return 0;\n }\n }\n\n private toSearchResult(\n row: RdfVectorScoredChunkRow,\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n queryMagnitude: number,\n score: number,\n distance: number,\n ): RdfVectorSearchResult {\n return {\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n sourceKey: row.source_key || row.source,\n chunkKey: row.chunk_key,\n retrievalPointKey: row.chunk_key,\n ordinal: row.ordinal,\n level: row.level,\n heading: row.heading ?? undefined,\n path: parsePath(row.path),\n content: row.content,\n startOffset: row.start_offset,\n endOffset: row.end_offset,\n embedding,\n provider: row.provider || undefined,\n model: row.model || undefined,\n modelVersion: row.model_version || undefined,\n inputKind: row.input_kind || undefined,\n inputHash: row.input_hash || undefined,\n projectionPolicyVersion: row.projection_policy_version || undefined,\n summaryMetadata: parseSummaryMetadata(row.summary_metadata),\n scoreComponents: vectorScoreComponents(row, metric, queryMagnitude, score, distance),\n score,\n distance,\n };\n }\n\n private requireDb(): SqliteDatabase {\n if (!this.db) {\n throw new Error('RdfVectorIndex is not open');\n }\n return this.db;\n }\n}\n\nexport function vectorScoreComponents(\n row: Pick<RdfVectorScoredChunkRow, 'dimensions' | 'dot_product' | 'magnitude' | 'vector_distance_squared'>,\n metric: RdfVectorDistanceMetric,\n queryMagnitude: number,\n score: number,\n distance: number,\n backend?: 'component' | 'pg-vector',\n): RdfVectorScoreComponents {\n const distanceSquared = row.vector_distance_squared ?? undefined;\n return {\n sourceType: 'vector',\n ...(backend ? { backend } : {}),\n metric,\n dimensions: row.dimensions,\n score,\n distance,\n dotProduct: row.dot_product,\n queryMagnitude,\n candidateMagnitude: row.magnitude,\n ...(distanceSquared !== undefined ? { distanceSquared } : {}),\n };\n}\n\nexport function normalizeEmbedding(embedding: number[]): number[] {\n return embedding.filter((value) => Number.isFinite(value));\n}\n\nexport function parseEmbedding(value: string): number[] {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? normalizeEmbedding(parsed) : [];\n } catch {\n return [];\n }\n}\n\nexport function vectorMagnitude(embedding: number[]): number {\n return Math.sqrt(embedding.reduce((sum, value) => sum + value * value, 0));\n}\n\nexport function vectorScore(distance: number, metric: RdfVectorDistanceMetric): number {\n if (!Number.isFinite(distance)) {\n return Number.NEGATIVE_INFINITY;\n }\n if (metric === 'cosine') {\n return 1 - distance;\n }\n return -distance;\n}\n\nexport function scoredVectorDistance(row: RdfVectorScoredChunkRow, metric: RdfVectorDistanceMetric): number {\n if (metric === 'euclidean') {\n const squared = row.vector_distance_squared ?? Number.POSITIVE_INFINITY;\n const stableSquared = Math.abs(squared) < 1e-12 ? 0 : squared;\n return Math.sqrt(Math.max(0, stableSquared));\n }\n return row.vector_distance ?? Number.POSITIVE_INFINITY;\n}\n\nfunction dotProduct(left: number[], right: number[]): number {\n let sum = 0;\n for (let index = 0; index < left.length; index++) {\n sum += left[index] * right[index];\n }\n return sum;\n}\n\nexport function insertVectorComponents(insertComponent: { run(...params: unknown[]): unknown }, chunkId: number, embedding: number[]): void {\n for (let dimension = 0; dimension < embedding.length; dimension++) {\n insertComponent.run(chunkId, dimension, embedding[dimension]);\n }\n}\n\nexport function parsePath(value: string | null): string[] {\n if (!value) {\n return [];\n }\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nexport function parseSummaryMetadata(value: string | null): RdfVectorSummaryMetadata | undefined {\n if (!value) {\n return undefined;\n }\n try {\n const parsed = JSON.parse(value);\n if (\n !parsed ||\n parsed.status !== 'summarized' ||\n typeof parsed.provider !== 'string' ||\n typeof parsed.model !== 'string' ||\n typeof parsed.promptVersion !== 'string' ||\n typeof parsed.originalChars !== 'number' ||\n typeof parsed.summaryChars !== 'number' ||\n typeof parsed.rounds !== 'number'\n ) {\n return undefined;\n }\n return {\n status: 'summarized',\n provider: parsed.provider,\n model: parsed.model,\n promptVersion: parsed.promptVersion,\n ...(typeof parsed.sourceHash === 'string' ? { sourceHash: parsed.sourceHash } : {}),\n originalChars: parsed.originalChars,\n summaryChars: parsed.summaryChars,\n rounds: parsed.rounds,\n };\n } catch {\n return undefined;\n }\n}\n\ninterface NormalizedVectorIdentity {\n provider: string;\n model: string;\n modelVersion: string;\n inputKind: string;\n projectionPolicyVersion: string;\n}\n\nfunction normalizeVectorIdentity(chunk: RdfVectorChunkInput): NormalizedVectorIdentity {\n return {\n provider: chunk.provider ?? '',\n model: chunk.model ?? '',\n modelVersion: chunk.modelVersion ?? '',\n inputKind: chunk.inputKind ?? '',\n projectionPolicyVersion: chunk.projectionPolicyVersion ?? '',\n };\n}\n\nfunction vectorIdentityKey(identity: NormalizedVectorIdentity): string {\n return [\n identity.provider,\n identity.model,\n identity.modelVersion,\n identity.inputKind,\n identity.projectionPolicyVersion,\n ].join('\\u0000');\n}\n\nfunction sqliteStringLiteral(value: string): string {\n return `'${value.replace(/'/g, '\\'\\'')}'`;\n}\n\nfunction appendVectorIdentityFilters(\n options: RdfVectorSearchOptions | RdfVectorSummaryLifecycleOptions,\n conditions: string[],\n params: unknown[],\n): void {\n if (options.provider !== undefined) {\n conditions.push('chunk.provider = ?');\n params.push(options.provider);\n }\n if (options.model !== undefined) {\n conditions.push('chunk.model = ?');\n params.push(options.model);\n }\n if (options.modelVersion !== undefined) {\n conditions.push('chunk.model_version = ?');\n params.push(options.modelVersion);\n }\n if (options.inputKind !== undefined) {\n conditions.push('chunk.input_kind = ?');\n params.push(options.inputKind);\n }\n if (options.inputHash !== undefined) {\n conditions.push('chunk.input_hash = ?');\n params.push(options.inputHash);\n }\n if (options.projectionPolicyVersion !== undefined) {\n conditions.push('chunk.projection_policy_version = ?');\n params.push(options.projectionPolicyVersion);\n }\n}\n\nfunction toSummaryLifecycleEntry(row: RdfVectorChunkRow): RdfVectorSummaryLifecycleEntry | undefined {\n const summaryMetadata = parseSummaryMetadata(row.summary_metadata);\n if (!summaryMetadata) {\n return undefined;\n }\n\n return {\n source: row.source,\n workspace: row.workspace,\n localPath: row.local_path ?? undefined,\n contentType: row.content_type ?? undefined,\n sourceVersion: row.source_version ?? undefined,\n sourceHash: row.source_hash ?? undefined,\n sourceKey: row.source_key || row.source,\n chunkKey: row.chunk_key,\n retrievalPointKey: row.chunk_key,\n ordinal: row.ordinal,\n level: row.level,\n heading: row.heading ?? undefined,\n path: parsePath(row.path),\n content: row.content,\n startOffset: row.start_offset,\n endOffset: row.end_offset,\n provider: row.provider || undefined,\n model: row.model || undefined,\n modelVersion: row.model_version || undefined,\n inputKind: row.input_kind || undefined,\n inputHash: row.input_hash || undefined,\n projectionPolicyVersion: row.projection_policy_version || undefined,\n summaryMetadata,\n updatedAt: row.updated_at,\n };\n}\n\nfunction buildVectorScoredRowsQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): { sql: string; params: unknown[] } {\n const scored = buildVectorScoredBaseQuery(embedding, metric, options);\n const orderBy = buildVectorOrderClause(metric, options.orderBy);\n const window = buildVectorWindowClause(options.limit, options.offset);\n return {\n sql: `\n ${scored.withSql}\n SELECT\n scored.*,\n scored.dot_product AS dot_product,\n ${vectorScoreSql(metric, scored.queryMagnitude)} AS vector_score,\n ${vectorDistanceSql(metric, scored.queryMagnitude)} AS vector_distance,\n ${vectorSquaredDistanceSql(scored.queryMagnitude)} AS vector_distance_squared\n FROM scored\n ${scored.thresholdWhere}\n ORDER BY ${orderBy}\n ${window.sql}\n `,\n params: [...scored.params, ...window.params],\n };\n}\n\nfunction buildVectorScoredCountQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): { sql: string; params: unknown[] } {\n const scored = buildVectorScoredBaseQuery(embedding, metric, options);\n return {\n sql: `\n ${scored.withSql}\n SELECT COUNT(*) AS count\n FROM scored\n ${scored.thresholdWhere}\n `,\n params: scored.params,\n };\n}\n\nfunction buildVectorScoredBaseQuery(\n embedding: number[],\n metric: RdfVectorDistanceMetric,\n options: RdfVectorSearchOptions,\n): {\n withSql: string;\n params: unknown[];\n thresholdWhere: string;\n queryMagnitude: number;\n} {\n const queryMagnitude = vectorMagnitude(embedding);\n const vectorValues = embedding.map(() => '(?, ?)').join(', ');\n const vectorParams = embedding.flatMap((value, dimension) => [dimension, value]);\n const conditions = ['chunk.dimensions = ?'];\n const params: unknown[] = [...vectorParams, embedding.length];\n\n if (metric === 'cosine') {\n conditions.push('chunk.magnitude > 0');\n }\n if (options.workspace) {\n conditions.push('source.workspace = ?');\n params.push(options.workspace);\n }\n appendRdfSearchSourceFilters(options, conditions, params);\n appendVectorIdentityFilters(options, conditions, params);\n\n const thresholdWhere = options.threshold === undefined\n ? ''\n : `WHERE ${vectorThresholdSql(metric, queryMagnitude, options.threshold)}`;\n\n return {\n withSql: `\n WITH query_vector(dimension, value) AS (\n VALUES ${vectorValues}\n ),\n scored AS (\n SELECT\n chunk.id,\n chunk.source_id,\n source.source_key,\n source.source,\n source.workspace,\n source.local_path,\n source.content_type,\n source.source_version,\n source.source_hash,\n chunk.chunk_key,\n chunk.ordinal,\n chunk.level,\n chunk.heading,\n chunk.path,\n chunk.content,\n chunk.start_offset,\n chunk.end_offset,\n chunk.embedding_json,\n chunk.summary_metadata,\n chunk.dimensions,\n chunk.magnitude,\n chunk.provider,\n chunk.model,\n chunk.model_version,\n chunk.input_kind,\n chunk.input_hash,\n chunk.projection_policy_version,\n chunk.updated_at,\n SUM(component.value * query_vector.value) AS dot_product\n FROM rdf_vector_chunks chunk\n JOIN rdf_vector_sources source ON source.id = chunk.source_id\n JOIN rdf_vector_components component ON component.chunk_id = chunk.id\n JOIN query_vector ON query_vector.dimension = component.dimension\n WHERE ${conditions.join(' AND ')}\n GROUP BY chunk.id\n HAVING COUNT(component.dimension) = ${sqlInteger(embedding.length)}\n )\n `,\n params,\n thresholdWhere,\n queryMagnitude,\n };\n}\n\nexport function buildVectorOrderClause(\n metric: RdfVectorDistanceMetric,\n orderBy: RdfVectorSearchOrder[] | undefined,\n): string {\n const order = orderBy?.length ? orderBy : [{ field: 'score' as const, direction: 'desc' as const }];\n const entries = order.map((entry) => `${vectorOrderExpression(metric, entry.field)} ${entry.direction === 'desc' ? 'DESC' : 'ASC'}`);\n return [...entries, 'source_id ASC', 'ordinal ASC'].join(', ');\n}\n\nfunction vectorOrderExpression(metric: RdfVectorDistanceMetric, field: RdfVectorSearchOrder['field']): string {\n switch (field) {\n case 'score':\n return 'vector_score';\n case 'distance':\n return metric === 'euclidean' ? 'vector_distance_squared' : 'vector_distance';\n case 'source':\n return 'source';\n case 'localPath':\n return \"COALESCE(local_path, '')\";\n case 'ordinal':\n return 'ordinal';\n case 'startOffset':\n return 'start_offset';\n case 'endOffset':\n return 'end_offset';\n default: {\n const exhaustive: never = field;\n throw new Error(`Unsupported RDF vector search order field: ${exhaustive}`);\n }\n }\n}\n\nfunction buildVectorWindowClause(limit: number | undefined, offset: number | undefined): { sql: string; params: unknown[] } {\n const hasLimit = limit !== undefined;\n const hasOffset = offset !== undefined;\n if (!hasLimit && !hasOffset) {\n return { sql: '', params: [] };\n }\n if (hasLimit) {\n const params: unknown[] = [Math.max(0, limit)];\n if (hasOffset) {\n params.push(Math.max(0, offset));\n return { sql: 'LIMIT ? OFFSET ?', params };\n }\n return { sql: 'LIMIT ?', params };\n }\n return { sql: 'LIMIT -1 OFFSET ?', params: [Math.max(0, offset ?? 0)] };\n}\n\nexport function vectorScoreSql(metric: RdfVectorDistanceMetric, queryMagnitude: number): string {\n switch (metric) {\n case 'cosine':\n return `dot_product / (${sqlNumber(queryMagnitude)} * magnitude)`;\n case 'dot':\n return 'dot_product';\n case 'euclidean':\n return `-(${vectorSquaredDistanceSql(queryMagnitude)})`;\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nexport function vectorDistanceSql(metric: RdfVectorDistanceMetric, queryMagnitude: number): string {\n switch (metric) {\n case 'cosine':\n return `1 - (${vectorScoreSql(metric, queryMagnitude)})`;\n case 'dot':\n return '-dot_product';\n case 'euclidean':\n return 'NULL';\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nexport function vectorSquaredDistanceSql(queryMagnitude: number): string {\n return `(${sqlNumber(queryMagnitude * queryMagnitude)} + magnitude * magnitude - 2 * dot_product)`;\n}\n\nexport function vectorThresholdSql(metric: RdfVectorDistanceMetric, queryMagnitude: number, threshold: number): string {\n if (!Number.isFinite(threshold)) {\n return threshold === Number.NEGATIVE_INFINITY ? '1 = 1' : '1 = 0';\n }\n\n switch (metric) {\n case 'cosine':\n case 'dot':\n return `${vectorScoreSql(metric, queryMagnitude)} >= ${sqlNumber(threshold)}`;\n case 'euclidean':\n return threshold <= 0\n ? `${vectorSquaredDistanceSql(queryMagnitude)} <= ${sqlNumber(threshold * threshold)}`\n : '1 = 0';\n default: {\n const exhaustive: never = metric;\n throw new Error(`Unsupported RDF vector distance metric: ${exhaustive}`);\n }\n }\n}\n\nexport function applyResultWindow(rows: number, offset: number | undefined, limit: number | undefined): number {\n const start = Math.max(0, offset ?? 0);\n if (rows <= start) {\n return 0;\n }\n const remaining = rows - start;\n return limit === undefined ? remaining : Math.min(remaining, Math.max(0, limit));\n}\n\nfunction sqlInteger(value: number): string {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error(`Invalid RDF vector SQL integer: ${value}`);\n }\n return String(value);\n}\n\nexport function sqlNumber(value: number): string {\n if (!Number.isFinite(value)) {\n throw new Error(`Invalid RDF vector SQL number: ${value}`);\n }\n return String(value);\n}\n"]}
|
|
@@ -0,0 +1,163 @@
|
|
|
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/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex",
|
|
9
|
+
"@type": "Class",
|
|
10
|
+
"requireElement": "RdfVectorIndex",
|
|
11
|
+
"extends": [
|
|
12
|
+
"undefineds:dist/storage/rdf/types.jsonld#RdfVectorIndexSyncLike"
|
|
13
|
+
],
|
|
14
|
+
"parameters": [
|
|
15
|
+
{
|
|
16
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex_options_path",
|
|
17
|
+
"range": "xsd:string"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex_options_defaultMetric",
|
|
21
|
+
"range": {
|
|
22
|
+
"@type": "ParameterRangeUnion",
|
|
23
|
+
"parameterRangeElements": [
|
|
24
|
+
{
|
|
25
|
+
"@type": "ParameterRangeUnion",
|
|
26
|
+
"parameterRangeElements": [
|
|
27
|
+
{
|
|
28
|
+
"@type": "ParameterRangeLiteral",
|
|
29
|
+
"parameterRangeValueLiteral": "cosine"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"@type": "ParameterRangeLiteral",
|
|
33
|
+
"parameterRangeValueLiteral": "dot"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"@type": "ParameterRangeLiteral",
|
|
37
|
+
"parameterRangeValueLiteral": "euclidean"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"@type": "ParameterRangeUndefined"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"memberFields": [
|
|
49
|
+
{
|
|
50
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_options",
|
|
51
|
+
"memberFieldName": "options"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_sqliteRuntime",
|
|
55
|
+
"memberFieldName": "sqliteRuntime"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_db",
|
|
59
|
+
"memberFieldName": "db"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_constructor",
|
|
63
|
+
"memberFieldName": "constructor"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_open",
|
|
67
|
+
"memberFieldName": "open"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_close",
|
|
71
|
+
"memberFieldName": "close"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_clear",
|
|
75
|
+
"memberFieldName": "clear"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_indexVector",
|
|
79
|
+
"memberFieldName": "indexVector"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_deleteSource",
|
|
83
|
+
"memberFieldName": "deleteSource"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_search",
|
|
87
|
+
"memberFieldName": "search"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_summaryLifecycle",
|
|
91
|
+
"memberFieldName": "summaryLifecycle"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_estimateSearchCardinality",
|
|
95
|
+
"memberFieldName": "estimateSearchCardinality"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_stats",
|
|
99
|
+
"memberFieldName": "stats"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_modelDistribution",
|
|
103
|
+
"memberFieldName": "modelDistribution"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_initializeSchema",
|
|
107
|
+
"memberFieldName": "initializeSchema"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureSourceKeyColumn",
|
|
111
|
+
"memberFieldName": "ensureSourceKeyColumn"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureVectorIdentityColumns",
|
|
115
|
+
"memberFieldName": "ensureVectorIdentityColumns"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_ensureVectorChunkIdentityUniqueConstraint",
|
|
119
|
+
"memberFieldName": "ensureVectorChunkIdentityUniqueConstraint"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_backfillVectorComponents",
|
|
123
|
+
"memberFieldName": "backfillVectorComponents"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_upsertSource",
|
|
127
|
+
"memberFieldName": "upsertSource"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_estimateDatabaseBytes",
|
|
131
|
+
"memberFieldName": "estimateDatabaseBytes"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_toSearchResult",
|
|
135
|
+
"memberFieldName": "toSearchResult"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex__member_requireDb",
|
|
139
|
+
"memberFieldName": "requireDb"
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"constructorArguments": [
|
|
143
|
+
{
|
|
144
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex_options__constructorArgument",
|
|
145
|
+
"fields": [
|
|
146
|
+
{
|
|
147
|
+
"keyRaw": "path",
|
|
148
|
+
"value": {
|
|
149
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex_options_path"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"keyRaw": "defaultMetric",
|
|
154
|
+
"value": {
|
|
155
|
+
"@id": "undefineds:dist/storage/rdf/RdfVectorIndex.jsonld#RdfVectorIndex_options_defaultMetric"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { Quad } from '@rdfjs/types';
|
|
2
2
|
import type { QuintPattern, QuintStore } from '../quint/types';
|
|
3
|
-
import type { Rdf3xShadowJoinResult, Rdf3xShadowScanResult, Rdf3xIndexOptions, RdfDerivedIndexProfile, RdfDerivedIndexRefreshResult, RdfEngineStorageStats, RdfIndexPutOptions, RdfPatternQuery, RdfQuadJoinOptions, RdfQuadJoinPattern, RdfQuadIndexOptions, RdfQuadIndexScanResult, RdfSourceInput, RdfShadowScanResult, RdfTextChunkInput, RdfTextIndexOptions, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceInput, RdfVectorChunkInput, RdfVectorIndexOptions, RdfVectorSearchOptions, RdfVectorSearchResult, RdfVectorSourceInput, RdfEngineLike } from './types';
|
|
3
|
+
import type { Rdf3xShadowJoinResult, Rdf3xShadowScanResult, Rdf3xIndexOptions, RdfDerivedIndexProfile, RdfDerivedIndexRefreshOptions, RdfDerivedIndexRefreshResult, RdfEngineStorageStats, RdfIndexPutOptions, RdfPatternQuery, RdfQuadJoinOptions, RdfQuadJoinPattern, RdfQuadIndexOptions, RdfQuadIndexScanResult, RdfSourceInput, RdfShadowScanResult, RdfTextChunkInput, RdfTextIndexOptions, RdfTextIndexSyncLike, RdfTextSearchOptions, RdfTextSearchResult, RdfTextSourceInput, RdfTermRewriteInput, RdfTermRewriteResult, RdfVectorChunkInput, RdfVectorIndexOptions, RdfVectorIndexSyncLike, RdfVectorSearchOptions, RdfVectorSearchResult, RdfVectorSourceInput, RdfEngineLike, RdfStorageStatsOptions } from './types';
|
|
4
4
|
import { RdfQuadIndex } from './RdfQuadIndex';
|
|
5
5
|
import { Rdf3xIndex } from './Rdf3xIndex';
|
|
6
|
-
import { RdfTextIndex } from './RdfTextIndex';
|
|
7
|
-
import { RdfVectorIndex } from './RdfVectorIndex';
|
|
8
6
|
import type { RdfQuery, RdfQueryResult } from './types';
|
|
7
|
+
type RdfTextIndexInput = RdfTextIndexSyncLike | RdfTextIndexOptions;
|
|
8
|
+
type RdfVectorIndexInput = RdfVectorIndexSyncLike | RdfVectorIndexOptions;
|
|
9
9
|
export interface SolidRdfEngineOptions {
|
|
10
10
|
index: RdfQuadIndex | RdfQuadIndexOptions;
|
|
11
11
|
derivedIndexProfile?: RdfDerivedIndexProfile;
|
|
12
|
-
textIndex?:
|
|
13
|
-
vectorIndex?:
|
|
12
|
+
textIndex?: RdfTextIndexInput;
|
|
13
|
+
vectorIndex?: RdfVectorIndexInput;
|
|
14
14
|
rdf3xIndex?: Rdf3xIndex | Rdf3xIndexOptions;
|
|
15
15
|
rdf3xPrimary?: boolean;
|
|
16
16
|
compatibilityStore?: QuintStore;
|
|
@@ -18,8 +18,8 @@ export interface SolidRdfEngineOptions {
|
|
|
18
18
|
}
|
|
19
19
|
export declare class SolidRdfEngine implements RdfEngineLike {
|
|
20
20
|
readonly index: RdfQuadIndex;
|
|
21
|
-
readonly textIndex?:
|
|
22
|
-
readonly vectorIndex?:
|
|
21
|
+
readonly textIndex?: RdfTextIndexSyncLike;
|
|
22
|
+
readonly vectorIndex?: RdfVectorIndexSyncLike;
|
|
23
23
|
readonly rdf3xIndex?: Rdf3xIndex;
|
|
24
24
|
readonly derivedIndexProfile: RdfDerivedIndexProfile;
|
|
25
25
|
private readonly ownsIndex;
|
|
@@ -35,14 +35,16 @@ export declare class SolidRdfEngine implements RdfEngineLike {
|
|
|
35
35
|
put(quads: Quad | Quad[], options?: RdfIndexPutOptions): void;
|
|
36
36
|
replaceSource(quads: Quad[], source: RdfSourceInput): void;
|
|
37
37
|
deleteSource(source: string): number;
|
|
38
|
+
moveSource(oldSource: string, next: RdfSourceInput): number;
|
|
38
39
|
delete(pattern: QuintPattern): number;
|
|
39
40
|
applyDelta(deletes: QuintPattern[], inserts: Quad[], options?: RdfIndexPutOptions): {
|
|
40
41
|
deletedRows: number;
|
|
41
42
|
insertedRows: number;
|
|
42
43
|
};
|
|
44
|
+
rewriteTerms(input: RdfTermRewriteInput): RdfTermRewriteResult;
|
|
43
45
|
scan(query: RdfPatternQuery): RdfQuadIndexScanResult;
|
|
44
46
|
query(query: RdfQuery): RdfQueryResult;
|
|
45
|
-
refreshDerivedIndexes(): RdfDerivedIndexRefreshResult;
|
|
47
|
+
refreshDerivedIndexes(options?: RdfDerivedIndexRefreshOptions): RdfDerivedIndexRefreshResult;
|
|
46
48
|
indexTextSource(source: RdfTextSourceInput, text: string, chunks?: RdfTextChunkInput[]): void;
|
|
47
49
|
deleteTextSource(source: string): number;
|
|
48
50
|
searchText(options: RdfTextSearchOptions | string): RdfTextSearchResult[];
|
|
@@ -53,10 +55,11 @@ export declare class SolidRdfEngine implements RdfEngineLike {
|
|
|
53
55
|
shadowRdf3xScan(query: RdfPatternQuery): Rdf3xShadowScanResult;
|
|
54
56
|
shadowRdf3xJoin(patterns: RdfQuadJoinPattern[], options?: RdfQuadJoinOptions): Rdf3xShadowJoinResult;
|
|
55
57
|
supportsPrimary(query: RdfPatternQuery): boolean;
|
|
56
|
-
storageStats(): RdfEngineStorageStats;
|
|
58
|
+
storageStats(_options?: RdfStorageStatsOptions): RdfEngineStorageStats;
|
|
57
59
|
private requireTextIndex;
|
|
58
60
|
private requireVectorIndex;
|
|
59
61
|
private requireRdf3xIndex;
|
|
60
62
|
private isRdf3xPrimaryReady;
|
|
61
63
|
private refreshRdf3xDerivedIndex;
|
|
62
64
|
}
|
|
65
|
+
export {};
|
|
@@ -22,25 +22,25 @@ class SolidRdfEngine {
|
|
|
22
22
|
this.index = new RdfQuadIndex_1.RdfQuadIndex(options.index);
|
|
23
23
|
this.ownsIndex = true;
|
|
24
24
|
}
|
|
25
|
-
if (options.textIndex
|
|
26
|
-
this.textIndex = options.textIndex;
|
|
27
|
-
this.ownsTextIndex = false;
|
|
28
|
-
}
|
|
29
|
-
else if (isRdfTextIndexOptions(options.textIndex)) {
|
|
25
|
+
if (isRdfTextIndexOptions(options.textIndex)) {
|
|
30
26
|
this.textIndex = new RdfTextIndex_1.RdfTextIndex(options.textIndex);
|
|
31
27
|
this.ownsTextIndex = true;
|
|
32
28
|
}
|
|
33
|
-
else {
|
|
29
|
+
else if (isRdfTextIndexLike(options.textIndex)) {
|
|
30
|
+
this.textIndex = options.textIndex;
|
|
34
31
|
this.ownsTextIndex = false;
|
|
35
32
|
}
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
this.ownsVectorIndex = false;
|
|
33
|
+
else {
|
|
34
|
+
this.ownsTextIndex = false;
|
|
39
35
|
}
|
|
40
|
-
|
|
36
|
+
if (isRdfVectorIndexOptions(options.vectorIndex)) {
|
|
41
37
|
this.vectorIndex = new RdfVectorIndex_1.RdfVectorIndex(options.vectorIndex);
|
|
42
38
|
this.ownsVectorIndex = true;
|
|
43
39
|
}
|
|
40
|
+
else if (isRdfVectorIndexLike(options.vectorIndex)) {
|
|
41
|
+
this.vectorIndex = options.vectorIndex;
|
|
42
|
+
this.ownsVectorIndex = false;
|
|
43
|
+
}
|
|
44
44
|
else {
|
|
45
45
|
this.ownsVectorIndex = false;
|
|
46
46
|
}
|
|
@@ -114,12 +114,18 @@ class SolidRdfEngine {
|
|
|
114
114
|
deleteSource(source) {
|
|
115
115
|
return this.index.deleteSource(source);
|
|
116
116
|
}
|
|
117
|
+
moveSource(oldSource, next) {
|
|
118
|
+
return this.index.moveSource(oldSource, next);
|
|
119
|
+
}
|
|
117
120
|
delete(pattern) {
|
|
118
121
|
return this.index.delete(pattern);
|
|
119
122
|
}
|
|
120
123
|
applyDelta(deletes, inserts, options) {
|
|
121
124
|
return this.index.applyDelta(deletes, inserts, options);
|
|
122
125
|
}
|
|
126
|
+
rewriteTerms(input) {
|
|
127
|
+
return this.index.rewriteTerms(input);
|
|
128
|
+
}
|
|
123
129
|
scan(query) {
|
|
124
130
|
return this.index.scan(query.pattern, query.options);
|
|
125
131
|
}
|
|
@@ -131,9 +137,9 @@ class SolidRdfEngine {
|
|
|
131
137
|
}
|
|
132
138
|
return result;
|
|
133
139
|
}
|
|
134
|
-
refreshDerivedIndexes() {
|
|
140
|
+
refreshDerivedIndexes(options) {
|
|
135
141
|
const factsDataVersion = this.index.dataVersion();
|
|
136
|
-
const rdf3x = this.refreshRdf3xDerivedIndex(factsDataVersion);
|
|
142
|
+
const rdf3x = this.refreshRdf3xDerivedIndex(factsDataVersion, options?.mode === 'full');
|
|
137
143
|
return {
|
|
138
144
|
derivedIndexProfile: this.derivedIndexProfile,
|
|
139
145
|
factsDataVersion,
|
|
@@ -214,13 +220,21 @@ class SolidRdfEngine {
|
|
|
214
220
|
return false;
|
|
215
221
|
}
|
|
216
222
|
}
|
|
217
|
-
storageStats() {
|
|
223
|
+
storageStats(_options) {
|
|
218
224
|
const facts = this.index.stats();
|
|
219
225
|
const rdf3x = this.rdf3xIndex
|
|
220
|
-
? {
|
|
221
|
-
stats
|
|
222
|
-
|
|
223
|
-
|
|
226
|
+
? (() => {
|
|
227
|
+
const stats = this.rdf3xIndex.stats();
|
|
228
|
+
const factsDataVersion = this.index.dataVersion();
|
|
229
|
+
return {
|
|
230
|
+
stats,
|
|
231
|
+
factsDataVersion,
|
|
232
|
+
rdf3xFactsDataVersion: stats.factsDataVersion,
|
|
233
|
+
refreshLag: Math.max(0, factsDataVersion - stats.factsDataVersion),
|
|
234
|
+
syncedWithFacts: stats.factsDataVersion === factsDataVersion,
|
|
235
|
+
pendingSources: 0,
|
|
236
|
+
};
|
|
237
|
+
})()
|
|
224
238
|
: undefined;
|
|
225
239
|
const factsBytes = facts.databaseBytes;
|
|
226
240
|
const derivedBytes = rdf3x?.stats.databaseBytes ?? 0;
|
|
@@ -257,14 +271,14 @@ class SolidRdfEngine {
|
|
|
257
271
|
isRdf3xPrimaryReady() {
|
|
258
272
|
return Boolean(this.rdf3xPrimary && this.rdf3xIndex?.isSyncedWithCurrentQuads());
|
|
259
273
|
}
|
|
260
|
-
refreshRdf3xDerivedIndex(factsDataVersion = this.index.dataVersion()) {
|
|
274
|
+
refreshRdf3xDerivedIndex(factsDataVersion = this.index.dataVersion(), force = false) {
|
|
261
275
|
if (!this.rdf3xIndex) {
|
|
262
276
|
return undefined;
|
|
263
277
|
}
|
|
264
278
|
const dataVersion = factsDataVersion;
|
|
265
279
|
const rdf3xIndex = this.rdf3xIndex;
|
|
266
280
|
const previousFactsDataVersion = rdf3xIndex.factsDataVersion();
|
|
267
|
-
if (previousFactsDataVersion === dataVersion) {
|
|
281
|
+
if (!force && previousFactsDataVersion === dataVersion) {
|
|
268
282
|
return {
|
|
269
283
|
refreshed: false,
|
|
270
284
|
previousFactsDataVersion,
|
|
@@ -272,7 +286,7 @@ class SolidRdfEngine {
|
|
|
272
286
|
syncedWithFacts: true,
|
|
273
287
|
};
|
|
274
288
|
}
|
|
275
|
-
const rebuild = rdf3xIndex.rebuildFromCurrentQuads();
|
|
289
|
+
const rebuild = rdf3xIndex.rebuildFromCurrentQuads({ mode: force ? 'full' : 'auto' });
|
|
276
290
|
return {
|
|
277
291
|
refreshed: true,
|
|
278
292
|
previousFactsDataVersion,
|
|
@@ -284,10 +298,22 @@ class SolidRdfEngine {
|
|
|
284
298
|
}
|
|
285
299
|
exports.SolidRdfEngine = SolidRdfEngine;
|
|
286
300
|
function isRdfTextIndexOptions(input) {
|
|
287
|
-
return input !== undefined &&
|
|
301
|
+
return input !== undefined && typeof input.path === 'string'
|
|
302
|
+
&& !isRdfTextIndexLike(input);
|
|
303
|
+
}
|
|
304
|
+
function isRdfTextIndexLike(input) {
|
|
305
|
+
return input !== undefined
|
|
306
|
+
&& typeof input.indexText === 'function'
|
|
307
|
+
&& typeof input.search === 'function';
|
|
288
308
|
}
|
|
289
309
|
function isRdfVectorIndexOptions(input) {
|
|
290
|
-
return input !== undefined &&
|
|
310
|
+
return input !== undefined && typeof input.path === 'string'
|
|
311
|
+
&& !isRdfVectorIndexLike(input);
|
|
312
|
+
}
|
|
313
|
+
function isRdfVectorIndexLike(input) {
|
|
314
|
+
return input !== undefined
|
|
315
|
+
&& typeof input.indexVector === 'function'
|
|
316
|
+
&& typeof input.search === 'function';
|
|
291
317
|
}
|
|
292
318
|
function isRdf3xIndexOptions(input) {
|
|
293
319
|
return input !== undefined && !(input instanceof Rdf3xIndex_1.Rdf3xIndex) && typeof input.path === 'string';
|