@undefineds.co/xpod 0.3.75 → 0.4.0-rc.140
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/xpod.js +43 -8
- package/config/bun.json +45 -48
- package/config/cloud.json +13 -90
- package/config/components-ignore.json +0 -1
- package/config/local.json +111 -63
- package/config/resolver.json +4 -2
- package/config/terminal.json +4 -1
- package/config/xpod.base.json +16 -8
- package/config/xpod.json +51 -54
- package/dist/acceptance/PublicCloudSemanticConformance.d.ts +4 -0
- package/dist/acceptance/PublicCloudSemanticConformance.js +214 -0
- package/dist/acceptance/QleverSearchConformance.d.ts +39 -0
- package/dist/acceptance/QleverSearchConformance.js +686 -0
- package/dist/acceptance/QleverSemanticConformance.d.ts +3 -0
- package/dist/acceptance/QleverSemanticConformance.js +178 -0
- package/dist/acceptance/RdfSemanticConformance.d.ts +114 -0
- package/dist/acceptance/RdfSemanticConformance.js +307 -0
- package/dist/acceptance/run-installed-qlever-conformance.d.ts +12 -0
- package/dist/acceptance/run-installed-qlever-conformance.js +87 -0
- package/dist/acceptance/run-installed-rdf-conformance.d.ts +12 -0
- package/dist/acceptance/run-installed-rdf-conformance.js +88 -0
- package/dist/ai/service/EmbeddingProviderError.d.ts +7 -0
- package/dist/ai/service/EmbeddingProviderError.js +42 -0
- package/dist/api/ai-gateway/connect/index.js +5 -2
- package/dist/api/auth/AuthContext.d.ts +5 -0
- package/dist/api/auth/AuthContext.js +10 -0
- package/dist/api/container/common.js +20 -1
- package/dist/api/container/rdf.d.ts +1 -0
- package/dist/api/container/rdf.js +43 -4
- package/dist/api/container/types.d.ts +4 -0
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +2 -0
- package/dist/api/runs/PiAgentRuntimeDriver.js +1 -0
- package/dist/api/runs/RdfRunContextRetriever.d.ts +8 -0
- package/dist/api/runs/RdfRunContextRetriever.js +23 -1
- package/dist/api/runtime.js +20 -6
- package/dist/api/service/RdfSearchIndexingService.d.ts +37 -3
- package/dist/api/service/RdfSearchIndexingService.js +130 -18
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +8 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +102 -15
- package/dist/api/service/RdfSearchReconciliationWorker.d.ts +76 -0
- package/dist/api/service/RdfSearchReconciliationWorker.js +294 -0
- package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
- package/dist/components/components.jsonld +9 -12
- package/dist/components/context.jsonld +227 -348
- package/dist/document/MarkdownRetrievalPointProjector.d.ts +33 -0
- package/dist/document/MarkdownRetrievalPointProjector.js +196 -0
- package/dist/document/MarkdownRetrievalPointProjector.jsonld +135 -0
- package/dist/document/ReaderMaterialization.d.ts +34 -0
- package/dist/document/ReaderMaterialization.js +3 -0
- package/dist/document/ReaderMaterialization.jsonld +151 -0
- package/dist/document/ReaderMaterializationRepository.d.ts +27 -0
- package/dist/document/ReaderMaterializationRepository.js +400 -0
- package/dist/document/ReaderMaterializationRepository.jsonld +84 -0
- package/dist/document/index.d.ts +3 -1
- package/dist/document/index.js +3 -1
- package/dist/http/SubgraphSparqlHttpHandler.js +34 -54
- package/dist/http/search/SearchHttpHandler.js +14 -12
- package/dist/http/terminal/TerminalHttpHandler.d.ts +3 -0
- package/dist/http/terminal/TerminalHttpHandler.js +1 -0
- package/dist/http/terminal/TerminalHttpHandler.jsonld +11 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.js +19 -39
- package/dist/identity/drizzle/db.d.ts +1 -0
- package/dist/identity/drizzle/db.js +35 -0
- package/dist/index.d.ts +9 -17
- package/dist/index.js +14 -22
- package/dist/provision/ProvisionPodCreator.d.ts +1 -1
- package/dist/provision/ProvisionPodCreator.js +4 -3
- package/dist/search/RdfSearchIntentSink.d.ts +17 -0
- package/dist/search/RdfSearchIntentSink.js +46 -0
- package/dist/search/RdfSearchIntentSink.jsonld +47 -0
- package/dist/search/RdfSearchReconciliationRepository.d.ts +81 -0
- package/dist/search/RdfSearchReconciliationRepository.js +771 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.d.ts +15 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +48 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.jsonld +99 -0
- package/dist/solidfs/RdfIndexSolidFsSyncer.js +22 -4
- package/dist/solidfs/SolidFsSyncJournal.d.ts +7 -1
- package/dist/solidfs/SolidFsSyncJournal.js +20 -5
- package/dist/solidfs/SolidFsSyncJournal.jsonld +43 -0
- package/dist/solidfs/index.d.ts +1 -0
- package/dist/solidfs/index.js +1 -0
- package/dist/storage/SparqlUpdateResourceStore.js +3 -3
- package/dist/storage/accessors/MixDataAccessor.d.ts +21 -29
- package/dist/storage/accessors/MixDataAccessor.js +182 -399
- package/dist/storage/accessors/MixDataAccessor.jsonld +109 -87
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +12 -8
- package/dist/storage/accessors/SolidRdfDataAccessor.js +189 -59
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +14 -29
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.d.ts +55 -0
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.js +519 -0
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.jsonld +314 -0
- package/dist/storage/rdf/PostgresRdfEngine.d.ts +3 -1
- package/dist/storage/rdf/PostgresRdfEngine.js +111 -74
- package/dist/storage/rdf/PostgresRdfEngine.jsonld +12 -22
- package/dist/storage/rdf/PostgresRdfSchemaValidation.d.ts +8 -0
- package/dist/storage/rdf/PostgresRdfSchemaValidation.js +82 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +6 -3
- package/dist/storage/rdf/PostgresRdfTextIndex.js +158 -80
- package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +16 -4
- package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +4 -5
- package/dist/storage/rdf/PostgresRdfVectorIndex.js +124 -120
- package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +14 -18
- package/dist/storage/rdf/QleverSparqlEngine.d.ts +35 -0
- package/dist/storage/rdf/QleverSparqlEngine.js +185 -0
- package/dist/storage/rdf/QleverSparqlEngine.jsonld +70 -0
- package/dist/storage/rdf/Rdf3xIndex.js +20 -16
- package/dist/storage/rdf/RdfAccessScope.d.ts +4 -0
- package/dist/storage/rdf/RdfAccessScope.js +74 -9
- package/dist/storage/rdf/RdfAccessScope.jsonld +16 -0
- package/dist/storage/rdf/RdfEngineRdfJsSource.d.ts +14 -0
- package/dist/storage/rdf/RdfEngineRdfJsSource.js +179 -0
- package/dist/storage/rdf/RdfQuadIndex.d.ts +13 -14
- package/dist/storage/rdf/RdfQuadIndex.js +286 -99
- package/dist/storage/rdf/RdfQuadIndex.jsonld +10 -22
- package/dist/storage/rdf/RdfQueryExecutor.js +10 -4
- package/dist/storage/rdf/RdfQuerySparqlEngine.d.ts +33 -0
- package/dist/storage/rdf/RdfQuerySparqlEngine.js +215 -0
- package/dist/storage/rdf/RdfQuerySparqlEngine.jsonld +78 -0
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +0 -4
- package/dist/storage/rdf/RdfSparqlAdapter.js +75 -173
- package/dist/storage/rdf/RdfSparqlBoundary.d.ts +37 -0
- package/dist/storage/rdf/RdfSparqlBoundary.js +247 -0
- package/dist/storage/rdf/RdfSparqlSerialization.d.ts +3 -0
- package/dist/storage/rdf/RdfSparqlSerialization.js +19 -0
- package/dist/storage/rdf/RdfSqliteConnection.d.ts +7 -0
- package/dist/storage/rdf/RdfSqliteConnection.js +23 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +0 -8
- package/dist/storage/rdf/RdfTermDictionary.js +0 -136
- package/dist/storage/rdf/RdfTermDictionary.jsonld +0 -32
- package/dist/storage/rdf/RdfTermSemantics.d.ts +6 -0
- package/dist/storage/rdf/RdfTermSemantics.js +29 -0
- package/dist/storage/rdf/RdfTextIndex.d.ts +5 -6
- package/dist/storage/rdf/RdfTextIndex.js +187 -115
- package/dist/storage/rdf/RdfTextIndex.jsonld +10 -14
- package/dist/storage/rdf/RdfVectorIndex.d.ts +4 -4
- package/dist/storage/rdf/RdfVectorIndex.js +156 -233
- package/dist/storage/rdf/RdfVectorIndex.jsonld +10 -14
- package/dist/storage/rdf/SolidRdfEngine.d.ts +16 -21
- package/dist/storage/rdf/SolidRdfEngine.js +28 -308
- package/dist/storage/rdf/SolidRdfEngine.jsonld +26 -148
- package/dist/storage/rdf/XpodComunicaQueryEngine.d.ts +10 -0
- package/dist/storage/rdf/XpodComunicaQueryEngine.js +72 -0
- package/dist/storage/rdf/index.d.ts +7 -6
- package/dist/storage/rdf/index.js +17 -12
- package/dist/storage/rdf/models-benchmark.d.ts +5 -1
- package/dist/storage/rdf/models-benchmark.js +17 -19
- package/dist/storage/rdf/types.d.ts +68 -6
- package/dist/storage/rdf/types.jsonld +69 -0
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +13 -7
- package/dist/storage/sparql/SubgraphQueryEngine.js +6 -6
- package/dist/storage/vector/index.d.ts +0 -1
- package/dist/storage/vector/index.js +0 -1
- package/dist/terminal/AclPermissionService.d.ts +4 -5
- package/dist/terminal/AclPermissionService.js +55 -75
- package/dist/terminal/TerminalSessionManager.d.ts +3 -2
- package/dist/terminal/TerminalSessionManager.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +29 -26
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +9 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +6 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +13 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +29 -26
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +9 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +6 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +14 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/package.json +5 -4
- package/package.json +22 -8
- package/static/app/assets/{index-36TJKN-3.js → index-BikOyGPu.js} +34 -34
- package/static/app/assets/inrupt-smoke.js +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +11 -11
- package/static/auth-callback/assets/{AiConfigContext-BvBdu_A3.js → AiConfigContext-iQ74JmRZ.js} +1 -1
- package/static/auth-callback/assets/{AiConfigPage-BpDw4jco.js → AiConfigPage-BBDKE1gJ.js} +1 -1
- package/static/auth-callback/assets/{DocumentProcessingPanel-BmZ_jzRr.js → DocumentProcessingPanel-D9NntIEK.js} +1 -1
- package/static/auth-callback/assets/{IndexLifecyclePanel-BfQBjN4z.js → IndexLifecyclePanel-BG07yBdA.js} +1 -1
- package/static/auth-callback/assets/{IndexSubjectPanel-BlsnatPt.js → IndexSubjectPanel-B-bUnU3G.js} +1 -1
- package/static/auth-callback/assets/{ModelAssignmentsPanel-KA6Mdndz.js → ModelAssignmentsPanel-C7I-Nqy-.js} +1 -1
- package/static/auth-callback/assets/{ModelsPage-C7jymyIY.js → ModelsPage-C2hxyrmI.js} +1 -1
- package/static/auth-callback/assets/{NetworkPage-k2ShktNm.js → NetworkPage-IGIc2q1Y.js} +1 -1
- package/static/auth-callback/assets/{PaneListHeader-mLMe_dvU.js → PaneListHeader-CebuPl_g.js} +1 -1
- package/static/auth-callback/assets/{SearchIndexingPanel-CqV9um_t.js → SearchIndexingPanel-6HnZSg00.js} +1 -1
- package/static/auth-callback/assets/{StatusSubjectPanel-BgMBTbr2.js → StatusSubjectPanel-votxBkr5.js} +1 -1
- package/static/auth-callback/assets/{StatusWorkspace-zbSyhdG2.js → StatusWorkspace-Cksl61zX.js} +1 -1
- package/static/auth-callback/assets/{SystemSettingsPage-CtW79nW6.js → SystemSettingsPage-CKZFUaZT.js} +1 -1
- package/static/auth-callback/assets/{SystemSettingsSubjectPanel-ZOPKYUtZ.js → SystemSettingsSubjectPanel-pzfUcCf4.js} +1 -1
- package/static/auth-callback/assets/{activity-BQ-CQE3O.js → activity-DQL6kZHZ.js} +1 -1
- package/static/auth-callback/assets/auth-callback-B_s8Ye5Z.css +1 -0
- package/static/auth-callback/assets/{auth-callback-Htr_CB_g.js → auth-callback-BxQMd_Mc.js} +39 -39
- package/static/auth-callback/assets/{badge-D5SGTJeO.js → badge-DvW4LUHH.js} +1 -1
- package/static/auth-callback/assets/{download-DK183Ldo.js → download-Cx_uaCR1.js} +1 -1
- package/static/auth-callback/assets/{external-link-LDHy_4bn.js → external-link-D6L6ExH1.js} +1 -1
- package/static/auth-callback/assets/{index-BWrvgHqK.js → index-BAS_hxGu.js} +1 -1
- package/static/auth-callback/assets/{index-2WmlePQ9.js → index-BmBjpCoD.js} +1 -1
- package/static/auth-callback/assets/{index-browser-DUd4E4-x.js → index-browser-pdn4D3M4.js} +1 -1
- package/static/auth-callback/assets/{key-round-ibX79Kr-.js → key-round-BTBzOggq.js} +1 -1
- package/static/auth-callback/assets/{rotate-ccw-B2_VMaiX.js → rotate-ccw-eV7Cx8sB.js} +1 -1
- package/static/auth-callback/assets/{skeleton-F4nrpycc.js → skeleton-Bg4GYgBM.js} +1 -1
- package/static/auth-callback/assets/{waypoints-DImIq93f.js → waypoints-CJbydf0B.js} +1 -1
- package/static/auth-callback/assets/{workspace-layout-IVCSYU21.js → workspace-layout-C6Hh8Xf-.js} +1 -1
- package/static/auth-callback/auth-callback.html +2 -2
- package/static/dashboard/assets/{AiConfigContext-cjjfYTo9.js → AiConfigContext-BkJj28vK.js} +1 -1
- package/static/dashboard/assets/{AiConfigPage-CO0DSD_j.js → AiConfigPage-Cs9B4uyp.js} +1 -1
- package/static/dashboard/assets/{DocumentProcessingPanel-DMGnH8Oj.js → DocumentProcessingPanel-BBWmM7mS.js} +1 -1
- package/static/dashboard/assets/{IndexLifecyclePanel-DSkIOCL5.js → IndexLifecyclePanel-D5xGTT_i.js} +1 -1
- package/static/dashboard/assets/{IndexSubjectPanel-qWN_DbAp.js → IndexSubjectPanel-d-mjDthn.js} +1 -1
- package/static/dashboard/assets/{ModelAssignmentsPanel-DCf83uM3.js → ModelAssignmentsPanel-C-OLNbqf.js} +1 -1
- package/static/dashboard/assets/{ModelsPage-CMnvSrl5.js → ModelsPage-CBrLjuUn.js} +1 -1
- package/static/dashboard/assets/{NetworkPage-C8Gkwclb.js → NetworkPage-BlYk8L1z.js} +1 -1
- package/static/dashboard/assets/{PaneListHeader-BtU_8cDK.js → PaneListHeader-A5oZJQC0.js} +1 -1
- package/static/dashboard/assets/{SearchIndexingPanel-DEn12pNU.js → SearchIndexingPanel-Bs1j8ZP2.js} +1 -1
- package/static/dashboard/assets/{StatusSubjectPanel-B1_ILg2d.js → StatusSubjectPanel-Qao3orvi.js} +1 -1
- package/static/dashboard/assets/{StatusWorkspace-BG6nMNCo.js → StatusWorkspace-rDM0yDtk.js} +1 -1
- package/static/dashboard/assets/{SystemSettingsPage-BnWYIXaM.js → SystemSettingsPage-FPRPkKaR.js} +1 -1
- package/static/dashboard/assets/{SystemSettingsSubjectPanel-C_mYVPWb.js → SystemSettingsSubjectPanel-CjlJAxnX.js} +1 -1
- package/static/dashboard/assets/{activity-DYJ7PdRl.js → activity-CJ5K6hYC.js} +1 -1
- package/static/dashboard/assets/{badge-BIaZco1P.js → badge-L-NMOi1P.js} +1 -1
- package/static/dashboard/assets/dashboard-B_s8Ye5Z.css +1 -0
- package/static/dashboard/assets/{dashboard-Dl40_MEa.js → dashboard-DyjAyYxx.js} +34 -34
- package/static/dashboard/assets/{download-By16k9VK.js → download-Bi4u5K5B.js} +1 -1
- package/static/dashboard/assets/{external-link-B92xOG_d.js → external-link-jmhLDfvT.js} +1 -1
- package/static/dashboard/assets/{index-BajZpJ48.js → index-BoaGJBxf.js} +1 -1
- package/static/dashboard/assets/{index-wsVPom_x.js → index-C22TAEi4.js} +1 -1
- package/static/dashboard/assets/{key-round-Clo5FOwA.js → key-round-Dk1VmMrn.js} +1 -1
- package/static/dashboard/assets/{rotate-ccw-smWSfi1L.js → rotate-ccw-DIfLsSwi.js} +1 -1
- package/static/dashboard/assets/{skeleton-BrTaGeJw.js → skeleton-BGPJMHb-.js} +1 -1
- package/static/dashboard/assets/{waypoints-DGPQInE7.js → waypoints-CY53egpu.js} +1 -1
- package/static/dashboard/assets/{workspace-layout-CPU4XRmb.js → workspace-layout-CoHkcx70.js} +1 -1
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/{AiConfigContext-CT29_OyW.js → AiConfigContext-BcEPlEJe.js} +1 -1
- package/static/settings/assets/{AiConfigPage-WIE95S28.js → AiConfigPage-D-t3ZUhg.js} +1 -1
- package/static/settings/assets/{DocumentProcessingPanel-KG8Sq999.js → DocumentProcessingPanel-m2SasiMO.js} +1 -1
- package/static/settings/assets/{IndexLifecyclePanel-iKvtHDXY.js → IndexLifecyclePanel-BNmAvx8V.js} +1 -1
- package/static/settings/assets/{IndexSubjectPanel-BQdSCkk4.js → IndexSubjectPanel-C5-L2AcW.js} +1 -1
- package/static/settings/assets/{ModelAssignmentsPanel-P8QcVB0F.js → ModelAssignmentsPanel-Cfpkf02Y.js} +1 -1
- package/static/settings/assets/{ModelsPage-UZkZGqor.js → ModelsPage-DZrACwVN.js} +1 -1
- package/static/settings/assets/{NetworkPage-Dcpcvg15.js → NetworkPage-BlrGGfqL.js} +1 -1
- package/static/settings/assets/{PaneListHeader--gHtZws5.js → PaneListHeader-C3TCs1RI.js} +1 -1
- package/static/settings/assets/{SearchIndexingPanel-DdgJSJYQ.js → SearchIndexingPanel-Cyp3CUzX.js} +1 -1
- package/static/settings/assets/{StatusSubjectPanel-UOxp_XVL.js → StatusSubjectPanel-gRkb8WEX.js} +1 -1
- package/static/settings/assets/{StatusWorkspace-CPNXuD12.js → StatusWorkspace-Dptx4Ec2.js} +1 -1
- package/static/settings/assets/{SystemSettingsPage-B6ySeVPw.js → SystemSettingsPage-BWgGUQbs.js} +1 -1
- package/static/settings/assets/{SystemSettingsSubjectPanel-I7zWmpiI.js → SystemSettingsSubjectPanel-VflUvpgC.js} +1 -1
- package/static/settings/assets/{activity-CFhmzahP.js → activity-D7iNhTkQ.js} +1 -1
- package/static/settings/assets/{badge-BBdUc5B-.js → badge-DO0r_RT4.js} +1 -1
- package/static/settings/assets/{download-WJE9-yxQ.js → download-CsJlNSbd.js} +1 -1
- package/static/settings/assets/{external-link-RKoYyCp_.js → external-link-BCR7SHme.js} +1 -1
- package/static/settings/assets/{index-Bq2o0Bif.js → index-Cgq16ekN.js} +1 -1
- package/static/settings/assets/{index-DvxneI5O.js → index-SrhQvcrU.js} +1 -1
- package/static/settings/assets/{index-browser-Qmo6EsFT.js → index-browser-THpcMCnz.js} +1 -1
- package/static/settings/assets/{key-round-r-D9sQUK.js → key-round-Dd3jk1BT.js} +1 -1
- package/static/settings/assets/{rotate-ccw-D3IIhbPH.js → rotate-ccw-tiL14i1d.js} +1 -1
- package/static/settings/assets/settings-B_s8Ye5Z.css +1 -0
- package/static/settings/assets/{settings-D8oDBXWg.js → settings-CVLDPejo.js} +34 -34
- package/static/settings/assets/{skeleton-DrL4RQuw.js → skeleton-DBxLuNgU.js} +1 -1
- package/static/settings/assets/{waypoints-C5sRhpJw.js → waypoints-DS3e3hv7.js} +1 -1
- package/static/settings/assets/{workspace-layout-B4ALmWsM.js → workspace-layout-mucrxyTK.js} +1 -1
- package/static/settings/settings.html +2 -2
- package/config/search.json +0 -66
- package/dist/document/HeadingChunker.jsonld +0 -41
- package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +0 -124
- package/dist/security/secret-cell/SecretCellVault.jsonld +0 -207
- package/dist/storage/PostgresDerivedIndexJournal.d.ts +0 -47
- package/dist/storage/PostgresDerivedIndexJournal.js +0 -408
- package/dist/storage/PostgresDerivedIndexJournal.jsonld +0 -303
- package/dist/storage/RdfDerivedIndexingListener.d.ts +0 -32
- package/dist/storage/RdfDerivedIndexingListener.js +0 -135
- package/dist/storage/RdfDerivedIndexingListener.jsonld +0 -228
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +0 -148
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +0 -436
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -172
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +0 -102
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +0 -474
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +0 -192
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +0 -486
- package/dist/storage/rdf/ShadowRdfQuintStore.d.ts +0 -59
- package/dist/storage/rdf/ShadowRdfQuintStore.js +0 -216
- package/dist/storage/rdf/ShadowRdfQuintStore.jsonld +0 -312
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +0 -107
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +0 -1117
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +0 -312
- package/dist/storage/sparql/AlgebraUtils.d.ts +0 -48
- package/dist/storage/sparql/AlgebraUtils.js +0 -118
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +0 -37
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +0 -96
- package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +0 -123
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +0 -36
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +0 -124
- package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +0 -59
- package/dist/storage/sparql/ComunicaOptimizedEngine.js +0 -254
- package/dist/storage/sparql/ComunicaQuintEngine.d.ts +0 -143
- package/dist/storage/sparql/ComunicaQuintEngine.js +0 -781
- package/dist/storage/sparql/ExpressionEvaluator.d.ts +0 -54
- package/dist/storage/sparql/ExpressionEvaluator.js +0 -340
- package/dist/storage/sparql/FilterPushdownExtractor.d.ts +0 -74
- package/dist/storage/sparql/FilterPushdownExtractor.js +0 -421
- package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +0 -65
- package/dist/storage/sparql/OptimizedQuadstoreEngine.js +0 -327
- package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +0 -46
- package/dist/storage/sparql/OptimizedQuadstoreSource.js +0 -118
- package/dist/storage/sparql/PatternBuilder.d.ts +0 -41
- package/dist/storage/sparql/PatternBuilder.js +0 -118
- package/dist/storage/sparql/QueryOptimizer.d.ts +0 -125
- package/dist/storage/sparql/QueryOptimizer.js +0 -375
- package/dist/storage/sparql/QuintEngine.d.ts +0 -92
- package/dist/storage/sparql/QuintEngine.js +0 -150
- package/dist/storage/sparql/QuintQuerySource.d.ts +0 -241
- package/dist/storage/sparql/QuintQuerySource.js +0 -1069
- package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +0 -40
- package/dist/storage/sparql/SimpleSparqlExecutor.js +0 -131
- package/dist/storage/vector/VectorIndexingListener.d.ts +0 -114
- package/dist/storage/vector/VectorIndexingListener.js +0 -346
- package/static/auth-callback/assets/auth-callback-rWdEQY5f.css +0 -1
- package/static/dashboard/assets/dashboard-rWdEQY5f.css +0 -1
- package/static/settings/assets/settings-rWdEQY5f.css +0 -1
|
@@ -5,8 +5,26 @@ const pglite_1 = require("@electric-sql/pglite");
|
|
|
5
5
|
const PostgresPoolManager_1 = require("../database/PostgresPoolManager");
|
|
6
6
|
const RdfSearchSourceFilter_1 = require("./RdfSearchSourceFilter");
|
|
7
7
|
const PostgresRdfSqlExecutor_1 = require("./PostgresRdfSqlExecutor");
|
|
8
|
+
const PostgresRdfSchemaValidation_1 = require("./PostgresRdfSchemaValidation");
|
|
8
9
|
const RdfTextIndex_1 = require("./RdfTextIndex");
|
|
9
10
|
const PG_NATIVE_FTS_BACKEND_VERSION = 1;
|
|
11
|
+
const PG_RDF_TEXT_SCHEMA_LOCK_KEY = 2026072901;
|
|
12
|
+
const PG_RDF_TEXT_DOMAIN_TABLES = [
|
|
13
|
+
'rdf_text_metadata',
|
|
14
|
+
'rdf_text_sources',
|
|
15
|
+
'rdf_text_rebuild_status',
|
|
16
|
+
'rdf_text_chunks',
|
|
17
|
+
'rdf_text_terms',
|
|
18
|
+
'rdf_text_entities',
|
|
19
|
+
];
|
|
20
|
+
const PG_RDF_TEXT_REQUIRED_COLUMNS = {
|
|
21
|
+
rdf_text_metadata: ['key', 'value'],
|
|
22
|
+
rdf_text_sources: ['id', 'source_key', 'source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'updated_at'],
|
|
23
|
+
rdf_text_rebuild_status: ['source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'status', 'reason', 'message', 'updated_at'],
|
|
24
|
+
rdf_text_chunks: ['id', 'source_id', 'chunk_key', 'retrieval_kind', 'ordinal', 'level', 'heading', 'path', 'content', 'start_offset', 'end_offset', 'normalized_text', 'token_count', 'updated_at'],
|
|
25
|
+
rdf_text_terms: ['id', 'term', 'source_id', 'chunk_id', 'occurrences', 'updated_at'],
|
|
26
|
+
rdf_text_entities: ['id', 'entity', 'source_id', 'chunk_id', 'predicate', 'label', 'value', 'datatype', 'language', 'policy_role', 'occurrences', 'updated_at'],
|
|
27
|
+
};
|
|
10
28
|
class PostgresRdfTextIndex {
|
|
11
29
|
constructor(options = {}) {
|
|
12
30
|
this.executor = null;
|
|
@@ -50,7 +68,10 @@ class PostgresRdfTextIndex {
|
|
|
50
68
|
await this.requireExecutor().exec('DELETE FROM rdf_text_rebuild_status; DELETE FROM rdf_text_entities; DELETE FROM rdf_text_terms; DELETE FROM rdf_text_chunks; DELETE FROM rdf_text_sources;');
|
|
51
69
|
}
|
|
52
70
|
async schemaVersion() {
|
|
53
|
-
|
|
71
|
+
return await this.readSchemaVersion(this.requireExecutor());
|
|
72
|
+
}
|
|
73
|
+
async readSchemaVersion(executor) {
|
|
74
|
+
const row = await executor
|
|
54
75
|
.query("SELECT value FROM rdf_text_metadata WHERE key = 'schema_version'");
|
|
55
76
|
return Number(row[0]?.value ?? 0) || 0;
|
|
56
77
|
}
|
|
@@ -59,6 +80,34 @@ class PostgresRdfTextIndex {
|
|
|
59
80
|
.query('SELECT * FROM rdf_text_sources WHERE source = $1', [source]);
|
|
60
81
|
return rows[0] ? rdfTextSourceMetadata(rows[0]) : undefined;
|
|
61
82
|
}
|
|
83
|
+
async listSources(options = {}) {
|
|
84
|
+
const conditions = [];
|
|
85
|
+
const params = [];
|
|
86
|
+
if (options.workspace) {
|
|
87
|
+
params.push(options.workspace);
|
|
88
|
+
conditions.push(`workspace = $${params.length}`);
|
|
89
|
+
}
|
|
90
|
+
if (options.sourcePrefix) {
|
|
91
|
+
params.push(options.sourcePrefix);
|
|
92
|
+
conditions.push(`source >= $${params.length}`);
|
|
93
|
+
params.push(`${options.sourcePrefix}\uffff`);
|
|
94
|
+
conditions.push(`source < $${params.length}`);
|
|
95
|
+
}
|
|
96
|
+
params.push(normalizeSourceListLimit(options.limit));
|
|
97
|
+
const limitPlaceholder = `$${params.length}`;
|
|
98
|
+
params.push(normalizeSourceListOffset(options.offset));
|
|
99
|
+
const offsetPlaceholder = `$${params.length}`;
|
|
100
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
101
|
+
const rows = await this.requireExecutor().query(`
|
|
102
|
+
SELECT *
|
|
103
|
+
FROM rdf_text_sources
|
|
104
|
+
${where}
|
|
105
|
+
ORDER BY source ASC
|
|
106
|
+
LIMIT ${limitPlaceholder}
|
|
107
|
+
OFFSET ${offsetPlaceholder}
|
|
108
|
+
`, params);
|
|
109
|
+
return rows.map(rdfTextSourceMetadata);
|
|
110
|
+
}
|
|
62
111
|
async recordRebuildStatus(input) {
|
|
63
112
|
await this.requireExecutor().exec(`
|
|
64
113
|
INSERT INTO rdf_text_rebuild_status (
|
|
@@ -191,6 +240,10 @@ class PostgresRdfTextIndex {
|
|
|
191
240
|
return 0;
|
|
192
241
|
}
|
|
193
242
|
const oldId = Number(oldRow.id);
|
|
243
|
+
const sourceKey = oldRow.source_key;
|
|
244
|
+
if (next.sourceKey && next.sourceKey !== sourceKey) {
|
|
245
|
+
throw new Error(`RDF text source key mismatch for source ${oldSource}: expected ${sourceKey}, got ${next.sourceKey}`);
|
|
246
|
+
}
|
|
194
247
|
const countRows = await tx.query('SELECT COUNT(*) AS count FROM rdf_text_chunks WHERE source_id = $1', [oldId]);
|
|
195
248
|
const targetRows = await tx.query('SELECT * FROM rdf_text_sources WHERE source = $1', [next.source]);
|
|
196
249
|
const targetRow = targetRows[0];
|
|
@@ -214,13 +267,13 @@ class PostgresRdfTextIndex {
|
|
|
214
267
|
updated_at = now()
|
|
215
268
|
WHERE id = $8
|
|
216
269
|
`, [
|
|
217
|
-
|
|
270
|
+
sourceKey,
|
|
218
271
|
next.source,
|
|
219
272
|
next.workspace,
|
|
220
273
|
next.localPath ?? null,
|
|
221
274
|
next.contentType ?? null,
|
|
222
275
|
next.sourceVersion ?? null,
|
|
223
|
-
next.sourceHash ?? null,
|
|
276
|
+
next.sourceHash ?? oldRow.source_hash ?? null,
|
|
224
277
|
oldId,
|
|
225
278
|
]);
|
|
226
279
|
await tx.exec(`
|
|
@@ -240,7 +293,7 @@ class PostgresRdfTextIndex {
|
|
|
240
293
|
next.localPath ?? null,
|
|
241
294
|
next.contentType ?? null,
|
|
242
295
|
next.sourceVersion ?? null,
|
|
243
|
-
next.sourceHash ?? null,
|
|
296
|
+
next.sourceHash ?? oldRow.source_hash ?? null,
|
|
244
297
|
oldSource,
|
|
245
298
|
]);
|
|
246
299
|
return Math.max(Number(countRows[0]?.count ?? 0), 1);
|
|
@@ -391,6 +444,39 @@ class PostgresRdfTextIndex {
|
|
|
391
444
|
const entities = await this.entitiesForChunks(normalizedRows.map((result) => result.row.id));
|
|
392
445
|
return normalizedRows.map((result) => toSearchResult(result.row, query, result.score, entities.get(result.row.id) ?? []));
|
|
393
446
|
}
|
|
447
|
+
async listSourceChunks(sourceKey) {
|
|
448
|
+
const rows = await this.requireExecutor().query(`
|
|
449
|
+
SELECT
|
|
450
|
+
chunk.id,
|
|
451
|
+
chunk.source_id,
|
|
452
|
+
source.source_key,
|
|
453
|
+
source.source,
|
|
454
|
+
source.workspace,
|
|
455
|
+
source.local_path,
|
|
456
|
+
source.content_type,
|
|
457
|
+
source.source_version,
|
|
458
|
+
source.source_hash,
|
|
459
|
+
chunk.chunk_key,
|
|
460
|
+
chunk.retrieval_kind,
|
|
461
|
+
chunk.ordinal,
|
|
462
|
+
chunk.level,
|
|
463
|
+
chunk.heading,
|
|
464
|
+
chunk.path,
|
|
465
|
+
chunk.content,
|
|
466
|
+
chunk.start_offset,
|
|
467
|
+
chunk.end_offset,
|
|
468
|
+
chunk.normalized_text,
|
|
469
|
+
chunk.token_count,
|
|
470
|
+
0 AS score
|
|
471
|
+
FROM rdf_text_chunks chunk
|
|
472
|
+
JOIN rdf_text_sources source ON source.id = chunk.source_id
|
|
473
|
+
WHERE source.source_key = $1 OR source.source = $1
|
|
474
|
+
ORDER BY source.source ASC, chunk.ordinal ASC, chunk.chunk_key ASC
|
|
475
|
+
`, [sourceKey]);
|
|
476
|
+
const normalizedRows = rows.map((row) => normalizeTextChunkRow(row));
|
|
477
|
+
const entities = await this.entitiesForChunks(normalizedRows.map((row) => row.id));
|
|
478
|
+
return normalizedRows.map((row) => toSearchResult(row, '', 0, entities.get(row.id) ?? []));
|
|
479
|
+
}
|
|
394
480
|
async estimateSearchCardinality(options) {
|
|
395
481
|
const query = (0, RdfTextIndex_1.normalizeRdfText)(options.query);
|
|
396
482
|
const entityFilter = normalizeEntityFilter(options.entities);
|
|
@@ -628,15 +714,24 @@ class PostgresRdfTextIndex {
|
|
|
628
714
|
await this.initializeSchema();
|
|
629
715
|
}
|
|
630
716
|
async initializeSchema() {
|
|
631
|
-
await this.requireExecutor().
|
|
632
|
-
|
|
717
|
+
await this.requireExecutor().transaction(async (executor) => {
|
|
718
|
+
await executor.exec('SELECT pg_advisory_xact_lock($1)', [PG_RDF_TEXT_SCHEMA_LOCK_KEY]);
|
|
719
|
+
if (await (0, PostgresRdfSchemaValidation_1.pgHasAnyDomainTable)(executor, PG_RDF_TEXT_DOMAIN_TABLES)) {
|
|
720
|
+
await this.validateSchema(executor);
|
|
721
|
+
if (this.nativeFtsEnabled()) {
|
|
722
|
+
await this.validateNativeFtsSchema(executor);
|
|
723
|
+
}
|
|
724
|
+
return;
|
|
725
|
+
}
|
|
726
|
+
await executor.exec(`
|
|
727
|
+
CREATE TABLE rdf_text_metadata (
|
|
633
728
|
key TEXT PRIMARY KEY,
|
|
634
729
|
value TEXT NOT NULL
|
|
635
730
|
);
|
|
636
731
|
|
|
637
|
-
CREATE TABLE
|
|
732
|
+
CREATE TABLE rdf_text_sources (
|
|
638
733
|
id BIGSERIAL PRIMARY KEY,
|
|
639
|
-
source_key TEXT,
|
|
734
|
+
source_key TEXT NOT NULL UNIQUE,
|
|
640
735
|
source TEXT NOT NULL UNIQUE,
|
|
641
736
|
workspace TEXT NOT NULL,
|
|
642
737
|
local_path TEXT,
|
|
@@ -646,7 +741,7 @@ class PostgresRdfTextIndex {
|
|
|
646
741
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
647
742
|
);
|
|
648
743
|
|
|
649
|
-
CREATE TABLE
|
|
744
|
+
CREATE TABLE rdf_text_rebuild_status (
|
|
650
745
|
source TEXT PRIMARY KEY,
|
|
651
746
|
workspace TEXT NOT NULL,
|
|
652
747
|
local_path TEXT,
|
|
@@ -659,7 +754,7 @@ class PostgresRdfTextIndex {
|
|
|
659
754
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
660
755
|
);
|
|
661
756
|
|
|
662
|
-
CREATE TABLE
|
|
757
|
+
CREATE TABLE rdf_text_chunks (
|
|
663
758
|
id BIGSERIAL PRIMARY KEY,
|
|
664
759
|
source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,
|
|
665
760
|
chunk_key TEXT NOT NULL,
|
|
@@ -677,7 +772,7 @@ class PostgresRdfTextIndex {
|
|
|
677
772
|
UNIQUE (source_id, chunk_key)
|
|
678
773
|
);
|
|
679
774
|
|
|
680
|
-
CREATE TABLE
|
|
775
|
+
CREATE TABLE rdf_text_terms (
|
|
681
776
|
id BIGSERIAL PRIMARY KEY,
|
|
682
777
|
term TEXT NOT NULL CHECK (length(term) <= ${RdfTextIndex_1.RDF_TEXT_TERM_MAX_INDEX_LENGTH}),
|
|
683
778
|
source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,
|
|
@@ -687,7 +782,7 @@ class PostgresRdfTextIndex {
|
|
|
687
782
|
UNIQUE (term, chunk_id)
|
|
688
783
|
);
|
|
689
784
|
|
|
690
|
-
CREATE TABLE
|
|
785
|
+
CREATE TABLE rdf_text_entities (
|
|
691
786
|
id BIGSERIAL PRIMARY KEY,
|
|
692
787
|
entity TEXT NOT NULL,
|
|
693
788
|
source_id BIGINT NOT NULL REFERENCES rdf_text_sources(id) ON DELETE CASCADE,
|
|
@@ -702,40 +797,29 @@ class PostgresRdfTextIndex {
|
|
|
702
797
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
703
798
|
);
|
|
704
799
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
CREATE INDEX
|
|
714
|
-
CREATE INDEX
|
|
715
|
-
CREATE INDEX
|
|
716
|
-
CREATE INDEX IF NOT EXISTS rdf_text_sources_workspace_local_path ON rdf_text_sources(workspace, local_path);
|
|
717
|
-
CREATE INDEX IF NOT EXISTS rdf_text_chunks_source ON rdf_text_chunks(source_id, ordinal);
|
|
718
|
-
DELETE FROM rdf_text_terms WHERE length(term) > ${RdfTextIndex_1.RDF_TEXT_TERM_MAX_INDEX_LENGTH};
|
|
719
|
-
CREATE INDEX IF NOT EXISTS rdf_text_terms_term ON rdf_text_terms(term);
|
|
720
|
-
CREATE INDEX IF NOT EXISTS rdf_text_terms_source_term ON rdf_text_terms(source_id, term);
|
|
721
|
-
CREATE INDEX IF NOT EXISTS rdf_text_terms_chunk ON rdf_text_terms(chunk_id);
|
|
722
|
-
CREATE INDEX IF NOT EXISTS rdf_text_entities_entity ON rdf_text_entities(entity);
|
|
723
|
-
CREATE INDEX IF NOT EXISTS rdf_text_entities_source_entity ON rdf_text_entities(source_id, entity);
|
|
724
|
-
CREATE INDEX IF NOT EXISTS rdf_text_entities_chunk ON rdf_text_entities(chunk_id);
|
|
800
|
+
CREATE INDEX rdf_text_sources_workspace ON rdf_text_sources(workspace);
|
|
801
|
+
CREATE INDEX rdf_text_sources_source ON rdf_text_sources(source);
|
|
802
|
+
CREATE INDEX rdf_text_sources_local_path ON rdf_text_sources(local_path);
|
|
803
|
+
CREATE INDEX rdf_text_sources_workspace_local_path ON rdf_text_sources(workspace, local_path);
|
|
804
|
+
CREATE INDEX rdf_text_chunks_source ON rdf_text_chunks(source_id, ordinal);
|
|
805
|
+
CREATE INDEX rdf_text_terms_term ON rdf_text_terms(term);
|
|
806
|
+
CREATE INDEX rdf_text_terms_source_term ON rdf_text_terms(source_id, term);
|
|
807
|
+
CREATE INDEX rdf_text_terms_chunk ON rdf_text_terms(chunk_id);
|
|
808
|
+
CREATE INDEX rdf_text_entities_entity ON rdf_text_entities(entity);
|
|
809
|
+
CREATE INDEX rdf_text_entities_source_entity ON rdf_text_entities(source_id, entity);
|
|
810
|
+
CREATE INDEX rdf_text_entities_chunk ON rdf_text_entities(chunk_id);
|
|
725
811
|
|
|
726
812
|
INSERT INTO rdf_text_metadata (key, value)
|
|
727
|
-
VALUES ('schema_version', '${RdfTextIndex_1.RDF_TEXT_SCHEMA_VERSION}')
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
await this.backfillNativeFtsRows();
|
|
734
|
-
}
|
|
813
|
+
VALUES ('schema_version', '${RdfTextIndex_1.RDF_TEXT_SCHEMA_VERSION}');
|
|
814
|
+
`);
|
|
815
|
+
if (this.nativeFtsEnabled()) {
|
|
816
|
+
await this.initializeNativeFtsSchema(executor);
|
|
817
|
+
}
|
|
818
|
+
});
|
|
735
819
|
}
|
|
736
|
-
async initializeNativeFtsSchema() {
|
|
737
|
-
await
|
|
738
|
-
CREATE TABLE
|
|
820
|
+
async initializeNativeFtsSchema(executor) {
|
|
821
|
+
await executor.exec(`
|
|
822
|
+
CREATE TABLE rdf_text_fts_pg (
|
|
739
823
|
chunk_id BIGINT PRIMARY KEY REFERENCES rdf_text_chunks(id) ON DELETE CASCADE,
|
|
740
824
|
backend_version INTEGER NOT NULL,
|
|
741
825
|
config REGCONFIG NOT NULL,
|
|
@@ -744,48 +828,26 @@ class PostgresRdfTextIndex {
|
|
|
744
828
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
745
829
|
);
|
|
746
830
|
|
|
747
|
-
CREATE INDEX
|
|
831
|
+
CREATE INDEX rdf_text_fts_pg_vector_gin
|
|
748
832
|
ON rdf_text_fts_pg USING GIN (fts_vector);
|
|
749
833
|
|
|
750
|
-
CREATE INDEX
|
|
834
|
+
CREATE INDEX rdf_text_fts_pg_config
|
|
751
835
|
ON rdf_text_fts_pg (backend_version, config);
|
|
752
836
|
`);
|
|
753
837
|
}
|
|
754
|
-
async
|
|
755
|
-
const
|
|
756
|
-
|
|
757
|
-
FROM rdf_text_chunks chunk
|
|
758
|
-
LEFT JOIN rdf_text_terms term ON term.chunk_id = chunk.id
|
|
759
|
-
WHERE term.chunk_id IS NULL AND chunk.normalized_text <> ''
|
|
760
|
-
`);
|
|
761
|
-
if (rows.length === 0) {
|
|
762
|
-
return;
|
|
838
|
+
async validateSchema(executor = this.requireExecutor()) {
|
|
839
|
+
for (const table of PG_RDF_TEXT_DOMAIN_TABLES) {
|
|
840
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgRequiredColumns)(executor, table, PG_RDF_TEXT_REQUIRED_COLUMNS[table], 'text');
|
|
763
841
|
}
|
|
764
|
-
await this.
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
}
|
|
768
|
-
});
|
|
769
|
-
}
|
|
770
|
-
async backfillNativeFtsRows() {
|
|
771
|
-
const rows = await this.requireExecutor().query(`
|
|
772
|
-
SELECT chunk.id, chunk.heading, chunk.path, chunk.content
|
|
773
|
-
FROM rdf_text_chunks chunk
|
|
774
|
-
LEFT JOIN rdf_text_fts_pg fts ON fts.chunk_id = chunk.id
|
|
775
|
-
WHERE fts.chunk_id IS NULL OR fts.backend_version <> $1
|
|
776
|
-
`, [PG_NATIVE_FTS_BACKEND_VERSION]);
|
|
777
|
-
if (rows.length === 0) {
|
|
778
|
-
return;
|
|
842
|
+
const version = await this.readSchemaVersion(executor);
|
|
843
|
+
if (version !== RdfTextIndex_1.RDF_TEXT_SCHEMA_VERSION) {
|
|
844
|
+
throw new Error(`Unsupported PostgreSQL RDF text index schema version: expected ${RdfTextIndex_1.RDF_TEXT_SCHEMA_VERSION}, got ${version}`);
|
|
779
845
|
}
|
|
780
|
-
await
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
content: row.content,
|
|
786
|
-
});
|
|
787
|
-
}
|
|
788
|
-
});
|
|
846
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgNotNullColumn)(executor, 'rdf_text_sources', 'source_key', 'text');
|
|
847
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgUniqueColumn)(executor, 'rdf_text_sources', 'source_key', 'text');
|
|
848
|
+
}
|
|
849
|
+
async validateNativeFtsSchema(executor = this.requireExecutor()) {
|
|
850
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgRequiredColumns)(executor, 'rdf_text_fts_pg', ['chunk_id', 'backend_version', 'config', 'projection_hash', 'fts_vector', 'updated_at'], 'text');
|
|
789
851
|
}
|
|
790
852
|
nativeFtsEnabled() {
|
|
791
853
|
return this.options.textSearchBackend === 'pg-native-fts' || this.options.textSearchBackend === 'auto';
|
|
@@ -794,6 +856,11 @@ class PostgresRdfTextIndex {
|
|
|
794
856
|
return this.nativeFtsEnabled() && Boolean(query) && !containsNoSpaceCjk(query);
|
|
795
857
|
}
|
|
796
858
|
async upsertSource(tx, source) {
|
|
859
|
+
const existing = await tx.query('SELECT * FROM rdf_text_sources WHERE source = $1', [source.source]);
|
|
860
|
+
if (existing[0] && source.sourceKey && existing[0].source_key !== source.sourceKey) {
|
|
861
|
+
throw new Error(`RDF text source key mismatch for source ${source.source}: expected ${existing[0].source_key}, got ${source.sourceKey}`);
|
|
862
|
+
}
|
|
863
|
+
const sourceKey = existing[0]?.source_key ?? source.sourceKey ?? source.source;
|
|
797
864
|
const rows = await tx.query(`
|
|
798
865
|
INSERT INTO rdf_text_sources (
|
|
799
866
|
source_key,
|
|
@@ -808,7 +875,6 @@ class PostgresRdfTextIndex {
|
|
|
808
875
|
VALUES ($1, $2, $3, $4, $5, $6, $7, now())
|
|
809
876
|
ON CONFLICT (source)
|
|
810
877
|
DO UPDATE SET
|
|
811
|
-
source_key = EXCLUDED.source_key,
|
|
812
878
|
workspace = EXCLUDED.workspace,
|
|
813
879
|
local_path = EXCLUDED.local_path,
|
|
814
880
|
content_type = EXCLUDED.content_type,
|
|
@@ -817,7 +883,7 @@ class PostgresRdfTextIndex {
|
|
|
817
883
|
updated_at = EXCLUDED.updated_at
|
|
818
884
|
RETURNING id
|
|
819
885
|
`, [
|
|
820
|
-
|
|
886
|
+
sourceKey,
|
|
821
887
|
source.source,
|
|
822
888
|
source.workspace,
|
|
823
889
|
source.localPath ?? null,
|
|
@@ -1226,6 +1292,18 @@ function rdfTextSourceMetadata(row) {
|
|
|
1226
1292
|
updatedAt: row.updated_at,
|
|
1227
1293
|
};
|
|
1228
1294
|
}
|
|
1295
|
+
function normalizeSourceListLimit(value) {
|
|
1296
|
+
if (!value || !Number.isFinite(value) || value <= 0) {
|
|
1297
|
+
return 1_000;
|
|
1298
|
+
}
|
|
1299
|
+
return Math.min(Math.floor(value), 10_000);
|
|
1300
|
+
}
|
|
1301
|
+
function normalizeSourceListOffset(value) {
|
|
1302
|
+
if (!value || !Number.isFinite(value) || value <= 0) {
|
|
1303
|
+
return 0;
|
|
1304
|
+
}
|
|
1305
|
+
return Math.floor(value);
|
|
1306
|
+
}
|
|
1229
1307
|
function rdfTextRebuildStatus(row) {
|
|
1230
1308
|
return {
|
|
1231
1309
|
source: row.source,
|
|
@@ -300,10 +300,18 @@
|
|
|
300
300
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_schemaVersion",
|
|
301
301
|
"memberFieldName": "schemaVersion"
|
|
302
302
|
},
|
|
303
|
+
{
|
|
304
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_readSchemaVersion",
|
|
305
|
+
"memberFieldName": "readSchemaVersion"
|
|
306
|
+
},
|
|
303
307
|
{
|
|
304
308
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_sourceMetadata",
|
|
305
309
|
"memberFieldName": "sourceMetadata"
|
|
306
310
|
},
|
|
311
|
+
{
|
|
312
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_listSources",
|
|
313
|
+
"memberFieldName": "listSources"
|
|
314
|
+
},
|
|
307
315
|
{
|
|
308
316
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_recordRebuildStatus",
|
|
309
317
|
"memberFieldName": "recordRebuildStatus"
|
|
@@ -328,6 +336,10 @@
|
|
|
328
336
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_search",
|
|
329
337
|
"memberFieldName": "search"
|
|
330
338
|
},
|
|
339
|
+
{
|
|
340
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_listSourceChunks",
|
|
341
|
+
"memberFieldName": "listSourceChunks"
|
|
342
|
+
},
|
|
331
343
|
{
|
|
332
344
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_estimateSearchCardinality",
|
|
333
345
|
"memberFieldName": "estimateSearchCardinality"
|
|
@@ -361,12 +373,12 @@
|
|
|
361
373
|
"memberFieldName": "initializeNativeFtsSchema"
|
|
362
374
|
},
|
|
363
375
|
{
|
|
364
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#
|
|
365
|
-
"memberFieldName": "
|
|
376
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_validateSchema",
|
|
377
|
+
"memberFieldName": "validateSchema"
|
|
366
378
|
},
|
|
367
379
|
{
|
|
368
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#
|
|
369
|
-
"memberFieldName": "
|
|
380
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_validateNativeFtsSchema",
|
|
381
|
+
"memberFieldName": "validateNativeFtsSchema"
|
|
370
382
|
},
|
|
371
383
|
{
|
|
372
384
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfTextIndex.jsonld#PostgresRdfTextIndex__member_nativeFtsEnabled",
|
|
@@ -25,8 +25,11 @@ export declare class PostgresRdfVectorIndex implements RdfVectorIndexLike {
|
|
|
25
25
|
open(): Promise<void>;
|
|
26
26
|
close(): Promise<void>;
|
|
27
27
|
clear(): Promise<void>;
|
|
28
|
+
schemaVersion(): Promise<number>;
|
|
29
|
+
private readSchemaVersion;
|
|
28
30
|
indexVector(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): Promise<void>;
|
|
29
31
|
deleteSource(source: string): Promise<number>;
|
|
32
|
+
moveSource(oldSource: string, next: RdfVectorSourceInput): Promise<number>;
|
|
30
33
|
search(options: RdfVectorSearchOptions): Promise<RdfVectorSearchResult[]>;
|
|
31
34
|
summaryLifecycle(options?: RdfVectorSummaryLifecycleOptions): Promise<RdfVectorSummaryLifecycleEntry[]>;
|
|
32
35
|
estimateSearchCardinality(options: RdfVectorSearchOptions): Promise<RdfSearchCardinalityEstimate>;
|
|
@@ -34,12 +37,8 @@ export declare class PostgresRdfVectorIndex implements RdfVectorIndexLike {
|
|
|
34
37
|
modelDistribution(): Promise<RdfVectorModelDistribution[]>;
|
|
35
38
|
private openInternal;
|
|
36
39
|
private initializeSchema;
|
|
37
|
-
private
|
|
40
|
+
private validateSchema;
|
|
38
41
|
private ensurePgVectorSearchIndex;
|
|
39
|
-
private ensureSourceKeyColumn;
|
|
40
|
-
private ensureVectorIdentityColumns;
|
|
41
|
-
private ensureVectorChunkIdentityUniqueConstraint;
|
|
42
|
-
private backfillVectorComponents;
|
|
43
42
|
private upsertSource;
|
|
44
43
|
private estimateDatabaseBytes;
|
|
45
44
|
private requireExecutor;
|