@harperfast/harper 5.1.20 → 5.2.0-alpha.5
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/agent/operations.ts +13 -16
- package/components/Application.ts +188 -7
- package/components/ApplicationScope.ts +3 -0
- package/components/Scope.ts +12 -0
- package/components/anthropic/index.ts +9 -2
- package/components/bedrock/index.ts +25 -2
- package/components/componentLoader.ts +56 -7
- package/components/componentSecrets.ts +451 -0
- package/components/deploymentRecorder.ts +7 -1
- package/components/mcp/adapters/fastify.ts +3 -0
- package/components/mcp/adapters/harperHttp.ts +3 -0
- package/components/mcp/audit.ts +21 -6
- package/components/mcp/customResourceRegistry.ts +17 -38
- package/components/mcp/listChanged.ts +37 -20
- package/components/mcp/quota.ts +145 -0
- package/components/mcp/rateLimit.ts +152 -14
- package/components/mcp/resources.ts +2 -4
- package/components/mcp/toolRegistry.ts +73 -4
- package/components/mcp/tools/application.ts +77 -8
- package/components/mcp/tools/operations.ts +106 -36
- package/components/mcp/tools/schemas/operationDescriptions.ts +4 -4
- package/components/mcp/tools/schemas/operations.ts +5 -0
- package/components/mcp/transport.ts +55 -4
- package/components/ollama/index.ts +6 -2
- package/components/openai/index.ts +9 -2
- package/components/operations.js +204 -10
- package/components/operationsValidation.js +173 -0
- package/components/secretOperations.ts +498 -0
- package/config/configUtils.ts +25 -1
- package/config-app.schema.json +81 -0
- package/config-root.schema.json +8 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dataLayer/readAuditLog.ts +14 -0
- package/dataLayer/schemaDescribe.ts +1 -0
- package/dist/agent/operations.d.ts +7 -4
- package/dist/agent/operations.js +13 -15
- package/dist/agent/operations.js.map +1 -1
- package/dist/components/Application.d.ts +25 -2
- package/dist/components/Application.js +166 -7
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +2 -0
- package/dist/components/ApplicationScope.js +3 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/Scope.d.ts +8 -0
- package/dist/components/Scope.js +11 -0
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +4 -1
- package/dist/components/anthropic/index.js +4 -2
- package/dist/components/anthropic/index.js.map +1 -1
- package/dist/components/bedrock/index.d.ts +4 -1
- package/dist/components/bedrock/index.js +22 -2
- package/dist/components/bedrock/index.js.map +1 -1
- package/dist/components/componentLoader.d.ts +2 -0
- package/dist/components/componentLoader.js +52 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/componentSecrets.d.ts +63 -0
- package/dist/components/componentSecrets.js +405 -0
- package/dist/components/componentSecrets.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +3 -0
- package/dist/components/deploymentRecorder.js +4 -3
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +2 -0
- package/dist/components/mcp/adapters/fastify.js +1 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -1
- package/dist/components/mcp/adapters/harperHttp.d.ts +2 -0
- package/dist/components/mcp/adapters/harperHttp.js +1 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
- package/dist/components/mcp/audit.d.ts +2 -2
- package/dist/components/mcp/audit.js +20 -5
- package/dist/components/mcp/audit.js.map +1 -1
- package/dist/components/mcp/customResourceRegistry.d.ts +5 -12
- package/dist/components/mcp/customResourceRegistry.js +15 -30
- package/dist/components/mcp/customResourceRegistry.js.map +1 -1
- package/dist/components/mcp/listChanged.d.ts +7 -2
- package/dist/components/mcp/listChanged.js +28 -0
- package/dist/components/mcp/listChanged.js.map +1 -1
- package/dist/components/mcp/quota.d.ts +31 -0
- package/dist/components/mcp/quota.js +155 -0
- package/dist/components/mcp/quota.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +19 -3
- package/dist/components/mcp/rateLimit.js +129 -13
- package/dist/components/mcp/rateLimit.js.map +1 -1
- package/dist/components/mcp/resources.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +39 -1
- package/dist/components/mcp/toolRegistry.js +60 -5
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/application.d.ts +8 -1
- package/dist/components/mcp/tools/application.js +65 -5
- package/dist/components/mcp/tools/application.js.map +1 -1
- package/dist/components/mcp/tools/operations.d.ts +15 -3
- package/dist/components/mcp/tools/operations.js +99 -38
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +4 -4
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operations.js +4 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
- package/dist/components/mcp/transport.d.ts +6 -0
- package/dist/components/mcp/transport.js +47 -3
- package/dist/components/mcp/transport.js.map +1 -1
- package/dist/components/ollama/index.d.ts +4 -1
- package/dist/components/ollama/index.js +4 -2
- package/dist/components/ollama/index.js.map +1 -1
- package/dist/components/openai/index.d.ts +4 -1
- package/dist/components/openai/index.js +4 -2
- package/dist/components/openai/index.js.map +1 -1
- package/dist/components/operations.d.ts +39 -0
- package/dist/components/operations.js +194 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +38 -0
- package/dist/components/operationsValidation.js +155 -0
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/secretOperations.d.ts +113 -0
- package/dist/components/secretOperations.js +475 -0
- package/dist/components/secretOperations.js.map +1 -0
- package/dist/config/configUtils.d.ts +4 -1
- package/dist/config/configUtils.js +18 -1
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/dataLayer/readAuditLog.js +11 -0
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +2 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +38 -0
- package/dist/resources/DatabaseTransaction.d.ts +31 -3
- package/dist/resources/DatabaseTransaction.js +190 -29
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +1 -1
- package/dist/resources/LMDBTransaction.js +43 -5
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +51 -0
- package/dist/resources/PrimaryRocksDatabase.js +194 -0
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -0
- package/dist/resources/RecordEncoder.d.ts +1 -0
- package/dist/resources/RecordEncoder.js +81 -75
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +19 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +0 -1
- package/dist/resources/Resource.js +103 -16
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +6 -2
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -4
- package/dist/resources/Table.js +247 -24
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/read.js +25 -28
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/blob.js +165 -22
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/crdt.d.ts +2 -0
- package/dist/resources/crdt.js +45 -36
- package/dist/resources/crdt.js.map +1 -1
- package/dist/resources/databases.d.ts +1 -0
- package/dist/resources/databases.js +134 -7
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.js +8 -0
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +35 -5
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +239 -14
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/jsResource.js +6 -0
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/loadEnv.js +30 -3
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.js +2 -2
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.js +14 -3
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/embedHook.js +10 -2
- package/dist/resources/models/embedHook.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +56 -0
- package/dist/resources/models/openaiStream.js +94 -0
- package/dist/resources/models/openaiStream.js.map +1 -0
- package/dist/resources/replayLogs.js +4 -3
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/search.d.ts +1 -1
- package/dist/resources/search.js +104 -11
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/secretDecryptor.d.ts +54 -0
- package/dist/resources/secretDecryptor.js +131 -0
- package/dist/resources/secretDecryptor.js.map +1 -0
- package/dist/resources/tracked.js +15 -5
- package/dist/resources/tracked.js.map +1 -1
- package/dist/security/auth.js +71 -8
- package/dist/security/auth.js.map +1 -1
- package/dist/security/jsLoader.js +11 -0
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +9 -1
- package/dist/security/tokenAuthentication.js +31 -1
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +1 -1
- package/dist/server/DurableSubscriptionsSession.js +8 -4
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.js +28 -9
- package/dist/server/REST.js.map +1 -1
- package/dist/server/fastifyRoutes.js +11 -1
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.js +4 -3
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +40 -2
- package/dist/server/http.js +560 -77
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +64 -0
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/liveSubscriptionAuth.d.ts +12 -0
- package/dist/server/liveSubscriptionAuth.js +140 -0
- package/dist/server/liveSubscriptionAuth.js.map +1 -0
- package/dist/server/loadRootComponents.js +2 -1
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/middlewareChain.d.ts +44 -1
- package/dist/server/middlewareChain.js +86 -10
- package/dist/server/middlewareChain.js.map +1 -1
- package/dist/server/mqtt.js +2 -1
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/operationsServer.js +1 -1
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +9 -0
- package/dist/server/serverHelpers/Headers.js +22 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.js +3 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +52 -1
- package/dist/server/serverHelpers/Request.js +122 -1
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.js +3 -8
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/progressEmitter.d.ts +19 -0
- package/dist/server/serverHelpers/progressEmitter.js +52 -4
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
- package/dist/server/serverHelpers/registeredOperations.d.ts +40 -0
- package/dist/server/serverHelpers/registeredOperations.js +286 -0
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.js +11 -5
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -0
- package/dist/server/serverHelpers/serverUtilities.js +67 -5
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/serverHelpers/uwsServer.d.ts +80 -0
- package/dist/server/serverHelpers/uwsServer.js +433 -0
- package/dist/server/serverHelpers/uwsServer.js.map +1 -0
- package/dist/server/static.d.ts +0 -15
- package/dist/server/static.js +161 -2
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.d.ts +4 -1
- package/dist/server/status/index.js +64 -4
- package/dist/server/status/index.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +10 -0
- package/dist/server/threads/manageThreads.js +107 -4
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.js +5 -1
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +92 -14
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/upgrade/directives/5-2-0.d.ts +7 -0
- package/dist/upgrade/directives/5-2-0.js +108 -0
- package/dist/upgrade/directives/5-2-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.js +2 -1
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/utility/common_utils.js +5 -0
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/envFile.d.ts +41 -0
- package/dist/utility/envFile.js +221 -0
- package/dist/utility/envFile.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +9 -0
- package/dist/utility/hdbTerms.d.ts +25 -0
- package/dist/utility/hdbTerms.js +31 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +21 -0
- package/dist/utility/logging/harper_logger.js +160 -8
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.js +29 -17
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +305 -2
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/operationPermissions.d.ts +18 -0
- package/dist/utility/operationPermissions.js +35 -1
- package/dist/utility/operationPermissions.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +17 -0
- package/dist/utility/operation_authorization.js +38 -0
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/secretEnvelope.d.ts +30 -0
- package/dist/utility/secretEnvelope.js +94 -0
- package/dist/utility/secretEnvelope.js.map +1 -0
- package/dist/utility/signalling.d.ts +7 -0
- package/dist/utility/signalling.js +16 -0
- package/dist/utility/signalling.js.map +1 -1
- package/dist/validation/configValidator.js +70 -24
- package/dist/validation/configValidator.js.map +1 -1
- package/index.ts +4 -0
- package/json/systemSchema.json +38 -0
- package/npm-shrinkwrap.json +15066 -9347
- package/package.json +14 -9
- package/resources/DESIGN.md +15 -12
- package/resources/DatabaseTransaction.ts +206 -37
- package/resources/LMDBTransaction.ts +43 -9
- package/resources/PrimaryRocksDatabase.ts +201 -0
- package/resources/RecordEncoder.ts +81 -69
- package/resources/RequestTarget.ts +21 -0
- package/resources/Resource.ts +109 -25
- package/resources/ResourceInterface.ts +6 -2
- package/resources/Resources.ts +1 -3
- package/resources/Table.ts +238 -29
- package/resources/analytics/read.ts +25 -30
- package/resources/blob.ts +159 -23
- package/resources/crdt.ts +37 -31
- package/resources/databases.ts +143 -6
- package/resources/graphql.ts +8 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +251 -17
- package/resources/jsResource.ts +6 -0
- package/resources/loadEnv.ts +34 -3
- package/resources/login.ts +2 -2
- package/resources/models/Models.ts +19 -3
- package/resources/models/embedHook.ts +13 -2
- package/resources/models/openaiStream.ts +133 -0
- package/resources/replayLogs.ts +4 -3
- package/resources/search.ts +113 -11
- package/resources/secretDecryptor.ts +159 -0
- package/resources/tracked.ts +24 -17
- package/security/auth.ts +70 -10
- package/security/jsLoader.ts +12 -0
- package/security/tokenAuthentication.ts +42 -1
- package/server/DESIGN.md +10 -0
- package/server/DurableSubscriptionsSession.ts +8 -4
- package/server/REST.ts +26 -9
- package/server/fastifyRoutes.ts +10 -1
- package/server/graphqlQuerying.ts +4 -3
- package/server/http.ts +563 -77
- package/server/itc/serverHandlers.js +70 -0
- package/server/liveSubscriptionAuth.ts +152 -0
- package/server/loadRootComponents.js +2 -1
- package/server/middlewareChain.ts +107 -17
- package/server/mqtt.ts +2 -1
- package/server/operationsServer.ts +2 -2
- package/server/serverHelpers/Headers.ts +24 -0
- package/server/serverHelpers/JSONStream.ts +3 -3
- package/server/serverHelpers/Request.ts +127 -0
- package/server/serverHelpers/contentTypes.ts +3 -8
- package/server/serverHelpers/progressEmitter.ts +55 -5
- package/server/serverHelpers/registeredOperations.ts +259 -0
- package/server/serverHelpers/serverHandlers.js +11 -5
- package/server/serverHelpers/serverUtilities.ts +88 -5
- package/server/serverHelpers/uwsServer.ts +488 -0
- package/server/static.ts +180 -2
- package/server/status/index.ts +72 -4
- package/server/threads/manageThreads.js +102 -4
- package/server/threads/socketRouter.ts +5 -1
- package/server/threads/threadServer.js +93 -10
- package/studio/web/assets/{Chat-SdD1EZca.js → Chat-Cv_2paZE.js} +2 -2
- package/studio/web/assets/{Chat-SdD1EZca.js.map → Chat-Cv_2paZE.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js → FloatingChat-CPyPIcVR.js} +4 -4
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js.map → FloatingChat-CPyPIcVR.js.map} +1 -1
- package/studio/web/assets/{applications-B5hhv7uA.js → applications-C0jT2vdZ.js} +2 -2
- package/studio/web/assets/{applications-B5hhv7uA.js.map → applications-C0jT2vdZ.js.map} +1 -1
- package/studio/web/assets/{index-VFcpNWgq.js → index-D_GKOkhn.js} +6 -6
- package/studio/web/assets/index-D_GKOkhn.js.map +1 -0
- package/studio/web/assets/{index.lazy-DgcJojIA.js → index.lazy-CAmCIA65.js} +4 -4
- package/studio/web/assets/{index.lazy-DgcJojIA.js.map → index.lazy-CAmCIA65.js.map} +1 -1
- package/studio/web/assets/{profile-BqN-8vzm.js → profile-CaF-4aZe.js} +2 -2
- package/studio/web/assets/{profile-BqN-8vzm.js.map → profile-CaF-4aZe.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js → setComponentFile-DLW1DHCt.js} +2 -2
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js.map → setComponentFile-DLW1DHCt.js.map} +1 -1
- package/studio/web/assets/{setup-CQ3vWJSr.js → setup-TGCErIhq.js} +2 -2
- package/studio/web/assets/{setup-CQ3vWJSr.js.map → setup-TGCErIhq.js.map} +1 -1
- package/studio/web/assets/{status-BsW5fjuh.js → status-DG0Maoao.js} +2 -2
- package/studio/web/assets/{status-BsW5fjuh.js.map → status-DG0Maoao.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js → swagger-ui-react-8T4SgQ1m.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js.map → swagger-ui-react-8T4SgQ1m.js.map} +1 -1
- package/studio/web/assets/{tsMode-Dyph-OUs.js → tsMode-DJ6Sl24Q.js} +2 -2
- package/studio/web/assets/{tsMode-Dyph-OUs.js.map → tsMode-DJ6Sl24Q.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js → useEntityRestURL-JO2mfWTQ.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js.map → useEntityRestURL-JO2mfWTQ.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-2-0.ts +82 -0
- package/upgrade/directives/directivesController.ts +2 -1
- package/utility/common_utils.ts +5 -0
- package/utility/envFile.ts +218 -0
- package/utility/hdbTerms.ts +31 -0
- package/utility/logging/harper_logger.ts +156 -8
- package/utility/logging/logRotator.ts +24 -14
- package/utility/logging/readLog.ts +323 -2
- package/utility/operationPermissions.ts +35 -1
- package/utility/operation_authorization.ts +74 -1
- package/utility/secretEnvelope.ts +113 -0
- package/utility/signalling.ts +15 -0
- package/validation/configValidator.ts +78 -25
- package/studio/web/assets/index-VFcpNWgq.js.map +0 -1
|
@@ -12,6 +12,7 @@ import type { Id } from '../../resources/ResourceInterface.ts';
|
|
|
12
12
|
export declare class HierarchicalNavigableSmallWorld {
|
|
13
13
|
static useObjectStore: boolean;
|
|
14
14
|
static searchOnlyOptions: string[];
|
|
15
|
+
filteredSearch: boolean;
|
|
15
16
|
indexStore: any;
|
|
16
17
|
M: number;
|
|
17
18
|
efConstruction: number;
|
|
@@ -19,6 +20,7 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
19
20
|
mL: number;
|
|
20
21
|
optimizeRouting: number;
|
|
21
22
|
nodesVisitedCount: number;
|
|
23
|
+
filterExpansion: number;
|
|
22
24
|
idIncrementer: BigInt64Array | undefined;
|
|
23
25
|
distance: (a: number[], b: number[]) => number;
|
|
24
26
|
int8: boolean;
|
|
@@ -26,6 +28,29 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
26
28
|
private convertedNodes;
|
|
27
29
|
constructor(indexStore: any, options: any);
|
|
28
30
|
index(primaryKey: Id, vector: number[], existingVector?: number[], options?: any): void;
|
|
31
|
+
/**
|
|
32
|
+
* After a delete, a neighbor that lost an edge can be severed from the entry point even with
|
|
33
|
+
* non-empty connection lists: a locally-connected cluster whose only bridges ran through the
|
|
34
|
+
* deleted node becomes a disconnected island, unreachable by search at any ef (#1712). The
|
|
35
|
+
* empty-list orphan check in index() can't see this, so probe each edge-losing neighbor's
|
|
36
|
+
* connectivity and reindex the ones that are cut off.
|
|
37
|
+
*
|
|
38
|
+
* The probe is a level-prioritized best-first traversal (hubs first, since the entry point is
|
|
39
|
+
* a high-level node), treating edges as undirected — the same assumption validateConnectivity
|
|
40
|
+
* makes. Note the direction difference: the probe walks source→entry-point over stored
|
|
41
|
+
* (outgoing) edges while search walks entry-point→outward, so an asymmetric edge could make
|
|
42
|
+
* the probe claim connectivity that search doesn't have. Edges are bidirectional by
|
|
43
|
+
* construction (checkSymmetry logs violations), and reverse-reachability from the entry point
|
|
44
|
+
* would be O(N) per delete, so this is a deliberate residual. In a connected component the
|
|
45
|
+
* probe reaches the known-connected set within a few hops; in an island it exhausts the
|
|
46
|
+
* island quickly. If it exceeds PROBE_VISIT_LIMIT without an answer (pathologically distant
|
|
47
|
+
* entry point — or an island larger than the budget), reinsert just the probe source: a
|
|
48
|
+
* wasted reinsert in the connected case, and in the oversized-island case a partial repair
|
|
49
|
+
* (the source relinks to the live graph, the rest of the island stays severed — reindexing
|
|
50
|
+
* replaces the source's edges rather than bridging through them, and reindexing all 256+
|
|
51
|
+
* probed nodes on what is usually just a distant entry point would be far too expensive).
|
|
52
|
+
*/
|
|
53
|
+
private repairSeveredNeighbors;
|
|
29
54
|
private safeGetSync;
|
|
30
55
|
private getEntryPoint;
|
|
31
56
|
/**
|
|
@@ -42,6 +67,13 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
42
67
|
* @private
|
|
43
68
|
*/
|
|
44
69
|
private searchLayer;
|
|
70
|
+
/**
|
|
71
|
+
* Evaluate the traversal predicate for one node, counting the evaluation for `explain`. Kept as a
|
|
72
|
+
* tiny helper so both the entry-point seed and the neighbor loop share the counting path. The filter
|
|
73
|
+
* itself memoizes verdicts per query (a node can be reached from multiple neighbors), so this stays
|
|
74
|
+
* cheap even when the predicate loads a record.
|
|
75
|
+
*/
|
|
76
|
+
private admit;
|
|
45
77
|
/**
|
|
46
78
|
* This the main entry from Harper's query functionality, where we actually search for an ordered list of nearest
|
|
47
79
|
* neighbors, using the provided sort/order definition object and performing the multi-layer skip-list search.
|
|
@@ -53,17 +85,15 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
53
85
|
* @param comparator
|
|
54
86
|
* @param context
|
|
55
87
|
*/
|
|
56
|
-
search({ target, value, descending, distance, comparator, ef, }: {
|
|
88
|
+
search({ target, value, descending, distance, comparator, ef, filterExpansion, }: {
|
|
57
89
|
target: number[];
|
|
58
90
|
value: number;
|
|
59
91
|
descending: boolean;
|
|
60
92
|
distance: string;
|
|
61
93
|
comparator: string;
|
|
62
94
|
ef?: number;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
distance: number;
|
|
66
|
-
}[];
|
|
95
|
+
filterExpansion?: number;
|
|
96
|
+
}, context: any, filter?: (primaryKey: Id) => boolean): any[];
|
|
67
97
|
/**
|
|
68
98
|
* Exact distance between a query and a record's FULL-precision vector, mirroring search()'s metric
|
|
69
99
|
* selection. Used to rerank quantized (int8) results: graph traversal navigates on approximate
|
|
@@ -117,6 +117,10 @@ function bisectInsert(arr, distance) {
|
|
|
117
117
|
const ENTRY_POINT = Symbol.for('entryPoint');
|
|
118
118
|
const KEY_PREFIX = Symbol.for('key');
|
|
119
119
|
const MAX_LEVEL = 10; // should give good high-level skip list performance up to trillions of nodes
|
|
120
|
+
// Visit budget for the post-delete connectivity probe (repairSeveredNeighbors, #1712). Severed
|
|
121
|
+
// islands are small (bounded by the deleted node's neighborhood), so a probe that visits this many
|
|
122
|
+
// nodes without reaching the entry point is treated as connected-but-far and repaired conservatively.
|
|
123
|
+
const PROBE_VISIT_LIMIT = 256;
|
|
120
124
|
/**
|
|
121
125
|
* Represents a Hierarchical Navigable Small World (HNSW) index for approximate nearest neighbor search.
|
|
122
126
|
* This implementation is based on hierarchical graph navigation to efficiently index and search high-dimensional vectors.
|
|
@@ -132,7 +136,12 @@ class HierarchicalNavigableSmallWorld {
|
|
|
132
136
|
// Index options that only affect search, not the stored graph — changing them must not trigger a
|
|
133
137
|
// reindex (databases.ts persists the new value but skips rebuilding). efConstructionSearch is the
|
|
134
138
|
// search-time candidate-list size; the build uses efConstruction/M/distance, which are structural.
|
|
135
|
-
|
|
139
|
+
// filterExpansion is the visit-budget multiplier for predicate-aware (filtered) traversal.
|
|
140
|
+
static searchOnlyOptions = ['efConstructionSearch', 'filterExpansion'];
|
|
141
|
+
// Signals to search.ts that this index accepts a per-record predicate in search() and applies it
|
|
142
|
+
// during traversal (predicate-aware / ACORN-style filtering), so companion conditions and RBAC can
|
|
143
|
+
// be pushed down instead of post-filtering an under-filled candidate set (#1241).
|
|
144
|
+
filteredSearch = true;
|
|
136
145
|
indexStore;
|
|
137
146
|
M = 16; // max number of connections per layer
|
|
138
147
|
efConstruction = 100; // size of dynamic candidate list
|
|
@@ -142,6 +151,17 @@ class HierarchicalNavigableSmallWorld {
|
|
|
142
151
|
// a value of 1 is extremely aggressive.
|
|
143
152
|
optimizeRouting = 0.5;
|
|
144
153
|
nodesVisitedCount = 0;
|
|
154
|
+
// Visit-budget multiplier for predicate-aware traversal (#1241). When a filter is selective enough
|
|
155
|
+
// that layer-0 results never fill `ef`, the "closest candidate worse than worst result" stop rule
|
|
156
|
+
// never triggers, so maxVisits = ef * filterExpansion caps how many nodes an under-filled filtered
|
|
157
|
+
// search visits before returning what it has (approximate, like all ANN). It does NOT bound a filter
|
|
158
|
+
// that fills `ef` — that terminates naturally. Default 24 (not the 8 the design sketch assumed):
|
|
159
|
+
// this HNSW visits a large fraction of the graph per query, so filling `ef` at selectivity `s` needs
|
|
160
|
+
// ~ef/s visits; a multiplier of 24 fills down to ~4% selectivity before the budget bites, keeping
|
|
161
|
+
// recall at or above post-filtering across the range the query planner routes to traversal. Raising
|
|
162
|
+
// it is nearly free for condition-derived filters (they fill and self-terminate); it mainly trades
|
|
163
|
+
// latency for recall on selective *function* predicates. Per-query override via the search options.
|
|
164
|
+
filterExpansion = 24;
|
|
145
165
|
idIncrementer;
|
|
146
166
|
distance;
|
|
147
167
|
int8 = true; // store vectors as int8-quantized bins by default; opt out with `quantization: "none"`
|
|
@@ -180,6 +200,8 @@ class HierarchicalNavigableSmallWorld {
|
|
|
180
200
|
this.mL = options.mL;
|
|
181
201
|
if (options.optimizeRouting !== undefined)
|
|
182
202
|
this.optimizeRouting = options.optimizeRouting;
|
|
203
|
+
if (options.filterExpansion !== undefined)
|
|
204
|
+
this.filterExpansion = options.filterExpansion;
|
|
183
205
|
}
|
|
184
206
|
}
|
|
185
207
|
index(primaryKey, vector, existingVector, options = {}) {
|
|
@@ -485,6 +507,10 @@ class HierarchicalNavigableSmallWorld {
|
|
|
485
507
|
this.indexStore.remove(safeKey, options);
|
|
486
508
|
}
|
|
487
509
|
const needsReindexing = new Map();
|
|
510
|
+
// On DELETE, track every neighbor that loses an edge: the empty-list check below only
|
|
511
|
+
// catches fully-orphaned nodes, but a cluster can stay internally connected while losing
|
|
512
|
+
// its only bridges to the entry point — see repairSeveredNeighbors (#1712).
|
|
513
|
+
const edgeLosingNeighborIds = vector ? undefined : new Set();
|
|
488
514
|
// remove connections to this node that are no longer valid
|
|
489
515
|
if (oldNode.level !== undefined) {
|
|
490
516
|
for (let l = 0; l <= oldNode.level; l++) {
|
|
@@ -494,6 +520,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
494
520
|
const neighborNode = updateNode(neighborId, this.safeGetSync(neighborId, options));
|
|
495
521
|
if (!neighborNode)
|
|
496
522
|
continue;
|
|
523
|
+
edgeLosingNeighborIds?.add(neighborId);
|
|
497
524
|
// On an UPDATE (vector != null), only remove the reverse edge at
|
|
498
525
|
// the exact level l where the old connection existed. Sweeping 0..l would destroy reverse
|
|
499
526
|
// edges at lower levels that were just re-added by addConnection or preserved by the
|
|
@@ -567,8 +594,101 @@ class HierarchicalNavigableSmallWorld {
|
|
|
567
594
|
}
|
|
568
595
|
this.index(key, orphanVector, orphanVector, options);
|
|
569
596
|
}
|
|
597
|
+
if (edgeLosingNeighborIds?.size)
|
|
598
|
+
this.repairSeveredNeighbors(edgeLosingNeighborIds, options);
|
|
570
599
|
this.checkSymmetry(nodeId, this.safeGetSync(nodeId, options), options);
|
|
571
600
|
}
|
|
601
|
+
/**
|
|
602
|
+
* After a delete, a neighbor that lost an edge can be severed from the entry point even with
|
|
603
|
+
* non-empty connection lists: a locally-connected cluster whose only bridges ran through the
|
|
604
|
+
* deleted node becomes a disconnected island, unreachable by search at any ef (#1712). The
|
|
605
|
+
* empty-list orphan check in index() can't see this, so probe each edge-losing neighbor's
|
|
606
|
+
* connectivity and reindex the ones that are cut off.
|
|
607
|
+
*
|
|
608
|
+
* The probe is a level-prioritized best-first traversal (hubs first, since the entry point is
|
|
609
|
+
* a high-level node), treating edges as undirected — the same assumption validateConnectivity
|
|
610
|
+
* makes. Note the direction difference: the probe walks source→entry-point over stored
|
|
611
|
+
* (outgoing) edges while search walks entry-point→outward, so an asymmetric edge could make
|
|
612
|
+
* the probe claim connectivity that search doesn't have. Edges are bidirectional by
|
|
613
|
+
* construction (checkSymmetry logs violations), and reverse-reachability from the entry point
|
|
614
|
+
* would be O(N) per delete, so this is a deliberate residual. In a connected component the
|
|
615
|
+
* probe reaches the known-connected set within a few hops; in an island it exhausts the
|
|
616
|
+
* island quickly. If it exceeds PROBE_VISIT_LIMIT without an answer (pathologically distant
|
|
617
|
+
* entry point — or an island larger than the budget), reinsert just the probe source: a
|
|
618
|
+
* wasted reinsert in the connected case, and in the oversized-island case a partial repair
|
|
619
|
+
* (the source relinks to the live graph, the rest of the island stays severed — reindexing
|
|
620
|
+
* replaces the source's edges rather than bridging through them, and reindexing all 256+
|
|
621
|
+
* probed nodes on what is usually just a distant entry point would be far too expensive).
|
|
622
|
+
*/
|
|
623
|
+
repairSeveredNeighbors(neighborIds, options) {
|
|
624
|
+
const entryPointId = this.indexStore.getSync(ENTRY_POINT, options);
|
|
625
|
+
if (entryPointId === undefined)
|
|
626
|
+
return;
|
|
627
|
+
const knownConnected = new Set([entryPointId]);
|
|
628
|
+
for (const sourceId of neighborIds) {
|
|
629
|
+
if (knownConnected.has(sourceId))
|
|
630
|
+
continue;
|
|
631
|
+
const sourceNode = this.safeGetSync(sourceId, options);
|
|
632
|
+
if (!sourceNode || sourceNode.level === undefined)
|
|
633
|
+
continue; // already removed or stale reference
|
|
634
|
+
const visited = new Map([[sourceId, sourceNode]]);
|
|
635
|
+
const frontier = new MinHeap();
|
|
636
|
+
frontier.push({ id: sourceId, distance: -sourceNode.level, node: sourceNode });
|
|
637
|
+
let verdict = 'island';
|
|
638
|
+
probe: for (;;) {
|
|
639
|
+
const current = frontier.pop();
|
|
640
|
+
if (!current)
|
|
641
|
+
break; // exhausted the reachable set without touching the connected component
|
|
642
|
+
for (let l = 0; l <= current.node.level; l++) {
|
|
643
|
+
for (const { id: neighborId } of current.node[l] || []) {
|
|
644
|
+
if (neighborId === undefined)
|
|
645
|
+
continue;
|
|
646
|
+
if (knownConnected.has(neighborId)) {
|
|
647
|
+
verdict = 'connected';
|
|
648
|
+
break probe;
|
|
649
|
+
}
|
|
650
|
+
if (visited.has(neighborId))
|
|
651
|
+
continue;
|
|
652
|
+
const node = this.safeGetSync(neighborId, options);
|
|
653
|
+
if (!node || node.level === undefined)
|
|
654
|
+
continue; // stale reference
|
|
655
|
+
visited.set(neighborId, node);
|
|
656
|
+
frontier.push({ id: neighborId, distance: -node.level, node });
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
if (visited.size > PROBE_VISIT_LIMIT) {
|
|
660
|
+
verdict = 'inconclusive';
|
|
661
|
+
break;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
if (verdict === 'connected') {
|
|
665
|
+
// every visited node connects to the source, which reaches the connected component
|
|
666
|
+
for (const id of visited.keys())
|
|
667
|
+
knownConnected.add(id);
|
|
668
|
+
}
|
|
669
|
+
else {
|
|
670
|
+
// island: reinsert every member so the whole cluster relinks to the live graph;
|
|
671
|
+
// inconclusive: reinsert only the source (partial repair — see docstring)
|
|
672
|
+
if (verdict === 'inconclusive') {
|
|
673
|
+
logger.warn?.('connectivity probe exceeded visit budget after a delete, reinserting only', sourceId);
|
|
674
|
+
}
|
|
675
|
+
const toReindex = verdict === 'island' ? visited.values() : [sourceNode];
|
|
676
|
+
logger.debug?.('reindexing nodes severed from the entry point by a delete', sourceId);
|
|
677
|
+
for (const node of toReindex) {
|
|
678
|
+
const nodeVector = node.scale !== undefined ? dequantizeInt8(node.vector, node.scale) : node.vector;
|
|
679
|
+
this.index(node.primaryKey, nodeVector, nodeVector, options);
|
|
680
|
+
}
|
|
681
|
+
if (verdict === 'island') {
|
|
682
|
+
// the whole reindexed island is now relinked; skip re-probing its members
|
|
683
|
+
for (const id of visited.keys())
|
|
684
|
+
knownConnected.add(id);
|
|
685
|
+
}
|
|
686
|
+
else {
|
|
687
|
+
knownConnected.add(sourceId);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
572
692
|
safeGetSync(key, options) {
|
|
573
693
|
try {
|
|
574
694
|
let node = this.indexStore.getSync(key, options);
|
|
@@ -626,7 +746,12 @@ class HierarchicalNavigableSmallWorld {
|
|
|
626
746
|
* @param options
|
|
627
747
|
* @private
|
|
628
748
|
*/
|
|
629
|
-
searchLayer(queryVector, entryPointId, entryPoint, ef, level, options = {}, distanceFunction = this.distance
|
|
749
|
+
searchLayer(queryVector, entryPointId, entryPoint, ef, level, options = {}, distanceFunction = this.distance,
|
|
750
|
+
// Predicate-aware traversal (#1241, layer 0 only). `filter` decides result admission by primary
|
|
751
|
+
// key; non-matching nodes still route (they stay in the candidate/visited sets) so the graph
|
|
752
|
+
// remains navigable under selective filters (ACORN). `filterState` carries the visit budget and
|
|
753
|
+
// per-query counters. Both are undefined for routing layers and for unfiltered searches.
|
|
754
|
+
filter, filterState) {
|
|
630
755
|
// Pre-compute query magnitude for cosine; use cached invMag on stored nodes to skip sqrt per neighbor.
|
|
631
756
|
// Asymmetric distance: the query stays full-precision float; a stored neighbor may be int8
|
|
632
757
|
// (with per-vector `scaleB`) or float (`scaleB` undefined).
|
|
@@ -688,11 +813,62 @@ class HierarchicalNavigableSmallWorld {
|
|
|
688
813
|
};
|
|
689
814
|
const candidates = new MinHeap();
|
|
690
815
|
candidates.push(initialCandidate);
|
|
691
|
-
|
|
816
|
+
if (!filter) {
|
|
817
|
+
// Unfiltered path (unchanged): results are seeded with the entry point and every visited
|
|
818
|
+
// node is admitted; the stop rule is "closest remaining candidate worse than worst result".
|
|
819
|
+
const results = [initialCandidate];
|
|
820
|
+
while (candidates.size > 0) {
|
|
821
|
+
const current = candidates.pop();
|
|
822
|
+
const furthestDistance = results[results.length - 1].distance;
|
|
823
|
+
if (current.distance > furthestDistance)
|
|
824
|
+
break;
|
|
825
|
+
for (const { id: neighborId } of current.node[level] || []) {
|
|
826
|
+
if (visited.has(neighborId) || neighborId === undefined)
|
|
827
|
+
continue;
|
|
828
|
+
visited.add(neighborId);
|
|
829
|
+
const neighbor = this.safeGetSync(neighborId, options);
|
|
830
|
+
if (!neighbor)
|
|
831
|
+
continue;
|
|
832
|
+
this.nodesVisitedCount++;
|
|
833
|
+
const distance = computeDistance(neighbor.vector, neighbor.invMag, neighbor.scale);
|
|
834
|
+
if (distance < furthestDistance || results.length < ef) {
|
|
835
|
+
const candidate = { id: neighborId, distance, node: neighbor };
|
|
836
|
+
candidates.push(candidate);
|
|
837
|
+
results.splice(bisectInsert(results, distance), 0, candidate);
|
|
838
|
+
if (results.length > ef)
|
|
839
|
+
results.pop();
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
results.visited = visited.size;
|
|
844
|
+
return results;
|
|
845
|
+
}
|
|
846
|
+
// Predicate-aware path (#1241). `results` holds only nodes the filter admits, but every visited
|
|
847
|
+
// node still routes: it enters the candidate heap and can be expanded, preserving connectivity
|
|
848
|
+
// through non-matching regions. Because matches accrue slower than visits, the distance stop rule
|
|
849
|
+
// only applies once `ef` matches are in hand; until then we keep expanding.
|
|
850
|
+
//
|
|
851
|
+
// maxVisits = ef * filterExpansion is a hard ceiling on layer-0 node visits. It has to be
|
|
852
|
+
// generous enough NOT to truncate a non-selective filter before it fills `ef` (filling at
|
|
853
|
+
// selectivity `s` costs ~ef/s visits) — that is why the default filterExpansion is larger than a
|
|
854
|
+
// standard-HNSW rule of thumb, since this index visits a large fraction of the graph per query.
|
|
855
|
+
// It matters as a genuine bound in two cases: a selective filter that can never fill `ef` (where
|
|
856
|
+
// the alternative is crawling the whole graph — the same regime the planner diverts to the exact
|
|
857
|
+
// brute-force path for condition filters, leaving function predicates the real beneficiary), and
|
|
858
|
+
// a filter that fills `ef` with distant matches (a loose worst-match bound would otherwise let
|
|
859
|
+
// the distance rule explore almost everything).
|
|
860
|
+
// search() always supplies filterState alongside filter; default one for any direct caller that doesn't.
|
|
861
|
+
if (!filterState)
|
|
862
|
+
filterState = { maxVisits: Infinity, nodesVisited: 0, filterEvaluations: 0 };
|
|
863
|
+
const results = [];
|
|
864
|
+
if (this.admit(filter, filterState, entryPoint.primaryKey))
|
|
865
|
+
results.push(initialCandidate);
|
|
866
|
+
let budgetExhausted = false;
|
|
692
867
|
while (candidates.size > 0) {
|
|
693
868
|
const current = candidates.pop();
|
|
694
|
-
|
|
695
|
-
|
|
869
|
+
// Once we have ef matches, the worst of them bounds useful exploration; before that, keep going.
|
|
870
|
+
const furthestDistance = results.length >= ef ? results[results.length - 1].distance : Infinity;
|
|
871
|
+
if (results.length >= ef && current.distance > furthestDistance)
|
|
696
872
|
break;
|
|
697
873
|
for (const { id: neighborId } of current.node[level] || []) {
|
|
698
874
|
if (visited.has(neighborId) || neighborId === undefined)
|
|
@@ -702,19 +878,41 @@ class HierarchicalNavigableSmallWorld {
|
|
|
702
878
|
if (!neighbor)
|
|
703
879
|
continue;
|
|
704
880
|
this.nodesVisitedCount++;
|
|
881
|
+
filterState.nodesVisited++;
|
|
705
882
|
const distance = computeDistance(neighbor.vector, neighbor.invMag, neighbor.scale);
|
|
883
|
+
// Route through any node that could still improve the result set (under-filled or nearer
|
|
884
|
+
// than the current worst match) — filtering does not prune the graph, only admission.
|
|
706
885
|
if (distance < furthestDistance || results.length < ef) {
|
|
707
886
|
const candidate = { id: neighborId, distance, node: neighbor };
|
|
708
887
|
candidates.push(candidate);
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
results.
|
|
888
|
+
if (this.admit(filter, filterState, neighbor.primaryKey)) {
|
|
889
|
+
results.splice(bisectInsert(results, distance), 0, candidate);
|
|
890
|
+
if (results.length > ef)
|
|
891
|
+
results.pop();
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
if (filterState.nodesVisited >= filterState.maxVisits) {
|
|
895
|
+
budgetExhausted = true;
|
|
896
|
+
break;
|
|
712
897
|
}
|
|
713
898
|
}
|
|
899
|
+
if (budgetExhausted)
|
|
900
|
+
break;
|
|
714
901
|
}
|
|
715
902
|
results.visited = visited.size;
|
|
716
903
|
return results;
|
|
717
904
|
}
|
|
905
|
+
/**
|
|
906
|
+
* Evaluate the traversal predicate for one node, counting the evaluation for `explain`. Kept as a
|
|
907
|
+
* tiny helper so both the entry-point seed and the neighbor loop share the counting path. The filter
|
|
908
|
+
* itself memoizes verdicts per query (a node can be reached from multiple neighbors), so this stays
|
|
909
|
+
* cheap even when the predicate loads a record.
|
|
910
|
+
*/
|
|
911
|
+
admit(filter, filterState, primaryKey) {
|
|
912
|
+
if (filterState)
|
|
913
|
+
filterState.filterEvaluations++;
|
|
914
|
+
return filter(primaryKey);
|
|
915
|
+
}
|
|
718
916
|
/**
|
|
719
917
|
* This the main entry from Harper's query functionality, where we actually search for an ordered list of nearest
|
|
720
918
|
* neighbors, using the provided sort/order definition object and performing the multi-layer skip-list search.
|
|
@@ -726,7 +924,12 @@ class HierarchicalNavigableSmallWorld {
|
|
|
726
924
|
* @param comparator
|
|
727
925
|
* @param context
|
|
728
926
|
*/
|
|
729
|
-
search({ target, value, descending, distance, comparator, ef, }, context
|
|
927
|
+
search({ target, value, descending, distance, comparator, ef, filterExpansion, }, context,
|
|
928
|
+
// Predicate-aware traversal (#1241). When provided, only nodes for which `filter(primaryKey)`
|
|
929
|
+
// returns true are admitted to the result list at layer 0; routing is unaffected. Composed by
|
|
930
|
+
// search.ts from companion AND conditions, a caller-supplied `vectorFilter`, and record-level
|
|
931
|
+
// RBAC. Must be synchronous and side-effect free. JS-API only (never from a REST query string).
|
|
932
|
+
filter) {
|
|
730
933
|
let limit; // only set for threshold comparators; 0 is a valid threshold (e.g. dotProduct)
|
|
731
934
|
let limitInclusive = false; // true for `le`, false for `lt`
|
|
732
935
|
switch (comparator) {
|
|
@@ -774,15 +977,25 @@ class HierarchicalNavigableSmallWorld {
|
|
|
774
977
|
: (this.indexStore.getStats?.()?.entryCount ?? 0);
|
|
775
978
|
effectiveEf = autoScaleEf(nodeCount);
|
|
776
979
|
}
|
|
980
|
+
// Predicate-aware traversal budget (#1241): matches accrue slower than visits under a selective
|
|
981
|
+
// filter, so bound layer-0 work at ef * filterExpansion nodes. Only built when a filter is active.
|
|
982
|
+
const filterState = filter
|
|
983
|
+
? {
|
|
984
|
+
maxVisits: effectiveEf * (filterExpansion && filterExpansion > 0 ? filterExpansion : this.filterExpansion),
|
|
985
|
+
nodesVisited: 0,
|
|
986
|
+
filterEvaluations: 0,
|
|
987
|
+
}
|
|
988
|
+
: undefined;
|
|
777
989
|
let entryPoint = this.getEntryPoint(options);
|
|
778
990
|
if (!entryPoint)
|
|
779
|
-
return [];
|
|
991
|
+
return withStats([], filterState);
|
|
780
992
|
let entryPointId = entryPoint.id;
|
|
781
993
|
let results = [];
|
|
782
|
-
// For each level from top to bottom
|
|
994
|
+
// For each level from top to bottom. The filter applies only at layer 0 (result admission);
|
|
995
|
+
// upper layers route unfiltered so non-matching hubs still guide the descent.
|
|
783
996
|
for (let l = entryPoint.level; l >= 0; l--) {
|
|
784
997
|
// Search for closest neighbors at current level
|
|
785
|
-
results = this.searchLayer(target, entryPointId, entryPoint, effectiveEf, l, options, distanceFunction);
|
|
998
|
+
results = this.searchLayer(target, entryPointId, entryPoint, effectiveEf, l, options, distanceFunction, l === 0 ? filter : undefined, l === 0 ? filterState : undefined);
|
|
786
999
|
if (results.length > 0) {
|
|
787
1000
|
const neighbor = results[0]; // closest neighbor becomes new entry point
|
|
788
1001
|
entryPoint = neighbor.node;
|
|
@@ -791,11 +1004,11 @@ class HierarchicalNavigableSmallWorld {
|
|
|
791
1004
|
}
|
|
792
1005
|
if (limit !== undefined)
|
|
793
1006
|
results = results.filter((candidate) => limitInclusive ? candidate.distance <= limit : candidate.distance < limit);
|
|
794
|
-
return results.map((candidate) => ({
|
|
1007
|
+
return withStats(results.map((candidate) => ({
|
|
795
1008
|
// we return the result as an entry so we can provide distance as metadata
|
|
796
1009
|
key: candidate.node.primaryKey, // return value
|
|
797
1010
|
distance: candidate.distance,
|
|
798
|
-
}));
|
|
1011
|
+
})), filterState);
|
|
799
1012
|
}
|
|
800
1013
|
/**
|
|
801
1014
|
* Exact distance between a query and a record's FULL-precision vector, mirroring search()'s metric
|
|
@@ -1011,4 +1224,16 @@ class HierarchicalNavigableSmallWorld {
|
|
|
1011
1224
|
}
|
|
1012
1225
|
}
|
|
1013
1226
|
exports.HierarchicalNavigableSmallWorld = HierarchicalNavigableSmallWorld;
|
|
1227
|
+
/**
|
|
1228
|
+
* Attach filtered-traversal counters to the returned entries array so callers (search.ts / explain) can
|
|
1229
|
+
* report how much of the graph a filtered query touched. No-op for unfiltered searches. Non-enumerable so
|
|
1230
|
+
* the stats don't leak into iteration/serialization of the result entries.
|
|
1231
|
+
*/
|
|
1232
|
+
function withStats(entries, filterState) {
|
|
1233
|
+
if (filterState) {
|
|
1234
|
+
Object.defineProperty(entries, 'nodesVisited', { value: filterState.nodesVisited, enumerable: false });
|
|
1235
|
+
Object.defineProperty(entries, 'filterEvaluations', { value: filterState.filterEvaluations, enumerable: false });
|
|
1236
|
+
}
|
|
1237
|
+
return entries;
|
|
1238
|
+
}
|
|
1014
1239
|
//# sourceMappingURL=HierarchicalNavigableSmallWorld.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalNavigableSmallWorld.js","sourceRoot":"","sources":["../../../resources/indexes/HierarchicalNavigableSmallWorld.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HierarchicalNavigableSmallWorld.js","sourceRoot":"","sources":["../../../resources/indexes/HierarchicalNavigableSmallWorld.ts"],"names":[],"mappings":"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"}
|