@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
|
@@ -1,11 +1,113 @@
|
|
|
1
|
-
import { cosineDistance, euclideanDistance } from './vector.ts';
|
|
1
|
+
import { cosineDistance, euclideanDistance, dotProductDistance } from './vector.ts';
|
|
2
2
|
import { FLOAT32_OPTIONS } from 'msgpackr';
|
|
3
3
|
import { loggerWithTag } from '../../utility/logging/logger.ts';
|
|
4
|
-
import { ClientError } from '../../utility/errors/hdbError.
|
|
4
|
+
import { ClientError } from '../../utility/errors/hdbError.ts';
|
|
5
5
|
import type { Id } from '../../resources/ResourceInterface.ts';
|
|
6
6
|
import { RocksDatabase } from '@harperfast/rocksdb-js';
|
|
7
7
|
|
|
8
8
|
const logger = loggerWithTag('HNSW');
|
|
9
|
+
|
|
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
|
+
|
|
22
|
+
/** Symmetric int8 scalar-quantize a float vector. scale = max|component| / 127. */
|
|
23
|
+
function quantizeInt8(vector: number[]): { bytes: Buffer; scale: number } {
|
|
24
|
+
let max = 0;
|
|
25
|
+
for (let i = 0; i < vector.length; i++) {
|
|
26
|
+
const a = vector[i] < 0 ? -vector[i] : vector[i];
|
|
27
|
+
if (a > max) 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++) q[i] = Math.max(-127, Math.min(127, Math.round(vector[i] * inv)));
|
|
34
|
+
return { bytes: Buffer.from(q.buffer, q.byteOffset, q.byteLength), scale };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Reconstruct an approximate float array from an int8 vector + scale. */
|
|
38
|
+
function dequantizeInt8(q: Int8Array, scale: number): number[] {
|
|
39
|
+
const out = new Array(q.length);
|
|
40
|
+
for (let i = 0; i < q.length; i++) out[i] = q[i] * scale;
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
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: number): number {
|
|
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
|
+
|
|
59
|
+
class MinHeap {
|
|
60
|
+
private data: Candidate[] = [];
|
|
61
|
+
get size() {
|
|
62
|
+
return this.data.length;
|
|
63
|
+
}
|
|
64
|
+
push(item: Candidate) {
|
|
65
|
+
this.data.push(item);
|
|
66
|
+
let i = this.data.length - 1;
|
|
67
|
+
while (i > 0) {
|
|
68
|
+
const p = (i - 1) >> 1;
|
|
69
|
+
if (this.data[p].distance <= this.data[i].distance) 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(): Candidate | undefined {
|
|
77
|
+
if (this.data.length === 0) return undefined;
|
|
78
|
+
const top = this.data[0];
|
|
79
|
+
const last = this.data.pop()!;
|
|
80
|
+
if (this.data.length > 0) {
|
|
81
|
+
this.data[0] = last;
|
|
82
|
+
let i = 0;
|
|
83
|
+
for (;;) {
|
|
84
|
+
const l = 2 * i + 1,
|
|
85
|
+
r = l + 1;
|
|
86
|
+
let min = i;
|
|
87
|
+
if (l < this.data.length && this.data[l].distance < this.data[min].distance) min = l;
|
|
88
|
+
if (r < this.data.length && this.data[r].distance < this.data[min].distance) min = r;
|
|
89
|
+
if (min === i) break;
|
|
90
|
+
const tmp = this.data[min];
|
|
91
|
+
this.data[min] = this.data[i];
|
|
92
|
+
this.data[i] = tmp;
|
|
93
|
+
i = min;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return top;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function bisectInsert(arr: Candidate[], distance: number): number {
|
|
101
|
+
let lo = 0,
|
|
102
|
+
hi = arr.length;
|
|
103
|
+
while (lo < hi) {
|
|
104
|
+
const mid = (lo + hi) >> 1;
|
|
105
|
+
if (arr[mid].distance <= distance) lo = mid + 1;
|
|
106
|
+
else hi = mid;
|
|
107
|
+
}
|
|
108
|
+
return lo;
|
|
109
|
+
}
|
|
110
|
+
|
|
9
111
|
/**
|
|
10
112
|
* Implementation of a vector index for Harper, using hierarchical navigable small world graphs.
|
|
11
113
|
*/
|
|
@@ -17,7 +119,9 @@ type Connection = {
|
|
|
17
119
|
distance: number;
|
|
18
120
|
};
|
|
19
121
|
type Node = {
|
|
20
|
-
vector: number[];
|
|
122
|
+
vector: number[] | Int8Array; // float nodes: number[]; quantized nodes: Int8Array (decoded from a bin)
|
|
123
|
+
scale?: number; // int8 dequantization scale; undefined on float nodes
|
|
124
|
+
invMag?: number; // cached 1/|vector| for cosine distance; undefined on legacy nodes
|
|
21
125
|
level?: number;
|
|
22
126
|
primaryKey: string;
|
|
23
127
|
[level: number]: Connection[];
|
|
@@ -34,6 +138,10 @@ type Node = {
|
|
|
34
138
|
*/
|
|
35
139
|
export class HierarchicalNavigableSmallWorld {
|
|
36
140
|
static useObjectStore = true;
|
|
141
|
+
// Index options that only affect search, not the stored graph — changing them must not trigger a
|
|
142
|
+
// reindex (databases.ts persists the new value but skips rebuilding). efConstructionSearch is the
|
|
143
|
+
// search-time candidate-list size; the build uses efConstruction/M/distance, which are structural.
|
|
144
|
+
static searchOnlyOptions = ['efConstructionSearch'];
|
|
37
145
|
indexStore: any;
|
|
38
146
|
M: number = 16; // max number of connections per layer
|
|
39
147
|
efConstruction: number = 100; // size of dynamic candidate list
|
|
@@ -46,6 +154,8 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
46
154
|
|
|
47
155
|
idIncrementer: BigInt64Array | undefined;
|
|
48
156
|
distance: (a: number[], b: number[]) => number;
|
|
157
|
+
int8 = false; // store vectors as int8-quantized bins (set via the `quantization` index option)
|
|
158
|
+
efSearchConfigured = false; // whether the schema set an explicit search ef; if not, search ef auto-scales with N
|
|
49
159
|
constructor(indexStore: any, options: any) {
|
|
50
160
|
this.indexStore = indexStore;
|
|
51
161
|
if (indexStore) {
|
|
@@ -53,7 +163,15 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
53
163
|
// (we would actually like to use float16 if it were available)
|
|
54
164
|
this.indexStore.encoder.useFloat32 = FLOAT32_OPTIONS.ALWAYS;
|
|
55
165
|
}
|
|
56
|
-
this.
|
|
166
|
+
this.int8 = options?.quantization === 'int8';
|
|
167
|
+
// Respect an explicitly-configured search ef (or efConstruction, which seeds it); otherwise auto-scale.
|
|
168
|
+
this.efSearchConfigured = options?.efConstructionSearch !== undefined || options?.efConstruction !== undefined;
|
|
169
|
+
this.distance =
|
|
170
|
+
options?.distance === 'euclidean'
|
|
171
|
+
? euclideanDistance
|
|
172
|
+
: options?.distance === 'dotProduct'
|
|
173
|
+
? dotProductDistance
|
|
174
|
+
: cosineDistance;
|
|
57
175
|
if (options) {
|
|
58
176
|
// allow all the HNSW parameters to be configured/tuned
|
|
59
177
|
if (options.M !== undefined) {
|
|
@@ -105,14 +223,29 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
105
223
|
if (existingVector) {
|
|
106
224
|
// If we are updating an existing entry, we need to update the entry point
|
|
107
225
|
// if the new entry is closer to the entry point than the old one
|
|
108
|
-
oldNode = { ...this.
|
|
226
|
+
oldNode = { ...this.safeGetSync(nodeId, options) };
|
|
109
227
|
} else oldNode = {} as Node;
|
|
110
228
|
if (vector) {
|
|
111
|
-
|
|
229
|
+
// Pre-compute 1/|vector| for cosine distance so searchLayer can skip sqrt per neighbor
|
|
230
|
+
let invMag: number | undefined;
|
|
231
|
+
if (this.distance === cosineDistance) {
|
|
232
|
+
let magSq = 0;
|
|
233
|
+
for (const v of vector) magSq += v * v;
|
|
234
|
+
invMag = 1 / (Math.sqrt(magSq) || 1);
|
|
235
|
+
}
|
|
236
|
+
// Quantized storage form. The float `vector` is still used as the query for every
|
|
237
|
+
// searchLayer call below (asymmetric distance: float query x int8 stored); only what
|
|
238
|
+
// we PUT to the store is quantized.
|
|
239
|
+
const q = this.int8 ? quantizeInt8(vector) : undefined;
|
|
240
|
+
const storedVector: number[] | Buffer = q ? q.bytes : vector;
|
|
241
|
+
const storedScale = q ? q.scale : undefined;
|
|
242
|
+
let entryPoint = entryPointId && this.safeGetSync(entryPointId, options);
|
|
112
243
|
if (entryPoint == null) {
|
|
113
244
|
const level = Math.floor(-Math.log(Math.random()) * this.mL);
|
|
114
245
|
const node = {
|
|
115
|
-
vector,
|
|
246
|
+
vector: storedVector,
|
|
247
|
+
scale: storedScale,
|
|
248
|
+
invMag,
|
|
116
249
|
level,
|
|
117
250
|
primaryKey,
|
|
118
251
|
};
|
|
@@ -214,8 +347,11 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
214
347
|
|
|
215
348
|
for (const { fromId, toId } of connectionsToBeReplaced) {
|
|
216
349
|
let from = updateNode(fromId);
|
|
217
|
-
if (!from) from = updateNode(fromId, this.
|
|
218
|
-
|
|
350
|
+
if (!from) from = updateNode(fromId, this.safeGetSync(fromId, options));
|
|
351
|
+
if (!from) continue;
|
|
352
|
+
const fromAtLevel = from[l];
|
|
353
|
+
if (!fromAtLevel) continue;
|
|
354
|
+
for (let i = 0; i < fromAtLevel.length; i++) {
|
|
219
355
|
if (from[l][i].id === toId) {
|
|
220
356
|
if (Object.isFrozen(from[l])) {
|
|
221
357
|
from[l] = from[l].slice();
|
|
@@ -264,7 +400,9 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
264
400
|
this.indexStore.put(
|
|
265
401
|
nodeId,
|
|
266
402
|
{
|
|
267
|
-
vector,
|
|
403
|
+
vector: storedVector,
|
|
404
|
+
scale: storedScale,
|
|
405
|
+
invMag,
|
|
268
406
|
level,
|
|
269
407
|
primaryKey,
|
|
270
408
|
...connections,
|
|
@@ -315,7 +453,7 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
315
453
|
const oldConnections = oldNode[l];
|
|
316
454
|
for (const { id: neighborId } of oldConnections) {
|
|
317
455
|
// get and copy the neighbor node so we can modify it
|
|
318
|
-
const neighborNode = updateNode(neighborId, this.
|
|
456
|
+
const neighborNode = updateNode(neighborId, this.safeGetSync(neighborId, options));
|
|
319
457
|
if (!neighborNode) continue;
|
|
320
458
|
for (let l2 = 0; l2 <= l; l2++) {
|
|
321
459
|
// remove the connection to this node from the neighbor node
|
|
@@ -324,7 +462,13 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
324
462
|
});
|
|
325
463
|
if (neighborNode[l2]?.length === 0) {
|
|
326
464
|
logger.trace?.('node was left orphaned, will reindex', neighborId);
|
|
327
|
-
|
|
465
|
+
// reindex re-feeds this vector into index() as a float query, so dequantize int8 back to float
|
|
466
|
+
needsReindexing.set(
|
|
467
|
+
neighborNode.primaryKey,
|
|
468
|
+
neighborNode.scale !== undefined
|
|
469
|
+
? dequantizeInt8(neighborNode.vector as Int8Array, neighborNode.scale)
|
|
470
|
+
: neighborNode.vector
|
|
471
|
+
);
|
|
328
472
|
}
|
|
329
473
|
}
|
|
330
474
|
}
|
|
@@ -346,14 +490,34 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
346
490
|
for (const [key, vector] of needsReindexing) {
|
|
347
491
|
this.index(key, vector, vector, options);
|
|
348
492
|
}
|
|
349
|
-
this.checkSymmetry(nodeId, this.
|
|
493
|
+
this.checkSymmetry(nodeId, this.safeGetSync(nodeId, options), options);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
private safeGetSync(key: any, options?: any): any {
|
|
497
|
+
try {
|
|
498
|
+
const node = this.indexStore.getSync(key, options);
|
|
499
|
+
// A quantized vector decodes as a bin (Uint8Array/Buffer) that is a view into the
|
|
500
|
+
// store's read buffer, which may be reused on the next getSync — so copy the bytes
|
|
501
|
+
// into a retained Int8Array (raw two's-complement reinterpret). The Int8Array guard
|
|
502
|
+
// skips re-conversion when the object store (useObjectStore) hands back an
|
|
503
|
+
// already-converted cached node. Float nodes (vector is a number[]) pass through.
|
|
504
|
+
if (node && node.vector && !Array.isArray(node.vector) && !(node.vector instanceof Int8Array)) {
|
|
505
|
+
const u8 = node.vector as Uint8Array;
|
|
506
|
+
node.vector = new Int8Array(u8.buffer, u8.byteOffset, u8.byteLength).slice();
|
|
507
|
+
}
|
|
508
|
+
return node;
|
|
509
|
+
} catch {
|
|
510
|
+
logger.warn?.('Failed to decode HNSW node, skipping', key);
|
|
511
|
+
return undefined;
|
|
512
|
+
}
|
|
350
513
|
}
|
|
351
514
|
|
|
352
515
|
private getEntryPoint(options: { transaction?: any } = {}) {
|
|
353
516
|
// Get entry point
|
|
354
517
|
const entryPointId = this.indexStore.getSync(ENTRY_POINT, options);
|
|
355
518
|
if (entryPointId === undefined) return;
|
|
356
|
-
const node = this.
|
|
519
|
+
const node = this.safeGetSync(entryPointId, options);
|
|
520
|
+
if (!node) return;
|
|
357
521
|
return { id: entryPointId, ...node };
|
|
358
522
|
}
|
|
359
523
|
|
|
@@ -379,50 +543,82 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
379
543
|
options: { transaction?: any } = {},
|
|
380
544
|
distanceFunction = this.distance
|
|
381
545
|
): SearchResults {
|
|
546
|
+
// Pre-compute query magnitude for cosine; use cached invMag on stored nodes to skip sqrt per neighbor.
|
|
547
|
+
// Asymmetric distance: the query stays full-precision float; a stored neighbor may be int8
|
|
548
|
+
// (with per-vector `scaleB`) or float (`scaleB` undefined).
|
|
549
|
+
let computeDistance: (b: number[] | Int8Array, invMagB?: number, scaleB?: number) => number;
|
|
550
|
+
if (distanceFunction === cosineDistance) {
|
|
551
|
+
let magASq = 0;
|
|
552
|
+
for (const v of queryVector) magASq += v * v;
|
|
553
|
+
const invMagA = 1 / (Math.sqrt(magASq) || 1);
|
|
554
|
+
computeDistance = (b: number[] | Int8Array, invMagB?: number, scaleB?: number) => {
|
|
555
|
+
let dot = 0;
|
|
556
|
+
for (let i = 0; i < b.length; i++) dot += queryVector[i] * (b[i] as number);
|
|
557
|
+
if (scaleB !== undefined) dot *= scaleB; // dequantize the int8 dot product
|
|
558
|
+
if (invMagB !== undefined) return 1 - dot * invMagA * invMagB;
|
|
559
|
+
// Fallback when the stored node has no cached invMag (a non-cosine index queried as
|
|
560
|
+
// cosine). Compute the stored magnitude and dequantize it by scaleB so it matches the
|
|
561
|
+
// already-dequantized dot product.
|
|
562
|
+
let magBSq = 0;
|
|
563
|
+
for (let i = 0; i < b.length; i++) magBSq += (b[i] as number) * (b[i] as number);
|
|
564
|
+
let magB = Math.sqrt(magBSq) || 1;
|
|
565
|
+
if (scaleB !== undefined) magB *= scaleB;
|
|
566
|
+
return 1 - (dot * invMagA) / magB;
|
|
567
|
+
};
|
|
568
|
+
} else if (distanceFunction === euclideanDistance) {
|
|
569
|
+
// Asymmetric squared-euclidean, dequantizing each int8 component inline (no allocation).
|
|
570
|
+
computeDistance = (b: number[] | Int8Array, _invMagB?: number, scaleB?: number) => {
|
|
571
|
+
if (scaleB === undefined) return distanceFunction(queryVector, b as number[]);
|
|
572
|
+
let distanceSquared = 0;
|
|
573
|
+
for (let i = 0; i < b.length; i++) {
|
|
574
|
+
const diff = queryVector[i] - (b[i] as number) * scaleB;
|
|
575
|
+
distanceSquared += diff * diff;
|
|
576
|
+
}
|
|
577
|
+
return distanceSquared;
|
|
578
|
+
};
|
|
579
|
+
} else {
|
|
580
|
+
// Negated inner product, dequantizing the int8 dot product inline (no allocation).
|
|
581
|
+
computeDistance = (b: number[] | Int8Array, _invMagB?: number, scaleB?: number) => {
|
|
582
|
+
if (scaleB === undefined) return distanceFunction(queryVector, b as number[]);
|
|
583
|
+
let dot = 0;
|
|
584
|
+
for (let i = 0; i < b.length; i++) dot += queryVector[i] * (b[i] as number);
|
|
585
|
+
return -(dot * scaleB);
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
|
|
382
589
|
const visited = new Set([entryPointId]);
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
const current = candidates.shift();
|
|
396
|
-
|
|
397
|
-
// Get least result distance
|
|
590
|
+
const initialCandidate: Candidate = {
|
|
591
|
+
id: entryPointId,
|
|
592
|
+
distance: computeDistance(entryPoint.vector, entryPoint.invMag, entryPoint.scale),
|
|
593
|
+
node: entryPoint,
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
const candidates = new MinHeap();
|
|
597
|
+
candidates.push(initialCandidate);
|
|
598
|
+
const results = [initialCandidate] as SearchResults;
|
|
599
|
+
|
|
600
|
+
while (candidates.size > 0) {
|
|
601
|
+
const current = candidates.pop()!;
|
|
398
602
|
const furthestDistance = results[results.length - 1].distance;
|
|
399
603
|
|
|
400
|
-
// If current candidate is less similar than our worst result, we're done
|
|
401
604
|
if (current.distance > furthestDistance) break;
|
|
402
605
|
|
|
403
|
-
|
|
404
|
-
const currentNode = current.node;
|
|
405
|
-
for (const { id: neighborId } of currentNode[level] || []) {
|
|
606
|
+
for (const { id: neighborId } of current.node[level] || []) {
|
|
406
607
|
if (visited.has(neighborId) || neighborId === undefined) continue;
|
|
407
608
|
visited.add(neighborId);
|
|
408
609
|
|
|
409
|
-
const neighbor = this.
|
|
610
|
+
const neighbor = this.safeGetSync(neighborId, options);
|
|
410
611
|
if (!neighbor) continue;
|
|
411
612
|
this.nodesVisitedCount++;
|
|
412
|
-
const distance =
|
|
613
|
+
const distance = computeDistance(neighbor.vector, neighbor.invMag, neighbor.scale);
|
|
413
614
|
|
|
414
615
|
if (distance < furthestDistance || results.length < ef) {
|
|
415
|
-
const candidate = {
|
|
416
|
-
id: neighborId,
|
|
417
|
-
distance,
|
|
418
|
-
node: neighbor,
|
|
419
|
-
};
|
|
616
|
+
const candidate: Candidate = { id: neighborId, distance, node: neighbor };
|
|
420
617
|
candidates.push(candidate);
|
|
421
|
-
results.
|
|
618
|
+
results.splice(bisectInsert(results, distance), 0, candidate);
|
|
619
|
+
if (results.length > ef) results.pop();
|
|
422
620
|
}
|
|
423
621
|
}
|
|
424
|
-
results.sort((a, b) => a.distance - b.distance);
|
|
425
|
-
if (results.length > ef) results.splice(ef, results.length - ef);
|
|
426
622
|
}
|
|
427
623
|
results.visited = visited.size;
|
|
428
624
|
return results;
|
|
@@ -446,12 +642,14 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
446
642
|
descending,
|
|
447
643
|
distance,
|
|
448
644
|
comparator,
|
|
645
|
+
ef,
|
|
449
646
|
}: {
|
|
450
647
|
target: number[];
|
|
451
648
|
value: number;
|
|
452
649
|
descending: boolean;
|
|
453
650
|
distance: string;
|
|
454
651
|
comparator: string;
|
|
652
|
+
ef?: number;
|
|
455
653
|
},
|
|
456
654
|
context: any
|
|
457
655
|
) {
|
|
@@ -470,12 +668,23 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
470
668
|
let distanceFunction: (a: number[], b: number[]) => number;
|
|
471
669
|
if (distance === 'cosine') distanceFunction = cosineDistance;
|
|
472
670
|
else if (distance === 'euclidean') distanceFunction = euclideanDistance;
|
|
671
|
+
else if (distance === 'dotProduct') distanceFunction = dotProductDistance;
|
|
473
672
|
else if (distance) throw new ClientError('Unknown distance function');
|
|
474
673
|
else distanceFunction = this.distance;
|
|
475
674
|
if (!target) throw new ClientError('A target vector must be provided for an HNSW query');
|
|
476
675
|
if (!Array.isArray(target)) throw new ClientError('The target vector must be an array');
|
|
477
676
|
|
|
478
677
|
const options = context.transaction; // should have a nested RocksDB transaction
|
|
678
|
+
// Resolve search ef: per-query ef wins; else an explicitly-configured efConstructionSearch;
|
|
679
|
+
// else auto-scale with the graph size so recall holds as the table grows.
|
|
680
|
+
let effectiveEf = this.efConstructionSearch;
|
|
681
|
+
if (ef !== undefined && ef > 0) effectiveEf = ef;
|
|
682
|
+
else if (!this.efSearchConfigured) {
|
|
683
|
+
const nodeCount = this.indexStore.getKeysCount
|
|
684
|
+
? this.indexStore.getKeysCount()
|
|
685
|
+
: (this.indexStore.getStats?.()?.entryCount ?? 0);
|
|
686
|
+
effectiveEf = autoScaleEf(nodeCount);
|
|
687
|
+
}
|
|
479
688
|
let entryPoint = this.getEntryPoint(options);
|
|
480
689
|
if (!entryPoint) return [];
|
|
481
690
|
let entryPointId = entryPoint.id;
|
|
@@ -483,15 +692,7 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
483
692
|
// For each level from top to bottom
|
|
484
693
|
for (let l = entryPoint.level; l >= 0; l--) {
|
|
485
694
|
// Search for closest neighbors at current level
|
|
486
|
-
results = this.searchLayer(
|
|
487
|
-
target,
|
|
488
|
-
entryPointId,
|
|
489
|
-
entryPoint,
|
|
490
|
-
this.efConstructionSearch,
|
|
491
|
-
l,
|
|
492
|
-
options,
|
|
493
|
-
distanceFunction
|
|
494
|
-
);
|
|
695
|
+
results = this.searchLayer(target, entryPointId, entryPoint, effectiveEf, l, options, distanceFunction);
|
|
495
696
|
|
|
496
697
|
if (results.length > 0) {
|
|
497
698
|
const neighbor = results[0]; // closest neighbor becomes new entry point
|
|
@@ -506,6 +707,27 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
506
707
|
distance: candidate.distance,
|
|
507
708
|
}));
|
|
508
709
|
}
|
|
710
|
+
/**
|
|
711
|
+
* Exact distance between a query and a record's FULL-precision vector, mirroring search()'s metric
|
|
712
|
+
* selection. Used to rerank quantized (int8) results: graph traversal navigates on approximate
|
|
713
|
+
* (quantized) distances, but the caller has the exact record vector and can restore exact ordering
|
|
714
|
+
* and $distance.
|
|
715
|
+
*/
|
|
716
|
+
exactDistance(searchCondition: { target: number[]; distance?: string }, recordVector: number[] | Int8Array): number {
|
|
717
|
+
if (recordVector == null) return Infinity; // missing vector sorts last
|
|
718
|
+
// distance fns require a plain Array (they guard on Array.isArray); records normally store a
|
|
719
|
+
// float[] vector, but convert defensively in case a typed array slips through.
|
|
720
|
+
const vec = Array.isArray(recordVector) ? recordVector : Array.from(recordVector);
|
|
721
|
+
const fn =
|
|
722
|
+
searchCondition.distance === 'euclidean'
|
|
723
|
+
? euclideanDistance
|
|
724
|
+
: searchCondition.distance === 'dotProduct'
|
|
725
|
+
? dotProductDistance
|
|
726
|
+
: searchCondition.distance === 'cosine'
|
|
727
|
+
? cosineDistance
|
|
728
|
+
: this.distance;
|
|
729
|
+
return fn(searchCondition.target, vec);
|
|
730
|
+
}
|
|
509
731
|
private checkSymmetry(id, node, options) {
|
|
510
732
|
if (!node) return;
|
|
511
733
|
let l = 0;
|
|
@@ -514,9 +736,9 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
514
736
|
// verify that the level is not empty, otherwise this means we have an orphaned node
|
|
515
737
|
if (connections.length === 0) break;
|
|
516
738
|
for (const { id: neighbor } of connections) {
|
|
517
|
-
const neighborNode = this.
|
|
739
|
+
const neighborNode = this.safeGetSync(neighbor, options);
|
|
518
740
|
if (!neighborNode) {
|
|
519
|
-
logger.info?.('could not find neighbor node',
|
|
741
|
+
logger.info?.('could not find neighbor node', neighbor);
|
|
520
742
|
continue;
|
|
521
743
|
}
|
|
522
744
|
// verify that the connection is symmetrical
|
|
@@ -562,7 +784,7 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
562
784
|
node[level] = keptConnections;
|
|
563
785
|
// For removed connections, ensure there's still a path to them
|
|
564
786
|
for (const removed of removedConnections) {
|
|
565
|
-
let removedNode = updateNode(removed.id) ?? this.
|
|
787
|
+
let removedNode = updateNode(removed.id) ?? this.safeGetSync(removed.id, options);
|
|
566
788
|
if (removedNode) {
|
|
567
789
|
// Remove the reverse connection if it exists
|
|
568
790
|
if (removedNode[level]) {
|
|
@@ -589,22 +811,27 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
589
811
|
}
|
|
590
812
|
validateConnectivity(startLevel: number = 0) {
|
|
591
813
|
const entryPoint = this.getEntryPoint();
|
|
814
|
+
if (!entryPoint) return;
|
|
592
815
|
const visited = new Set<number>();
|
|
593
816
|
|
|
594
|
-
// BFS from entry point to ensure all nodes are reachable
|
|
595
|
-
|
|
596
|
-
visited.
|
|
817
|
+
// BFS from entry point to ensure all nodes are reachable. Asymmetric stale neighbor
|
|
818
|
+
// references can survive deletes, so a referenced node may not actually exist anymore;
|
|
819
|
+
// only count a node as visited once we confirm the underlying record is present.
|
|
820
|
+
const queue: number[] = [entryPoint.id];
|
|
821
|
+
const enqueued = new Set<number>([entryPoint.id]);
|
|
597
822
|
let connections = 0;
|
|
598
823
|
|
|
599
824
|
while (queue.length > 0) {
|
|
600
825
|
const currentId = queue.shift()!;
|
|
601
|
-
const current = this.
|
|
826
|
+
const current = this.safeGetSync(currentId);
|
|
827
|
+
if (!current) continue;
|
|
828
|
+
visited.add(currentId);
|
|
602
829
|
|
|
603
830
|
for (let level = startLevel; level <= current.level; level++) {
|
|
604
831
|
for (const { id: neighborId } of current[level] || []) {
|
|
605
832
|
connections++;
|
|
606
|
-
if (!
|
|
607
|
-
|
|
833
|
+
if (!enqueued.has(neighborId)) {
|
|
834
|
+
enqueued.add(neighborId);
|
|
608
835
|
queue.push(neighborId);
|
|
609
836
|
}
|
|
610
837
|
}
|
|
@@ -613,9 +840,6 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
613
840
|
|
|
614
841
|
// Check if all nodes are reachable
|
|
615
842
|
// This would require maintaining a separate set/count of all nodes
|
|
616
|
-
if (visited.size !== this.totalNodes) {
|
|
617
|
-
console.log('visited', visited.size, 'total', this.totalNodes);
|
|
618
|
-
}
|
|
619
843
|
return {
|
|
620
844
|
isFullyConnected: visited.size === this.totalNodes,
|
|
621
845
|
averageConnections: connections / visited.size,
|
|
@@ -661,7 +885,12 @@ export class HierarchicalNavigableSmallWorld {
|
|
|
661
885
|
|
|
662
886
|
let distanceFunction = this.distance;
|
|
663
887
|
if (sortDefinition.type)
|
|
664
|
-
distanceFunction =
|
|
888
|
+
distanceFunction =
|
|
889
|
+
sortDefinition.distance === 'euclidean'
|
|
890
|
+
? euclideanDistance
|
|
891
|
+
: sortDefinition.distance === 'dotProduct'
|
|
892
|
+
? dotProductDistance
|
|
893
|
+
: cosineDistance;
|
|
665
894
|
const distance = distanceFunction(sortDefinition.target, vector);
|
|
666
895
|
vectorDistances.set(entry, distance);
|
|
667
896
|
return distance;
|
|
@@ -36,3 +36,20 @@ export function cosineDistance(a: number[], b: number[]): number {
|
|
|
36
36
|
|
|
37
37
|
return 1 - dotProduct / (magnitudeA * magnitudeB || 1);
|
|
38
38
|
}
|
|
39
|
+
|
|
40
|
+
export function dotProductDistance(a: number[], b: number[]): number {
|
|
41
|
+
if (!Array.isArray(a) || !Array.isArray(b)) {
|
|
42
|
+
throw new Error('Inner product comparison requires an array');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let dotProduct = 0;
|
|
46
|
+
const length = Math.max(a.length, b.length);
|
|
47
|
+
|
|
48
|
+
for (let i = 0; i < length; i++) {
|
|
49
|
+
const va = a[i] || 0;
|
|
50
|
+
const vb = b[i] || 0;
|
|
51
|
+
dotProduct += va * vb;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return -dotProduct;
|
|
55
|
+
}
|
package/resources/loadEnv.ts
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import { parse } from 'dotenv';
|
|
2
|
-
import logger from '../utility/logging/harper_logger.
|
|
2
|
+
import logger from '../utility/logging/harper_logger.ts';
|
|
3
|
+
import { Scope } from '../components/Scope.ts';
|
|
3
4
|
|
|
4
|
-
export function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
export function handleApplication(scope: Scope) {
|
|
6
|
+
const override = (scope.options.getAll() as { override?: boolean }).override ?? false;
|
|
7
|
+
scope.handleEntry((entry) => {
|
|
8
|
+
if (entry.eventType !== 'add') {
|
|
9
|
+
scope.requestRestart();
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
logger.debug(`Loading env file: ${entry.absolutePath}`);
|
|
13
|
+
for (const [key, value] of Object.entries(parse(entry.contents))) {
|
|
14
|
+
if (process.env[key] !== undefined) {
|
|
15
|
+
logger.warn(`Environment variable conflict: ${key} from ${entry.absolutePath} is already set on process.env`);
|
|
16
|
+
if (override) {
|
|
17
|
+
logger.debug(`override option enabled. overriding environment variable: ${key}`);
|
|
18
|
+
} else {
|
|
19
|
+
continue;
|
|
16
20
|
}
|
|
17
|
-
|
|
18
|
-
process.env[key] = value;
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
process.env[key] = value;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
22
26
|
}
|
package/resources/login.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Resource } from './Resource.ts';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
resources.
|
|
2
|
+
import { Scope } from '../components/Scope.ts';
|
|
3
|
+
export function handleApplication(scope: Scope) {
|
|
4
|
+
scope.resources.set('login', Login);
|
|
5
|
+
scope.resources.loginPath = (request) => {
|
|
5
6
|
return '/login?redirect=' + encodeURIComponent(request.url);
|
|
6
7
|
};
|
|
7
8
|
}
|
|
9
|
+
// @ts-ignore
|
|
8
10
|
class Login extends Resource {
|
|
9
11
|
static async get(_id, _body, _request) {
|
|
10
12
|
// TODO: Return a login page
|