@harperfast/harper 5.0.25 → 5.1.0-beta.1
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 +11 -10
- package/agent/agent.ts +203 -0
- package/agent/loop.ts +205 -0
- package/agent/operations.ts +148 -0
- package/agent/session.ts +187 -0
- package/agent/tools/fsTools.ts +276 -0
- package/agent/tools/httpFetchTool.ts +112 -0
- package/agent/tools/scheduleTool.ts +68 -0
- package/agent/toolset.ts +43 -0
- package/agent/types.ts +85 -0
- package/bin/{BinObjects.js → BinObjects.ts} +4 -5
- package/bin/cliCredentials.ts +133 -0
- package/bin/cliOperations.ts +339 -0
- package/bin/copyDb.ts +10 -10
- package/bin/deployRenderer.ts +196 -0
- package/bin/{harper.js → harper.ts} +43 -19
- package/bin/{install.js → install.ts} +3 -3
- package/bin/lite.ts +2 -0
- package/bin/login.ts +168 -0
- package/bin/logout.ts +11 -0
- package/bin/mcp/client.ts +407 -0
- package/bin/mcp/doctor.ts +189 -0
- package/bin/mcp/index.ts +80 -0
- package/bin/mcp/options.ts +122 -0
- package/bin/mcp/printConfig.ts +89 -0
- package/bin/multipartBuilder.ts +74 -0
- package/bin/{restart.js → restart.ts} +27 -28
- package/bin/{run.js → run.ts} +41 -30
- package/bin/sseConsumer.ts +126 -0
- package/bin/{status.js → status.ts} +10 -10
- package/bin/{stop.js → stop.ts} +5 -5
- package/bin/upgrade.js +6 -6
- package/components/Application.ts +144 -18
- package/components/ApplicationScope.ts +2 -2
- package/components/ComponentV1.ts +2 -2
- package/components/EntryHandler.ts +159 -9
- package/components/OptionsWatcher.ts +75 -11
- package/components/Scope.ts +125 -15
- package/components/anthropic/index.ts +547 -0
- package/components/bedrock/index.ts +823 -0
- package/components/componentLoader.ts +63 -32
- package/components/deployLifecycle.ts +161 -0
- package/components/deploymentOperations.ts +173 -0
- package/components/deploymentRecorder.ts +402 -0
- package/components/deriveURLPath.ts +4 -4
- package/components/mcp/adapters/fastify.ts +87 -0
- package/components/mcp/adapters/harperHttp.ts +103 -0
- package/components/mcp/audit.ts +75 -0
- package/components/mcp/index.ts +134 -0
- package/components/mcp/jsonrpc.ts +134 -0
- package/components/mcp/lifecycle.ts +105 -0
- package/components/mcp/listChanged.ts +270 -0
- package/components/mcp/rateLimit.ts +217 -0
- package/components/mcp/resources.ts +593 -0
- package/components/mcp/session.ts +151 -0
- package/components/mcp/sessionRegistry.ts +140 -0
- package/components/mcp/toolRegistry.ts +292 -0
- package/components/mcp/tools/application.ts +603 -0
- package/components/mcp/tools/operations.ts +283 -0
- package/components/mcp/tools/schemas/derive.ts +256 -0
- package/components/mcp/tools/schemas/operations.ts +245 -0
- package/components/mcp/transport.ts +517 -0
- package/components/ollama/index.ts +316 -0
- package/components/openai/index.ts +563 -0
- package/components/operations.js +211 -60
- package/components/operationsValidation.js +3 -3
- package/components/packageComponent.ts +97 -29
- package/components/requestRestart.ts +17 -2
- package/components/status/crossThread.ts +14 -5
- package/components/status/errors.ts +1 -1
- package/config/RootConfigWatcher.ts +56 -2
- package/config/configUtils.js +29 -8
- package/config/harperConfigEnvVars.ts +1 -1
- package/config-root.schema.json +74 -0
- package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
- package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
- package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
- package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
- package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
- package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
- package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
- package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
- package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
- package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
- package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
- package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
- package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
- package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
- package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
- package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
- package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
- package/dataLayer/{delete.js → delete.ts} +21 -26
- package/dataLayer/{export.js → export.ts} +22 -26
- package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
- package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
- package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
- package/dataLayer/{insert.js → insert.ts} +24 -24
- package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
- package/dataLayer/{schema.js → schema.ts} +32 -44
- package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
- package/dataLayer/{search.js → search.ts} +9 -15
- package/dataLayer/{transaction.js → transaction.ts} +2 -5
- package/dataLayer/{update.js → update.ts} +19 -22
- package/dist/agent/agent.d.ts +35 -0
- package/dist/agent/agent.js +175 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/loop.d.ts +34 -0
- package/dist/agent/loop.js +176 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/operations.d.ts +17 -0
- package/dist/agent/operations.js +137 -0
- package/dist/agent/operations.js.map +1 -0
- package/dist/agent/session.d.ts +36 -0
- package/dist/agent/session.js +182 -0
- package/dist/agent/session.js.map +1 -0
- package/dist/agent/tools/fsTools.d.ts +19 -0
- package/dist/agent/tools/fsTools.js +286 -0
- package/dist/agent/tools/fsTools.js.map +1 -0
- package/dist/agent/tools/httpFetchTool.d.ts +9 -0
- package/dist/agent/tools/httpFetchTool.js +116 -0
- package/dist/agent/tools/httpFetchTool.js.map +1 -0
- package/dist/agent/tools/scheduleTool.d.ts +22 -0
- package/dist/agent/tools/scheduleTool.js +54 -0
- package/dist/agent/tools/scheduleTool.js.map +1 -0
- package/dist/agent/toolset.d.ts +24 -0
- package/dist/agent/toolset.js +33 -0
- package/dist/agent/toolset.js.map +1 -0
- package/dist/agent/types.d.ts +75 -0
- package/dist/agent/types.js +10 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bin/BinObjects.d.ts +2 -2
- package/dist/bin/BinObjects.js +6 -3
- package/dist/bin/BinObjects.js.map +1 -1
- package/dist/bin/cliCredentials.d.ts +27 -0
- package/dist/bin/cliCredentials.js +130 -0
- package/dist/bin/cliCredentials.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +7 -7
- package/dist/bin/cliOperations.js +251 -37
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +16 -16
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deployRenderer.d.ts +47 -0
- package/dist/bin/deployRenderer.js +185 -0
- package/dist/bin/deployRenderer.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -1
- package/dist/bin/harper.js +87 -26
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/install.d.ts +1 -1
- package/dist/bin/install.js +41 -4
- package/dist/bin/install.js.map +1 -1
- package/dist/bin/lite.js +3 -4
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/login.d.ts +4 -0
- package/dist/bin/login.js +158 -0
- package/dist/bin/login.js.map +1 -0
- package/dist/bin/logout.d.ts +4 -0
- package/dist/bin/logout.js +16 -0
- package/dist/bin/logout.js.map +1 -0
- package/dist/bin/mcp/client.d.ts +34 -0
- package/dist/bin/mcp/client.js +395 -0
- package/dist/bin/mcp/client.js.map +1 -0
- package/dist/bin/mcp/doctor.d.ts +11 -0
- package/dist/bin/mcp/doctor.js +193 -0
- package/dist/bin/mcp/doctor.js.map +1 -0
- package/dist/bin/mcp/index.d.ts +10 -0
- package/dist/bin/mcp/index.js +81 -0
- package/dist/bin/mcp/index.js.map +1 -0
- package/dist/bin/mcp/options.d.ts +33 -0
- package/dist/bin/mcp/options.js +113 -0
- package/dist/bin/mcp/options.js.map +1 -0
- package/dist/bin/mcp/printConfig.d.ts +14 -0
- package/dist/bin/mcp/printConfig.js +85 -0
- package/dist/bin/mcp/printConfig.js.map +1 -0
- package/dist/bin/multipartBuilder.d.ts +26 -0
- package/dist/bin/multipartBuilder.js +55 -0
- package/dist/bin/multipartBuilder.js.map +1 -0
- package/dist/bin/restart.d.ts +3 -2
- package/dist/bin/restart.js +82 -45
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.d.ts +13 -9
- package/dist/bin/run.js +111 -65
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/sseConsumer.d.ts +24 -0
- package/dist/bin/sseConsumer.js +127 -0
- package/dist/bin/sseConsumer.js.map +1 -0
- package/dist/bin/status.d.ts +1 -1
- package/dist/bin/status.js +48 -11
- package/dist/bin/status.js.map +1 -1
- package/dist/bin/stop.d.ts +1 -1
- package/dist/bin/stop.js +43 -6
- package/dist/bin/stop.js.map +1 -1
- package/dist/bin/upgrade.js +6 -6
- package/dist/components/Application.d.ts +29 -17
- package/dist/components/Application.js +134 -28
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.js +2 -2
- package/dist/components/ComponentV1.d.ts +1 -1
- package/dist/components/ComponentV1.js +5 -5
- package/dist/components/ComponentV1.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +26 -3
- package/dist/components/EntryHandler.js +153 -13
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +7 -2
- package/dist/components/OptionsWatcher.js +72 -10
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/Scope.d.ts +11 -6
- package/dist/components/Scope.js +105 -9
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +40 -0
- package/dist/components/anthropic/index.js +428 -0
- package/dist/components/anthropic/index.js.map +1 -0
- package/dist/components/bedrock/index.d.ts +79 -0
- package/dist/components/bedrock/index.js +734 -0
- package/dist/components/bedrock/index.js.map +1 -0
- package/dist/components/componentLoader.d.ts +29 -0
- package/dist/components/componentLoader.js +63 -38
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +39 -0
- package/dist/components/deployLifecycle.js +156 -0
- package/dist/components/deployLifecycle.js.map +1 -0
- package/dist/components/deploymentOperations.d.ts +19 -0
- package/dist/components/deploymentOperations.js +185 -0
- package/dist/components/deploymentOperations.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +81 -0
- package/dist/components/deploymentRecorder.js +401 -0
- package/dist/components/deploymentRecorder.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +2 -2
- package/dist/components/deriveURLPath.js +2 -2
- package/dist/components/deriveURLPath.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +35 -0
- package/dist/components/mcp/adapters/fastify.js +66 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -0
- package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
- package/dist/components/mcp/adapters/harperHttp.js +78 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
- package/dist/components/mcp/audit.d.ts +27 -0
- package/dist/components/mcp/audit.js +73 -0
- package/dist/components/mcp/audit.js.map +1 -0
- package/dist/components/mcp/index.d.ts +47 -0
- package/dist/components/mcp/index.js +109 -0
- package/dist/components/mcp/index.js.map +1 -0
- package/dist/components/mcp/jsonrpc.d.ts +71 -0
- package/dist/components/mcp/jsonrpc.js +93 -0
- package/dist/components/mcp/jsonrpc.js.map +1 -0
- package/dist/components/mcp/lifecycle.d.ts +69 -0
- package/dist/components/mcp/lifecycle.js +79 -0
- package/dist/components/mcp/lifecycle.js.map +1 -0
- package/dist/components/mcp/listChanged.d.ts +24 -0
- package/dist/components/mcp/listChanged.js +257 -0
- package/dist/components/mcp/listChanged.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +25 -0
- package/dist/components/mcp/rateLimit.js +226 -0
- package/dist/components/mcp/rateLimit.js.map +1 -0
- package/dist/components/mcp/resources.d.ts +90 -0
- package/dist/components/mcp/resources.js +515 -0
- package/dist/components/mcp/resources.js.map +1 -0
- package/dist/components/mcp/session.d.ts +36 -0
- package/dist/components/mcp/session.js +170 -0
- package/dist/components/mcp/session.js.map +1 -0
- package/dist/components/mcp/sessionRegistry.d.ts +63 -0
- package/dist/components/mcp/sessionRegistry.js +124 -0
- package/dist/components/mcp/sessionRegistry.js.map +1 -0
- package/dist/components/mcp/toolRegistry.d.ts +150 -0
- package/dist/components/mcp/toolRegistry.js +176 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -0
- package/dist/components/mcp/tools/application.d.ts +58 -0
- package/dist/components/mcp/tools/application.js +549 -0
- package/dist/components/mcp/tools/application.js.map +1 -0
- package/dist/components/mcp/tools/operations.d.ts +23 -0
- package/dist/components/mcp/tools/operations.js +303 -0
- package/dist/components/mcp/tools/operations.js.map +1 -0
- package/dist/components/mcp/tools/schemas/derive.d.ts +36 -0
- package/dist/components/mcp/tools/schemas/derive.js +216 -0
- package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
- package/dist/components/mcp/tools/schemas/operations.js +243 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
- package/dist/components/mcp/transport.d.ts +38 -0
- package/dist/components/mcp/transport.js +467 -0
- package/dist/components/mcp/transport.js.map +1 -0
- package/dist/components/ollama/index.d.ts +46 -0
- package/dist/components/ollama/index.js +239 -0
- package/dist/components/ollama/index.js.map +1 -0
- package/dist/components/openai/index.d.ts +51 -0
- package/dist/components/openai/index.js +475 -0
- package/dist/components/openai/index.js.map +1 -0
- package/dist/components/operations.d.ts +6 -6
- package/dist/components/operations.js +198 -52
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +2 -2
- package/dist/components/operationsValidation.js +3 -3
- package/dist/components/packageComponent.d.ts +28 -6
- package/dist/components/packageComponent.js +87 -26
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +12 -1
- package/dist/components/requestRestart.js.map +1 -1
- package/dist/components/status/crossThread.d.ts +5 -1
- package/dist/components/status/crossThread.js +12 -5
- package/dist/components/status/crossThread.js.map +1 -1
- package/dist/components/status/errors.js +7 -7
- package/dist/config/RootConfigWatcher.d.ts +3 -0
- package/dist/config/RootConfigWatcher.js +52 -1
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.js +31 -8
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +1 -1
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
- package/dist/dataLayer/CreateAttributeObject.js +4 -3
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -4
- package/dist/dataLayer/CreateTableObject.js +2 -1
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
- package/dist/dataLayer/DataLayerObjects.js +19 -5
- package/dist/dataLayer/DataLayerObjects.js.map +1 -1
- package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
- package/dist/dataLayer/DeleteBeforeObject.js +2 -1
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
- package/dist/dataLayer/DeleteObject.d.ts +3 -7
- package/dist/dataLayer/DeleteObject.js +4 -3
- package/dist/dataLayer/DeleteObject.js.map +1 -1
- package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
- package/dist/dataLayer/DropAttributeObject.js +2 -1
- package/dist/dataLayer/DropAttributeObject.js.map +1 -1
- package/dist/dataLayer/GetBackupObject.d.ts +3 -5
- package/dist/dataLayer/GetBackupObject.js +4 -3
- package/dist/dataLayer/GetBackupObject.js.map +1 -1
- package/dist/dataLayer/InsertObject.d.ts +3 -8
- package/dist/dataLayer/InsertObject.js +4 -3
- package/dist/dataLayer/InsertObject.js.map +1 -1
- package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
- package/dist/dataLayer/ReadAuditLogObject.js +4 -3
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
- package/dist/dataLayer/SQLSearch.d.ts +68 -38
- package/dist/dataLayer/SQLSearch.js +140 -78
- package/dist/dataLayer/SQLSearch.js.map +1 -1
- package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
- package/dist/dataLayer/SearchByConditionsObject.js +5 -7
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
- package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
- package/dist/dataLayer/SearchByHashObject.js +2 -1
- package/dist/dataLayer/SearchByHashObject.js.map +1 -1
- package/dist/dataLayer/SearchObject.d.ts +3 -12
- package/dist/dataLayer/SearchObject.js +2 -1
- package/dist/dataLayer/SearchObject.js.map +1 -1
- package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
- package/dist/dataLayer/SqlSearchObject.js +2 -1
- package/dist/dataLayer/SqlSearchObject.js.map +1 -1
- package/dist/dataLayer/UpdateObject.d.ts +3 -7
- package/dist/dataLayer/UpdateObject.js +4 -3
- package/dist/dataLayer/UpdateObject.js.map +1 -1
- package/dist/dataLayer/UpsertObject.d.ts +3 -7
- package/dist/dataLayer/UpsertObject.js +4 -3
- package/dist/dataLayer/UpsertObject.js.map +1 -1
- package/dist/dataLayer/bulkLoad.d.ts +4 -4
- package/dist/dataLayer/bulkLoad.js +122 -88
- package/dist/dataLayer/bulkLoad.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +10 -11
- package/dist/dataLayer/delete.js +74 -39
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/export.d.ts +8 -8
- package/dist/dataLayer/export.js +90 -55
- package/dist/dataLayer/export.js.map +1 -1
- package/dist/dataLayer/getBackup.d.ts +4 -3
- package/dist/dataLayer/getBackup.js +43 -11
- package/dist/dataLayer/getBackup.js.map +1 -1
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
- package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
- package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
- package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
- package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dist/dataLayer/hdbInfoController.d.ts +4 -8
- package/dist/dataLayer/hdbInfoController.js +66 -31
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +14 -26
- package/dist/dataLayer/insert.js +63 -28
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/readAuditLog.d.ts +1 -3
- package/dist/dataLayer/readAuditLog.js +45 -13
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schema.d.ts +10 -10
- package/dist/dataLayer/schema.js +124 -89
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.d.ts +4 -4
- package/dist/dataLayer/schemaDescribe.js +78 -41
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/dataLayer/search.d.ts +4 -4
- package/dist/dataLayer/search.js +12 -13
- package/dist/dataLayer/search.js.map +1 -1
- package/dist/dataLayer/transaction.d.ts +1 -1
- package/dist/dataLayer/transaction.js +3 -4
- package/dist/dataLayer/transaction.js.map +1 -1
- package/dist/dataLayer/update.d.ts +2 -8
- package/dist/dataLayer/update.js +53 -18
- package/dist/dataLayer/update.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 +4 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +65 -0
- package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
- package/dist/launchServiceScripts/launchHarperDB.js +3 -0
- package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +14 -6
- package/dist/resources/DatabaseTransaction.js +39 -15
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ErrorResource.d.ts +1 -1
- package/dist/resources/ErrorResource.js +3 -1
- package/dist/resources/ErrorResource.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +10 -13
- package/dist/resources/LMDBTransaction.js +18 -7
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +7 -1
- package/dist/resources/RecordEncoder.js +5 -2
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +1 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +9 -5
- package/dist/resources/Resource.js +37 -10
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +24 -5
- package/dist/resources/ResourceInterface.js +20 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.d.ts +3 -4
- package/dist/resources/Resources.js +7 -6
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/RocksIndexStore.js +3 -0
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
- package/dist/resources/RocksTransactionLogStore.js +46 -27
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +59 -329
- package/dist/resources/Table.js +267 -107
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/metadata.d.ts +1 -0
- package/dist/resources/analytics/metadata.js +1 -0
- package/dist/resources/analytics/metadata.js.map +1 -1
- package/dist/resources/analytics/read.d.ts +5 -0
- package/dist/resources/analytics/read.js +16 -5
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.d.ts +28 -0
- package/dist/resources/analytics/write.js +232 -20
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +18 -13
- package/dist/resources/auditStore.js +13 -8
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +16 -27
- package/dist/resources/blob.js +8 -8
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/dataLoader.d.ts +1 -1
- package/dist/resources/dataLoader.js +13 -13
- package/dist/resources/databases.d.ts +13 -0
- package/dist/resources/databases.js +160 -52
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -7
- package/dist/resources/graphql.js +224 -174
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +16 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +308 -59
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/vector.d.ts +1 -0
- package/dist/resources/indexes/vector.js +14 -0
- package/dist/resources/indexes/vector.js.map +1 -1
- package/dist/resources/loadEnv.d.ts +2 -5
- package/dist/resources/loadEnv.js +21 -18
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.d.ts +2 -3
- package/dist/resources/login.js +5 -4
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.d.ts +45 -0
- package/dist/resources/models/Models.js +265 -0
- package/dist/resources/models/Models.js.map +1 -0
- package/dist/resources/models/TestBackend.d.ts +15 -0
- package/dist/resources/models/TestBackend.js +71 -0
- package/dist/resources/models/TestBackend.js.map +1 -0
- package/dist/resources/models/agentLoop.d.ts +125 -0
- package/dist/resources/models/agentLoop.js +746 -0
- package/dist/resources/models/agentLoop.js.map +1 -0
- package/dist/resources/models/analyticsTable.d.ts +65 -0
- package/dist/resources/models/analyticsTable.js +166 -0
- package/dist/resources/models/analyticsTable.js.map +1 -0
- package/dist/resources/models/backendHelpers.d.ts +57 -0
- package/dist/resources/models/backendHelpers.js +109 -0
- package/dist/resources/models/backendHelpers.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +36 -0
- package/dist/resources/models/backendRegistry.js +54 -0
- package/dist/resources/models/backendRegistry.js.map +1 -0
- package/dist/resources/models/bootstrap.d.ts +24 -0
- package/dist/resources/models/bootstrap.js +112 -0
- package/dist/resources/models/bootstrap.js.map +1 -0
- package/dist/resources/models/embedHook.d.ts +33 -0
- package/dist/resources/models/embedHook.js +127 -0
- package/dist/resources/models/embedHook.js.map +1 -0
- package/dist/resources/models/types.d.ts +301 -0
- package/dist/resources/models/types.js +11 -0
- package/dist/resources/models/types.js.map +1 -0
- package/dist/resources/replayLogs.js +7 -1
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/roles.d.ts +1 -7
- package/dist/resources/roles.js +67 -71
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/search.d.ts +18 -1
- package/dist/resources/search.js +349 -140
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +1 -1
- package/dist/resources/tracked.js +14 -14
- package/dist/resources/tracked.js.map +1 -1
- package/dist/resources/transaction.d.ts +1 -1
- package/dist/resources/transaction.js +1 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.d.ts +1 -5
- package/dist/security/auth.js +34 -25
- package/dist/security/auth.js.map +1 -1
- package/dist/security/certificateVerification/crlVerification.js +7 -1
- package/dist/security/certificateVerification/crlVerification.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/cryptoHash.js +37 -5
- package/dist/security/cryptoHash.js.map +1 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
- package/dist/security/data_objects/PermissionResponseObject.js +15 -8
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
- package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
- package/dist/security/fastifyAuth.d.ts +2 -2
- package/dist/security/fastifyAuth.js +131 -22
- package/dist/security/fastifyAuth.js.map +1 -1
- package/dist/security/impersonation.js +15 -15
- package/dist/security/jsLoader.js +18 -5
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.d.ts +45 -48
- package/dist/security/keys.js +160 -114
- package/dist/security/keys.js.map +1 -1
- package/dist/security/permissionsTranslator.js +2 -2
- package/dist/security/role.d.ts +5 -5
- package/dist/security/role.js +70 -35
- package/dist/security/role.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +13 -0
- package/dist/security/tokenAuthentication.js +57 -27
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +74 -38
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
- package/dist/server/DurableSubscriptionsSession.js +71 -55
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.d.ts +1 -8
- package/dist/server/REST.js +17 -16
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +23 -4
- package/dist/server/Server.js +1 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/dist/server/fastifyRoutes.d.ts +1 -4
- package/dist/server/fastifyRoutes.js +34 -30
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.d.ts +1 -1
- package/dist/server/graphqlQuerying.js +8 -7
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +9 -4
- package/dist/server/http.js +523 -47
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +66 -15
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/jobs/JobObject.js +53 -7
- package/dist/server/jobs/JobObject.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +64 -24
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.d.ts +7 -6
- package/dist/server/jobs/jobRunner.js +68 -30
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.d.ts +18 -7
- package/dist/server/jobs/jobs.js +93 -61
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/loadRootComponents.js +1 -1
- package/dist/server/middlewareChain.d.ts +80 -0
- package/dist/server/middlewareChain.js +252 -0
- package/dist/server/middlewareChain.js.map +1 -0
- package/dist/server/mqtt.d.ts +1 -8
- package/dist/server/mqtt.js +22 -17
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.js +44 -13
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/operationsServer.d.ts +2 -2
- package/dist/server/operationsServer.js +106 -33
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +4 -4
- package/dist/server/serverHelpers/Headers.js +2 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
- package/dist/server/serverHelpers/JSONStream.js +12 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +106 -8
- package/dist/server/serverHelpers/Request.js +370 -9
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
- package/dist/server/serverHelpers/contentTypes.js +36 -7
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
- package/dist/server/serverHelpers/multipartParser.js +142 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -0
- package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
- package/dist/server/serverHelpers/progressEmitter.js +103 -0
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +38 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
- package/dist/server/serverHelpers/serverUtilities.js +97 -93
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +8 -5
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.js +3 -3
- package/dist/server/storageReclamation.d.ts +10 -0
- package/dist/server/storageReclamation.js +68 -9
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.js +7 -4
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -1
- package/dist/server/threads/manageThreads.js +110 -26
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +0 -1
- package/dist/server/threads/socketRouter.js +8 -271
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +1 -0
- package/dist/server/threads/threadServer.js +360 -118
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/server/threads/workerProcessGuard.d.ts +42 -0
- package/dist/server/threads/workerProcessGuard.js +114 -0
- package/dist/server/threads/workerProcessGuard.js.map +1 -0
- package/dist/server/throttle.js +17 -0
- package/dist/server/throttle.js.map +1 -1
- package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
- package/dist/sqlTranslator/SelectValidator.js +86 -47
- package/dist/sqlTranslator/SelectValidator.js.map +1 -1
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
- package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
- package/dist/sqlTranslator/deleteTranslator.js +48 -14
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +10 -9
- package/dist/sqlTranslator/index.js +69 -30
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
- package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
- package/dist/upgrade/UpgradeObjects.d.ts +2 -3
- package/dist/upgrade/UpgradeObjects.js +37 -4
- package/dist/upgrade/UpgradeObjects.js.map +1 -1
- package/dist/upgrade/directives/5-2-0.d.ts +6 -0
- package/dist/upgrade/directives/5-2-0.js +77 -0
- package/dist/upgrade/directives/5-2-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +10 -10
- package/dist/upgrade/directives/directivesController.js +52 -11
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/upgrade/directivesManager.d.ts +1 -1
- package/dist/upgrade/directivesManager.js +53 -18
- package/dist/upgrade/directivesManager.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +3 -3
- package/dist/upgrade/upgradePrompt.js +65 -30
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/upgrade/upgradeUtilities.d.ts +1 -1
- package/dist/upgrade/upgradeUtilities.js +37 -5
- package/dist/upgrade/upgradeUtilities.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.d.ts +1 -1
- package/dist/utility/OperationFunctionCaller.js +45 -10
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
- package/dist/utility/assignCmdEnvVariables.js +8 -4
- package/dist/utility/assignCmdEnvVariables.js.map +1 -1
- package/dist/utility/common_utils.d.ts +80 -77
- package/dist/utility/common_utils.js +140 -79
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +12 -11
- package/dist/utility/environment/environmentManager.js +75 -29
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +4 -0
- package/dist/utility/environment/systemInformation.js +27 -16
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +192 -168
- package/dist/utility/errors/commonErrors.js +49 -18
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +37 -51
- package/dist/utility/errors/hdbError.js +65 -26
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/expandEnvVar.d.ts +61 -0
- package/dist/utility/expandEnvVar.js +113 -0
- package/dist/utility/expandEnvVar.js.map +1 -0
- package/dist/utility/functions/geo.js +2 -2
- package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
- package/dist/utility/globalSchema.d.ts +13 -4
- package/dist/utility/globalSchema.js +14 -11
- package/dist/utility/globalSchema.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +56 -0
- package/dist/utility/hdbTerms.js +56 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/checkJWTTokensExist.js +1 -1
- package/dist/utility/install/installer.d.ts +9 -12
- package/dist/utility/install/installer.js +87 -51
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/installation.js +3 -3
- package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
- package/dist/utility/lmdb/DBIDefinition.js +5 -1
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/OpenDBIObject.d.ts +11 -15
- package/dist/utility/lmdb/OpenDBIObject.js +54 -6
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
- package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +8 -9
- package/dist/utility/lmdb/commonUtility.js +46 -17
- package/dist/utility/lmdb/commonUtility.js.map +1 -1
- package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
- package/dist/utility/lmdb/deleteUtility.js +51 -16
- package/dist/utility/lmdb/deleteUtility.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
- package/dist/utility/lmdb/environmentUtility.js +91 -51
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
- package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
- package/dist/utility/lmdb/searchUtility.d.ts +142 -73
- package/dist/utility/lmdb/searchUtility.js +91 -55
- package/dist/utility/lmdb/searchUtility.js.map +1 -1
- package/dist/utility/lmdb/terms.d.ts +34 -34
- package/dist/utility/lmdb/terms.js +12 -22
- package/dist/utility/lmdb/terms.js.map +1 -1
- package/dist/utility/lmdb/writeUtility.d.ts +3 -6
- package/dist/utility/lmdb/writeUtility.js +61 -28
- package/dist/utility/lmdb/writeUtility.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +87 -103
- package/dist/utility/logging/harper_logger.js +176 -81
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.d.ts +2 -10
- package/dist/utility/logging/logRotator.js +65 -28
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/logger.js +4 -4
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +54 -17
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/logging/transactionLog.d.ts +2 -2
- package/dist/utility/logging/transactionLog.js +51 -16
- package/dist/utility/logging/transactionLog.js.map +1 -1
- package/dist/utility/mount_hdb.d.ts +1 -2
- package/dist/utility/mount_hdb.js +54 -17
- package/dist/utility/mount_hdb.js.map +1 -1
- package/dist/utility/npmUtilities.d.ts +1 -1
- package/dist/utility/npmUtilities.js +54 -19
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +36 -9
- package/dist/utility/operation_authorization.js +135 -86
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/packageUtils.d.ts +0 -2
- package/dist/utility/packageUtils.js +7 -17
- package/dist/utility/packageUtils.js.map +1 -1
- package/dist/utility/password.js +2 -2
- package/dist/utility/processManagement/processManagement.js +2 -2
- package/dist/utility/processManagement/servicesConfig.js +1 -1
- package/dist/utility/signalling.d.ts +2 -2
- package/dist/utility/signalling.js +51 -16
- package/dist/utility/signalling.js.map +1 -1
- package/dist/utility/watcherFallback.d.ts +36 -0
- package/dist/utility/watcherFallback.js +73 -0
- package/dist/utility/watcherFallback.js.map +1 -0
- package/dist/validation/analyticsValidator.d.ts +1 -0
- package/dist/validation/analyticsValidator.js +79 -0
- package/dist/validation/analyticsValidator.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +1 -2
- package/dist/validation/bulkDeleteValidator.js +49 -11
- package/dist/validation/bulkDeleteValidator.js.map +1 -1
- package/dist/validation/check_permissions.d.ts +1 -2
- package/dist/validation/check_permissions.js +38 -3
- package/dist/validation/check_permissions.js.map +1 -1
- package/dist/validation/common_validators.d.ts +20 -20
- package/dist/validation/common_validators.js +62 -31
- package/dist/validation/common_validators.js.map +1 -1
- package/dist/validation/configValidator.d.ts +4 -4
- package/dist/validation/configValidator.js +189 -54
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/deleteValidator.d.ts +1 -2
- package/dist/validation/deleteValidator.js +49 -11
- package/dist/validation/deleteValidator.js.map +1 -1
- package/dist/validation/fileLoadValidator.d.ts +4 -4
- package/dist/validation/fileLoadValidator.js +67 -32
- package/dist/validation/fileLoadValidator.js.map +1 -1
- package/dist/validation/insertValidator.d.ts +1 -2
- package/dist/validation/insertValidator.js +48 -10
- package/dist/validation/insertValidator.js.map +1 -1
- package/dist/validation/installValidator.d.ts +2 -2
- package/dist/validation/installValidator.js +47 -10
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/readLogValidator.d.ts +1 -2
- package/dist/validation/readLogValidator.js +60 -22
- package/dist/validation/readLogValidator.js.map +1 -1
- package/dist/validation/role_validation.d.ts +3 -3
- package/dist/validation/role_validation.js +55 -19
- package/dist/validation/role_validation.js.map +1 -1
- package/dist/validation/schemaMetadataValidator.d.ts +3 -4
- package/dist/validation/schemaMetadataValidator.js +11 -12
- package/dist/validation/schemaMetadataValidator.js.map +1 -1
- package/dist/validation/searchValidator.d.ts +1 -2
- package/dist/validation/searchValidator.js +82 -43
- package/dist/validation/searchValidator.js.map +1 -1
- package/dist/validation/statusValidator.d.ts +1 -1
- package/dist/validation/transactionLogValidator.d.ts +3 -3
- package/dist/validation/transactionLogValidator.js +52 -17
- package/dist/validation/transactionLogValidator.js.map +1 -1
- package/dist/validation/user_validation.d.ts +3 -3
- package/dist/validation/user_validation.js +38 -6
- package/dist/validation/user_validation.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +3 -3
- package/dist/validation/validationWrapper.js +4 -5
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +5 -0
- package/json/systemSchema.json +65 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
- package/package.json +37 -22
- package/resources/DESIGN.md +98 -0
- package/resources/DatabaseTransaction.ts +58 -30
- package/resources/ErrorResource.ts +2 -1
- package/resources/LMDBTransaction.ts +38 -29
- package/resources/RecordEncoder.ts +12 -4
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +89 -56
- package/resources/ResourceInterface.ts +44 -21
- package/resources/Resources.ts +8 -8
- package/resources/RocksIndexStore.ts +3 -0
- package/resources/RocksTransactionLogStore.ts +47 -28
- package/resources/Table.ts +386 -214
- package/resources/analytics/metadata.ts +1 -0
- package/resources/analytics/read.ts +24 -6
- package/resources/analytics/write.ts +240 -17
- package/resources/auditStore.ts +28 -19
- package/resources/blob.ts +53 -53
- package/resources/dataLoader.ts +4 -4
- package/resources/databases.ts +190 -71
- package/resources/graphql.ts +227 -164
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +294 -65
- package/resources/indexes/vector.ts +17 -0
- package/resources/loadEnv.ts +21 -17
- package/resources/login.ts +5 -3
- package/resources/models/Models.ts +304 -0
- package/resources/models/TestBackend.ts +83 -0
- package/resources/models/agentLoop.ts +895 -0
- package/resources/models/analyticsTable.ts +199 -0
- package/resources/models/backendHelpers.ts +116 -0
- package/resources/models/backendRegistry.ts +66 -0
- package/resources/models/bootstrap.ts +135 -0
- package/resources/models/embedHook.ts +138 -0
- package/resources/models/types.ts +296 -0
- package/resources/replayLogs.ts +15 -7
- package/resources/roles.ts +62 -67
- package/resources/search.ts +355 -135
- package/resources/tracked.ts +8 -8
- package/resources/transaction.ts +8 -8
- package/resources/transactionBroadcast.ts +3 -3
- package/security/auth.ts +35 -26
- package/security/certificateVerification/crlVerification.ts +11 -4
- package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
- package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
- package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
- package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
- package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
- package/security/impersonation.ts +3 -3
- package/security/jsLoader.ts +22 -8
- package/security/{keys.js → keys.ts} +113 -121
- package/security/permissionsTranslator.js +2 -2
- package/security/{role.js → role.ts} +26 -33
- package/security/tokenAuthentication.ts +34 -7
- package/security/user.ts +26 -22
- package/server/DESIGN.md +139 -0
- package/server/DurableSubscriptionsSession.ts +67 -50
- package/server/REST.ts +120 -107
- package/server/Server.ts +31 -12
- package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/server/fastifyRoutes.ts +37 -33
- package/server/graphqlQuerying.ts +6 -5
- package/server/http.ts +517 -26
- package/server/itc/serverHandlers.js +75 -14
- package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
- package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
- package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
- package/server/jobs/{jobs.js → jobs.ts} +41 -44
- package/server/loadRootComponents.js +1 -1
- package/server/middlewareChain.ts +270 -0
- package/server/mqtt.ts +35 -26
- package/server/nodeName.ts +2 -1
- package/server/operationsServer.ts +85 -10
- package/server/serverHelpers/Headers.ts +10 -8
- package/server/serverHelpers/JSONStream.ts +15 -5
- package/server/serverHelpers/Request.ts +370 -13
- package/server/serverHelpers/contentTypes.ts +42 -11
- package/server/serverHelpers/multipartParser.ts +152 -0
- package/server/serverHelpers/progressEmitter.ts +110 -0
- package/server/serverHelpers/serverHandlers.js +43 -7
- package/server/serverHelpers/serverUtilities.ts +40 -30
- package/server/static.ts +9 -6
- package/server/status/index.ts +2 -2
- package/server/storageReclamation.ts +39 -2
- package/server/threads/itc.js +7 -4
- package/server/threads/manageThreads.js +100 -26
- package/server/threads/socketRouter.ts +12 -275
- package/server/threads/threadServer.js +345 -105
- package/server/threads/workerProcessGuard.ts +93 -0
- package/server/throttle.ts +18 -0
- package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
- package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
- package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
- package/sqlTranslator/{index.js → index.ts} +30 -33
- package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
- package/static/README.md +10 -9
- package/studio/web/assets/{index-CmtPP0YO.js → index-COfIkCT-.js} +5 -5
- package/studio/web/assets/index-COfIkCT-.js.map +1 -0
- package/studio/web/assets/{index.lazy-C8jvGtlu.js → index.lazy-CIvl7Fj9.js} +2 -2
- package/studio/web/assets/{index.lazy-C8jvGtlu.js.map → index.lazy-CIvl7Fj9.js.map} +1 -1
- package/studio/web/assets/{profile-O0DYlJUv.js → profile-B2ZVB--r.js} +2 -2
- package/studio/web/assets/{profile-O0DYlJUv.js.map → profile-B2ZVB--r.js.map} +1 -1
- package/studio/web/assets/{status-BIlJkJby.js → status-Db6WBmhf.js} +2 -2
- package/studio/web/assets/{status-BIlJkJby.js.map → status-Db6WBmhf.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
- package/upgrade/directives/5-2-0.ts +49 -0
- package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
- package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
- package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +8 -14
- package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
- package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
- package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
- package/utility/{common_utils.js → common_utils.ts} +113 -139
- package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
- package/utility/environment/systemInformation.ts +18 -4
- package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
- package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
- package/utility/expandEnvVar.ts +110 -0
- package/utility/functions/geo.js +2 -2
- package/utility/functions/sql/alaSQLExtension.js +1 -1
- package/utility/globalSchema.ts +30 -0
- package/utility/hdbTerms.ts +56 -0
- package/utility/install/checkJWTTokensExist.js +1 -1
- package/utility/install/{installer.js → installer.ts} +38 -39
- package/utility/installation.ts +2 -2
- package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
- package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/OpenDBIObject.ts +43 -0
- package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
- package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
- package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
- package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
- package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
- package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
- package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
- package/utility/lmdb/{terms.js → terms.ts} +10 -23
- package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
- package/utility/logging/{harper_logger.js → harper_logger.ts} +136 -89
- package/utility/logging/{logRotator.js → logRotator.ts} +13 -13
- package/utility/logging/logger.ts +1 -1
- package/utility/logging/{readLog.js → readLog.ts} +19 -19
- package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
- package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
- package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
- package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
- package/utility/packageUtils.js +7 -16
- package/utility/password.ts +1 -1
- package/utility/processManagement/processManagement.js +2 -2
- package/utility/processManagement/servicesConfig.js +1 -1
- package/utility/{signalling.js → signalling.ts} +6 -11
- package/utility/watcherFallback.ts +74 -0
- package/validation/analyticsValidator.ts +43 -0
- package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
- package/validation/{check_permissions.js → check_permissions.ts} +3 -3
- package/validation/{common_validators.js → common_validators.ts} +12 -24
- package/validation/{configValidator.js → configValidator.ts} +114 -18
- package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
- package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
- package/validation/{insertValidator.js → insertValidator.ts} +5 -5
- package/validation/{installValidator.js → installValidator.ts} +8 -8
- package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
- package/validation/{role_validation.js → role_validation.ts} +26 -32
- package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
- package/validation/{searchValidator.js → searchValidator.ts} +12 -11
- package/validation/statusValidator.ts +1 -1
- package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
- package/validation/{user_validation.js → user_validation.ts} +4 -10
- package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
- package/bin/cliOperations.js +0 -159
- package/bin/lite.js +0 -5
- package/dataLayer/harperBridge/BridgeMethods.js +0 -85
- package/studio/web/assets/index-CmtPP0YO.js.map +0 -1
- package/utility/globalSchema.js +0 -35
- package/utility/lmdb/OpenDBIObject.js +0 -31
|
@@ -4,9 +4,112 @@ exports.HierarchicalNavigableSmallWorld = void 0;
|
|
|
4
4
|
const vector_ts_1 = require("./vector.js");
|
|
5
5
|
const msgpackr_1 = require("msgpackr");
|
|
6
6
|
const logger_ts_1 = require("../../utility/logging/logger.js");
|
|
7
|
-
const
|
|
7
|
+
const hdbError_ts_1 = require("../../utility/errors/hdbError.js");
|
|
8
8
|
const rocksdb_js_1 = require("@harperfast/rocksdb-js");
|
|
9
9
|
const logger = (0, logger_ts_1.loggerWithTag)('HNSW');
|
|
10
|
+
// Optional int8 scalar quantization of stored vectors, enabled per-index via the
|
|
11
|
+
// schema directive: `@indexed(type: "HNSW", quantization: "int8")`. The stored
|
|
12
|
+
// graph node holds the vector as a compact int8 `bin` plus a per-vector `scale`,
|
|
13
|
+
// roughly a 5x size reduction over the float32 array and ~10x cheaper to decode
|
|
14
|
+
// (a single typed-array view instead of decoding 768 individually-tagged floats
|
|
15
|
+
// into a boxed Array). The full-precision vector still lives on the record, so
|
|
16
|
+
// only graph navigation is approximate; quantization recall loss is ~1%.
|
|
17
|
+
//
|
|
18
|
+
// Decode auto-detects the stored format (number[] = float, bin = int8), so an
|
|
19
|
+
// int8-enabled index transparently reads legacy float nodes written before the
|
|
20
|
+
// option was set.
|
|
21
|
+
/** Symmetric int8 scalar-quantize a float vector. scale = max|component| / 127. */
|
|
22
|
+
function quantizeInt8(vector) {
|
|
23
|
+
let max = 0;
|
|
24
|
+
for (let i = 0; i < vector.length; i++) {
|
|
25
|
+
const a = vector[i] < 0 ? -vector[i] : vector[i];
|
|
26
|
+
if (a > max)
|
|
27
|
+
max = a;
|
|
28
|
+
}
|
|
29
|
+
const scale = max / 127 || 1;
|
|
30
|
+
const inv = 1 / scale;
|
|
31
|
+
const q = new Int8Array(vector.length);
|
|
32
|
+
// clamp guards against a float-rounding edge landing on 128 (which Int8Array would wrap to -128)
|
|
33
|
+
for (let i = 0; i < vector.length; i++)
|
|
34
|
+
q[i] = Math.max(-127, Math.min(127, Math.round(vector[i] * inv)));
|
|
35
|
+
return { bytes: Buffer.from(q.buffer, q.byteOffset, q.byteLength), scale };
|
|
36
|
+
}
|
|
37
|
+
/** Reconstruct an approximate float array from an int8 vector + scale. */
|
|
38
|
+
function dequantizeInt8(q, scale) {
|
|
39
|
+
const out = new Array(q.length);
|
|
40
|
+
for (let i = 0; i < q.length; i++)
|
|
41
|
+
out[i] = q[i] * scale;
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
// Auto-scaled search ef, used only when an index does not explicitly configure efConstructionSearch
|
|
45
|
+
// and a query does not pass its own ef. A fixed ef makes recall decay as the graph grows (it explores
|
|
46
|
+
// a shrinking fraction of the graph), so ef grows with sqrt(node count), capped to bound search cost.
|
|
47
|
+
// Constants from a recall/latency-vs-N sweep (768-dim cosine, int8): ef≈400 holds ~0.8 recall@10 from
|
|
48
|
+
// 5K–30K, and the recall/latency tradeoff is steep (ef 800 at 30K ≈ 0.92 recall but ~2s p50), so the
|
|
49
|
+
// cap deliberately favors latency — apps wanting higher recall set efConstructionSearch or a per-query
|
|
50
|
+
// ef. Tune as graph build quality / larger-N data improves.
|
|
51
|
+
const AUTO_EF_BASE = 100;
|
|
52
|
+
const AUTO_EF_REF = 1000;
|
|
53
|
+
const AUTO_EF_MAX = 512;
|
|
54
|
+
function autoScaleEf(nodeCount) {
|
|
55
|
+
const scaled = Math.round(AUTO_EF_BASE * Math.sqrt(Math.max(1, nodeCount / AUTO_EF_REF)));
|
|
56
|
+
return Math.min(AUTO_EF_MAX, Math.max(AUTO_EF_BASE, scaled));
|
|
57
|
+
}
|
|
58
|
+
class MinHeap {
|
|
59
|
+
data = [];
|
|
60
|
+
get size() {
|
|
61
|
+
return this.data.length;
|
|
62
|
+
}
|
|
63
|
+
push(item) {
|
|
64
|
+
this.data.push(item);
|
|
65
|
+
let i = this.data.length - 1;
|
|
66
|
+
while (i > 0) {
|
|
67
|
+
const p = (i - 1) >> 1;
|
|
68
|
+
if (this.data[p].distance <= this.data[i].distance)
|
|
69
|
+
break;
|
|
70
|
+
const tmp = this.data[p];
|
|
71
|
+
this.data[p] = this.data[i];
|
|
72
|
+
this.data[i] = tmp;
|
|
73
|
+
i = p;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
pop() {
|
|
77
|
+
if (this.data.length === 0)
|
|
78
|
+
return undefined;
|
|
79
|
+
const top = this.data[0];
|
|
80
|
+
const last = this.data.pop();
|
|
81
|
+
if (this.data.length > 0) {
|
|
82
|
+
this.data[0] = last;
|
|
83
|
+
let i = 0;
|
|
84
|
+
for (;;) {
|
|
85
|
+
const l = 2 * i + 1, r = l + 1;
|
|
86
|
+
let min = i;
|
|
87
|
+
if (l < this.data.length && this.data[l].distance < this.data[min].distance)
|
|
88
|
+
min = l;
|
|
89
|
+
if (r < this.data.length && this.data[r].distance < this.data[min].distance)
|
|
90
|
+
min = r;
|
|
91
|
+
if (min === i)
|
|
92
|
+
break;
|
|
93
|
+
const tmp = this.data[min];
|
|
94
|
+
this.data[min] = this.data[i];
|
|
95
|
+
this.data[i] = tmp;
|
|
96
|
+
i = min;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return top;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function bisectInsert(arr, distance) {
|
|
103
|
+
let lo = 0, hi = arr.length;
|
|
104
|
+
while (lo < hi) {
|
|
105
|
+
const mid = (lo + hi) >> 1;
|
|
106
|
+
if (arr[mid].distance <= distance)
|
|
107
|
+
lo = mid + 1;
|
|
108
|
+
else
|
|
109
|
+
hi = mid;
|
|
110
|
+
}
|
|
111
|
+
return lo;
|
|
112
|
+
}
|
|
10
113
|
/**
|
|
11
114
|
* Implementation of a vector index for Harper, using hierarchical navigable small world graphs.
|
|
12
115
|
*/
|
|
@@ -25,6 +128,10 @@ const MAX_LEVEL = 10; // should give good high-level skip list performance up to
|
|
|
25
128
|
*/
|
|
26
129
|
class HierarchicalNavigableSmallWorld {
|
|
27
130
|
static useObjectStore = true;
|
|
131
|
+
// Index options that only affect search, not the stored graph — changing them must not trigger a
|
|
132
|
+
// reindex (databases.ts persists the new value but skips rebuilding). efConstructionSearch is the
|
|
133
|
+
// search-time candidate-list size; the build uses efConstruction/M/distance, which are structural.
|
|
134
|
+
static searchOnlyOptions = ['efConstructionSearch'];
|
|
28
135
|
indexStore;
|
|
29
136
|
M = 16; // max number of connections per layer
|
|
30
137
|
efConstruction = 100; // size of dynamic candidate list
|
|
@@ -36,6 +143,8 @@ class HierarchicalNavigableSmallWorld {
|
|
|
36
143
|
nodesVisitedCount = 0;
|
|
37
144
|
idIncrementer;
|
|
38
145
|
distance;
|
|
146
|
+
int8 = false; // store vectors as int8-quantized bins (set via the `quantization` index option)
|
|
147
|
+
efSearchConfigured = false; // whether the schema set an explicit search ef; if not, search ef auto-scales with N
|
|
39
148
|
constructor(indexStore, options) {
|
|
40
149
|
this.indexStore = indexStore;
|
|
41
150
|
if (indexStore) {
|
|
@@ -43,7 +152,15 @@ class HierarchicalNavigableSmallWorld {
|
|
|
43
152
|
// (we would actually like to use float16 if it were available)
|
|
44
153
|
this.indexStore.encoder.useFloat32 = msgpackr_1.FLOAT32_OPTIONS.ALWAYS;
|
|
45
154
|
}
|
|
46
|
-
this.
|
|
155
|
+
this.int8 = options?.quantization === 'int8';
|
|
156
|
+
// Respect an explicitly-configured search ef (or efConstruction, which seeds it); otherwise auto-scale.
|
|
157
|
+
this.efSearchConfigured = options?.efConstructionSearch !== undefined || options?.efConstruction !== undefined;
|
|
158
|
+
this.distance =
|
|
159
|
+
options?.distance === 'euclidean'
|
|
160
|
+
? vector_ts_1.euclideanDistance
|
|
161
|
+
: options?.distance === 'dotProduct'
|
|
162
|
+
? vector_ts_1.dotProductDistance
|
|
163
|
+
: vector_ts_1.cosineDistance;
|
|
47
164
|
if (options) {
|
|
48
165
|
// allow all the HNSW parameters to be configured/tuned
|
|
49
166
|
if (options.M !== undefined) {
|
|
@@ -97,16 +214,32 @@ class HierarchicalNavigableSmallWorld {
|
|
|
97
214
|
if (existingVector) {
|
|
98
215
|
// If we are updating an existing entry, we need to update the entry point
|
|
99
216
|
// if the new entry is closer to the entry point than the old one
|
|
100
|
-
oldNode = { ...this.
|
|
217
|
+
oldNode = { ...this.safeGetSync(nodeId, options) };
|
|
101
218
|
}
|
|
102
219
|
else
|
|
103
220
|
oldNode = {};
|
|
104
221
|
if (vector) {
|
|
105
|
-
|
|
222
|
+
// Pre-compute 1/|vector| for cosine distance so searchLayer can skip sqrt per neighbor
|
|
223
|
+
let invMag;
|
|
224
|
+
if (this.distance === vector_ts_1.cosineDistance) {
|
|
225
|
+
let magSq = 0;
|
|
226
|
+
for (const v of vector)
|
|
227
|
+
magSq += v * v;
|
|
228
|
+
invMag = 1 / (Math.sqrt(magSq) || 1);
|
|
229
|
+
}
|
|
230
|
+
// Quantized storage form. The float `vector` is still used as the query for every
|
|
231
|
+
// searchLayer call below (asymmetric distance: float query x int8 stored); only what
|
|
232
|
+
// we PUT to the store is quantized.
|
|
233
|
+
const q = this.int8 ? quantizeInt8(vector) : undefined;
|
|
234
|
+
const storedVector = q ? q.bytes : vector;
|
|
235
|
+
const storedScale = q ? q.scale : undefined;
|
|
236
|
+
let entryPoint = entryPointId && this.safeGetSync(entryPointId, options);
|
|
106
237
|
if (entryPoint == null) {
|
|
107
238
|
const level = Math.floor(-Math.log(Math.random()) * this.mL);
|
|
108
239
|
const node = {
|
|
109
|
-
vector,
|
|
240
|
+
vector: storedVector,
|
|
241
|
+
scale: storedScale,
|
|
242
|
+
invMag,
|
|
110
243
|
level,
|
|
111
244
|
primaryKey,
|
|
112
245
|
};
|
|
@@ -201,8 +334,13 @@ class HierarchicalNavigableSmallWorld {
|
|
|
201
334
|
for (const { fromId, toId } of connectionsToBeReplaced) {
|
|
202
335
|
let from = updateNode(fromId);
|
|
203
336
|
if (!from)
|
|
204
|
-
from = updateNode(fromId, this.
|
|
205
|
-
|
|
337
|
+
from = updateNode(fromId, this.safeGetSync(fromId, options));
|
|
338
|
+
if (!from)
|
|
339
|
+
continue;
|
|
340
|
+
const fromAtLevel = from[l];
|
|
341
|
+
if (!fromAtLevel)
|
|
342
|
+
continue;
|
|
343
|
+
for (let i = 0; i < fromAtLevel.length; i++) {
|
|
206
344
|
if (from[l][i].id === toId) {
|
|
207
345
|
if (Object.isFrozen(from[l])) {
|
|
208
346
|
from[l] = from[l].slice();
|
|
@@ -248,7 +386,9 @@ class HierarchicalNavigableSmallWorld {
|
|
|
248
386
|
}
|
|
249
387
|
// Store the new element
|
|
250
388
|
this.indexStore.put(nodeId, {
|
|
251
|
-
vector,
|
|
389
|
+
vector: storedVector,
|
|
390
|
+
scale: storedScale,
|
|
391
|
+
invMag,
|
|
252
392
|
level,
|
|
253
393
|
primaryKey,
|
|
254
394
|
...connections,
|
|
@@ -301,7 +441,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
301
441
|
const oldConnections = oldNode[l];
|
|
302
442
|
for (const { id: neighborId } of oldConnections) {
|
|
303
443
|
// get and copy the neighbor node so we can modify it
|
|
304
|
-
const neighborNode = updateNode(neighborId, this.
|
|
444
|
+
const neighborNode = updateNode(neighborId, this.safeGetSync(neighborId, options));
|
|
305
445
|
if (!neighborNode)
|
|
306
446
|
continue;
|
|
307
447
|
for (let l2 = 0; l2 <= l; l2++) {
|
|
@@ -311,7 +451,10 @@ class HierarchicalNavigableSmallWorld {
|
|
|
311
451
|
});
|
|
312
452
|
if (neighborNode[l2]?.length === 0) {
|
|
313
453
|
logger.trace?.('node was left orphaned, will reindex', neighborId);
|
|
314
|
-
|
|
454
|
+
// reindex re-feeds this vector into index() as a float query, so dequantize int8 back to float
|
|
455
|
+
needsReindexing.set(neighborNode.primaryKey, neighborNode.scale !== undefined
|
|
456
|
+
? dequantizeInt8(neighborNode.vector, neighborNode.scale)
|
|
457
|
+
: neighborNode.vector);
|
|
315
458
|
}
|
|
316
459
|
}
|
|
317
460
|
}
|
|
@@ -333,14 +476,35 @@ class HierarchicalNavigableSmallWorld {
|
|
|
333
476
|
for (const [key, vector] of needsReindexing) {
|
|
334
477
|
this.index(key, vector, vector, options);
|
|
335
478
|
}
|
|
336
|
-
this.checkSymmetry(nodeId, this.
|
|
479
|
+
this.checkSymmetry(nodeId, this.safeGetSync(nodeId, options), options);
|
|
480
|
+
}
|
|
481
|
+
safeGetSync(key, options) {
|
|
482
|
+
try {
|
|
483
|
+
const node = this.indexStore.getSync(key, options);
|
|
484
|
+
// A quantized vector decodes as a bin (Uint8Array/Buffer) that is a view into the
|
|
485
|
+
// store's read buffer, which may be reused on the next getSync — so copy the bytes
|
|
486
|
+
// into a retained Int8Array (raw two's-complement reinterpret). The Int8Array guard
|
|
487
|
+
// skips re-conversion when the object store (useObjectStore) hands back an
|
|
488
|
+
// already-converted cached node. Float nodes (vector is a number[]) pass through.
|
|
489
|
+
if (node && node.vector && !Array.isArray(node.vector) && !(node.vector instanceof Int8Array)) {
|
|
490
|
+
const u8 = node.vector;
|
|
491
|
+
node.vector = new Int8Array(u8.buffer, u8.byteOffset, u8.byteLength).slice();
|
|
492
|
+
}
|
|
493
|
+
return node;
|
|
494
|
+
}
|
|
495
|
+
catch {
|
|
496
|
+
logger.warn?.('Failed to decode HNSW node, skipping', key);
|
|
497
|
+
return undefined;
|
|
498
|
+
}
|
|
337
499
|
}
|
|
338
500
|
getEntryPoint(options = {}) {
|
|
339
501
|
// Get entry point
|
|
340
502
|
const entryPointId = this.indexStore.getSync(ENTRY_POINT, options);
|
|
341
503
|
if (entryPointId === undefined)
|
|
342
504
|
return;
|
|
343
|
-
const node = this.
|
|
505
|
+
const node = this.safeGetSync(entryPointId, options);
|
|
506
|
+
if (!node)
|
|
507
|
+
return;
|
|
344
508
|
return { id: entryPointId, ...node };
|
|
345
509
|
}
|
|
346
510
|
/**
|
|
@@ -357,48 +521,90 @@ class HierarchicalNavigableSmallWorld {
|
|
|
357
521
|
* @private
|
|
358
522
|
*/
|
|
359
523
|
searchLayer(queryVector, entryPointId, entryPoint, ef, level, options = {}, distanceFunction = this.distance) {
|
|
524
|
+
// Pre-compute query magnitude for cosine; use cached invMag on stored nodes to skip sqrt per neighbor.
|
|
525
|
+
// Asymmetric distance: the query stays full-precision float; a stored neighbor may be int8
|
|
526
|
+
// (with per-vector `scaleB`) or float (`scaleB` undefined).
|
|
527
|
+
let computeDistance;
|
|
528
|
+
if (distanceFunction === vector_ts_1.cosineDistance) {
|
|
529
|
+
let magASq = 0;
|
|
530
|
+
for (const v of queryVector)
|
|
531
|
+
magASq += v * v;
|
|
532
|
+
const invMagA = 1 / (Math.sqrt(magASq) || 1);
|
|
533
|
+
computeDistance = (b, invMagB, scaleB) => {
|
|
534
|
+
let dot = 0;
|
|
535
|
+
for (let i = 0; i < b.length; i++)
|
|
536
|
+
dot += queryVector[i] * b[i];
|
|
537
|
+
if (scaleB !== undefined)
|
|
538
|
+
dot *= scaleB; // dequantize the int8 dot product
|
|
539
|
+
if (invMagB !== undefined)
|
|
540
|
+
return 1 - dot * invMagA * invMagB;
|
|
541
|
+
// Fallback when the stored node has no cached invMag (a non-cosine index queried as
|
|
542
|
+
// cosine). Compute the stored magnitude and dequantize it by scaleB so it matches the
|
|
543
|
+
// already-dequantized dot product.
|
|
544
|
+
let magBSq = 0;
|
|
545
|
+
for (let i = 0; i < b.length; i++)
|
|
546
|
+
magBSq += b[i] * b[i];
|
|
547
|
+
let magB = Math.sqrt(magBSq) || 1;
|
|
548
|
+
if (scaleB !== undefined)
|
|
549
|
+
magB *= scaleB;
|
|
550
|
+
return 1 - (dot * invMagA) / magB;
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
else if (distanceFunction === vector_ts_1.euclideanDistance) {
|
|
554
|
+
// Asymmetric squared-euclidean, dequantizing each int8 component inline (no allocation).
|
|
555
|
+
computeDistance = (b, _invMagB, scaleB) => {
|
|
556
|
+
if (scaleB === undefined)
|
|
557
|
+
return distanceFunction(queryVector, b);
|
|
558
|
+
let distanceSquared = 0;
|
|
559
|
+
for (let i = 0; i < b.length; i++) {
|
|
560
|
+
const diff = queryVector[i] - b[i] * scaleB;
|
|
561
|
+
distanceSquared += diff * diff;
|
|
562
|
+
}
|
|
563
|
+
return distanceSquared;
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
// Negated inner product, dequantizing the int8 dot product inline (no allocation).
|
|
568
|
+
computeDistance = (b, _invMagB, scaleB) => {
|
|
569
|
+
if (scaleB === undefined)
|
|
570
|
+
return distanceFunction(queryVector, b);
|
|
571
|
+
let dot = 0;
|
|
572
|
+
for (let i = 0; i < b.length; i++)
|
|
573
|
+
dot += queryVector[i] * b[i];
|
|
574
|
+
return -(dot * scaleB);
|
|
575
|
+
};
|
|
576
|
+
}
|
|
360
577
|
const visited = new Set([entryPointId]);
|
|
361
|
-
const
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const results = [
|
|
369
|
-
while (candidates.
|
|
370
|
-
|
|
371
|
-
candidates.sort((a, b) => a.distance - b.distance);
|
|
372
|
-
const current = candidates.shift();
|
|
373
|
-
// Get least result distance
|
|
578
|
+
const initialCandidate = {
|
|
579
|
+
id: entryPointId,
|
|
580
|
+
distance: computeDistance(entryPoint.vector, entryPoint.invMag, entryPoint.scale),
|
|
581
|
+
node: entryPoint,
|
|
582
|
+
};
|
|
583
|
+
const candidates = new MinHeap();
|
|
584
|
+
candidates.push(initialCandidate);
|
|
585
|
+
const results = [initialCandidate];
|
|
586
|
+
while (candidates.size > 0) {
|
|
587
|
+
const current = candidates.pop();
|
|
374
588
|
const furthestDistance = results[results.length - 1].distance;
|
|
375
|
-
// If current candidate is less similar than our worst result, we're done
|
|
376
589
|
if (current.distance > furthestDistance)
|
|
377
590
|
break;
|
|
378
|
-
|
|
379
|
-
const currentNode = current.node;
|
|
380
|
-
for (const { id: neighborId } of currentNode[level] || []) {
|
|
591
|
+
for (const { id: neighborId } of current.node[level] || []) {
|
|
381
592
|
if (visited.has(neighborId) || neighborId === undefined)
|
|
382
593
|
continue;
|
|
383
594
|
visited.add(neighborId);
|
|
384
|
-
const neighbor = this.
|
|
595
|
+
const neighbor = this.safeGetSync(neighborId, options);
|
|
385
596
|
if (!neighbor)
|
|
386
597
|
continue;
|
|
387
598
|
this.nodesVisitedCount++;
|
|
388
|
-
const distance =
|
|
599
|
+
const distance = computeDistance(neighbor.vector, neighbor.invMag, neighbor.scale);
|
|
389
600
|
if (distance < furthestDistance || results.length < ef) {
|
|
390
|
-
const candidate = {
|
|
391
|
-
id: neighborId,
|
|
392
|
-
distance,
|
|
393
|
-
node: neighbor,
|
|
394
|
-
};
|
|
601
|
+
const candidate = { id: neighborId, distance, node: neighbor };
|
|
395
602
|
candidates.push(candidate);
|
|
396
|
-
results.
|
|
603
|
+
results.splice(bisectInsert(results, distance), 0, candidate);
|
|
604
|
+
if (results.length > ef)
|
|
605
|
+
results.pop();
|
|
397
606
|
}
|
|
398
607
|
}
|
|
399
|
-
results.sort((a, b) => a.distance - b.distance);
|
|
400
|
-
if (results.length > ef)
|
|
401
|
-
results.splice(ef, results.length - ef);
|
|
402
608
|
}
|
|
403
609
|
results.visited = visited.size;
|
|
404
610
|
return results;
|
|
@@ -414,7 +620,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
414
620
|
* @param comparator
|
|
415
621
|
* @param context
|
|
416
622
|
*/
|
|
417
|
-
search({ target, value, descending, distance, comparator, }, context) {
|
|
623
|
+
search({ target, value, descending, distance, comparator, ef, }, context) {
|
|
418
624
|
let limit = 0; // zero is ignored, only used if set below
|
|
419
625
|
switch (comparator) {
|
|
420
626
|
case 'lt':
|
|
@@ -424,24 +630,37 @@ class HierarchicalNavigableSmallWorld {
|
|
|
424
630
|
case 'sort':
|
|
425
631
|
break;
|
|
426
632
|
default:
|
|
427
|
-
throw new
|
|
633
|
+
throw new hdbError_ts_1.ClientError(`Can not use "${comparator}" comparator with HNSW`);
|
|
428
634
|
}
|
|
429
635
|
if (descending)
|
|
430
|
-
throw new
|
|
636
|
+
throw new hdbError_ts_1.ClientError(`Can not use descending sort order with HNSW`);
|
|
431
637
|
let distanceFunction;
|
|
432
638
|
if (distance === 'cosine')
|
|
433
639
|
distanceFunction = vector_ts_1.cosineDistance;
|
|
434
640
|
else if (distance === 'euclidean')
|
|
435
641
|
distanceFunction = vector_ts_1.euclideanDistance;
|
|
642
|
+
else if (distance === 'dotProduct')
|
|
643
|
+
distanceFunction = vector_ts_1.dotProductDistance;
|
|
436
644
|
else if (distance)
|
|
437
|
-
throw new
|
|
645
|
+
throw new hdbError_ts_1.ClientError('Unknown distance function');
|
|
438
646
|
else
|
|
439
647
|
distanceFunction = this.distance;
|
|
440
648
|
if (!target)
|
|
441
|
-
throw new
|
|
649
|
+
throw new hdbError_ts_1.ClientError('A target vector must be provided for an HNSW query');
|
|
442
650
|
if (!Array.isArray(target))
|
|
443
|
-
throw new
|
|
651
|
+
throw new hdbError_ts_1.ClientError('The target vector must be an array');
|
|
444
652
|
const options = context.transaction; // should have a nested RocksDB transaction
|
|
653
|
+
// Resolve search ef: per-query ef wins; else an explicitly-configured efConstructionSearch;
|
|
654
|
+
// else auto-scale with the graph size so recall holds as the table grows.
|
|
655
|
+
let effectiveEf = this.efConstructionSearch;
|
|
656
|
+
if (ef !== undefined && ef > 0)
|
|
657
|
+
effectiveEf = ef;
|
|
658
|
+
else if (!this.efSearchConfigured) {
|
|
659
|
+
const nodeCount = this.indexStore.getKeysCount
|
|
660
|
+
? this.indexStore.getKeysCount()
|
|
661
|
+
: (this.indexStore.getStats?.()?.entryCount ?? 0);
|
|
662
|
+
effectiveEf = autoScaleEf(nodeCount);
|
|
663
|
+
}
|
|
445
664
|
let entryPoint = this.getEntryPoint(options);
|
|
446
665
|
if (!entryPoint)
|
|
447
666
|
return [];
|
|
@@ -450,7 +669,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
450
669
|
// For each level from top to bottom
|
|
451
670
|
for (let l = entryPoint.level; l >= 0; l--) {
|
|
452
671
|
// Search for closest neighbors at current level
|
|
453
|
-
results = this.searchLayer(target, entryPointId, entryPoint,
|
|
672
|
+
results = this.searchLayer(target, entryPointId, entryPoint, effectiveEf, l, options, distanceFunction);
|
|
454
673
|
if (results.length > 0) {
|
|
455
674
|
const neighbor = results[0]; // closest neighbor becomes new entry point
|
|
456
675
|
entryPoint = neighbor.node;
|
|
@@ -465,6 +684,27 @@ class HierarchicalNavigableSmallWorld {
|
|
|
465
684
|
distance: candidate.distance,
|
|
466
685
|
}));
|
|
467
686
|
}
|
|
687
|
+
/**
|
|
688
|
+
* Exact distance between a query and a record's FULL-precision vector, mirroring search()'s metric
|
|
689
|
+
* selection. Used to rerank quantized (int8) results: graph traversal navigates on approximate
|
|
690
|
+
* (quantized) distances, but the caller has the exact record vector and can restore exact ordering
|
|
691
|
+
* and $distance.
|
|
692
|
+
*/
|
|
693
|
+
exactDistance(searchCondition, recordVector) {
|
|
694
|
+
if (recordVector == null)
|
|
695
|
+
return Infinity; // missing vector sorts last
|
|
696
|
+
// distance fns require a plain Array (they guard on Array.isArray); records normally store a
|
|
697
|
+
// float[] vector, but convert defensively in case a typed array slips through.
|
|
698
|
+
const vec = Array.isArray(recordVector) ? recordVector : Array.from(recordVector);
|
|
699
|
+
const fn = searchCondition.distance === 'euclidean'
|
|
700
|
+
? vector_ts_1.euclideanDistance
|
|
701
|
+
: searchCondition.distance === 'dotProduct'
|
|
702
|
+
? vector_ts_1.dotProductDistance
|
|
703
|
+
: searchCondition.distance === 'cosine'
|
|
704
|
+
? vector_ts_1.cosineDistance
|
|
705
|
+
: this.distance;
|
|
706
|
+
return fn(searchCondition.target, vec);
|
|
707
|
+
}
|
|
468
708
|
checkSymmetry(id, node, options) {
|
|
469
709
|
if (!node)
|
|
470
710
|
return;
|
|
@@ -475,9 +715,9 @@ class HierarchicalNavigableSmallWorld {
|
|
|
475
715
|
if (connections.length === 0)
|
|
476
716
|
break;
|
|
477
717
|
for (const { id: neighbor } of connections) {
|
|
478
|
-
const neighborNode = this.
|
|
718
|
+
const neighborNode = this.safeGetSync(neighbor, options);
|
|
479
719
|
if (!neighborNode) {
|
|
480
|
-
logger.info?.('could not find neighbor node',
|
|
720
|
+
logger.info?.('could not find neighbor node', neighbor);
|
|
481
721
|
continue;
|
|
482
722
|
}
|
|
483
723
|
// verify that the connection is symmetrical
|
|
@@ -512,7 +752,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
512
752
|
node[level] = keptConnections;
|
|
513
753
|
// For removed connections, ensure there's still a path to them
|
|
514
754
|
for (const removed of removedConnections) {
|
|
515
|
-
let removedNode = updateNode(removed.id) ?? this.
|
|
755
|
+
let removedNode = updateNode(removed.id) ?? this.safeGetSync(removed.id, options);
|
|
516
756
|
if (removedNode) {
|
|
517
757
|
// Remove the reverse connection if it exists
|
|
518
758
|
if (removedNode[level]) {
|
|
@@ -540,19 +780,26 @@ class HierarchicalNavigableSmallWorld {
|
|
|
540
780
|
}
|
|
541
781
|
validateConnectivity(startLevel = 0) {
|
|
542
782
|
const entryPoint = this.getEntryPoint();
|
|
783
|
+
if (!entryPoint)
|
|
784
|
+
return;
|
|
543
785
|
const visited = new Set();
|
|
544
|
-
// BFS from entry point to ensure all nodes are reachable
|
|
786
|
+
// BFS from entry point to ensure all nodes are reachable. Asymmetric stale neighbor
|
|
787
|
+
// references can survive deletes, so a referenced node may not actually exist anymore;
|
|
788
|
+
// only count a node as visited once we confirm the underlying record is present.
|
|
545
789
|
const queue = [entryPoint.id];
|
|
546
|
-
|
|
790
|
+
const enqueued = new Set([entryPoint.id]);
|
|
547
791
|
let connections = 0;
|
|
548
792
|
while (queue.length > 0) {
|
|
549
793
|
const currentId = queue.shift();
|
|
550
|
-
const current = this.
|
|
794
|
+
const current = this.safeGetSync(currentId);
|
|
795
|
+
if (!current)
|
|
796
|
+
continue;
|
|
797
|
+
visited.add(currentId);
|
|
551
798
|
for (let level = startLevel; level <= current.level; level++) {
|
|
552
799
|
for (const { id: neighborId } of current[level] || []) {
|
|
553
800
|
connections++;
|
|
554
|
-
if (!
|
|
555
|
-
|
|
801
|
+
if (!enqueued.has(neighborId)) {
|
|
802
|
+
enqueued.add(neighborId);
|
|
556
803
|
queue.push(neighborId);
|
|
557
804
|
}
|
|
558
805
|
}
|
|
@@ -560,9 +807,6 @@ class HierarchicalNavigableSmallWorld {
|
|
|
560
807
|
}
|
|
561
808
|
// Check if all nodes are reachable
|
|
562
809
|
// This would require maintaining a separate set/count of all nodes
|
|
563
|
-
if (visited.size !== this.totalNodes) {
|
|
564
|
-
console.log('visited', visited.size, 'total', this.totalNodes);
|
|
565
|
-
}
|
|
566
810
|
return {
|
|
567
811
|
isFullyConnected: visited.size === this.totalNodes,
|
|
568
812
|
averageConnections: connections / visited.size,
|
|
@@ -607,7 +851,12 @@ class HierarchicalNavigableSmallWorld {
|
|
|
607
851
|
vectorDistances = context.vectorDistances = sortDefinition.vectorDistances = new Map();
|
|
608
852
|
let distanceFunction = this.distance;
|
|
609
853
|
if (sortDefinition.type)
|
|
610
|
-
distanceFunction =
|
|
854
|
+
distanceFunction =
|
|
855
|
+
sortDefinition.distance === 'euclidean'
|
|
856
|
+
? vector_ts_1.euclideanDistance
|
|
857
|
+
: sortDefinition.distance === 'dotProduct'
|
|
858
|
+
? vector_ts_1.dotProductDistance
|
|
859
|
+
: vector_ts_1.cosineDistance;
|
|
611
860
|
const distance = distanceFunction(sortDefinition.target, vector);
|
|
612
861
|
vectorDistances.set(entry, distance);
|
|
613
862
|
return distance;
|