@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
|
@@ -18,13 +18,29 @@ exports.normalizeRdfTextRetrievalKind = normalizeRdfTextRetrievalKind;
|
|
|
18
18
|
exports.rdfTextIndexBudgetSkip = rdfTextIndexBudgetSkip;
|
|
19
19
|
exports.rdfTextIndexChunkCap = rdfTextIndexChunkCap;
|
|
20
20
|
const node_crypto_1 = require("node:crypto");
|
|
21
|
-
const node_fs_1 = require("node:fs");
|
|
22
21
|
const node_path_1 = require("node:path");
|
|
23
|
-
const
|
|
22
|
+
const MarkdownRetrievalPointProjector_1 = require("../../document/MarkdownRetrievalPointProjector");
|
|
24
23
|
const SqliteRuntime_1 = require("../SqliteRuntime");
|
|
25
24
|
const RdfSearchSourceFilter_1 = require("./RdfSearchSourceFilter");
|
|
25
|
+
const RdfSqliteConnection_1 = require("./RdfSqliteConnection");
|
|
26
26
|
exports.RDF_TEXT_TERM_MAX_INDEX_LENGTH = 256;
|
|
27
|
-
exports.RDF_TEXT_SCHEMA_VERSION =
|
|
27
|
+
exports.RDF_TEXT_SCHEMA_VERSION = 3;
|
|
28
|
+
const RDF_TEXT_DOMAIN_TABLES = [
|
|
29
|
+
'rdf_text_metadata',
|
|
30
|
+
'rdf_text_sources',
|
|
31
|
+
'rdf_text_rebuild_status',
|
|
32
|
+
'rdf_text_chunks',
|
|
33
|
+
'rdf_text_terms',
|
|
34
|
+
'rdf_text_entities',
|
|
35
|
+
];
|
|
36
|
+
const RDF_TEXT_REQUIRED_COLUMNS = {
|
|
37
|
+
rdf_text_metadata: ['key', 'value'],
|
|
38
|
+
rdf_text_sources: ['id', 'source_key', 'source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'updated_at'],
|
|
39
|
+
rdf_text_rebuild_status: ['source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'status', 'reason', 'message', 'updated_at'],
|
|
40
|
+
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'],
|
|
41
|
+
rdf_text_terms: ['id', 'term', 'source_id', 'chunk_id', 'occurrences', 'updated_at'],
|
|
42
|
+
rdf_text_entities: ['id', 'entity', 'source_id', 'chunk_id', 'predicate', 'label', 'value', 'datatype', 'language', 'policy_role', 'occurrences', 'updated_at'],
|
|
43
|
+
};
|
|
28
44
|
class RdfTextIndex {
|
|
29
45
|
constructor(options) {
|
|
30
46
|
this.options = options;
|
|
@@ -35,13 +51,7 @@ class RdfTextIndex {
|
|
|
35
51
|
if (this.db) {
|
|
36
52
|
return;
|
|
37
53
|
}
|
|
38
|
-
|
|
39
|
-
const dir = (0, node_path_1.dirname)(this.options.path);
|
|
40
|
-
if (!(0, node_fs_1.existsSync)(dir)) {
|
|
41
|
-
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this.db = this.sqliteRuntime.openDatabase(this.options.path);
|
|
54
|
+
this.db = (0, RdfSqliteConnection_1.openRdfSqliteDatabase)(this.sqliteRuntime, this.options.path);
|
|
45
55
|
this.initializeSchema();
|
|
46
56
|
}
|
|
47
57
|
close() {
|
|
@@ -63,6 +73,34 @@ class RdfTextIndex {
|
|
|
63
73
|
.get(source);
|
|
64
74
|
return row ? rdfTextSourceMetadata(row) : undefined;
|
|
65
75
|
}
|
|
76
|
+
listSources(options = {}) {
|
|
77
|
+
const db = this.requireDb();
|
|
78
|
+
const conditions = [];
|
|
79
|
+
const params = [];
|
|
80
|
+
if (options.workspace) {
|
|
81
|
+
conditions.push('workspace = ?');
|
|
82
|
+
params.push(options.workspace);
|
|
83
|
+
}
|
|
84
|
+
if (options.sourcePrefix) {
|
|
85
|
+
conditions.push('source >= ? AND source < ?');
|
|
86
|
+
params.push(options.sourcePrefix, `${options.sourcePrefix}\uffff`);
|
|
87
|
+
}
|
|
88
|
+
const limit = normalizeSourceListLimit(options.limit);
|
|
89
|
+
const offset = normalizeSourceListOffset(options.offset);
|
|
90
|
+
params.push(limit, offset);
|
|
91
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
92
|
+
const rows = db
|
|
93
|
+
.prepare(`
|
|
94
|
+
SELECT *
|
|
95
|
+
FROM rdf_text_sources
|
|
96
|
+
${where}
|
|
97
|
+
ORDER BY source ASC
|
|
98
|
+
LIMIT ?
|
|
99
|
+
OFFSET ?
|
|
100
|
+
`)
|
|
101
|
+
.all(...params);
|
|
102
|
+
return rows.map(rdfTextSourceMetadata);
|
|
103
|
+
}
|
|
66
104
|
recordRebuildStatus(input) {
|
|
67
105
|
this.requireDb().prepare(`
|
|
68
106
|
INSERT INTO rdf_text_rebuild_status (
|
|
@@ -192,6 +230,10 @@ class RdfTextIndex {
|
|
|
192
230
|
if (!oldRow) {
|
|
193
231
|
return;
|
|
194
232
|
}
|
|
233
|
+
const sourceKey = oldRow.source_key;
|
|
234
|
+
if (next.sourceKey && next.sourceKey !== sourceKey) {
|
|
235
|
+
throw new Error(`RDF text source key mismatch for source ${oldSource}: expected ${sourceKey}, got ${next.sourceKey}`);
|
|
236
|
+
}
|
|
195
237
|
const chunkCount = db
|
|
196
238
|
.prepare('SELECT COUNT(*) AS count FROM rdf_text_chunks WHERE source_id = ?')
|
|
197
239
|
.get(oldRow.id)?.count ?? 0;
|
|
@@ -214,7 +256,7 @@ class RdfTextIndex {
|
|
|
214
256
|
source_hash = ?,
|
|
215
257
|
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
216
258
|
WHERE id = ?
|
|
217
|
-
`).run(
|
|
259
|
+
`).run(sourceKey, next.source, next.workspace, next.localPath ?? null, next.contentType ?? null, next.sourceVersion ?? null, next.sourceHash ?? oldRow.source_hash ?? null, oldRow.id);
|
|
218
260
|
db.prepare(`
|
|
219
261
|
UPDATE rdf_text_rebuild_status
|
|
220
262
|
SET
|
|
@@ -226,7 +268,7 @@ class RdfTextIndex {
|
|
|
226
268
|
source_hash = ?,
|
|
227
269
|
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
228
270
|
WHERE source = ?
|
|
229
|
-
`).run(next.source, next.workspace, next.localPath ?? null, next.contentType ?? null, next.sourceVersion ?? null, next.sourceHash ?? null, oldSource);
|
|
271
|
+
`).run(next.source, next.workspace, next.localPath ?? null, next.contentType ?? null, next.sourceVersion ?? null, next.sourceHash ?? oldRow.source_hash ?? null, oldSource);
|
|
230
272
|
affectedRows = Math.max(chunkCount, 1);
|
|
231
273
|
})();
|
|
232
274
|
return affectedRows;
|
|
@@ -245,6 +287,38 @@ class RdfTextIndex {
|
|
|
245
287
|
return deletedChunks;
|
|
246
288
|
})();
|
|
247
289
|
}
|
|
290
|
+
listSourceChunks(sourceKey) {
|
|
291
|
+
const rows = this.requireDb().prepare(`
|
|
292
|
+
SELECT
|
|
293
|
+
chunk.id,
|
|
294
|
+
chunk.source_id,
|
|
295
|
+
source.source_key,
|
|
296
|
+
source.source,
|
|
297
|
+
source.workspace,
|
|
298
|
+
source.local_path,
|
|
299
|
+
source.content_type,
|
|
300
|
+
source.source_version,
|
|
301
|
+
source.source_hash,
|
|
302
|
+
chunk.chunk_key,
|
|
303
|
+
chunk.retrieval_kind,
|
|
304
|
+
chunk.ordinal,
|
|
305
|
+
chunk.level,
|
|
306
|
+
chunk.heading,
|
|
307
|
+
chunk.path,
|
|
308
|
+
chunk.content,
|
|
309
|
+
chunk.start_offset,
|
|
310
|
+
chunk.end_offset,
|
|
311
|
+
chunk.normalized_text,
|
|
312
|
+
chunk.token_count,
|
|
313
|
+
chunk.updated_at
|
|
314
|
+
FROM rdf_text_chunks chunk
|
|
315
|
+
JOIN rdf_text_sources source ON source.id = chunk.source_id
|
|
316
|
+
WHERE source.source_key = ? OR source.source = ?
|
|
317
|
+
ORDER BY source.source ASC, chunk.ordinal ASC, chunk.chunk_key ASC
|
|
318
|
+
`).all(sourceKey, sourceKey);
|
|
319
|
+
const entitiesByChunk = this.entitiesForChunks(rows.map((row) => row.id));
|
|
320
|
+
return rows.map((row) => this.toSearchResult(row, '', 0, entitiesByChunk.get(row.id) ?? []));
|
|
321
|
+
}
|
|
248
322
|
search(options) {
|
|
249
323
|
const query = normalizeText(options.query);
|
|
250
324
|
const entityFilter = normalizeEntityFilter(options.entities);
|
|
@@ -449,15 +523,20 @@ class RdfTextIndex {
|
|
|
449
523
|
}));
|
|
450
524
|
}
|
|
451
525
|
initializeSchema() {
|
|
452
|
-
this.requireDb()
|
|
453
|
-
|
|
526
|
+
const db = this.requireDb();
|
|
527
|
+
if (hasAnyTable(db, RDF_TEXT_DOMAIN_TABLES)) {
|
|
528
|
+
this.validateSchema();
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
db.exec(`
|
|
532
|
+
CREATE TABLE rdf_text_metadata (
|
|
454
533
|
key TEXT PRIMARY KEY,
|
|
455
534
|
value TEXT NOT NULL
|
|
456
535
|
);
|
|
457
536
|
|
|
458
|
-
CREATE TABLE
|
|
537
|
+
CREATE TABLE rdf_text_sources (
|
|
459
538
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
460
|
-
source_key TEXT,
|
|
539
|
+
source_key TEXT NOT NULL UNIQUE,
|
|
461
540
|
source TEXT NOT NULL UNIQUE,
|
|
462
541
|
workspace TEXT NOT NULL,
|
|
463
542
|
local_path TEXT,
|
|
@@ -467,7 +546,7 @@ class RdfTextIndex {
|
|
|
467
546
|
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
468
547
|
);
|
|
469
548
|
|
|
470
|
-
CREATE TABLE
|
|
549
|
+
CREATE TABLE rdf_text_rebuild_status (
|
|
471
550
|
source TEXT PRIMARY KEY,
|
|
472
551
|
workspace TEXT NOT NULL,
|
|
473
552
|
local_path TEXT,
|
|
@@ -480,7 +559,7 @@ class RdfTextIndex {
|
|
|
480
559
|
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
481
560
|
);
|
|
482
561
|
|
|
483
|
-
CREATE TABLE
|
|
562
|
+
CREATE TABLE rdf_text_chunks (
|
|
484
563
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
485
564
|
source_id INTEGER NOT NULL,
|
|
486
565
|
chunk_key TEXT NOT NULL,
|
|
@@ -499,7 +578,7 @@ class RdfTextIndex {
|
|
|
499
578
|
FOREIGN KEY (source_id) REFERENCES rdf_text_sources(id)
|
|
500
579
|
);
|
|
501
580
|
|
|
502
|
-
CREATE TABLE
|
|
581
|
+
CREATE TABLE rdf_text_terms (
|
|
503
582
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
504
583
|
term TEXT NOT NULL CHECK (length(term) <= ${exports.RDF_TEXT_TERM_MAX_INDEX_LENGTH}),
|
|
505
584
|
source_id INTEGER NOT NULL,
|
|
@@ -511,7 +590,7 @@ class RdfTextIndex {
|
|
|
511
590
|
FOREIGN KEY (chunk_id) REFERENCES rdf_text_chunks(id)
|
|
512
591
|
);
|
|
513
592
|
|
|
514
|
-
CREATE TABLE
|
|
593
|
+
CREATE TABLE rdf_text_entities (
|
|
515
594
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
516
595
|
entity TEXT NOT NULL,
|
|
517
596
|
source_id INTEGER NOT NULL,
|
|
@@ -533,7 +612,6 @@ class RdfTextIndex {
|
|
|
533
612
|
CREATE INDEX IF NOT EXISTS rdf_text_sources_local_path ON rdf_text_sources(local_path);
|
|
534
613
|
CREATE INDEX IF NOT EXISTS rdf_text_sources_workspace_local_path ON rdf_text_sources(workspace, local_path);
|
|
535
614
|
CREATE INDEX IF NOT EXISTS rdf_text_chunks_source ON rdf_text_chunks(source_id, ordinal);
|
|
536
|
-
DELETE FROM rdf_text_terms WHERE length(term) > ${exports.RDF_TEXT_TERM_MAX_INDEX_LENGTH};
|
|
537
615
|
CREATE INDEX IF NOT EXISTS rdf_text_terms_term ON rdf_text_terms(term);
|
|
538
616
|
CREATE INDEX IF NOT EXISTS rdf_text_terms_source_term ON rdf_text_terms(source_id, term);
|
|
539
617
|
CREATE INDEX IF NOT EXISTS rdf_text_terms_chunk ON rdf_text_terms(chunk_id);
|
|
@@ -544,94 +622,31 @@ class RdfTextIndex {
|
|
|
544
622
|
DROP INDEX IF EXISTS rdf_text_chunks_normalized;
|
|
545
623
|
|
|
546
624
|
INSERT INTO rdf_text_metadata (key, value)
|
|
547
|
-
VALUES ('schema_version', '${exports.RDF_TEXT_SCHEMA_VERSION}')
|
|
548
|
-
ON CONFLICT (key) DO UPDATE SET value = excluded.value;
|
|
625
|
+
VALUES ('schema_version', '${exports.RDF_TEXT_SCHEMA_VERSION}');
|
|
549
626
|
`);
|
|
550
|
-
this.ensureSourceKeyColumn();
|
|
551
|
-
this.ensureChunkRetrievalColumns();
|
|
552
|
-
this.ensureEntityProvenanceColumns();
|
|
553
|
-
this.backfillTermPostings();
|
|
554
|
-
}
|
|
555
|
-
ensureSourceKeyColumn() {
|
|
556
|
-
const columns = new Set(this.requireDb()
|
|
557
|
-
.prepare('PRAGMA table_info(rdf_text_sources)')
|
|
558
|
-
.all()
|
|
559
|
-
.map((column) => column.name));
|
|
560
|
-
if (!columns.has('source_key')) {
|
|
561
|
-
this.requireDb().exec('ALTER TABLE rdf_text_sources ADD COLUMN source_key TEXT;');
|
|
562
|
-
}
|
|
563
|
-
this.requireDb().exec('UPDATE rdf_text_sources SET source_key = source WHERE source_key IS NULL;');
|
|
564
|
-
}
|
|
565
|
-
ensureChunkRetrievalColumns() {
|
|
566
|
-
const columns = new Set(this.requireDb()
|
|
567
|
-
.prepare('PRAGMA table_info(rdf_text_chunks)')
|
|
568
|
-
.all()
|
|
569
|
-
.map((column) => column.name));
|
|
570
|
-
if (!columns.has('retrieval_kind')) {
|
|
571
|
-
this.requireDb().exec("ALTER TABLE rdf_text_chunks ADD COLUMN retrieval_kind TEXT NOT NULL DEFAULT 'file-chunk';");
|
|
572
|
-
}
|
|
573
627
|
}
|
|
574
|
-
|
|
575
|
-
const
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
for (const [name, type] of [
|
|
580
|
-
['value', 'TEXT'],
|
|
581
|
-
['datatype', 'TEXT'],
|
|
582
|
-
['language', 'TEXT'],
|
|
583
|
-
['policy_role', 'TEXT'],
|
|
584
|
-
]) {
|
|
585
|
-
if (!columns.has(name)) {
|
|
586
|
-
this.requireDb().exec(`ALTER TABLE rdf_text_entities ADD COLUMN ${name} ${type};`);
|
|
628
|
+
validateSchema() {
|
|
629
|
+
const db = this.requireDb();
|
|
630
|
+
for (const table of RDF_TEXT_DOMAIN_TABLES) {
|
|
631
|
+
if (!hasTable(db, table)) {
|
|
632
|
+
throw new Error(`Unsupported RDF text index schema: missing table ${table}`);
|
|
587
633
|
}
|
|
634
|
+
assertRequiredColumns(db, table, RDF_TEXT_REQUIRED_COLUMNS[table]);
|
|
588
635
|
}
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
const rows = db.prepare(`
|
|
593
|
-
SELECT chunk.id, chunk.source_id, chunk.normalized_text
|
|
594
|
-
FROM rdf_text_chunks chunk
|
|
595
|
-
LEFT JOIN rdf_text_terms term ON term.chunk_id = chunk.id
|
|
596
|
-
WHERE term.chunk_id IS NULL AND chunk.normalized_text <> ''
|
|
597
|
-
`).all();
|
|
598
|
-
if (rows.length === 0) {
|
|
599
|
-
return;
|
|
636
|
+
const version = this.schemaVersion();
|
|
637
|
+
if (version !== exports.RDF_TEXT_SCHEMA_VERSION) {
|
|
638
|
+
throw new Error(`Unsupported RDF text index schema version: expected ${exports.RDF_TEXT_SCHEMA_VERSION}, got ${version}`);
|
|
600
639
|
}
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
term,
|
|
604
|
-
source_id,
|
|
605
|
-
chunk_id,
|
|
606
|
-
occurrences,
|
|
607
|
-
updated_at
|
|
608
|
-
)
|
|
609
|
-
VALUES (?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
610
|
-
`);
|
|
611
|
-
const insertEntity = db.prepare(`
|
|
612
|
-
INSERT INTO rdf_text_entities (
|
|
613
|
-
entity,
|
|
614
|
-
source_id,
|
|
615
|
-
chunk_id,
|
|
616
|
-
predicate,
|
|
617
|
-
label,
|
|
618
|
-
value,
|
|
619
|
-
datatype,
|
|
620
|
-
language,
|
|
621
|
-
policy_role,
|
|
622
|
-
occurrences,
|
|
623
|
-
updated_at
|
|
624
|
-
)
|
|
625
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
626
|
-
`);
|
|
627
|
-
db.transaction(() => {
|
|
628
|
-
for (const row of rows) {
|
|
629
|
-
insertTermOccurrences(insertTerm, row.source_id, row.id, row.normalized_text);
|
|
630
|
-
}
|
|
631
|
-
})();
|
|
640
|
+
assertNotNullColumn(db, 'rdf_text_sources', 'source_key');
|
|
641
|
+
assertUniqueColumn(db, 'rdf_text_sources', 'source_key');
|
|
632
642
|
}
|
|
633
643
|
upsertSource(source) {
|
|
634
644
|
const db = this.requireDb();
|
|
645
|
+
const existing = db.prepare('SELECT * FROM rdf_text_sources WHERE source = ?').get(source.source);
|
|
646
|
+
if (existing && source.sourceKey && existing.source_key !== source.sourceKey) {
|
|
647
|
+
throw new Error(`RDF text source key mismatch for source ${source.source}: expected ${existing.source_key}, got ${source.sourceKey}`);
|
|
648
|
+
}
|
|
649
|
+
const sourceKey = existing?.source_key ?? source.sourceKey ?? source.source;
|
|
635
650
|
db.prepare(`
|
|
636
651
|
INSERT INTO rdf_text_sources (
|
|
637
652
|
source_key,
|
|
@@ -646,14 +661,13 @@ class RdfTextIndex {
|
|
|
646
661
|
VALUES (?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
647
662
|
ON CONFLICT (source)
|
|
648
663
|
DO UPDATE SET
|
|
649
|
-
source_key = excluded.source_key,
|
|
650
664
|
workspace = excluded.workspace,
|
|
651
665
|
local_path = excluded.local_path,
|
|
652
666
|
content_type = excluded.content_type,
|
|
653
667
|
source_version = excluded.source_version,
|
|
654
668
|
source_hash = excluded.source_hash,
|
|
655
669
|
updated_at = excluded.updated_at
|
|
656
|
-
`).run(
|
|
670
|
+
`).run(sourceKey, source.source, source.workspace, source.localPath ?? null, source.contentType ?? null, source.sourceVersion ?? null, source.sourceHash ?? null);
|
|
657
671
|
const row = db.prepare('SELECT * FROM rdf_text_sources WHERE source = ?').get(source.source);
|
|
658
672
|
if (!row) {
|
|
659
673
|
throw new Error(`Failed to upsert RDF text source: ${source.source}`);
|
|
@@ -768,6 +782,18 @@ function rdfTextSourceMetadata(row) {
|
|
|
768
782
|
updatedAt: row.updated_at,
|
|
769
783
|
};
|
|
770
784
|
}
|
|
785
|
+
function normalizeSourceListLimit(value) {
|
|
786
|
+
if (!value || !Number.isFinite(value) || value <= 0) {
|
|
787
|
+
return 1_000;
|
|
788
|
+
}
|
|
789
|
+
return Math.min(Math.floor(value), 10_000);
|
|
790
|
+
}
|
|
791
|
+
function normalizeSourceListOffset(value) {
|
|
792
|
+
if (!value || !Number.isFinite(value) || value <= 0) {
|
|
793
|
+
return 0;
|
|
794
|
+
}
|
|
795
|
+
return Math.floor(value);
|
|
796
|
+
}
|
|
771
797
|
function rdfTextRebuildStatus(row) {
|
|
772
798
|
return {
|
|
773
799
|
source: row.source,
|
|
@@ -782,6 +808,46 @@ function rdfTextRebuildStatus(row) {
|
|
|
782
808
|
updatedAt: row.updated_at,
|
|
783
809
|
};
|
|
784
810
|
}
|
|
811
|
+
function hasAnyTable(db, tables) {
|
|
812
|
+
return tables.some((table) => hasTable(db, table));
|
|
813
|
+
}
|
|
814
|
+
function hasTable(db, table) {
|
|
815
|
+
return db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(table) != null;
|
|
816
|
+
}
|
|
817
|
+
function assertRequiredColumns(db, table, requiredColumns) {
|
|
818
|
+
const columns = new Set(db.prepare(`PRAGMA table_info(${table})`)
|
|
819
|
+
.all()
|
|
820
|
+
.map((column) => column.name));
|
|
821
|
+
for (const column of requiredColumns) {
|
|
822
|
+
if (!columns.has(column)) {
|
|
823
|
+
throw new Error(`Unsupported RDF text index schema: missing column ${table}.${column}`);
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
function assertNotNullColumn(db, table, column) {
|
|
828
|
+
const row = db.prepare(`PRAGMA table_info(${quoteSqliteIdentifier(table)})`)
|
|
829
|
+
.all()
|
|
830
|
+
.find((entry) => entry.name === column);
|
|
831
|
+
if (!row || row.notnull !== 1) {
|
|
832
|
+
throw new Error(`Unsupported RDF text index schema: column ${table}.${column} must be NOT NULL`);
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
function assertUniqueColumn(db, table, column) {
|
|
836
|
+
const indexes = db.prepare(`PRAGMA index_list(${quoteSqliteIdentifier(table)})`).all();
|
|
837
|
+
for (const index of indexes) {
|
|
838
|
+
if (index.unique !== 1) {
|
|
839
|
+
continue;
|
|
840
|
+
}
|
|
841
|
+
const columns = db.prepare(`PRAGMA index_info(${quoteSqliteIdentifier(index.name)})`).all();
|
|
842
|
+
if (columns.length === 1 && columns[0].name === column) {
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
throw new Error(`Unsupported RDF text index schema: column ${table}.${column} must be UNIQUE`);
|
|
847
|
+
}
|
|
848
|
+
function quoteSqliteIdentifier(value) {
|
|
849
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
850
|
+
}
|
|
785
851
|
function chunkRdfTextSource(source, text) {
|
|
786
852
|
if (!text) {
|
|
787
853
|
return [];
|
|
@@ -790,18 +856,24 @@ function chunkRdfTextSource(source, text) {
|
|
|
790
856
|
return chunkFolderCard(source, text);
|
|
791
857
|
}
|
|
792
858
|
if (isMarkdownSource(source)) {
|
|
793
|
-
const
|
|
794
|
-
return
|
|
795
|
-
.
|
|
796
|
-
.
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
859
|
+
const projector = new MarkdownRetrievalPointProjector_1.MarkdownRetrievalPointProjector();
|
|
860
|
+
return projector.project({
|
|
861
|
+
sourceKey: source.sourceKey ?? source.source,
|
|
862
|
+
sourceUri: source.source,
|
|
863
|
+
representationHash: sha256(text),
|
|
864
|
+
markdown: text,
|
|
865
|
+
}).map((point) => ({
|
|
866
|
+
chunkKey: point.chunkKey,
|
|
867
|
+
retrievalPointKey: point.retrievalPointKey,
|
|
868
|
+
retrievalKind: point.retrievalKind,
|
|
869
|
+
chunkPolicyVersion: point.chunkPolicyVersion,
|
|
870
|
+
ordinal: point.ordinal,
|
|
871
|
+
level: point.level,
|
|
872
|
+
heading: point.heading,
|
|
873
|
+
path: point.path,
|
|
874
|
+
content: point.content,
|
|
875
|
+
startOffset: point.startOffset,
|
|
876
|
+
endOffset: point.endOffset,
|
|
805
877
|
}));
|
|
806
878
|
}
|
|
807
879
|
return chunkPlainText(source.source, text);
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_sourceMetadata",
|
|
79
79
|
"memberFieldName": "sourceMetadata"
|
|
80
80
|
},
|
|
81
|
+
{
|
|
82
|
+
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_listSources",
|
|
83
|
+
"memberFieldName": "listSources"
|
|
84
|
+
},
|
|
81
85
|
{
|
|
82
86
|
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_recordRebuildStatus",
|
|
83
87
|
"memberFieldName": "recordRebuildStatus"
|
|
@@ -98,6 +102,10 @@
|
|
|
98
102
|
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_deleteSource",
|
|
99
103
|
"memberFieldName": "deleteSource"
|
|
100
104
|
},
|
|
105
|
+
{
|
|
106
|
+
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_listSourceChunks",
|
|
107
|
+
"memberFieldName": "listSourceChunks"
|
|
108
|
+
},
|
|
101
109
|
{
|
|
102
110
|
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_search",
|
|
103
111
|
"memberFieldName": "search"
|
|
@@ -119,20 +127,8 @@
|
|
|
119
127
|
"memberFieldName": "initializeSchema"
|
|
120
128
|
},
|
|
121
129
|
{
|
|
122
|
-
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#
|
|
123
|
-
"memberFieldName": "
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_ensureChunkRetrievalColumns",
|
|
127
|
-
"memberFieldName": "ensureChunkRetrievalColumns"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_ensureEntityProvenanceColumns",
|
|
131
|
-
"memberFieldName": "ensureEntityProvenanceColumns"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_backfillTermPostings",
|
|
135
|
-
"memberFieldName": "backfillTermPostings"
|
|
130
|
+
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_validateSchema",
|
|
131
|
+
"memberFieldName": "validateSchema"
|
|
136
132
|
},
|
|
137
133
|
{
|
|
138
134
|
"@id": "undefineds:dist/storage/rdf/RdfTextIndex.jsonld#RdfTextIndex__member_upsertSource",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RdfVectorChunkInput, RdfVectorChunkRow, RdfVectorDistanceMetric, RdfSearchCardinalityEstimate, RdfVectorIndexOptions, RdfVectorIndexSyncLike, RdfVectorIndexStats, RdfVectorModelDistribution, RdfVectorSearchOrder, RdfVectorSearchOptions, RdfVectorSearchResult, RdfVectorSourceInput, RdfVectorScoreComponents, RdfVectorSummaryLifecycleEntry, RdfVectorSummaryLifecycleOptions, RdfVectorSummaryMetadata } from './types';
|
|
2
|
+
export declare const RDF_VECTOR_SCHEMA_VERSION = 2;
|
|
2
3
|
export interface RdfVectorScoredChunkRow extends RdfVectorChunkRow {
|
|
3
4
|
dot_product: number;
|
|
4
5
|
vector_score: number;
|
|
@@ -13,18 +14,17 @@ export declare class RdfVectorIndex implements RdfVectorIndexSyncLike {
|
|
|
13
14
|
open(): void;
|
|
14
15
|
close(): void;
|
|
15
16
|
clear(): void;
|
|
17
|
+
schemaVersion(): number;
|
|
16
18
|
indexVector(source: RdfVectorSourceInput, chunks: RdfVectorChunkInput[]): void;
|
|
17
19
|
deleteSource(source: string): number;
|
|
20
|
+
moveSource(oldSource: string, next: RdfVectorSourceInput): number;
|
|
18
21
|
search(options: RdfVectorSearchOptions): RdfVectorSearchResult[];
|
|
19
22
|
summaryLifecycle(options?: RdfVectorSummaryLifecycleOptions): RdfVectorSummaryLifecycleEntry[];
|
|
20
23
|
estimateSearchCardinality(options: RdfVectorSearchOptions): RdfSearchCardinalityEstimate;
|
|
21
24
|
stats(): RdfVectorIndexStats;
|
|
22
25
|
modelDistribution(): RdfVectorModelDistribution[];
|
|
23
26
|
private initializeSchema;
|
|
24
|
-
private
|
|
25
|
-
private ensureVectorIdentityColumns;
|
|
26
|
-
private ensureVectorChunkIdentityUniqueConstraint;
|
|
27
|
-
private backfillVectorComponents;
|
|
27
|
+
private validateSchema;
|
|
28
28
|
private upsertSource;
|
|
29
29
|
private estimateDatabaseBytes;
|
|
30
30
|
private toSearchResult;
|