@harperfast/harper 5.3.0-beta.4 → 5.3.0
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/bin/backup.ts +6 -1
- package/components/Application.ts +486 -115
- package/components/DESIGN.md +109 -21
- package/components/deploymentProvenance.ts +28 -0
- package/components/operations.js +14 -7
- package/components/packageComponent.ts +5 -1
- package/config-root.schema.json +1 -1
- package/dataLayer/DESIGN.md +35 -7
- package/dataLayer/blobBackup.ts +71 -30
- package/dataLayer/harperBridge/ResourceBridge.ts +16 -2
- package/dataLayer/rocksdbBackup.ts +88 -34
- package/dataLayer/schemaDescribe.ts +45 -1
- package/dist/bin/backup.js +1 -1
- package/dist/bin/backup.js.map +1 -1
- package/dist/components/Application.d.ts +11 -21
- package/dist/components/Application.js +436 -105
- package/dist/components/Application.js.map +1 -1
- package/dist/components/deploymentProvenance.d.ts +4 -0
- package/dist/components/deploymentProvenance.js +32 -0
- package/dist/components/deploymentProvenance.js.map +1 -0
- package/dist/components/operations.js +14 -7
- package/dist/components/operations.js.map +1 -1
- package/dist/components/packageComponent.js +6 -1
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/dataLayer/blobBackup.d.ts +30 -3
- package/dist/dataLayer/blobBackup.js +73 -36
- package/dist/dataLayer/blobBackup.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +1 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js +15 -3
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/rocksdbBackup.d.ts +4 -1
- package/dist/dataLayer/rocksdbBackup.js +74 -36
- package/dist/dataLayer/rocksdbBackup.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +45 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +1 -0
- package/dist/resources/DatabaseTransaction.js +33 -8
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +7 -3
- package/dist/resources/ResourceInterface.js +2 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Table.d.ts +151 -445
- package/dist/resources/Table.js +209 -8
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.d.ts +11 -0
- package/dist/resources/analytics/write.js +3 -0
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/blob.d.ts +30 -0
- package/dist/resources/blob.js +189 -1
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/databases.d.ts +1 -0
- package/dist/resources/databases.js +80 -15
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/derivedIndexRuntime.d.ts +13 -0
- package/dist/resources/derivedIndexRuntime.js +57 -5
- package/dist/resources/derivedIndexRuntime.js.map +1 -1
- package/dist/resources/derivedIndexes.d.ts +1 -0
- package/dist/resources/derivedIndexes.js +116 -15
- package/dist/resources/derivedIndexes.js.map +1 -1
- package/dist/resources/fullTextSchema.d.ts +5 -3
- package/dist/resources/fullTextSchema.js +48 -5
- package/dist/resources/fullTextSchema.js.map +1 -1
- package/dist/resources/fullTextSchemaLifecycle.d.ts +2 -0
- package/dist/resources/fullTextSchemaLifecycle.js +33 -0
- package/dist/resources/fullTextSchemaLifecycle.js.map +1 -1
- package/dist/resources/graphql.js +30 -12
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +21 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +114 -5
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/fullTextDerivedIndex.d.ts +11 -2
- package/dist/resources/indexes/fullTextDerivedIndex.js +187 -24
- package/dist/resources/indexes/fullTextDerivedIndex.js.map +1 -1
- package/dist/resources/indexes/fullTextNativeBinding.d.ts +99 -1
- package/dist/resources/indexes/fullTextNativeBinding.js +35 -1
- package/dist/resources/indexes/fullTextNativeBinding.js.map +1 -1
- package/dist/resources/indexes/fullTextQueryIndex.d.ts +58 -0
- package/dist/resources/indexes/fullTextQueryIndex.js +943 -0
- package/dist/resources/indexes/fullTextQueryIndex.js.map +1 -0
- package/dist/resources/indexes/fullTextQueryProtocol.d.ts +6 -0
- package/dist/resources/indexes/fullTextQueryProtocol.js +32 -0
- package/dist/resources/indexes/fullTextQueryProtocol.js.map +1 -0
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.d.ts +4 -1
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js +30 -7
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js.map +1 -1
- package/dist/resources/search.d.ts +41 -0
- package/dist/resources/search.js +468 -26
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transactionBroadcast.js +101 -50
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/resources/typeParity.d.ts +9 -0
- package/dist/resources/typeParity.js +3 -0
- package/dist/resources/typeParity.js.map +1 -0
- package/dist/server/REST.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +48 -8
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +7 -0
- package/dist/server/serverHelpers/contentTypes.js +36 -23
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/uwsServer.js +28 -5
- package/dist/server/serverHelpers/uwsServer.js.map +1 -1
- package/dist/server/threads/itc.js +19 -0
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +3 -0
- package/dist/server/threads/manageThreads.js +90 -23
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/utility/operation_authorization.js +25 -7
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/signalling.js +3 -0
- package/dist/utility/signalling.js.map +1 -1
- package/dist/validation/searchValidator.js +22 -2
- package/dist/validation/searchValidator.js.map +1 -1
- package/npm-shrinkwrap.json +22 -22
- package/package.json +2 -4
- package/resources/DESIGN.md +19 -2
- package/resources/DatabaseTransaction.ts +40 -10
- package/resources/FULL_TEXT.md +97 -0
- package/resources/ResourceInterface.ts +8 -2
- package/resources/Table.ts +767 -17
- package/resources/analytics/write.ts +3 -3
- package/resources/blob.ts +183 -1
- package/resources/databases.ts +126 -14
- package/resources/derivedIndexRuntime.ts +79 -6
- package/resources/derivedIndexes.ts +142 -18
- package/resources/fullTextSchema.ts +55 -9
- package/resources/fullTextSchemaLifecycle.ts +45 -0
- package/resources/graphql.ts +33 -12
- package/resources/indexes/DESIGN.md +167 -15
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +125 -5
- package/resources/indexes/fullTextDerivedIndex.ts +216 -32
- package/resources/indexes/fullTextNativeBinding.ts +133 -3
- package/resources/indexes/fullTextQueryIndex.ts +1120 -0
- package/resources/indexes/fullTextQueryProtocol.ts +35 -0
- package/resources/indexes/nativeFullTextDerivedIndexLifecycle.ts +28 -8
- package/resources/search.ts +513 -26
- package/resources/transactionBroadcast.ts +86 -47
- package/resources/typeParity.ts +20 -0
- package/schema.graphql +18 -5
- package/server/DESIGN.md +18 -0
- package/server/REST.ts +1 -1
- package/server/itc/serverHandlers.js +61 -8
- package/server/serverHelpers/contentTypes.ts +31 -26
- package/server/serverHelpers/uwsServer.ts +35 -7
- package/server/threads/itc.js +21 -0
- package/server/threads/manageThreads.js +95 -21
- package/studio/web/assets/{Chat-Bq60AO-g.js → Chat-CNEKMllJ.js} +13 -13
- package/studio/web/assets/FloatingChat-CEnWhHeR.js +23 -0
- package/studio/web/assets/SearchDialog-CwhJdEdY.js +1 -0
- package/studio/web/assets/{abnfDiagram-O67JEVCF-DpPZWMOf.js → abnfDiagram-O67JEVCF-raXE027J.js} +1 -1
- package/studio/web/assets/alertDialog-BbWD9Xxa.js +1 -0
- package/studio/web/assets/apiToken-DC5vsaaO.js +1 -0
- package/studio/web/assets/applications-DQZxDy0x.js +296 -0
- package/studio/web/assets/architecture-7GRP2DOG-DDmz3hpI.js +1 -0
- package/studio/web/assets/{architectureDiagram-NJMV4G6O-OmgLraID.js → architectureDiagram-NJMV4G6O-C8_Eet7w.js} +1 -1
- package/studio/web/assets/arrow-up-D2g_57vT.js +1 -0
- package/studio/web/assets/authStore-CJCaADw9.js +3 -0
- package/studio/web/assets/{blockDiagram-BEXU5L5S-Cv7CD3Ai.js → blockDiagram-BEXU5L5S-DR6S5-1D.js} +1 -1
- package/studio/web/assets/{button-MFP9n8Ck.js → button-DWwfgGWI.js} +2 -2
- package/studio/web/assets/{c4Diagram-YGBWAQC7-Ds1vKYnN.js → c4Diagram-YGBWAQC7-BAfZ1G01.js} +1 -1
- package/studio/web/assets/channel-D0AkPjJ8.js +1 -0
- package/studio/web/assets/{chevron-up-CFe8x5Bp.js → chevron-up-CFxbMGv2.js} +1 -1
- package/studio/web/assets/{chunk-3FUC2YCW-DpnBPH8B.js → chunk-3FUC2YCW-DuRp-j19.js} +1 -1
- package/studio/web/assets/{chunk-5DYCD2WN-LLLCQSzg.js → chunk-5DYCD2WN-BceBfIHT.js} +1 -1
- package/studio/web/assets/{chunk-742MDFTN-BL8J_pIO.js → chunk-742MDFTN-CIkt8ijt.js} +1 -1
- package/studio/web/assets/{chunk-7INBJB4K-C-hJHiiK.js → chunk-7INBJB4K-BpeAXyOi.js} +1 -1
- package/studio/web/assets/{chunk-7M6MHVWA-C6ZqkFbA.js → chunk-7M6MHVWA-h6WlaTzO.js} +1 -1
- package/studio/web/assets/{chunk-7PRAP22T-CUXM8BG6.js → chunk-7PRAP22T-KyqX6x3f.js} +1 -1
- package/studio/web/assets/{chunk-GTNCS2PH-DJ2BFvS1.js → chunk-GTNCS2PH-DGHLXyow.js} +1 -1
- package/studio/web/assets/{chunk-GWA4HPMP-C42bSqLL.js → chunk-GWA4HPMP-DsejB6gA.js} +1 -1
- package/studio/web/assets/{chunk-MBY4JIJT-C-5jz6Lo.js → chunk-MBY4JIJT-BwSGweQP.js} +1 -1
- package/studio/web/assets/{chunk-NETBCI7D-D-bzlN4r.js → chunk-NETBCI7D-C8UnOw_f.js} +1 -1
- package/studio/web/assets/{chunk-O7XYJQB3-ep14zA23.js → chunk-O7XYJQB3-CBS3nZYV.js} +1 -1
- package/studio/web/assets/{chunk-UA2S7LBM-BMRWRHED.js → chunk-UA2S7LBM-BHpEdH8D.js} +1 -1
- package/studio/web/assets/{chunk-WEXAMYUT-DdLYVdX1.js → chunk-WEXAMYUT-BAIhTwyh.js} +1 -1
- package/studio/web/assets/{chunk-Z7XXMR3K-BmKEDjcP.js → chunk-Z7XXMR3K-DSHbImdf.js} +1 -1
- package/studio/web/assets/{chunk-ZIGJFQKS-DLZgdNxA.js → chunk-ZIGJFQKS-Cs8fUn7y.js} +1 -1
- package/studio/web/assets/{classDiagram-v2-NBCMYWYE-DOI5vgKT.js → classDiagram-v2-NBCMYWYE-DmDPkt2u.js} +1 -1
- package/studio/web/assets/cn-6T8VranJ.js +1 -0
- package/studio/web/assets/{codicon-Brq4_Ui5.ttf → codicon-DF1abBS2.ttf} +0 -0
- package/studio/web/assets/{createLucideIcon-bziYxJli.js → createLucideIcon-fO5dL7D5.js} +1 -1
- package/studio/web/assets/{css.worker-l1psR_wG.js → css.worker-DoT-OOzx.js} +36 -36
- package/studio/web/assets/{cssMode-DJyc9mHj.js → cssMode-Dz2DxF4e.js} +1 -1
- package/studio/web/assets/{cynefin-OW5HDTMX-BSW-DB7S.js → cynefin-OW5HDTMX-DIvbXLSj.js} +1 -1
- package/studio/web/assets/{cynefinDiagram-VND7K2PF-CbAHEwxt.js → cynefinDiagram-VND7K2PF-BdtaXiCE.js} +1 -1
- package/studio/web/assets/{dagre-6A5THRUB-Csxewgs4.js → dagre-6A5THRUB-C7RUWHyz.js} +1 -1
- package/studio/web/assets/{diagram-22UHCM2B-a0rt8tY4.js → diagram-22UHCM2B-DJCvcaWP.js} +1 -1
- package/studio/web/assets/{diagram-3UASUU5V-lEj2SVNh.js → diagram-3UASUU5V-Du6VKWln.js} +1 -1
- package/studio/web/assets/{diagram-ATOU4E4O-HcrAeB-q.js → diagram-ATOU4E4O-dxRfeG4B.js} +1 -1
- package/studio/web/assets/{diagram-CDSNMT55-CYxiuyEx.js → diagram-CDSNMT55-l5Ga0u-W.js} +1 -1
- package/studio/web/assets/{diagram-MLGK6HIB-ChbCJTgJ.js → diagram-MLGK6HIB-CNQY47LA.js} +1 -1
- package/studio/web/assets/{diagram-MPIPVDR6-DaX9Y-N3.js → diagram-MPIPVDR6-7prveD1B.js} +1 -1
- package/studio/web/assets/{dist-Cz2Y6-6G.js → dist-BrRuMUzt.js} +1 -1
- package/studio/web/assets/{download-CtostjYn.js → download-Cn6tPG4L.js} +1 -1
- package/studio/web/assets/{ebnfDiagram-ZINNZB2B-CwAsENB1.js → ebnfDiagram-ZINNZB2B-5OnkTpfi.js} +1 -1
- package/studio/web/assets/{editor-DDIsQfj6.js → editor-B3mjd3tz.js} +1 -1
- package/studio/web/assets/editor.worker-Yd1NR0QT.js +33 -0
- package/studio/web/assets/{elk-276RUBZZ-Hexg9E4D.js → elk-276RUBZZ-DxDQPjQT.js} +1 -1
- package/studio/web/assets/{erDiagram-OPXOYQCR-CeC-wwO1.js → erDiagram-OPXOYQCR-CQlCX84D.js} +1 -1
- package/studio/web/assets/eventmodeling-NTZA5JFV-DONQf5aG.js +1 -0
- package/studio/web/assets/flowDiagram-KWPJA3E3-BoZ8_QR1.js +1 -0
- package/studio/web/assets/{ganttDiagram-FUAMR5RP-C2_Hhl1-.js → ganttDiagram-FUAMR5RP-bloX3Voy.js} +1 -1
- package/studio/web/assets/{getAnalytics-CjthMQqF.js → getAnalytics-C0FHjtdQ.js} +1 -1
- package/studio/web/assets/{gitGraph-4MIJSDKK-xIk5Vuew.js → gitGraph-4MIJSDKK-BrXWmJt2.js} +1 -1
- package/studio/web/assets/{gitGraphDiagram-X574FWY7-CMxJ34up.js → gitGraphDiagram-X574FWY7-C2KnnZeY.js} +1 -1
- package/studio/web/assets/{html-g1BJHxLy.js → html-BsRGM7tp.js} +1 -1
- package/studio/web/assets/{html.worker-DdwM4IrA.js → html.worker-B1dwY0Ay.js} +27 -27
- package/studio/web/assets/{htmlMode-Vh5IglCQ.js → htmlMode-tUKJaA3o.js} +1 -1
- package/studio/web/assets/index-72cEH474.css +1 -0
- package/studio/web/assets/index-BuqFjN5K.js +828 -0
- package/studio/web/assets/index.lazy-CcpfQFY_.js +2 -0
- package/studio/web/assets/{info-A6RAGUB7-o49TEbj-.js → info-A6RAGUB7-BhzBHe4U.js} +1 -1
- package/studio/web/assets/{infoDiagram-VRGFBTTK-Cjhh7yzZ.js → infoDiagram-VRGFBTTK-B0J1132p.js} +1 -1
- package/studio/web/assets/{ishikawaDiagram-OU5B5YK6-C63aXRmh.js → ishikawaDiagram-OU5B5YK6-BNk0tuQx.js} +1 -1
- package/studio/web/assets/{javascript-5VIolqf7.js → javascript-BZ_uRGHl.js} +1 -1
- package/studio/web/assets/{journeyDiagram-ZHPQQLJL-D_o0P5Mu.js → journeyDiagram-ZHPQQLJL-Be79RMQM.js} +1 -1
- package/studio/web/assets/json.worker-BQqXGI3X.js +65 -0
- package/studio/web/assets/{jsonMode-DG4zQraI.js → jsonMode-DgB-aFMj.js} +1 -1
- package/studio/web/assets/{kanban-definition-PNTS6WVX-CTI9SSxY.js → kanban-definition-PNTS6WVX-4uuoQP9W.js} +1 -1
- package/studio/web/assets/{languageServices-t5FBpX-i.js → languageServices-BleuBw17.js} +1 -1
- package/studio/web/assets/localStorageKeys-etzFY_xV.js +1 -0
- package/studio/web/assets/{lspLanguageFeatures-DgVnNPh-.js → lspLanguageFeatures-ByVYLSsQ.js} +1 -1
- package/studio/web/assets/{mermaid-parser.core-C2lcH_jP.js → mermaid-parser.core-V1UYMeXV.js} +3 -3
- package/studio/web/assets/{mermaid.core-BG5bjfIG.js → mermaid.core-1PX6R49U.js} +4 -4
- package/studio/web/assets/{mindmap-definition-NLK3R4M7-BK7ho6JD.js → mindmap-definition-NLK3R4M7-C70Ctm0J.js} +1 -1
- package/studio/web/assets/notifications-D1Nf-Edn.js +1 -0
- package/studio/web/assets/notifications-TuzN0IMi.js +1 -0
- package/studio/web/assets/{packet-AYTQ26CC-BHPy6KBV.js → packet-AYTQ26CC-DWbXHx5g.js} +1 -1
- package/studio/web/assets/{pegDiagram-GJSIUBJH-DzjwG3jO.js → pegDiagram-GJSIUBJH-d6z1cc7W.js} +1 -1
- package/studio/web/assets/{pie-WAS4IAKB-D0cP-DTU.js → pie-WAS4IAKB-DjoTm3yr.js} +1 -1
- package/studio/web/assets/{pieDiagram-5QR66LMP-C_hOP9Lv.js → pieDiagram-5QR66LMP-Dz3RHpDA.js} +1 -1
- package/studio/web/assets/profile-D7C7Lupz.js +1 -0
- package/studio/web/assets/{quadrantDiagram-O4NWA36T-CZW8PbV1.js → quadrantDiagram-O4NWA36T-CIF5Qkou.js} +1 -1
- package/studio/web/assets/{radar-RG4KPBEZ-C8fk0U81.js → radar-RG4KPBEZ-CVBgjCOj.js} +1 -1
- package/studio/web/assets/{railroad-74A4TZTK-B60FWm17.js → railroad-74A4TZTK-BdhXw10Q.js} +1 -1
- package/studio/web/assets/railroad-abnf-HS5TGJTU-BcoQPN39.js +1 -0
- package/studio/web/assets/railroad-ebnf-LZEXJU2U-B1Lke2JN.js +1 -0
- package/studio/web/assets/railroad-peg-WCYAUIDC-D-oJFkiV.js +1 -0
- package/studio/web/assets/{railroadDiagram-XR7U4H2S-DyyNmgbU.js → railroadDiagram-XR7U4H2S-y3Jv2U6N.js} +1 -1
- package/studio/web/assets/regions-nGQCm-v8.js +1 -0
- package/studio/web/assets/register-C3x9Ze6P.js +909 -0
- package/studio/web/assets/register-DjpsE8to.css +1 -0
- package/studio/web/assets/{requirementDiagram-PLB6GJNP-C4H-mLKu.js → requirementDiagram-PLB6GJNP-ChINZEmu.js} +1 -1
- package/studio/web/assets/restartGate-nHAFLDh-.js +1 -0
- package/studio/web/assets/{sankeyDiagram-IPEJSGJF-DHDyga4c.js → sankeyDiagram-IPEJSGJF-D9AyLce2.js} +1 -1
- package/studio/web/assets/{sequenceDiagram-PO4LG4MO-CdNcHXRI.js → sequenceDiagram-PO4LG4MO-hfk4aIEm.js} +1 -1
- package/studio/web/assets/{setComponentFile-z4-qJCbA.js → setComponentFile-DpjrRqeG.js} +1 -1
- package/studio/web/assets/{setup-CS50uJ4x.js → setup-CGiKLZ9e.js} +2 -2
- package/studio/web/assets/{stateDiagram-v2-GCMORJYK-CpKuXq15.js → stateDiagram-v2-GCMORJYK-Bs8RIb9K.js} +1 -1
- package/studio/web/assets/status-CGJwrNPH.js +61 -0
- package/studio/web/assets/{swimlanes-2SLR337P-NRHa2D8I.js → swimlanes-2SLR337P-B52xrf6t.js} +1 -1
- package/studio/web/assets/swimlanesDiagram-TC7HE7FX-DfN7BAP5.js +8 -0
- package/studio/web/assets/tabs-BCTQzoQK.js +1 -0
- package/studio/web/assets/{timeline-definition-EJHVYXUP-D39Y-xpq.js → timeline-definition-EJHVYXUP-DJSITpQX.js} +1 -1
- package/studio/web/assets/toggleHighContrast-C-Ne6P7T.js +51 -0
- package/studio/web/assets/toggleHighContrast-n7clI0si.css +1 -0
- package/studio/web/assets/{treeView-Q6P3EWNA-CRWR9OqD.js → treeView-Q6P3EWNA-C-epdxRo.js} +1 -1
- package/studio/web/assets/{treemap-WGGIJYW6-ZfXyJgLO.js → treemap-WGGIJYW6-DOVyp_zw.js} +1 -1
- package/studio/web/assets/{ts.worker-DDMUrpqh.js → ts.worker-Clm12uY6.js} +131 -131
- package/studio/web/assets/{tsMode-D83Gg3cq.js → tsMode-CSreYTys.js} +1 -1
- package/studio/web/assets/{typescript-Dfp-GrNq.js → typescript-MnxBk89W.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-BKetlINf.js → useEntityRestURL-TNrh77-s.js} +1 -1
- package/studio/web/assets/{usecaseDiagram-POWQR4AR-jf-zIDZ_.js → usecaseDiagram-POWQR4AR-B6252cbq.js} +1 -1
- package/studio/web/assets/{vendor-core-BdkdbUek.js → vendor-core-6LhfJlRC.js} +1 -1
- package/studio/web/assets/vendor-datadog-ozKf-pts.js +6 -0
- package/studio/web/assets/{vendor-react-izWchTRL.js → vendor-react-BOliS0BL.js} +1 -1
- package/studio/web/assets/vendor-tanstack-Bntfka-M.js +2 -0
- package/studio/web/assets/vendor-ui-9EYYDgoN.js +41 -0
- package/studio/web/assets/{vennDiagram-UO4OBE2U-BKYAZUh_.js → vennDiagram-UO4OBE2U-DZTsDA4k.js} +1 -1
- package/studio/web/assets/{wardley-WFR3VGLG-BO7f36ci.js → wardley-WFR3VGLG-Cfqoe6z4.js} +1 -1
- package/studio/web/assets/{wardleyDiagram-VNRHLVJA-Djb0JDQc.js → wardleyDiagram-VNRHLVJA-qu_f7Tvl.js} +1 -1
- package/studio/web/assets/{workers-CCvmDLH3.js → workers-BfZlUNVI.js} +3 -3
- package/studio/web/assets/{xml-06pZp00U.js → xml-BHd6qGH7.js} +1 -1
- package/studio/web/assets/{xychartDiagram-PMCCYNJV-BQh9ubvb.js → xychartDiagram-PMCCYNJV-UrOKRsmR.js} +1 -1
- package/studio/web/assets/{yaml-iSnWMVlV.js → yaml-C53R8OQq.js} +1 -1
- package/studio/web/assets/{yaml.worker-DAK2o_H1.js → yaml.worker-D9JekGdp.js} +183 -183
- package/studio/web/index.html +15 -15
- package/utility/operation_authorization.ts +27 -7
- package/utility/signalling.ts +3 -0
- package/validation/searchValidator.ts +22 -13
- package/studio/web/assets/FloatingChat-D4560T0p.js +0 -23
- package/studio/web/assets/alertDialog-UrbiMgQt.js +0 -1
- package/studio/web/assets/apiToken-BEvbFPMc.js +0 -1
- package/studio/web/assets/applications-CSUVTH4E.js +0 -296
- package/studio/web/assets/architecture-7GRP2DOG-11l4Ny1l.js +0 -1
- package/studio/web/assets/authStore-5jSS5pTW.js +0 -3
- package/studio/web/assets/channel-BDtouPd6.js +0 -1
- package/studio/web/assets/dialog-DTepachC.js +0 -1
- package/studio/web/assets/editor.worker-CkkvdXvO.js +0 -33
- package/studio/web/assets/eventmodeling-NTZA5JFV-CFb03e0o.js +0 -1
- package/studio/web/assets/flowDiagram-KWPJA3E3-Cidi00_Y.js +0 -1
- package/studio/web/assets/index-CPoDzQTe.css +0 -1
- package/studio/web/assets/index-DGRAzvO4.js +0 -824
- package/studio/web/assets/index.lazy-vgSic7et.js +0 -2
- package/studio/web/assets/json.worker-CSi2hF-a.js +0 -65
- package/studio/web/assets/notifications-BeWcX04m.js +0 -1
- package/studio/web/assets/notifications-DUGWrWoO.js +0 -1
- package/studio/web/assets/profile-BvUEDBzW.js +0 -1
- package/studio/web/assets/railroad-abnf-HS5TGJTU-CLMVZvH0.js +0 -1
- package/studio/web/assets/railroad-ebnf-LZEXJU2U--tlwFoVB.js +0 -1
- package/studio/web/assets/railroad-peg-WCYAUIDC-Dpuslblm.js +0 -1
- package/studio/web/assets/regions-CB-_2m7M.js +0 -1
- package/studio/web/assets/register-1w1Zr3b2.js +0 -848
- package/studio/web/assets/register-jjEx9u7D.css +0 -1
- package/studio/web/assets/setLocalStorage-D_kflv4U.js +0 -1
- package/studio/web/assets/status-CI0wOdOE.js +0 -61
- package/studio/web/assets/swimlanesDiagram-TC7HE7FX-BBk4t4hO.js +0 -8
- package/studio/web/assets/tabs-CnQ_zenf.js +0 -1
- package/studio/web/assets/toggleHighContrast--ixms01u.css +0 -1
- package/studio/web/assets/toggleHighContrast-BsAE4jPe.js +0 -49
- package/studio/web/assets/useLocalStorage-BYoZF60G.js +0 -1
- package/studio/web/assets/vendor-datadog-fCQhBHGk.js +0 -6
- package/studio/web/assets/vendor-tanstack-CQ1aRjVa.js +0 -2
- package/studio/web/assets/vendor-ui-aE1tHcW7.js +0 -41
- package/studio/web/assets/x-vYntCxm4.js +0 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serializeFullTextState = serializeFullTextState;
|
|
4
4
|
exports.definitionsEqual = definitionsEqual;
|
|
5
|
+
exports.readPersistedFullTextFields = readPersistedFullTextFields;
|
|
6
|
+
exports.mergePeerFullTextFields = mergePeerFullTextFields;
|
|
5
7
|
exports.readPersistedFullTextDefinitions = readPersistedFullTextDefinitions;
|
|
6
8
|
exports.retainFullTextDefinitions = retainFullTextDefinitions;
|
|
7
9
|
exports.mergePeerFullTextDefinitions = mergePeerFullTextDefinitions;
|
|
@@ -18,6 +20,37 @@ function serializeFullTextState(value) {
|
|
|
18
20
|
function definitionsEqual(left, right) {
|
|
19
21
|
return serializeFullTextState(left ?? []) === serializeFullTextState(right ?? []);
|
|
20
22
|
}
|
|
23
|
+
function readPersistedFullTextFields(values, definitions, attributes, warn) {
|
|
24
|
+
const persistedNames = (0, fullTextSchema_ts_1.persistedFullTextIndexNames)(definitions);
|
|
25
|
+
if (values === undefined)
|
|
26
|
+
return persistedNames;
|
|
27
|
+
const names = persistedNames.map((name) => ({ name }));
|
|
28
|
+
try {
|
|
29
|
+
return (0, fullTextSchema_ts_1.compileFullTextFields)(values, names, attributes, true);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
if (!(error instanceof hdbError_ts_1.ClientError))
|
|
33
|
+
throw error;
|
|
34
|
+
warn(`Invalid persisted full-text fields; reserving every persisted index name: ${error.message}`);
|
|
35
|
+
return persistedNames;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function mergePeerFullTextFields(persistedValues, incomingValues, persistedDefinitions, finalDefinitions, attributes, warn) {
|
|
39
|
+
const retained = readPersistedFullTextFields(persistedValues, persistedDefinitions, attributes, warn);
|
|
40
|
+
const finalNames = (0, fullTextSchema_ts_1.persistedFullTextIndexNames)(finalDefinitions);
|
|
41
|
+
if (incomingValues === undefined)
|
|
42
|
+
incomingValues = finalNames;
|
|
43
|
+
try {
|
|
44
|
+
(0, fullTextSchema_ts_1.compileFullTextFields)(incomingValues, finalNames.map((name) => ({ name })), attributes);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (!(error instanceof hdbError_ts_1.ClientError))
|
|
48
|
+
throw error;
|
|
49
|
+
warn(`Ignoring invalid peer full-text fields: ${error.message}`);
|
|
50
|
+
}
|
|
51
|
+
const existingNames = new Set((0, fullTextSchema_ts_1.persistedFullTextIndexNames)(persistedDefinitions));
|
|
52
|
+
return [...new Set([...retained, ...finalNames.filter((name) => !existingNames.has(name))])].sort();
|
|
53
|
+
}
|
|
21
54
|
function readPersistedFullTextDefinitions(values, attributes, warn) {
|
|
22
55
|
if (values === undefined)
|
|
23
56
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullTextSchemaLifecycle.js","sourceRoot":"","sources":["../../resources/fullTextSchemaLifecycle.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fullTextSchemaLifecycle.js","sourceRoot":"","sources":["../../resources/fullTextSchemaLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -217,6 +217,7 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources, de
|
|
|
217
217
|
attributes,
|
|
218
218
|
properties: typeProperties,
|
|
219
219
|
fullTextIndexes: [],
|
|
220
|
+
fullTextFields: [],
|
|
220
221
|
};
|
|
221
222
|
if (definition.description?.value)
|
|
222
223
|
typeDef.description = definition.description.value;
|
|
@@ -259,15 +260,8 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources, de
|
|
|
259
260
|
typeDef.replicate = true;
|
|
260
261
|
if (directive.name.value === 'hidden')
|
|
261
262
|
typeDef.hidden = true;
|
|
262
|
-
if (directive.name.value === 'fullText')
|
|
263
|
-
|
|
264
|
-
for (const arg of directive.arguments || []) {
|
|
265
|
-
if (Object.hasOwn(definition, arg.name.value))
|
|
266
|
-
throw new hdbError_ts_1.ClientError(`@fullText declares "${arg.name.value}" more than once`, 400);
|
|
267
|
-
definition[arg.name.value] = coerceDirectiveValue(arg.value);
|
|
268
|
-
}
|
|
269
|
-
typeDef.fullTextIndexes.push(definition);
|
|
270
|
-
}
|
|
263
|
+
if (directive.name.value === 'fullText')
|
|
264
|
+
throw new hdbError_ts_1.ClientError('@fullText must be declared on a FullText field', 400);
|
|
271
265
|
if (directive.name.value === 'export') {
|
|
272
266
|
typeDef.export = true;
|
|
273
267
|
for (const arg of directive.arguments) {
|
|
@@ -291,12 +285,38 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources, de
|
|
|
291
285
|
};
|
|
292
286
|
}
|
|
293
287
|
const typeName = type.name?.value;
|
|
288
|
+
if (typeName === 'FullText')
|
|
289
|
+
throw new hdbError_ts_1.ClientError('FullText fields require @fullText', 400);
|
|
294
290
|
const property = { type: typeName };
|
|
295
291
|
Object.defineProperty(property, 'location', { value: type.loc.startToken });
|
|
296
292
|
return property;
|
|
297
293
|
}
|
|
298
294
|
const attributesObject = {};
|
|
299
295
|
for (const field of definition.fields) {
|
|
296
|
+
const name = field.name.value;
|
|
297
|
+
const fullTextDirectives = field.directives.filter(({ name }) => name.value === 'fullText');
|
|
298
|
+
if (fullTextDirectives.length > 0) {
|
|
299
|
+
if (fullTextDirectives.length !== 1)
|
|
300
|
+
throw new hdbError_ts_1.ClientError(`Full-text field "${name}" requires exactly one @fullText directive`, 400);
|
|
301
|
+
if (field.type.kind !== 'NamedType' || field.type.name.value !== 'FullText')
|
|
302
|
+
throw new hdbError_ts_1.ClientError(`@fullText field "${name}" requires the nullable FullText type`, 400);
|
|
303
|
+
for (const directive of field.directives) {
|
|
304
|
+
if (directive.name.value !== 'fullText')
|
|
305
|
+
throw new hdbError_ts_1.ClientError(`Full-text field "${name}" cannot use @${directive.name.value}; configure permissions and record values on its source fields`, 400);
|
|
306
|
+
}
|
|
307
|
+
const index = Object.create(null);
|
|
308
|
+
index.name = name;
|
|
309
|
+
for (const arg of fullTextDirectives[0].arguments || []) {
|
|
310
|
+
if (arg.name.value === 'name')
|
|
311
|
+
throw new hdbError_ts_1.ClientError(`@fullText uses the field name "${name}"; remove its name argument`, 400);
|
|
312
|
+
if (Object.hasOwn(index, arg.name.value))
|
|
313
|
+
throw new hdbError_ts_1.ClientError(`@fullText declares "${arg.name.value}" more than once`, 400);
|
|
314
|
+
index[arg.name.value] = coerceDirectiveValue(arg.value);
|
|
315
|
+
}
|
|
316
|
+
typeDef.fullTextIndexes.push(index);
|
|
317
|
+
typeDef.fullTextFields.push(name);
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
300
320
|
const property = getProperty(field.type);
|
|
301
321
|
property.name = field.name.value;
|
|
302
322
|
if (field.description?.value)
|
|
@@ -366,9 +386,6 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources, de
|
|
|
366
386
|
// order are seen; the ownership checks below need every field of the type.
|
|
367
387
|
property.decide = directive;
|
|
368
388
|
}
|
|
369
|
-
else if (directiveName === 'fullText') {
|
|
370
|
-
throw new hdbError_ts_1.ClientError('@fullText must be declared on a @table type, not on a field', 400);
|
|
371
|
-
}
|
|
372
389
|
else if (directiveName === 'relationship') {
|
|
373
390
|
const relationshipDefinition = {};
|
|
374
391
|
for (const arg of directive.arguments) {
|
|
@@ -422,6 +439,7 @@ async function processGraphQLSchema(gqlContent, urlPath, filePath, resources, de
|
|
|
422
439
|
if (typeDef.fullTextIndexes.length > 0 && !typeDef.table)
|
|
423
440
|
throw new hdbError_ts_1.ClientError('@fullText is only supported on a @table type', 400);
|
|
424
441
|
typeDef.fullTextIndexes = (0, fullTextSchema_ts_1.compileFullTextDefinitions)(typeDef.fullTextIndexes, attributes);
|
|
442
|
+
typeDef.fullTextFields = (0, fullTextSchema_ts_1.compileFullTextFields)(typeDef.fullTextFields, typeDef.fullTextIndexes, attributes);
|
|
425
443
|
// Project the array form into the canonical `properties` Record (JSON-Schema-shaped,
|
|
426
444
|
// keyed by attribute name). Both shapes are co-populated in this single pass;
|
|
427
445
|
// downstream consumers (MCP, OpenAPI) read whichever form they prefer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../resources/graphql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../resources/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Id } from '../../resources/ResourceInterface.ts';
|
|
2
|
+
import type { CandidateKeyPlan } from '../search.ts';
|
|
2
3
|
import { type DerivedNativeIndexHost } from './hnswDerivedIndex.ts';
|
|
3
4
|
/** Element-wise equality of the array-like projections a derived index stores; anything else that failed `===` counts as changed. */
|
|
4
5
|
export declare function derivedValuesEqual(a: any, b: any): boolean;
|
|
@@ -32,6 +33,7 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
32
33
|
static canDefaultToNativePlane(rootStore: unknown, options: any): boolean;
|
|
33
34
|
static searchOnlyOptions: string[];
|
|
34
35
|
filteredSearch: boolean;
|
|
36
|
+
candidateKeyFilter: boolean;
|
|
35
37
|
indexStore: any;
|
|
36
38
|
M: number;
|
|
37
39
|
efConstruction: number;
|
|
@@ -41,6 +43,7 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
41
43
|
nodesVisitedCount: number;
|
|
42
44
|
random: () => number;
|
|
43
45
|
filterExpansion: number;
|
|
46
|
+
filterExpansionConfigured: boolean;
|
|
44
47
|
idIncrementer: BigInt64Array | undefined;
|
|
45
48
|
distance: (a: number[], b: number[]) => number;
|
|
46
49
|
int8: boolean;
|
|
@@ -98,6 +101,22 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
98
101
|
* predicate itself blocks on; the normal request path awaits it safely.
|
|
99
102
|
*/
|
|
100
103
|
private searchPlane;
|
|
104
|
+
/**
|
|
105
|
+
* Run a candidate-key plan when its scans are cheaper than the predicate visits they replace, and
|
|
106
|
+
* return the matching primary keys with whether they alone decide admission. Undefined means
|
|
107
|
+
* "take the predicate path": the plan was too broad, its narrowest term overran the scan budget,
|
|
108
|
+
* or the scan failed — none of which is a fault of the graph.
|
|
109
|
+
*/
|
|
110
|
+
private collectCandidateKeys;
|
|
111
|
+
/**
|
|
112
|
+
* Visit budget for a traversal an allow-set decides, derived from the selectivity the set makes
|
|
113
|
+
* measurable rather than from filterExpansion — which exists to bound an admission test expensive
|
|
114
|
+
* enough to be worth bounding, and this one is a set lookup. It only ever widens the
|
|
115
|
+
* filterExpansion budget, never narrows it: a cheaper visit makes a tighter budget buy nothing
|
|
116
|
+
* and cost recall. An empty set keeps that budget, so a zero-match filter returns empty after a
|
|
117
|
+
* bounded descent rather than crawling the graph.
|
|
118
|
+
*/
|
|
119
|
+
private allowSetVisitBudget;
|
|
101
120
|
attachDerivedHost(host: DerivedNativeIndexHost): void;
|
|
102
121
|
private queryCoverage;
|
|
103
122
|
/**
|
|
@@ -207,9 +226,10 @@ export declare class HierarchicalNavigableSmallWorld {
|
|
|
207
226
|
filterExpansion?: number;
|
|
208
227
|
maxIndexLagMilliseconds?: number;
|
|
209
228
|
waitForIndexMilliseconds?: number;
|
|
210
|
-
}, context: any, { filter, minResults, }?: {
|
|
229
|
+
}, context: any, { filter, minResults, candidateKeys, }?: {
|
|
211
230
|
filter?: (primaryKey: Id) => boolean;
|
|
212
231
|
minResults?: number;
|
|
232
|
+
candidateKeys?: CandidateKeyPlan;
|
|
213
233
|
}): any[] | Promise<any[]>;
|
|
214
234
|
/**
|
|
215
235
|
* Exact distance between a query and a record's FULL-precision vector, mirroring search()'s metric
|
|
@@ -258,6 +258,20 @@ const MAX_LEVEL = 10; // should give good high-level skip list performance up to
|
|
|
258
258
|
// islands are small (bounded by the deleted node's neighborhood), so a probe that visits this many
|
|
259
259
|
// nodes without reaching the entry point is treated as connected-but-far and repaired conservatively.
|
|
260
260
|
const PROBE_VISIT_LIMIT = 256;
|
|
261
|
+
// Candidate keys one predicate visit pays for: a key-only index-entry read against a record load
|
|
262
|
+
// and decode. Measured warm at 0.37 us against 2.1 us, rounded up from that 5.7; the same load is
|
|
263
|
+
// ~130 us cold, so the warm end is the regression-safe calibration — over-stating the ratio would
|
|
264
|
+
// build allow-sets for broad filters the predicate already answers cheaply. See DESIGN.md.
|
|
265
|
+
const KEYS_PER_PREDICATE_VISIT = 8;
|
|
266
|
+
// Absolute ceiling on index entries one query may read building an allow-set, whatever the cost
|
|
267
|
+
// model allows. The scan is synchronous, so this bounds both the event-loop stall and the retained
|
|
268
|
+
// key set; past it the predicate path — which is incremental and budget-bounded — is the safer cost.
|
|
269
|
+
const MAX_CANDIDATE_KEYS = 50_000;
|
|
270
|
+
// Filling ef matches at selectivity s costs ~ef/s visits; this is the slack over that.
|
|
271
|
+
const ALLOW_SET_BUDGET_SLACK = 2;
|
|
272
|
+
// How far an allow-set may widen the filterExpansion visit budget. A visit got cheaper, not free:
|
|
273
|
+
// the JS graph still loads a node and computes a distance for each one, synchronously.
|
|
274
|
+
const ALLOW_SET_BUDGET_MAX_WIDENING = 4;
|
|
261
275
|
/**
|
|
262
276
|
* Represents a Hierarchical Navigable Small World (HNSW) index for approximate nearest neighbor search.
|
|
263
277
|
* This implementation is based on hierarchical graph navigation to efficiently index and search high-dimensional vectors.
|
|
@@ -404,6 +418,10 @@ class HierarchicalNavigableSmallWorld {
|
|
|
404
418
|
// during traversal (predicate-aware / ACORN-style filtering), so companion conditions and RBAC can
|
|
405
419
|
// be pushed down instead of post-filtering an under-filled candidate set (#1241).
|
|
406
420
|
filteredSearch = true;
|
|
421
|
+
// Signals that search() also accepts a CandidateKeyPlan and admits from it directly, so an indexed
|
|
422
|
+
// companion condition costs a key-only index scan per matching record instead of a record load and
|
|
423
|
+
// decode per visited node. See DESIGN.md.
|
|
424
|
+
candidateKeyFilter = true;
|
|
407
425
|
indexStore;
|
|
408
426
|
M = 16; // max number of connections per layer
|
|
409
427
|
efConstruction = 100; // size of dynamic candidate list
|
|
@@ -424,6 +442,10 @@ class HierarchicalNavigableSmallWorld {
|
|
|
424
442
|
// latency for recall on selective function predicates; 24 fills to roughly 4% selectivity before
|
|
425
443
|
// the budget binds. Per-query override via the search options.
|
|
426
444
|
filterExpansion = 24;
|
|
445
|
+
// Whether the schema pinned filterExpansion. An explicit pin is an authoritative cost ceiling and
|
|
446
|
+
// keeps its exact meaning on every path; only an index that never set it gets the
|
|
447
|
+
// selectivity-derived budget an allow-set makes measurable.
|
|
448
|
+
filterExpansionConfigured = false;
|
|
427
449
|
idIncrementer;
|
|
428
450
|
distance;
|
|
429
451
|
int8 = true; // store vectors as int8-quantized bins by default; opt out with `quantization: "none"`
|
|
@@ -492,8 +514,10 @@ class HierarchicalNavigableSmallWorld {
|
|
|
492
514
|
this.mL = configuredML;
|
|
493
515
|
if (configuredOptimizeRouting !== undefined)
|
|
494
516
|
this.optimizeRouting = configuredOptimizeRouting;
|
|
495
|
-
if (configuredFilterExpansion !== undefined)
|
|
517
|
+
if (configuredFilterExpansion !== undefined) {
|
|
496
518
|
this.filterExpansion = configuredFilterExpansion;
|
|
519
|
+
this.filterExpansionConfigured = true;
|
|
520
|
+
}
|
|
497
521
|
}
|
|
498
522
|
if (options?.nativePlane) {
|
|
499
523
|
const { nativeM, nativeEfConstruction, nativeML, nativeOptimizeRouting, maxNodes, keyCap, layer0Cap } = HierarchicalNavigableSmallWorld.validateNativePlaneOptions(indexStore?.rootStore, options);
|
|
@@ -813,6 +837,50 @@ class HierarchicalNavigableSmallWorld {
|
|
|
813
837
|
return withStats(entries, filterState);
|
|
814
838
|
});
|
|
815
839
|
}
|
|
840
|
+
/**
|
|
841
|
+
* Run a candidate-key plan when its scans are cheaper than the predicate visits they replace, and
|
|
842
|
+
* return the matching primary keys with whether they alone decide admission. Undefined means
|
|
843
|
+
* "take the predicate path": the plan was too broad, its narrowest term overran the scan budget,
|
|
844
|
+
* or the scan failed — none of which is a fault of the graph.
|
|
845
|
+
*/
|
|
846
|
+
collectCandidateKeys(plan, ef, predicateMaxVisits) {
|
|
847
|
+
const nodeCount = this.approximateNodeCount();
|
|
848
|
+
const estimated = Math.max(1, plan.estimatedCount);
|
|
849
|
+
// Filling ef matches at selectivity s costs ~ef/s visits, and s is estimated/nodeCount, so a
|
|
850
|
+
// broad filter needs few predicate visits however cheap the test that would replace them.
|
|
851
|
+
const predicateVisits = Math.min(predicateMaxVisits, (ef * nodeCount) / estimated);
|
|
852
|
+
let maxKeys = Math.min(Math.ceil(predicateVisits * KEYS_PER_PREDICATE_VISIT), MAX_CANDIDATE_KEYS);
|
|
853
|
+
// An allow-set over a large fraction of the graph is not a filter worth building.
|
|
854
|
+
if (nodeCount > 0)
|
|
855
|
+
maxKeys = Math.min(maxKeys, Math.max(1, nodeCount >> 1));
|
|
856
|
+
if (estimated > maxKeys)
|
|
857
|
+
return undefined;
|
|
858
|
+
try {
|
|
859
|
+
return plan.collect(maxKeys) ?? undefined;
|
|
860
|
+
}
|
|
861
|
+
catch (error) {
|
|
862
|
+
// A sibling index that started rebuilding or closed between planning and the scan is a
|
|
863
|
+
// reason to filter the other way, not to fail — and not to reach the caller's handler,
|
|
864
|
+
// which reads an unclassified search error as plane corruption and requests a rebuild.
|
|
865
|
+
logger.warn?.('could not build the HNSW candidate-key allow-set; using the predicate path', error);
|
|
866
|
+
return undefined;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
/**
|
|
870
|
+
* Visit budget for a traversal an allow-set decides, derived from the selectivity the set makes
|
|
871
|
+
* measurable rather than from filterExpansion — which exists to bound an admission test expensive
|
|
872
|
+
* enough to be worth bounding, and this one is a set lookup. It only ever widens the
|
|
873
|
+
* filterExpansion budget, never narrows it: a cheaper visit makes a tighter budget buy nothing
|
|
874
|
+
* and cost recall. An empty set keeps that budget, so a zero-match filter returns empty after a
|
|
875
|
+
* bounded descent rather than crawling the graph.
|
|
876
|
+
*/
|
|
877
|
+
allowSetVisitBudget(allowed, predicateMaxVisits, budgetEf) {
|
|
878
|
+
if (allowed <= 0)
|
|
879
|
+
return predicateMaxVisits;
|
|
880
|
+
const selectivity = Math.min(1, allowed / Math.max(1, this.approximateNodeCount()));
|
|
881
|
+
const derived = budgetEf * Math.ceil(ALLOW_SET_BUDGET_SLACK / selectivity);
|
|
882
|
+
return Math.min(Math.max(predicateMaxVisits, derived), predicateMaxVisits * ALLOW_SET_BUDGET_MAX_WIDENING);
|
|
883
|
+
}
|
|
816
884
|
attachDerivedHost(host) {
|
|
817
885
|
this.derivedHost = host;
|
|
818
886
|
}
|
|
@@ -1783,7 +1851,9 @@ class HierarchicalNavigableSmallWorld {
|
|
|
1783
1851
|
* cheap even when the predicate loads a record.
|
|
1784
1852
|
*/
|
|
1785
1853
|
admit(filter, filterState, primaryKey) {
|
|
1786
|
-
|
|
1854
|
+
// A filter fronted by an allow-set counts its own evaluations: the counter reports how much of
|
|
1855
|
+
// the graph a filtered query had to LOAD, and a membership test loads nothing.
|
|
1856
|
+
if (filterState && !filterState.countsOwnEvaluations)
|
|
1787
1857
|
filterState.filterEvaluations++;
|
|
1788
1858
|
return filter(primaryKey);
|
|
1789
1859
|
}
|
|
@@ -1800,7 +1870,7 @@ class HierarchicalNavigableSmallWorld {
|
|
|
1800
1870
|
* @param context the query context; its `transaction` is the nested RocksDB transaction reads use
|
|
1801
1871
|
* @param options optional, named: `filter` (predicate-aware traversal) and `minResults`
|
|
1802
1872
|
*/
|
|
1803
|
-
search({ target, value, descending, distance, comparator, ef, filterExpansion, maxIndexLagMilliseconds = hnswDerivedIndex_ts_1.DEFAULT_MAX_INDEX_LAG_MILLISECONDS, waitForIndexMilliseconds = 0, }, context, { filter, minResults, } = {}) {
|
|
1873
|
+
search({ target, value, descending, distance, comparator, ef, filterExpansion, maxIndexLagMilliseconds = hnswDerivedIndex_ts_1.DEFAULT_MAX_INDEX_LAG_MILLISECONDS, waitForIndexMilliseconds = 0, }, context, { filter, minResults, candidateKeys, } = {}) {
|
|
1804
1874
|
const waiting = this.filePrimary && waitForIndexMilliseconds > 0;
|
|
1805
1875
|
let limit; // only set for threshold comparators; 0 is a valid threshold (e.g. dotProduct)
|
|
1806
1876
|
let limitInclusive = false; // true for `le`, false for `lt`
|
|
@@ -1883,14 +1953,51 @@ class HierarchicalNavigableSmallWorld {
|
|
|
1883
1953
|
// second-regime search ef (up to AUTO_EF_CEILING) must not silently quadruple the filtered
|
|
1884
1954
|
// worst case — the recall decision and the filtered-scan budget are separate decisions. Callers
|
|
1885
1955
|
// wanting a deeper filtered search set an explicit ef or filterExpansion, and own the cost.
|
|
1956
|
+
const budgetEf = explicitEf || this.efSearchConfigured ? resolvedEf : Math.min(resolvedEf, AUTO_EF_MAX);
|
|
1957
|
+
const predicateMaxVisits = budgetEf * (filterExpansion && filterExpansion > 0 ? filterExpansion : this.filterExpansion);
|
|
1958
|
+
const allowedKeys = filter && candidateKeys ? this.collectCandidateKeys(candidateKeys, resolvedEf, predicateMaxVisits) : undefined;
|
|
1959
|
+
const allowDecides = Boolean(allowedKeys?.complete);
|
|
1886
1960
|
const filterState = filter
|
|
1887
1961
|
? {
|
|
1888
|
-
maxVisits:
|
|
1889
|
-
(filterExpansion && filterExpansion > 0 ? filterExpansion : this.filterExpansion),
|
|
1962
|
+
maxVisits: predicateMaxVisits,
|
|
1890
1963
|
nodesVisited: 0,
|
|
1891
1964
|
filterEvaluations: 0,
|
|
1965
|
+
candidateKeys: allowedKeys?.keys.size,
|
|
1892
1966
|
}
|
|
1893
1967
|
: undefined;
|
|
1968
|
+
if (allowedKeys && filter && filterState) {
|
|
1969
|
+
// Both traversals admit by primary key — the plane hands its predicate the key of every
|
|
1970
|
+
// candidate — so the set is a membership test in front of the record load, and a complete
|
|
1971
|
+
// plan removes the load entirely.
|
|
1972
|
+
const allowed = allowedKeys.keys;
|
|
1973
|
+
const admits = (primaryKey) => allowed.has(primaryKey);
|
|
1974
|
+
const residual = filter;
|
|
1975
|
+
const state = filterState;
|
|
1976
|
+
state.countsOwnEvaluations = true;
|
|
1977
|
+
filter = allowDecides
|
|
1978
|
+
? admits
|
|
1979
|
+
: (primaryKey) => {
|
|
1980
|
+
if (!admits(primaryKey))
|
|
1981
|
+
return false;
|
|
1982
|
+
state.filterEvaluations++;
|
|
1983
|
+
return residual(primaryKey);
|
|
1984
|
+
};
|
|
1985
|
+
// Only a filter the set DECIDES gets the derived budget: an admitted visit on the residual
|
|
1986
|
+
// path still costs a record decode, so that path keeps today's ceiling. A positive per-query
|
|
1987
|
+
// or any schema-configured filterExpansion is an authoritative cost ceiling and is used
|
|
1988
|
+
// exactly as given; a per-query 0 still means unset.
|
|
1989
|
+
if (allowDecides) {
|
|
1990
|
+
const configured = filterExpansion && filterExpansion > 0
|
|
1991
|
+
? filterExpansion
|
|
1992
|
+
: this.filterExpansionConfigured
|
|
1993
|
+
? this.filterExpansion
|
|
1994
|
+
: undefined;
|
|
1995
|
+
state.maxVisits =
|
|
1996
|
+
configured === undefined
|
|
1997
|
+
? this.allowSetVisitBudget(allowedKeys.keys.size, predicateMaxVisits, budgetEf)
|
|
1998
|
+
: budgetEf * configured;
|
|
1999
|
+
}
|
|
2000
|
+
}
|
|
1894
2001
|
const rerankK = comparator === 'sort' && minResults !== undefined
|
|
1895
2002
|
? Math.min(effectiveEf, Math.max(RERANK_MIN, minResults * RERANK_FACTOR))
|
|
1896
2003
|
: effectiveEf;
|
|
@@ -2256,6 +2363,8 @@ function withStats(entries, filterState) {
|
|
|
2256
2363
|
if (filterState) {
|
|
2257
2364
|
Object.defineProperty(entries, 'nodesVisited', { value: filterState.nodesVisited, enumerable: false });
|
|
2258
2365
|
Object.defineProperty(entries, 'filterEvaluations', { value: filterState.filterEvaluations, enumerable: false });
|
|
2366
|
+
if (filterState.candidateKeys !== undefined)
|
|
2367
|
+
Object.defineProperty(entries, 'candidateKeys', { value: filterState.candidateKeys, enumerable: false });
|
|
2259
2368
|
}
|
|
2260
2369
|
return entries;
|
|
2261
2370
|
}
|